@wavemaker/app-ng-runtime 11.4.1-next.141652 → 11.4.1-next.141654
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.
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +12 -23
- app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -4
- app-ng-runtime/components/advanced/carousel/carousel.directive.d.ts +2 -4
- app-ng-runtime/components/advanced/carousel/esm2020/carousel-template/carousel-template.directive.mjs +6 -11
- app-ng-runtime/components/advanced/carousel/esm2020/carousel.directive.mjs +6 -11
- app-ng-runtime/components/advanced/carousel/fesm2015/index.mjs +9 -20
- app-ng-runtime/components/advanced/carousel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2020/index.mjs +9 -16
- app-ng-runtime/components/advanced/carousel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +21 -27
- app-ng-runtime/components/advanced/login/esm2020/login.component.mjs +8 -13
- app-ng-runtime/components/advanced/login/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/advanced/login/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/fesm2020/index.mjs +7 -11
- app-ng-runtime/components/advanced/login/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/login.component.d.ts +2 -4
- app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +8 -14
- app-ng-runtime/components/advanced/marquee/esm2020/marquee.directive.mjs +6 -11
- app-ng-runtime/components/advanced/marquee/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/advanced/marquee/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/advanced/marquee/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/marquee.directive.d.ts +2 -4
- app-ng-runtime/components/base/bundles/index.umd.js +31 -61
- app-ng-runtime/components/base/esm2020/widgets/common/base/base-container.component.mjs +4 -6
- app-ng-runtime/components/base/esm2020/widgets/common/base/base.component.mjs +5 -6
- app-ng-runtime/components/base/esm2020/widgets/common/base/dataset-aware-nav.component.mjs +3 -3
- app-ng-runtime/components/base/esm2020/widgets/common/container/container.directive.mjs +7 -11
- app-ng-runtime/components/base/esm2020/widgets/common/item-template/item-template.directive.mjs +7 -10
- app-ng-runtime/components/base/esm2020/widgets/common/lazy-load/lazy-load.directive.mjs +6 -10
- app-ng-runtime/components/base/esm2020/widgets/common/message/message.component.mjs +7 -11
- app-ng-runtime/components/base/esm2020/widgets/common/partial/partial.directive.mjs +7 -10
- app-ng-runtime/components/base/esm2020/widgets/common/repeat-template/repeat-template.directive.mjs +6 -11
- app-ng-runtime/components/base/fesm2015/index.mjs +32 -62
- app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/base/fesm2020/index.mjs +32 -50
- app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -2
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +2 -3
- app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -2
- app-ng-runtime/components/base/widgets/common/container/container.directive.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -4
- app-ng-runtime/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/message/message.component.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/partial/partial.directive.d.ts +3 -4
- app-ng-runtime/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +3 -4
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/bundles/index.umd.js +247 -290
- app-ng-runtime/components/basic/default/esm2020/anchor/anchor.component.mjs +7 -10
- app-ng-runtime/components/basic/default/esm2020/audio/audio.component.mjs +8 -13
- app-ng-runtime/components/basic/default/esm2020/html/html.directive.mjs +7 -11
- app-ng-runtime/components/basic/default/esm2020/icon/icon.component.mjs +9 -14
- app-ng-runtime/components/basic/default/esm2020/iframe/iframe.component.mjs +9 -13
- app-ng-runtime/components/basic/default/esm2020/label/label.directive.mjs +7 -11
- app-ng-runtime/components/basic/default/esm2020/picture/picture.directive.mjs +7 -11
- app-ng-runtime/components/basic/default/esm2020/spinner/spinner.component.mjs +9 -13
- app-ng-runtime/components/basic/default/esm2020/video/video.component.mjs +9 -13
- app-ng-runtime/components/basic/default/fesm2015/index.mjs +46 -89
- app-ng-runtime/components/basic/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/fesm2020/index.mjs +46 -73
- app-ng-runtime/components/basic/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/html/html.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/icon/icon.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/label/label.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/spinner/spinner.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -4
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +23 -32
- app-ng-runtime/components/basic/progress/esm2020/progress-bar/progress-bar.component.mjs +8 -12
- app-ng-runtime/components/basic/progress/esm2020/progress-circle/progress-circle.component.mjs +8 -13
- app-ng-runtime/components/basic/progress/fesm2015/index.mjs +12 -21
- app-ng-runtime/components/basic/progress/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/fesm2020/index.mjs +12 -19
- app-ng-runtime/components/basic/progress/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -4
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -4
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +14 -20
- app-ng-runtime/components/basic/rich-text-editor/esm2020/rich-text-editor.component.mjs +9 -13
- app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/fesm2020/index.mjs +7 -11
- app-ng-runtime/components/basic/rich-text-editor/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -4
- app-ng-runtime/components/basic/search/bundles/index.umd.js +3 -6
- app-ng-runtime/components/basic/search/esm2020/search.component.mjs +6 -9
- app-ng-runtime/components/basic/search/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/basic/search/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/basic/search/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +3 -4
- app-ng-runtime/components/chart/bundles/index.umd.js +4 -9
- app-ng-runtime/components/chart/chart.component.d.ts +3 -4
- app-ng-runtime/components/chart/esm2020/chart.component.mjs +7 -10
- app-ng-runtime/components/chart/fesm2015/index.mjs +5 -10
- app-ng-runtime/components/chart/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/chart/fesm2020/index.mjs +5 -8
- app-ng-runtime/components/chart/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -4
- app-ng-runtime/components/containers/accordion/accordion.directive.d.ts +3 -4
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +56 -66
- app-ng-runtime/components/containers/accordion/esm2020/accordion-pane/accordion-pane.component.mjs +10 -14
- app-ng-runtime/components/containers/accordion/esm2020/accordion.directive.mjs +7 -10
- app-ng-runtime/components/containers/accordion/fesm2015/index.mjs +12 -22
- app-ng-runtime/components/containers/accordion/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/fesm2020/index.mjs +12 -18
- app-ng-runtime/components/containers/accordion/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +12 -25
- app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid-column/layout-grid-column.directive.mjs +7 -10
- app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid-row/layout-grid-row.directive.mjs +6 -11
- app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid.directive.mjs +6 -11
- app-ng-runtime/components/containers/layout-grid/fesm2015/index.mjs +13 -26
- app-ng-runtime/components/containers/layout-grid/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/fesm2020/index.mjs +13 -22
- app-ng-runtime/components/containers/layout-grid/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +3 -4
- app-ng-runtime/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -4
- app-ng-runtime/components/containers/layout-grid/layout-grid.directive.d.ts +2 -4
- app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +12 -23
- app-ng-runtime/components/containers/linear-layout/esm2020/linear-layout-item/linear-layout-item.directive.mjs +6 -11
- app-ng-runtime/components/containers/linear-layout/esm2020/linear-layout.directive.mjs +6 -11
- app-ng-runtime/components/containers/linear-layout/fesm2015/index.mjs +9 -20
- app-ng-runtime/components/containers/linear-layout/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/fesm2020/index.mjs +9 -16
- app-ng-runtime/components/containers/linear-layout/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -4
- app-ng-runtime/components/containers/linear-layout/linear-layout.directive.d.ts +2 -4
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +65 -71
- app-ng-runtime/components/containers/panel/esm2020/panel.component.mjs +12 -16
- app-ng-runtime/components/containers/panel/fesm2015/index.mjs +10 -16
- app-ng-runtime/components/containers/panel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/fesm2020/index.mjs +10 -14
- app-ng-runtime/components/containers/panel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +2 -4
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +57 -63
- app-ng-runtime/components/containers/tabs/esm2020/tab-pane/tab-pane.component.mjs +8 -12
- app-ng-runtime/components/containers/tabs/esm2020/tabs.component.mjs +7 -10
- app-ng-runtime/components/containers/tabs/fesm2015/index.mjs +12 -18
- app-ng-runtime/components/containers/tabs/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/fesm2020/index.mjs +12 -18
- app-ng-runtime/components/containers/tabs/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -4
- app-ng-runtime/components/containers/tabs/tabs.component.d.ts +3 -4
- app-ng-runtime/components/containers/tile/bundles/index.umd.js +8 -14
- app-ng-runtime/components/containers/tile/esm2020/tile.directive.mjs +6 -11
- app-ng-runtime/components/containers/tile/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/containers/tile/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/containers/tile/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/tile.directive.d.ts +2 -4
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +48 -57
- app-ng-runtime/components/containers/wizard/esm2020/wizard-step/wizard-step.directive.mjs +5 -10
- app-ng-runtime/components/containers/wizard/esm2020/wizard.component.mjs +10 -14
- app-ng-runtime/components/containers/wizard/fesm2015/index.mjs +11 -20
- app-ng-runtime/components/containers/wizard/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/fesm2020/index.mjs +11 -18
- app-ng-runtime/components/containers/wizard/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -4
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -4
- app-ng-runtime/components/data/card/bundles/index.umd.js +83 -106
- app-ng-runtime/components/data/card/card-actions/card-actions.directive.d.ts +2 -4
- app-ng-runtime/components/data/card/card-content/card-content.component.d.ts +2 -4
- app-ng-runtime/components/data/card/card-footer/card-footer.directive.d.ts +2 -4
- app-ng-runtime/components/data/card/card.component.d.ts +2 -4
- app-ng-runtime/components/data/card/esm2020/card-actions/card-actions.directive.mjs +6 -11
- app-ng-runtime/components/data/card/esm2020/card-content/card-content.component.mjs +6 -11
- app-ng-runtime/components/data/card/esm2020/card-footer/card-footer.directive.mjs +6 -11
- app-ng-runtime/components/data/card/esm2020/card.component.mjs +12 -18
- app-ng-runtime/components/data/card/fesm2015/index.mjs +23 -46
- app-ng-runtime/components/data/card/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/card/fesm2020/index.mjs +23 -38
- app-ng-runtime/components/data/card/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +128 -137
- app-ng-runtime/components/data/form/esm2020/form-action/form-action.directive.mjs +4 -9
- app-ng-runtime/components/data/form/esm2020/form-field/form-field.directive.mjs +5 -8
- app-ng-runtime/components/data/form/esm2020/form.component.mjs +5 -8
- app-ng-runtime/components/data/form/fesm2015/index.mjs +20 -29
- app-ng-runtime/components/data/form/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/fesm2020/index.mjs +20 -29
- app-ng-runtime/components/data/form/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form-action/form-action.directive.d.ts +2 -4
- app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +3 -4
- app-ng-runtime/components/data/form/form.component.d.ts +3 -4
- app-ng-runtime/components/data/list/bundles/index.umd.js +4 -7
- app-ng-runtime/components/data/list/esm2020/list.component.mjs +7 -10
- app-ng-runtime/components/data/list/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/data/list/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/data/list/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +3 -4
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +3 -6
- app-ng-runtime/components/data/live-table/esm2020/live-table.component.mjs +6 -9
- app-ng-runtime/components/data/live-table/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/data/live-table/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/data/live-table/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/live-table.component.d.ts +3 -4
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +30 -34
- app-ng-runtime/components/data/pagination/esm2020/pagination.component.mjs +10 -14
- app-ng-runtime/components/data/pagination/fesm2015/index.mjs +8 -12
- app-ng-runtime/components/data/pagination/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/fesm2020/index.mjs +8 -12
- app-ng-runtime/components/data/pagination/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/pagination.component.d.ts +2 -4
- app-ng-runtime/components/data/table/bundles/index.umd.js +19 -37
- app-ng-runtime/components/data/table/esm2020/table-action/table-action.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table-column/table-column.directive.mjs +5 -8
- app-ng-runtime/components/data/table/esm2020/table-column-group/table-column-group.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table-row/table-row.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table-row-action/table-row-action.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table.component.mjs +6 -9
- app-ng-runtime/components/data/table/fesm2015/index.mjs +19 -37
- app-ng-runtime/components/data/table/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/fesm2020/index.mjs +19 -37
- app-ng-runtime/components/data/table/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-action/table-action.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +3 -4
- app-ng-runtime/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table-row/table-row.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table.component.d.ts +3 -4
- app-ng-runtime/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +40 -46
- app-ng-runtime/components/dialogs/alert-dialog/esm2020/alert-dialog.component.mjs +9 -15
- app-ng-runtime/components/dialogs/alert-dialog/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/dialogs/alert-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/alert-dialog/fesm2020/index.mjs +8 -14
- app-ng-runtime/components/dialogs/alert-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +16 -22
- app-ng-runtime/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/confirm-dialog/esm2020/confirm-dialog.component.mjs +8 -14
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2020/index.mjs +7 -13
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +25 -31
- app-ng-runtime/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -4
- app-ng-runtime/components/dialogs/default/esm2020/base-dialog.mjs +7 -8
- app-ng-runtime/components/dialogs/default/esm2020/dialog-footer/dialog-footer.directive.mjs +6 -11
- app-ng-runtime/components/dialogs/default/fesm2015/index.mjs +11 -17
- app-ng-runtime/components/dialogs/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/fesm2020/index.mjs +11 -15
- app-ng-runtime/components/dialogs/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +17 -23
- app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/design-dialog/esm2020/dialog.component.mjs +8 -14
- app-ng-runtime/components/dialogs/design-dialog/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/dialogs/design-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/fesm2020/index.mjs +7 -13
- app-ng-runtime/components/dialogs/design-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +24 -30
- app-ng-runtime/components/dialogs/iframe-dialog/esm2020/iframe-dialog.component.mjs +10 -16
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2015/index.mjs +9 -15
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2020/index.mjs +9 -15
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +3 -8
- app-ng-runtime/components/dialogs/partial-dialog/esm2020/partial-dialog.component.mjs +5 -10
- app-ng-runtime/components/dialogs/partial-dialog/fesm2015/index.mjs +4 -9
- app-ng-runtime/components/dialogs/partial-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/fesm2020/index.mjs +4 -9
- app-ng-runtime/components/dialogs/partial-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/partial-dialog.component.d.ts +3 -4
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +5 -10
- app-ng-runtime/components/input/calendar/calendar.component.d.ts +3 -4
- app-ng-runtime/components/input/calendar/esm2020/calendar.component.mjs +8 -11
- app-ng-runtime/components/input/calendar/fesm2015/index.mjs +6 -11
- app-ng-runtime/components/input/calendar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/fesm2020/index.mjs +6 -9
- app-ng-runtime/components/input/calendar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +87 -93
- app-ng-runtime/components/input/chips/chips.component.d.ts +2 -4
- app-ng-runtime/components/input/chips/esm2020/chips.component.mjs +9 -15
- app-ng-runtime/components/input/chips/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/input/chips/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/fesm2020/index.mjs +8 -14
- app-ng-runtime/components/input/chips/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +22 -28
- app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +2 -4
- app-ng-runtime/components/input/color-picker/esm2020/color-picker.component.mjs +10 -14
- app-ng-runtime/components/input/color-picker/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/input/color-picker/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/fesm2020/index.mjs +8 -12
- app-ng-runtime/components/input/color-picker/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -9
- app-ng-runtime/components/input/currency/currency.component.d.ts +3 -4
- app-ng-runtime/components/input/currency/esm2020/currency.component.mjs +7 -10
- app-ng-runtime/components/input/currency/fesm2015/index.mjs +5 -10
- app-ng-runtime/components/input/currency/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/fesm2020/index.mjs +5 -8
- app-ng-runtime/components/input/currency/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form.component.d.ts +1 -2
- app-ng-runtime/components/input/default/bundles/index.umd.js +575 -648
- app-ng-runtime/components/input/default/button/button.component.d.ts +2 -4
- app-ng-runtime/components/input/default/button-group/button-group.directive.d.ts +2 -4
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +2 -4
- app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +2 -4
- app-ng-runtime/components/input/default/composite/composite.directive.d.ts +2 -4
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -3
- app-ng-runtime/components/input/default/esm2020/base-form.component.mjs +6 -7
- app-ng-runtime/components/input/default/esm2020/button/button.component.mjs +9 -14
- app-ng-runtime/components/input/default/esm2020/button-group/button-group.directive.mjs +6 -11
- app-ng-runtime/components/input/default/esm2020/checkbox/checkbox.component.mjs +9 -13
- app-ng-runtime/components/input/default/esm2020/checkboxset/checkboxset.component.mjs +10 -14
- app-ng-runtime/components/input/default/esm2020/composite/composite.directive.mjs +7 -11
- app-ng-runtime/components/input/default/esm2020/dataset-aware-form.component.mjs +6 -7
- app-ng-runtime/components/input/default/esm2020/number/number.component.mjs +7 -10
- app-ng-runtime/components/input/default/esm2020/radioset/radioset.component.mjs +10 -14
- app-ng-runtime/components/input/default/esm2020/select/select.component.mjs +11 -15
- app-ng-runtime/components/input/default/esm2020/switch/switch.component.mjs +10 -14
- app-ng-runtime/components/input/default/esm2020/text/base/base-input.mjs +6 -7
- app-ng-runtime/components/input/default/esm2020/text/calendar/input-calendar.component.mjs +8 -13
- app-ng-runtime/components/input/default/esm2020/text/color/input-color.component.mjs +8 -13
- app-ng-runtime/components/input/default/esm2020/text/email/input-email.component.mjs +8 -13
- app-ng-runtime/components/input/default/esm2020/text/locale/number-locale.mjs +3 -3
- app-ng-runtime/components/input/default/esm2020/text/number/input-number.component.mjs +9 -14
- app-ng-runtime/components/input/default/esm2020/text/text/input-text.component.mjs +9 -14
- app-ng-runtime/components/input/default/esm2020/textarea/textarea.component.mjs +9 -14
- app-ng-runtime/components/input/default/fesm2015/index.mjs +94 -167
- app-ng-runtime/components/input/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/fesm2020/index.mjs +94 -139
- app-ng-runtime/components/input/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/number/number.component.d.ts +3 -4
- app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +2 -4
- app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
- app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/base/base-input.d.ts +1 -2
- app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +2 -2
- app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +2 -4
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -4
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +12 -21
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +3 -4
- app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +3 -4
- app-ng-runtime/components/input/epoch/esm2020/base-date-time.component.mjs +5 -6
- app-ng-runtime/components/input/epoch/esm2020/date/date.component.mjs +6 -9
- app-ng-runtime/components/input/epoch/esm2020/date-time/date-time.component.mjs +6 -9
- app-ng-runtime/components/input/epoch/esm2020/time/time.component.mjs +6 -9
- app-ng-runtime/components/input/epoch/fesm2015/index.mjs +13 -22
- app-ng-runtime/components/input/epoch/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/fesm2020/index.mjs +13 -22
- app-ng-runtime/components/input/epoch/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/time/time.component.d.ts +3 -4
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +3 -6
- app-ng-runtime/components/input/file-upload/esm2020/file-upload.component.mjs +6 -9
- app-ng-runtime/components/input/file-upload/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/input/file-upload/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/input/file-upload/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +3 -4
- app-ng-runtime/components/input/rating/bundles/index.umd.js +45 -51
- app-ng-runtime/components/input/rating/esm2020/rating.component.mjs +11 -15
- app-ng-runtime/components/input/rating/fesm2015/index.mjs +9 -15
- app-ng-runtime/components/input/rating/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/fesm2020/index.mjs +9 -13
- app-ng-runtime/components/input/rating/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/rating.component.d.ts +2 -4
- app-ng-runtime/components/input/slider/bundles/index.umd.js +37 -43
- app-ng-runtime/components/input/slider/esm2020/slider.component.mjs +10 -15
- app-ng-runtime/components/input/slider/fesm2015/index.mjs +9 -15
- app-ng-runtime/components/input/slider/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/fesm2020/index.mjs +9 -13
- app-ng-runtime/components/input/slider/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/slider.component.d.ts +2 -4
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +13 -25
- app-ng-runtime/components/navigation/menu/esm2020/menu-adapator.component.mjs +4 -6
- app-ng-runtime/components/navigation/menu/esm2020/menu.component.mjs +4 -7
- app-ng-runtime/components/navigation/menu/esm2020/nav/nav-item/nav-item.directive.mjs +7 -11
- app-ng-runtime/components/navigation/menu/esm2020/nav/nav.component.mjs +5 -9
- app-ng-runtime/components/navigation/menu/fesm2015/index.mjs +14 -26
- app-ng-runtime/components/navigation/menu/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/fesm2020/index.mjs +14 -24
- app-ng-runtime/components/navigation/menu/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-adapator.component.d.ts +1 -2
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +2 -3
- app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -4
- app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +3 -3
- app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +28 -34
- app-ng-runtime/components/navigation/navbar/esm2020/navbar.component.mjs +9 -14
- app-ng-runtime/components/navigation/navbar/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/navigation/navbar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/fesm2020/index.mjs +8 -12
- app-ng-runtime/components/navigation/navbar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/navbar.component.d.ts +2 -4
- app-ng-runtime/components/page/default/bundles/index.umd.js +32 -64
- app-ng-runtime/components/page/default/content/content.component.d.ts +2 -4
- app-ng-runtime/components/page/default/esm2020/content/content.component.mjs +6 -11
- app-ng-runtime/components/page/default/esm2020/layout.directive.mjs +7 -11
- app-ng-runtime/components/page/default/esm2020/page-content/page-content.component.mjs +7 -10
- app-ng-runtime/components/page/default/esm2020/page.directive.mjs +7 -12
- app-ng-runtime/components/page/default/esm2020/router-outlet.directive.mjs +7 -11
- app-ng-runtime/components/page/default/esm2020/spa-page.directive.mjs +7 -10
- app-ng-runtime/components/page/default/fesm2015/index.mjs +26 -58
- app-ng-runtime/components/page/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/fesm2020/index.mjs +26 -46
- app-ng-runtime/components/page/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/layout.directive.d.ts +2 -4
- app-ng-runtime/components/page/default/page-content/page-content.component.d.ts +3 -4
- app-ng-runtime/components/page/default/page.directive.d.ts +3 -4
- app-ng-runtime/components/page/default/router-outlet.directive.d.ts +2 -4
- app-ng-runtime/components/page/default/spa-page.directive.d.ts +3 -4
- app-ng-runtime/components/page/footer/bundles/index.umd.js +8 -14
- app-ng-runtime/components/page/footer/esm2020/footer.directive.mjs +6 -11
- app-ng-runtime/components/page/footer/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/footer/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/footer/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/footer.directive.d.ts +2 -4
- app-ng-runtime/components/page/header/bundles/index.umd.js +8 -14
- app-ng-runtime/components/page/header/esm2020/header.component.mjs +6 -11
- app-ng-runtime/components/page/header/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/header/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/header/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/header.component.d.ts +2 -4
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +4 -7
- app-ng-runtime/components/page/left-panel/esm2020/left-panel.directive.mjs +6 -9
- app-ng-runtime/components/page/left-panel/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/page/left-panel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/page/left-panel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +3 -4
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -12
- app-ng-runtime/components/page/right-panel/esm2020/right-panel.directive.mjs +7 -11
- app-ng-runtime/components/page/right-panel/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/right-panel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/right-panel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -4
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +8 -14
- app-ng-runtime/components/page/top-nav/esm2020/top-nav.directive.mjs +6 -11
- app-ng-runtime/components/page/top-nav/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/top-nav/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/top-nav/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/top-nav.directive.d.ts +2 -4
- app-ng-runtime/components/prefab/bundles/index.umd.js +7 -15
- app-ng-runtime/components/prefab/esm2020/prefab-container/prefab-container.directive.mjs +7 -10
- app-ng-runtime/components/prefab/esm2020/prefab.directive.mjs +6 -10
- app-ng-runtime/components/prefab/fesm2015/index.mjs +8 -16
- app-ng-runtime/components/prefab/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/fesm2020/index.mjs +8 -14
- app-ng-runtime/components/prefab/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/prefab-container/prefab-container.directive.d.ts +3 -4
- app-ng-runtime/components/prefab/prefab.directive.d.ts +2 -4
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +32 -37
- app-ng-runtime/mobile/components/basic/default/esm2020/network-info-toaster/network-info-toaster.component.mjs +7 -10
- app-ng-runtime/mobile/components/basic/default/fesm2015/index.mjs +10 -15
- app-ng-runtime/mobile/components/basic/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/fesm2020/index.mjs +10 -13
- app-ng-runtime/mobile/components/basic/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +3 -4
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +18 -29
- app-ng-runtime/mobile/components/containers/segmented-control/esm2020/segment-content/segment-content.component.mjs +8 -13
- app-ng-runtime/mobile/components/containers/segmented-control/esm2020/segmented-control.component.mjs +9 -13
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2015/index.mjs +12 -23
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2020/index.mjs +12 -19
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -4
- app-ng-runtime/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -4
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +30 -36
- app-ng-runtime/mobile/components/data/media-list/esm2020/media-list.component.mjs +14 -18
- app-ng-runtime/mobile/components/data/media-list/fesm2015/index.mjs +11 -17
- app-ng-runtime/mobile/components/data/media-list/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/fesm2020/index.mjs +11 -15
- app-ng-runtime/mobile/components/data/media-list/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/media-list.component.d.ts +2 -4
- app-ng-runtime/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -4
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +28 -34
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2020/barcode-scanner.component.mjs +10 -14
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2015/index.mjs +8 -14
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2020/index.mjs +8 -12
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +12 -18
- app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -4
- app-ng-runtime/mobile/components/device/camera/esm2020/camera.component.mjs +9 -13
- app-ng-runtime/mobile/components/device/camera/fesm2015/index.mjs +7 -13
- app-ng-runtime/mobile/components/device/camera/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/fesm2020/index.mjs +7 -11
- app-ng-runtime/mobile/components/device/camera/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +3 -6
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2020/mobile-navbar.component.mjs +6 -9
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2015/index.mjs +4 -7
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2020/index.mjs +4 -7
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +3 -4
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +32 -36
- app-ng-runtime/mobile/components/page/tab-bar/esm2020/tabbar.component.mjs +8 -13
- app-ng-runtime/mobile/components/page/tab-bar/fesm2015/index.mjs +7 -11
- app-ng-runtime/mobile/components/page/tab-bar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/fesm2020/index.mjs +7 -11
- app-ng-runtime/mobile/components/page/tab-bar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -4
- app-ng-runtime/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Attribute, Component, Injector,
|
|
1
|
+
import { Attribute, Component, Injector, ViewChild } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { $appDigest, $unwatch, $watch, debounce, isAppleProduct, isDefined, toBoolean, UserDefinedExecutionContext } from '@wm/core';
|
|
4
4
|
import { ALLFIELDS, configureDnD, getConditionalClasses, getUniqObjsByDataField, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';
|
|
@@ -6,10 +6,9 @@ import { DatasetAwareFormComponent } from '@wm/components/input';
|
|
|
6
6
|
import { SearchComponent } from '@wm/components/basic/search';
|
|
7
7
|
import { registerProps } from './chips.props';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@
|
|
10
|
-
import * as i2 from "@
|
|
11
|
-
import * as i3 from "@wm/components/
|
|
12
|
-
import * as i4 from "@wm/components/base";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "@wm/components/basic/search";
|
|
11
|
+
import * as i3 from "@wm/components/base";
|
|
13
12
|
const _c0 = ["wmChips", ""];
|
|
14
13
|
function ChipsComponent_li_0_img_2_Template(rf, ctx) { if (rf & 1) {
|
|
15
14
|
i0.ɵɵelement(0, "img", 9);
|
|
@@ -63,15 +62,14 @@ export class ChipsComponent extends DatasetAwareFormComponent {
|
|
|
63
62
|
this.searchComponent.datasource = nv;
|
|
64
63
|
this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);
|
|
65
64
|
}
|
|
66
|
-
constructor(inj, bindDisplayField, bindDisplayExpr, bindDisplayImgSrc, bindDataField, bindDataSet, bindChipclass
|
|
67
|
-
super(inj, WIDGET_CONFIG
|
|
65
|
+
constructor(inj, bindDisplayField, bindDisplayExpr, bindDisplayImgSrc, bindDataField, bindDataSet, bindChipclass) {
|
|
66
|
+
super(inj, WIDGET_CONFIG);
|
|
68
67
|
this.bindDisplayField = bindDisplayField;
|
|
69
68
|
this.bindDisplayExpr = bindDisplayExpr;
|
|
70
69
|
this.bindDisplayImgSrc = bindDisplayImgSrc;
|
|
71
70
|
this.bindDataField = bindDataField;
|
|
72
71
|
this.bindDataSet = bindDataSet;
|
|
73
72
|
this.bindChipclass = bindChipclass;
|
|
74
|
-
this._viewParent = _viewParent;
|
|
75
73
|
this.chipsList = [];
|
|
76
74
|
this.maxSizeReached = 'Max size reached';
|
|
77
75
|
this._unsubscribeDv = false;
|
|
@@ -618,7 +616,7 @@ export class ChipsComponent extends DatasetAwareFormComponent {
|
|
|
618
616
|
}
|
|
619
617
|
}
|
|
620
618
|
ChipsComponent.initializeProps = registerProps();
|
|
621
|
-
ChipsComponent.ɵfac = function ChipsComponent_Factory(t) { return new (t || ChipsComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('displayfield.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('datafield.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('chipclass.bind')
|
|
619
|
+
ChipsComponent.ɵfac = function ChipsComponent_Factory(t) { return new (t || ChipsComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('displayfield.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('datafield.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('chipclass.bind')); };
|
|
622
620
|
ChipsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChipsComponent, selectors: [["", "wmChips", ""]], viewQuery: function ChipsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
623
621
|
i0.ɵɵviewQuery(SearchComponent, 7);
|
|
624
622
|
} if (rf & 2) {
|
|
@@ -640,7 +638,7 @@ ChipsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChipsCompone
|
|
|
640
638
|
i0.ɵɵproperty("ngForOf", ctx.chipsList);
|
|
641
639
|
i0.ɵɵadvance(1);
|
|
642
640
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c3, ctx.inputwidth === "full"));
|
|
643
|
-
} }, dependencies: [
|
|
641
|
+
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.SearchComponent, i3.TextContentDirective], encapsulation: 2 });
|
|
644
642
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChipsComponent, [{
|
|
645
643
|
type: Component,
|
|
646
644
|
args: [{ selector: '[wmChips]', providers: [
|
|
@@ -669,12 +667,8 @@ ChipsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChipsCompone
|
|
|
669
667
|
}] }, { type: undefined, decorators: [{
|
|
670
668
|
type: Attribute,
|
|
671
669
|
args: ['chipclass.bind']
|
|
672
|
-
}] }, { type: i1.UserDefinedExecutionContext, decorators: [{
|
|
673
|
-
type: SkipSelf
|
|
674
|
-
}, {
|
|
675
|
-
type: Optional
|
|
676
670
|
}] }]; }, { searchComponent: [{
|
|
677
671
|
type: ViewChild,
|
|
678
672
|
args: [SearchComponent, /* TODO: add static flag */ { static: true }]
|
|
679
673
|
}] }); })();
|
|
680
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NoaXBzL3NyYy9jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2hpcHMvc3JjL2NoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixjQUFjLEVBQ2QsU0FBUyxFQUNULFNBQVMsRUFDVCwyQkFBMkIsRUFDOUIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQWlCLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoTCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7SUNOdEMseUJBQStHOzs7SUFBekMsc0RBQW1COzs7O0lBRXpGLGtDQUF3SjtJQUE5RCw4UUFBUyxlQUFBLDZDQUFnQyxDQUFBLElBQUU7SUFDakksd0JBQW9DO0lBQ3hDLGlCQUFTOzs7Ozs7SUFmakIsNkJBQzhELFdBQUE7SUFFdkQsd05BQVMsZUFBQSx3Q0FBNkIs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QkFDUCxTQUFTLGlCQUFpQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ2xELGtCQUFrQixnQkFBZ0I7b0JBQ2xDO3dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7d0JBQ3BDLFdBQVcsZ0JBQWdCO3FCQUM5QjtpQkFDSjs7c0JBeUNJLFNBQVM7dUJBQUMsbUJBQW1COztzQkFDN0IsU0FBUzt1QkFBQyx3QkFBd0I7O3NCQUNsQyxTQUFTO3VCQUFDLHNCQUFzQjs7c0JBQ2hDLFNBQVM7dUJBQUMsZ0JBQWdCOztzQkFDMUIsU0FBUzt1QkFBQyxjQUFjOztzQkFDeEIsU0FBUzt1QkFBQyxnQkFBZ0I7O3NCQUEwQixRQUFROztzQkFBSSxRQUFRO3dCQTVCTCxlQUFlO2tCQUF0RixTQUFTO21CQUFDLGVBQWUsRUFBRSwyQkFBMkIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEF0dHJpYnV0ZSwgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBPcHRpb25hbCwgU2tpcFNlbGYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgICAkYXBwRGlnZXN0LFxuICAgICR1bndhdGNoLFxuICAgICR3YXRjaCxcbiAgICBkZWJvdW5jZSxcbiAgICBpc0FwcGxlUHJvZHVjdCxcbiAgICBpc0RlZmluZWQsXG4gICAgdG9Cb29sZWFuLFxuICAgIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBTExGSUVMRFMsIGNvbmZpZ3VyZURuRCwgRGF0YVNldEl0ZW0sIGdldENvbmRpdGlvbmFsQ2xhc3NlcywgZ2V0VW5pcU9ianNCeURhdGFGaWVsZCwgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2ljL3NlYXJjaCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2NoaXBzLnByb3BzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1jaGlwcycsXG4gICAgaG9zdENsYXNzOiAnYXBwLWNoaXBzIG5hdiBuYXYtcGlsbHMgbGlzdC1pbmxpbmUnXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bUNoaXBzXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKENoaXBzQ29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDaGlwc0NvbXBvbmVudCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDaGlwc0NvbXBvbmVudFxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGlwc0NvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgcHVibGljIGFsbG93b25seXNlbGVjdDogYm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlcmVvcmRlcjogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF4c2l6ZTogbnVtYmVyO1xuICAgIHB1YmxpYyBpbnB1dHdpZHRoOiBhbnk7XG4gICAgcHJpdmF0ZSBkZWJvdW5jZXRpbWU6IG51bWJlcjtcblxuICAgIHB1YmxpYyBjaGlwc0xpc3Q6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1heFNpemVSZWFjaGVkID0gJ01heCBzaXplIHJlYWNoZWQnO1xuICAgIHByaXZhdGUgc2F0dXJhdGU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBuZXh0SXRlbUluZGV4OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBnZXRUcmFuc2Zvcm1lZERhdGE6IChkYXRhLCBpdGVtSW5kZXg/KSA9PiBEYXRhU2V0SXRlbVtdO1xuICAgIHByaXZhdGUgaW5wdXRwb3NpdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgc2hvd3NlYXJjaGljb246IGJvb2xlYW47XG5cbiAgICBAVmlld0NoaWxkKFNlYXJjaENvbXBvbmVudCwgLyogVE9ETzogYWRkIHN0YXRpYyBmbGFnICovIHtzdGF0aWM6IHRydWV9KSBzZWFyY2hDb21wb25lbnQ6IFNlYXJjaENvbXBvbmVudDtcbiAgICBwcml2YXRlIF9kYXRhc291cmNlOiBhbnk7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVEdiA9IGZhbHNlO1xuICAgIHByaXZhdGUgc2VhcmNoa2V5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfZGVib3VuY2VVcGRhdGVRdWVyeU1vZGVsOiBhbnk7XG4gICAgcHJpdmF0ZSBsaW1pdDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2NsYXNzRXhwcjogYW55O1xuICAgIHByaXZhdGUgbWluY2hhcnM6IG51bWJlcjtcbiAgICBwcml2YXRlIG1hdGNobW9kZTogc3RyaW5nO1xuXG4gICAgLy8gZ2V0dGVyIHNldHRlciBpcyBhZGRlZCB0byBwYXNzIHRoZSBkYXRhc291cmNlIHRvIHNlYXJjaGNvbXBvbmVudC5cbiAgICBnZXQgZGF0YXNvdXJjZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhc291cmNlO1xuICAgIH1cblxuICAgIHNldCBkYXRhc291cmNlKG52KSB7XG4gICAgICAgIHRoaXMuX2RhdGFzb3VyY2UgPSBudjtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGF0YXNvdXJjZSA9IG52O1xuICAgICAgICB0aGlzLl9kZWJvdW5jZVVwZGF0ZVF1ZXJ5TW9kZWwodGhpcy5kYXRhdmFsdWUgfHwgdGhpcy50b0JlUHJvY2Vzc2VkRGF0YXZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWZpZWxkLmJpbmQnKSBwcml2YXRlIGJpbmREaXNwbGF5RmllbGQsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlleHByZXNzaW9uLmJpbmQnKSBwcml2YXRlIGJpbmREaXNwbGF5RXhwcixcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWltYWdlc3JjLmJpbmQnKSBwcml2YXRlIGJpbmREaXNwbGF5SW1nU3JjLFxuICAgICAgICBAQXR0cmlidXRlKCdkYXRhZmllbGQuYmluZCcpIHByaXZhdGUgYmluZERhdGFGaWVsZCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGF0YXNldC5iaW5kJykgcHJpdmF0ZSBiaW5kRGF0YVNldCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnY2hpcGNsYXNzLmJpbmQnKSBwcml2YXRlIGJpbmRDaGlwY2xhc3MsIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBfdmlld1BhcmVudDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgX3ZpZXdQYXJlbnQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcblxuICAgICAgICAvLyBzZXQgdGhlIHNob3dzZWFyY2hpY29uIGFzIGZhbHNlIGJ5IGRlZmF1bHQuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuc2hvd3NlYXJjaGljb24pKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dzZWFyY2hpY29uID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm11bHRpcGxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uZXh0SXRlbUluZGV4ID0gMDsgLy8gZGVmYXVsdCBjaGlwIGluZGV4XG5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VVcGRhdGVRdWVyeU1vZGVsID0gZGVib3VuY2UoKHZhbCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVRdWVyeU1vZGVsKHZhbCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmluZENoaXBjbGFzcykge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2godGhpcy5jaGlwc0xpc3QsIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckNoaXBJdGVtQ2xhc3MoaXRlbSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgMTUwKTtcblxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGF0YXNldCA9IHRoaXMuZGF0YXNldDtcbiAgICAgICAgICAgIC8vIGNsZWFyaW5nIHRoZSBsYXN0IHJlc3VsdHMgd2hlbiBkYXRhc2V0IGlzIHJlYXNzaWduZWRcbiAgICAgICAgICAgICh0aGlzLnNlYXJjaENvbXBvbmVudCBhcyBhbnkpLl9sYXN0UmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5uZXh0SXRlbUluZGV4ID0gdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VVcGRhdGVRdWVyeU1vZGVsKHRoaXMuZGF0YXZhbHVlIHx8IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGFzZXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgY29uc3QgZGF0YXZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhdmFsdWUkLnN1YnNjcmliZSgodmFsOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgcXVlcnlNb2RlbCBvbmx5IHdoZW4gcGFyZW50UmVmIGlzIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIGlmICghdGhpcy5fdW5zdWJzY3JpYmVEdikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRhdGFmaWVsZCBpcyBBTExGSUxFRFMgZG8gbm90IGZldGNoIHRoZSByZWNvcmRzXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBxdWVyeSBtb2RlbCB3aXRoIHRoZSB2YWx1ZXMgd2UgaGF2ZVxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlVXBkYXRlUXVlcnlNb2RlbCh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhdmFsdWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5iaW5kZGlzcGxheWltYWdlc3JjID0gdGhpcy5iaW5kRGlzcGxheUltZ1NyYztcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGlzcGxheWltYWdlc3JjID0gdGhpcy5kaXNwbGF5aW1hZ2VzcmM7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29tcG9uZW50LmJpbmRkaXNwbGF5bGFiZWwgPSB0aGlzLmJpbmREaXNwbGF5RXhwcjtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGlzcGxheWxhYmVsID0gdGhpcy5kaXNwbGF5ZmllbGQ7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29tcG9uZW50LmRhdGFmaWVsZCA9IHRoaXMuYmluZERhdGFGaWVsZCB8fCB0aGlzLmRhdGFmaWVsZDtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuYmluZGRhdGFzZXQgPSB0aGlzLmJpbmREYXRhU2V0O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kYXRhc2V0ID0gdGhpcy5kYXRhc2V0O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5zZWFyY2hrZXkgPSB0aGlzLnNlYXJjaGtleTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubGltaXQgPSB0aGlzLmxpbWl0O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kZWJvdW5jZXRpbWUgPSB0aGlzLmRlYm91bmNldGltZTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubWF0Y2htb2RlID0gdGhpcy5tYXRjaG1vZGU7XG5cbiAgICAgICAgdGhpcy5nZXRUcmFuc2Zvcm1lZERhdGEgPSAodmFsLCBpc0N1c3RvbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29tcG9uZW50LmdldFRyYW5zZm9ybWVkRGF0YShbdmFsXSwgdGhpcy5uZXh0SXRlbUluZGV4KyssIGlzQ3VzdG9tKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5lbmFibGVyZW9yZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZURuRCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZXZhbHVhdGVkIGNsYXNzIGV4cHJlc3Npb24uXG4gICAgICogQHBhcmFtICRpbmRleCBpbmRleCBvZiB0aGUgY2hpcFxuICAgICAqIEBwYXJhbSBpdGVtIGNoaXAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGtleSwgdmFsdWUsIGxhYmVsXG4gICAgICogQHJldHVybnMge2FueX0gZXZhbHVhdGVkIGNsYXNzIGV4cHJlc3Npb24gdmFsdWVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ2hpcEl0ZW1DbGFzcyhpdGVtLCAkaW5kZXgpIHtcbiAgICAgICAgaWYgKHRoaXMuYmluZENoaXBjbGFzcykge1xuICAgICAgICAgICAgY29uc3Qgd2F0Y2hOYW1lID0gYCR7dGhpcy53aWRnZXRJZH1fY2hpcEl0ZW1DbGFzc18keyRpbmRleH1gO1xuICAgICAgICAgICAgJHVud2F0Y2god2F0Y2hOYW1lKTtcbiAgICAgICAgICAgIC8vW1RvZG8tQ1NQXTogc2FtZSBhcyBsaXN0IGl0ZW0gY2xhc3NcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoJHdhdGNoKHRoaXMuYmluZENoaXBjbGFzcywgdGhpcy52aWV3UGFyZW50LCB7aXRlbSwgJGluZGV4fSwgKG52LCBvdikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlJdGVtQ2xhc3MoZ2V0Q29uZGl0aW9uYWxDbGFzc2VzKG52LCBvdiksICRpbmRleCk7XG4gICAgICAgICAgICB9LCB3YXRjaE5hbWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlJdGVtQ2xhc3ModmFsLCBpbmRleCkge1xuICAgICAgICBjb25zdCBjaGlwSXRlbSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2hpcC1pdGVtJykuaXRlbShpbmRleCk7XG4gICAgICAgICQoY2hpcEl0ZW0pLnJlbW92ZUNsYXNzKHZhbC50b1JlbW92ZSkuYWRkQ2xhc3ModmFsLnRvQWRkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUR1cGxpY2F0ZXMoKSB7XG4gICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gZ2V0VW5pcU9ianNCeURhdGFGaWVsZCh0aGlzLmNoaXBzTGlzdCwgdGhpcy5kYXRhZmllbGQsIHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG1ldGhvZCB1cGRhdGVzIHRoZSBxdWVyeU1vZGVsLlxuICAgIC8vIGRlZmF1bHQgY2FsbCB0byBnZXQgdGhlIGRlZmF1bHQgZGF0YSBjYW4gYmUgZG9uZSBvbmx5IHdoZW4gZGVmYXVsdFF1ZXJ5IGlzIHRydWUuXG4gICAgcHJpdmF0ZSB1cGRhdGVRdWVyeU1vZGVsKGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gW107XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbG9uZSB0aGUgZGF0YSBhcyB0aGUgdXBkYXRpb25zIG9uIGRhdGEgd2lsbCBjaGFuZ2UgdGhlIGRhdGF2YWx1ZS5cbiAgICAgICAgbGV0IGRhdGFWYWx1ZSA9IF8uY2xvbmUoZGF0YSk7XG4gICAgICAgIGNvbnN0IHByZXZDaGlwc0xpc3QgPSB0aGlzLmNoaXBzTGlzdDtcbiAgICAgICAgdGhpcy5jaGlwc0xpc3QgPSBbXTtcblxuICAgICAgICAvLyB1cGRhdGUgdGhlIG1vZGVsIHdoZW4gbW9kZWwgaGFzIGl0ZW1zIG1vcmUgdGhhbiBtYXhzaXplXG4gICAgICAgIGlmICh0aGlzLm1heHNpemUgJiYgZGF0YVZhbHVlLmxlbmd0aCA+IHRoaXMubWF4c2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gZGF0YVZhbHVlID0gXy5zbGljZShkYXRhVmFsdWUsIDAsIHRoaXMubWF4c2l6ZSk7XG4gICAgICAgICAgICBkYXRhID0gZGF0YVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoUXVlcnk6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9yIGVhY2ggdmFsdWUgaW4gZGF0YXZhbHVlLFxuICAgICAgICAgKiAxLiBjaGVjayB3aGV0aGVyIHZhbHVlIGlzIGluIGRhdGFzZXRJdGVtcywgaWYgaXRlbSBpcyBmb3VuZCwgYWRkZCB0byB0aGUgY2hpcHNMaXN0LlxuICAgICAgICAgKiAyLiBlbHNlIG1ha2UgYSBkZWZhdWx0IHF1ZXJ5IHRvIHRoZSBmaWx0ZXIgYW5kIGdldCB0aGUgcmVjb3JkLlxuICAgICAgICAgKiAzLiBJbiBzdGVwIDIsIGlmIGRhdGF2YWx1ZSBpcyBub3QgQUxMRklFTERTLCB0aGVuIG1ha2UgYSBxdWVyeS4gRXh0cmFjdCB0aGUgY2hpcHNMaXN0IGZyb20gdGhlIHF1ZXJ5IHJlc3BvbnNlLlxuICAgICAgICAgKiA0LiBJZiB0aGVyZSBpcyBubyByZXNwb25zZSBmb3IgdGhlIHZhbHVlIGFuZCBhbGxvd29ubHlzZWxlY3QgaXMgdHJ1ZSwgcmVtb3ZlIHRoZSB2YWx1ZSBmcm9tIHRoZSBkYXRhdmFsdWUuIFNvIHRoYXQgZGF0YXZhbHVlIGp1c3QgY29udGFpbnMgdGhlIHZhbGlkIHZhbHVlcy5cbiAgICAgICAgICogNS4gSW4gc3RlcCAyLCBpZiBkYXRhdmFsdWUgaXMgQUxMRklFTERTIGFuZCB2YWx1ZSBpcyBvYmplY3QsIHRoZW4ganVzdCBwcmVwYXJlIHRoZSBkYXRhc2V0SXRlbSBmcm9tIHRoZSB2YWx1ZS5cbiAgICAgICAgICogNi4gSWYgdmFsdWUgaXMgbm90IG9iamVjdCBhbmQgYWxsb3dvbmx5c2VsZWN0IGlzIGZhbHNlLCB0aGVuIGNyZWF0ZSBhIGN1c3RvbU1vZGVsIGFuZCByZXBsYWNlIHRoaXMgdmFsdWUgd2l0aCBjdXN0b21Nb2RlbCBhbmQgcHJlcGFyZSBkYXRhc2V0SXRlbSBmcm9tIHRoaXMgdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgIGRhdGFWYWx1ZS5mb3JFYWNoKCh2YWw6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtRm91bmQgPSBfLmZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmlzT2JqZWN0KGl0ZW0udmFsdWUpID8gXy5pc0VxdWFsKGl0ZW0udmFsdWUsIHZhbCkgOiBfLnRvU3RyaW5nKGl0ZW0udmFsdWUpID09PSBfLnRvU3RyaW5nKHZhbCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGl0ZW1Gb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0LnB1c2goaXRlbUZvdW5kKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhZmllbGQgIT09IEFMTEZJRUxEUykge1xuICAgICAgICAgICAgICAgIHNlYXJjaFF1ZXJ5LnB1c2godmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUykge1xuICAgICAgICAgICAgICAgIGxldCBkYXRhT2JqLCBpc0N1c3RvbSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICghXy5pc09iamVjdCh2YWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmogPSB0aGlzLmNyZWF0ZUN1c3RvbURhdGFNb2RlbCh2YWwpO1xuICAgICAgICAgICAgICAgICAgICBpc0N1c3RvbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhT2JqKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNwbGljZShpLCAxLCBkYXRhT2JqKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGN1c3RvbSBjaGlwcyBpcyBhbHJlYWR5IGdlbmVyYXRlZCwgdmFsIHdpbGwgYmUgb2JqZWN0IGFzIHsnZGF0YUZpZWxkX3ZhbCc6ICdlbnRlcmVkX3ZhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8vIEhlbmNlIGNoZWNrIHRoaXMgdmFsIGluIHByZXZpb3VzIGNoaXBMaXN0IGFuZCBhc3NpZ24gdGhlIGlzY3VzdG9tIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldkNoaXBPYmogPSBwcmV2Q2hpcHNMaXN0LmZpbmQob2JqID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfLmlzRXF1YWwob2JqLnZhbHVlLCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZDaGlwT2JqKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0N1c3RvbSA9IHByZXZDaGlwT2JqLmlzY3VzdG9tO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGFPYmogPSBkYXRhT2JqIHx8IHZhbDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRoaXMuZ2V0VHJhbnNmb3JtZWREYXRhKGRhdGFPYmosIGlzQ3VzdG9tKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlwT2JqID0gdHJhbnNmb3JtZWREYXRhWzBdO1xuICAgICAgICAgICAgICAgIGlmIChpc0N1c3RvbSkge1xuICAgICAgICAgICAgICAgICAgICAoY2hpcE9iaiBhcyBhbnkpLmlzY3VzdG9tID0gaXNDdXN0b207XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0LnB1c2goY2hpcE9iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIG1ha2UgZGVmYXVsdCBxdWVyeSB3aXRoIGFsbCB0aGUgdmFsdWVzIGFuZCBpZiByZXNwb25zZSBmb3IgdGhlIHZhbHVlIGlzIG5vdCBpbiBkYXRhdmFsdWUgdGhlbiBhZGQgYSBjdXN0b20gY2hpcCBvYmplY3QuXG4gICAgICAgIGlmIChzZWFyY2hRdWVyeS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5nZXREZWZhdWx0TW9kZWwoc2VhcmNoUXVlcnksIHRoaXMubmV4dEl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gdGhpcy5jaGlwc0xpc3QuY29uY2F0KHJlc3BvbnNlIHx8IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVZhbHVlLmZvckVhY2goKHZhbDogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRXhpc3RzID0gXy5maW5kKHRoaXMuY2hpcHNMaXN0LCAob2JqKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iai52YWx1ZS50b1N0cmluZygpID09PSB2YWwudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dvbmx5c2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZGF0YS5pbmRleE9mKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGEgPSB0aGlzLmdldFRyYW5zZm9ybWVkRGF0YSh2YWwsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaXBPYmogPSB0cmFuc2Zvcm1lZERhdGFbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaXBPYmogYXMgYW55KS5pc2N1c3RvbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlwc0xpc3QucHVzaChjaGlwT2JqKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVmYXVsdCBjaGlwIGRhdGEgaXMgYWRkaW5nIGZvY3VzIG9uIHRvIHRoZSBzZWFyY2ggaW5wdXQuIEhlbmNlIHRoaXMgZmxhZyBoZWxwcyBub3QgdG8gZm9jdXMuXG4gICAgICAgIHRoaXMucmVzZXRTZWFyY2hNb2RlbCh0cnVlKTtcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlcygpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVNYXhTaXplKCk7XG4gICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTZWFyY2hNb2RlbChkZWZhdWx0UXVlcnk/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRHYgPSB0cnVlO1xuICAgICAgICAvLyBjbGVhciBzZWFyY2ggd2lsbCBlbXB0eSB0aGUgcXVlcnkgbW9kZWwgYW5kIGdldHMgdGhlIGRhdGEgd2hlbiBtaW5jaGFycyBpcyAwIChpLmUuIGF1dG9jb21wbGV0ZSkgb24gZm9jdXNcbiAgICAgICAgLy8gZGVmYXVsdFF1ZXJ5IGZsYWcgaXMgc2V0IHdoZW4gd2lkZ2V0IGlzIG5vdCBhY3RpdmUuIFRoaXMgd2lsbCBvbmx5IGxvYWQgdGhlIGF1dG9jb21wbGV0ZSBkcm9wdXAgd2l0aCBtaW5jaGFycyBhcyAwIHdoZW4gd2lkZ2V0IGlzIGZvY3VzZWQvYWN0aXZlXG4gICAgICAgICh0aGlzLnNlYXJjaENvbXBvbmVudCBhcyBhbnkpLmNsZWFyU2VhcmNoKHVuZGVmaW5lZCwgIXRoaXMubWluY2hhcnMgJiYgIWRlZmF1bHRRdWVyeSk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRHYgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIG5ld0l0ZW0gdG8gdGhlIGxpc3RcbiAgICBwcml2YXRlIGFkZEl0ZW0oJGV2ZW50OiBFdmVudCwgd2lkZ2V0PzogU2VhcmNoQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaENvbXBvbmVudCA9IHdpZGdldDtcbiAgICAgICAgbGV0IGFsbG93QWRkO1xuICAgICAgICBsZXQgY2hpcE9iajtcblxuICAgICAgICBpZiAoc2VhcmNoQ29tcG9uZW50ICYmIGlzRGVmaW5lZChzZWFyY2hDb21wb25lbnQuZGF0YXZhbHVlKSAmJiBzZWFyY2hDb21wb25lbnQucXVlcnlNb2RlbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmICghc2VhcmNoQ29tcG9uZW50LnF1ZXJ5IHx8ICFfLnRyaW0oc2VhcmNoQ29tcG9uZW50LnF1ZXJ5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoaXBPYmogPSBzZWFyY2hDb21wb25lbnQucXVlcnlNb2RlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93b25seXNlbGVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhT2JqO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YWZpZWxkID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV8uaXNPYmplY3QodGhpcy5zZWFyY2hDb21wb25lbnQucXVlcnkpICYmIF8udHJpbSh0aGlzLnNlYXJjaENvbXBvbmVudC5xdWVyeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iaiA9IHRoaXMuY3JlYXRlQ3VzdG9tRGF0YU1vZGVsKHRoaXMuc2VhcmNoQ29tcG9uZW50LnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGlmIHRoZSBjdXN0b20gY2hpcCBpcyBlbXB0eVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGFPYmopIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRTZWFyY2hNb2RlbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YU9iaiB8fCBfLnRyaW0odGhpcy5zZWFyY2hDb21wb25lbnQucXVlcnkpO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGEgPSB0aGlzLmdldFRyYW5zZm9ybWVkRGF0YShkYXRhLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBjaGlwT2JqID0gdHJhbnNmb3JtZWREYXRhWzBdO1xuICAgICAgICAgICAgICAgIGNoaXBPYmouaXNjdXN0b20gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0RlZmluZWQoY2hpcE9iaikgfHwgY2hpcE9iaiA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGFsbG93QWRkID0gdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVhZGQnLCB7JGV2ZW50LCBuZXdJdGVtOiBjaGlwT2JqfSk7XG5cbiAgICAgICAgaWYgKGlzRGVmaW5lZChhbGxvd0FkZCkgJiYgIXRvQm9vbGVhbihhbGxvd0FkZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRHVwbGljYXRlKGNoaXBPYmopKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VhcmNoTW9kZWwoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZ2lzdGVyQ2hpcEl0ZW1DbGFzcyhjaGlwT2JqLCB0aGlzLmNoaXBzTGlzdC5sZW5ndGgpO1xuICAgICAgICB0aGlzLmNoaXBzTGlzdC5wdXNoKGNoaXBPYmopO1xuXG4gICAgICAgIGlmICghdGhpcy5kYXRhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IFtjaGlwT2JqLnZhbHVlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IFsuLi50aGlzLl9tb2RlbEJ5VmFsdWUsIGNoaXBPYmoudmFsdWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVEdiA9IHRydWU7XG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5fbW9kZWxCeVZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuXG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYWRkJywgeyRldmVudCwgJGl0ZW06IGNoaXBPYmp9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU1heFNpemUoKTtcblxuICAgICAgICAvLyByZXNldCBpbnB1dCBib3ggd2hlbiBpdGVtIGlzIGFkZGVkLlxuICAgICAgICB0aGlzLnJlc2V0U2VhcmNoTW9kZWwoKTtcblxuICAgICAgICAvLyBzdG9wIHRoZSBldmVudCB0byBub3QgdG8gY2FsbCB0aGUgc3VibWl0IGV2ZW50IG9uIGVudGVyIHByZXNzLlxuICAgICAgICBpZiAoJGV2ZW50ICYmICgoJGV2ZW50IGFzIGFueSkua2V5ID09PSAnRW50ZXInIHx8ICgkZXZlbnQgYXMgYW55KS5rZXlDb2RlID09PSAxMykpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEV2ZW50KCRldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGRhdGF2YWx1ZSBvYmplY3QgZnJvbSBhIHN0cmluZyhqdW5rKSB2YWx1ZSB3aGVuIGRhdGFmaWVsZCBpcyBhbGxGaWVsZHMuXG4gICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21EYXRhTW9kZWwodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5kaXNwbGF5ZmllbGQgfHwgKHRoaXMuZGF0YWZpZWxkICE9PSBBTExGSUVMRFMgPyB0aGlzLmRhdGFmaWVsZCA6IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tT2JqID0ge307XG4gICAgICAgICAgICBjdXN0b21PYmpba2V5XSA9IHZhbDtcbiAgICAgICAgICAgIHJldHVybiBjdXN0b21PYmo7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBuZXdJdGVtIGFscmVhZHkgZXhpc3RzXG4gICAgcHJpdmF0ZSBpc0R1cGxpY2F0ZShpdGVtOiBEYXRhU2V0SXRlbSkge1xuICAgICAgICBpZiAodGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUykge1xuICAgICAgICAgICAgcmV0dXJuIF8uZmluZEluZGV4KHRoaXMuY2hpcHNMaXN0LCB7dmFsdWU6IGl0ZW0udmFsdWV9KSA+IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLmZpbmRJbmRleCh0aGlzLmNoaXBzTGlzdCwge2tleTogaXRlbS5rZXl9KSA+IC0xO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIG1heCBzaXplIGlzIHJlYWNoZWRcbiAgICBwcml2YXRlIHVwZGF0ZU1heFNpemUoKSB7XG4gICAgICAgIHRoaXMuc2F0dXJhdGUgPSB0aGlzLm1heHNpemUgPiAwICYmIHRoaXMuY2hpcHNMaXN0Lmxlbmd0aCA9PT0gdGhpcy5tYXhzaXplO1xuICAgIH1cblxuICAgIC8vIE1ha2VzIGNhbGwgdG8gc2VhcmNoQ29tcG9uZW50IHRvIGZpbHRlciB0aGUgZGF0YVNvdXJjZSBiYXNlZCBvbiB0aGUgcXVlcnkuXG4gICAgcHJvdGVjdGVkIGdldERlZmF1bHRNb2RlbChxdWVyeTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZywgaW5kZXg/OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5uZXh0SXRlbUluZGV4Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaENvbXBvbmVudC5nZXREYXRhU291cmNlKHF1ZXJ5LCB0cnVlLCBpbmRleClcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmZpbHRlcihxdWVyeSwgcXVlcnlWYWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZpbmQocmVzcG9uc2UsIHt2YWx1ZTogcXVlcnlWYWx9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2hpcENsaWNrKCRldmVudDogRXZlbnQsIGNoaXA6IERhdGFTZXRJdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKCRldmVudC5jdXJyZW50VGFyZ2V0IGFzIGFueSkuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjaGlwY2xpY2snLCB7JGV2ZW50LCAkaXRlbTogY2hpcH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2hpcEZvY3VzKCRldmVudDogRXZlbnQsIGNoaXA6IERhdGFTZXRJdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKGNoaXAgYXMgYW55KS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoaXBzZWxlY3QnLCB7JGV2ZW50LCAkaXRlbTogY2hpcH0pO1xuICAgIH1cblxuICAgIC8vIFRvIGF2b2lkIGZvcm0gc3VibWl0IG9uIHByZXNzaW5nIGVudGVyIGtleVxuICAgIHB1YmxpYyBzdG9wRXZlbnQoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRleHREZWxldGUoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoaXNBcHBsZVByb2R1Y3QpIHtcbiAgICAgICAgICAgIHRoaXMub25JbnB1dENsZWFyKCRldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25JbnB1dENsZWFyKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoaXBzTGlzdCB8fCAhdGhpcy5jaGlwc0xpc3QubGVuZ3RoIHx8IHRoaXMuc2VhcmNoQ29tcG9uZW50LnF1ZXJ5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCdsaS5jaGlwLWl0ZW0gPiBhLmFwcC1jaGlwJykubGFzdCgpLmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RvcEV2ZW50KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJhY2tzcGFjZSgkZXZlbnQ6IEV2ZW50LCAkaXRlbTogRGF0YVNldEl0ZW0sICRpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKCRldmVudCwgJGl0ZW0sICRpbmRleCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkRlbGV0ZSgkZXZlbnQ6IEV2ZW50LCAkaXRlbTogRGF0YVNldEl0ZW0sICRpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKCRldmVudCwgJGl0ZW0sICRpbmRleCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQXJyb3dMZWZ0KCRpdGVtPzogRGF0YVNldEl0ZW0sICRpbmRleD86IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT24gbGVmdCBhcnJvdyBjbGljayB3aGVuIHNlYXJjaCBpbnB1dCBxdWVyeSBpcyBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENvbXBvbmVudC5xdWVyeSAmJiAhaXNEZWZpbmVkKCRpbmRleCkgJiYgIWlzRGVmaW5lZCgkaXRlbSkpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmxhc3QoKS5mb2N1cygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRpbmRleCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmdldCgkaW5kZXggLSAxKS5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1NlYXJjaEJveCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQXJyb3dSaWdodCgkaXRlbT86IERhdGFTZXRJdGVtLCAkaW5kZXg/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBPbiByaWdodCBhcnJvdyBjbGljayB3aGVuIHNlYXJjaCBpbnB1dCBxdWVyeSBpcyBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENvbXBvbmVudC5xdWVyeSAmJiAhaXNEZWZpbmVkKCRpbmRleCkgJiYgIWlzRGVmaW5lZCgkaXRlbSkpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmZpcnN0KCkuZm9jdXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgkaW5kZXggPCAodGhpcy5jaGlwc0xpc3QubGVuZ3RoIC0gMSkpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmdldCgkaW5kZXggKyAxKS5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1NlYXJjaEJveCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZm9jdXMgc2VhcmNoIGJveC5cbiAgICBwcml2YXRlIGZvY3VzU2VhcmNoQm94KCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJy5hcHAtY2hpcC1pbnB1dCA+IGlucHV0LmFwcC10ZXh0Ym94JykuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGl0ZW0gZnJvbSBsaXN0XG4gICAgcHJpdmF0ZSByZW1vdmVJdGVtKCRldmVudDogRXZlbnQsIGl0ZW06IERhdGFTZXRJdGVtLCBpbmRleDogbnVtYmVyLCBjYW5Gb2N1cz86IGJvb2xlYW4pIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGluZGV4ZXMgPSBfLmlzQXJyYXkoaW5kZXgpID8gaW5kZXggOiBbaW5kZXhdO1xuICAgICAgICBjb25zdCBmb2N1c0luZGV4ID0gXy5tYXgoaW5kZXhlcyk7XG5cbiAgICAgICAgY29uc3QgaXRlbXMgPSBfLnJlZHVjZShpbmRleGVzLCAocmVzdWx0LCBpKSA9PiB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLmNoaXBzTGlzdFtpXSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgLy8gcHJldmVudCBkZWxldGlvbiBpZiB0aGUgYmVmb3JlLXJlbW92ZSBldmVudCBjYWxsYmFjayByZXR1cm5zIGZhbHNlXG4gICAgICAgIGNvbnN0IGFsbG93UmVtb3ZlID0gdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW1vdmUnLCB7JGV2ZW50LCAkaXRlbTogaXRlbXMubGVuZ3RoID09PSAxID8gaXRlbXNbMF0gOiBpdGVtc30pO1xuICAgICAgICBpZiAoaXNEZWZpbmVkKGFsbG93UmVtb3ZlKSAmJiAhdG9Cb29sZWFuKGFsbG93UmVtb3ZlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldkRhdGF2YWx1ZSA9IF8uY2xvbmUodGhpcy5kYXRhdmFsdWUpO1xuXG4gICAgICAgIC8vIGZvY3VzIG5leHQgY2hpcCBhZnRlciBkZWxldGlvbi5cbiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIGNoaXBzIGluIHRoZSBsaXN0IGZvY3VzIHNlYXJjaCBib3hcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0xlbmd0aCA9IHRoaXMuY2hpcHNMaXN0Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0ICRjaGlwc0xpc3QgPSB0aGlzLiRlbGVtZW50LmZpbmQoJ2xpLmNoaXAtaXRlbSA+IGEuYXBwLWNoaXAnKTtcblxuICAgICAgICAgICAgaWYgKCFjaGlwc0xlbmd0aCB8fCAhY2FuRm9jdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzU2VhcmNoQm94KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChjaGlwc0xlbmd0aCAtIDEpIDwgZm9jdXNJbmRleCkge1xuICAgICAgICAgICAgICAgIC8vIGlmIGZvY3VzIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBjaGlwcyBsZW5ndGggc2VsZWN0IGxhc3QgY2hpcFxuICAgICAgICAgICAgICAgICRjaGlwc0xpc3QuZ2V0KGNoaXBzTGVuZ3RoIC0gMSkuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbWFudWFsbHkgc2V0IHRoZSBzdWNjZWVkaW5nIGNoaXAgYXMgYWN0aXZlIGlmIHRoZXJlIGlzIGEgY2hpcCBuZXh0IHRvIHRoZSBjdXJyZW50IGNoaXAuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGlwc0xpc3RbZm9jdXNJbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAkY2hpcHNMaXN0LmdldChmb2N1c0luZGV4KS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwdWxsZWRJdGVtcyA9IF8ucHVsbEF0KHRoaXMuY2hpcHNMaXN0LCBpbmRleGVzKTtcblxuICAgICAgICBwdWxsZWRJdGVtcy5mb3JFYWNoKGRhdGFzZXRJdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IF8uZmlsdGVyKHRoaXMuX21vZGVsQnlWYWx1ZSwgdmFsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIShfLmlzT2JqZWN0KHZhbCkgPyBfLmlzRXF1YWwodmFsLCBkYXRhc2V0SXRlbS52YWx1ZSkgOiBfLnRvU3RyaW5nKHZhbCkgPT09IF8udG9TdHJpbmcoZGF0YXNldEl0ZW0udmFsdWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUR2ID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLl9tb2RlbEJ5VmFsdWUsICRldmVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2hhbmdlJywgeyRldmVudCwgbmV3VmFsOiB0aGlzLmRhdGF2YWx1ZSwgb2xkVmFsOiBwcmV2RGF0YXZhbHVlfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVNYXhTaXplKCk7XG5cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdyZW1vdmUnLCB7JGV2ZW50LCAkaXRlbTogaXRlbXMubGVuZ3RoID09PSAxID8gaXRlbXNbMF0gOiBpdGVtc30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN3YXBzIGl0ZW1zIGluIGFuIGFycmF5IGlmIHByb3ZpZGVkIHdpdGggaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0gZGF0YSA6LSBhcnJheSB0byBiZSBzd2FwcGVkXG4gICAgICogQHBhcmFtIG5ld0luZGV4IDotIG5ldyBpbmRleCBmb3IgdGhlIGVsZW1lbnQgdG8gYmUgcGxhY2VkXG4gICAgICogQHBhcmFtIGN1cnJlbnRJbmRleCA6LSB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN3YXBFbGVtZW50c0luQXJyYXkoZGF0YTogQXJyYXk8YW55PiwgbmV3SW5kZXg6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBfLnB1bGxBdChkYXRhLCBjdXJyZW50SW5kZXgpWzBdO1xuICAgICAgICBkYXRhLnNwbGljZShuZXdJbmRleCwgMCwgZHJhZ2dlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbmNlbHMgdGhlIHJlb3JkZXIgYnkgcmVzZXRpbmcgdGhlIGVsZW1lbnRzIHRvIHRoZSBvcmlnaW5hbCBwb3NpdGlvbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlc2V0UmVvcmRlcigpIHtcbiAgICAgICAgdGhpcy4kZWxlbWVudC5yZW1vdmVEYXRhKCdvbGRJbmRleCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW52b2tlT25CZWZvcmVTZXJ2aWNlQ2FsbChpbnB1dERhdGEpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVzZXJ2aWNlY2FsbCcsIHtpbnB1dERhdGF9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ3JlbW92ZScgfHwgZXZlbnROYW1lID09PSAnYmVmb3JlcmVtb3ZlJyB8fCBldmVudE5hbWUgPT09ICdjaGlwc2VsZWN0J1xuICAgICAgICAgICAgfHwgZXZlbnROYW1lID09PSAnY2hpcGNsaWNrJyB8fCBldmVudE5hbWUgPT09ICdhZGQnIHx8IGV2ZW50TmFtZSA9PT0gJ3Jlb3JkZXInIHx8IGV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRDYWxsYmFjaywgbG9jYWxzKTtcbiAgICB9XG5cbiAgICAvLyBDb25maWd1cmVzIHRoZSByZW9yZGFibGUgZmVhdHVyZSBpbiBjaGlwcyB3aWRnZXRzLlxuICAgIHByaXZhdGUgY29uZmlndXJlRG5EKCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgaXRlbXM6ICc+IGxpOm5vdCguYXBwLWNoaXAtc2VhcmNoKScsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ2NoaXAtcGxhY2Vob2xkZXInXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uZmlndXJlRG5EKHRoaXMuJGVsZW1lbnQsIG9wdGlvbnMsIHRoaXMub25SZW9yZGVyU3RhcnQuYmluZCh0aGlzKSwgdGhpcy51cGRhdGUuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlcmVkIG9uIGRyYWcgc3RhcnQgd2hpbGUgcmVvcmRlcmluZy5cbiAgICBwcml2YXRlIG9uUmVvcmRlclN0YXJ0KGV2dDogRXZlbnQsIHVpOiBPYmplY3QpIHtcbiAgICAgICAgY29uc3QgaGVscGVyID0gKHVpIGFzIGFueSkuaGVscGVyO1xuICAgICAgICAvLyBpbmNyZWFzaW5nIHRoZSB3aWR0aCBvZiB0aGUgZHJhZ2dlZCBpdGVtIGJ5IDFcbiAgICAgICAgaGVscGVyLndpZHRoKGhlbHBlci53aWR0aCgpICsgMSk7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuZGF0YSgnb2xkSW5kZXgnLCAodWkgYXMgYW55KS5pdGVtLmluZGV4KCkgLSAodGhpcy5pbnB1dHBvc2l0aW9uID09PSAnZmlyc3QnID8gMSA6IDApKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGVzIHRoZSBjaGlwc0xpc3QgYW5kIGRhdGF2YWx1ZSBvbiByZW9yZGVyLlxuICAgIHByaXZhdGUgdXBkYXRlKCRldmVudDogRXZlbnQsIHVpOiBPYmplY3QpIHtcbiAgICAgICAgbGV0IGNoYW5nZWRJdGVtLFxuICAgICAgICAgICAgbmV3SW5kZXgsXG4gICAgICAgICAgICBvbGRJbmRleDtcblxuICAgICAgICAvLyBHZXQgdGhlIGluZGV4IG9mIHRoZSBpdGVtIGF0IHBvc2l0aW9uIGJlZm9yZSBkcmFnIGFuZCBhZnRlciB0aGUgcmVvcmRlci5cbiAgICAgICAgbmV3SW5kZXggPSAodWkgYXMgYW55KS5pdGVtLmluZGV4KCkgLSAodGhpcy5pbnB1dHBvc2l0aW9uID09PSAnZmlyc3QnID8gMSA6IDApO1xuICAgICAgICBvbGRJbmRleCA9IHRoaXMuJGVsZW1lbnQuZGF0YSgnb2xkSW5kZXgnKTtcblxuICAgICAgICBuZXdJbmRleCA9IHRoaXMuY2hpcHNMaXN0Lmxlbmd0aCA9PT0gbmV3SW5kZXggPyBuZXdJbmRleCAtIDEgOiBuZXdJbmRleDtcbiAgICAgICAgY2hhbmdlZEl0ZW0gPSB7XG4gICAgICAgICAgICBvbGRJbmRleDogb2xkSW5kZXgsXG4gICAgICAgICAgICBuZXdJbmRleDogbmV3SW5kZXgsXG4gICAgICAgICAgICBpdGVtOiB0aGlzLmNoaXBzTGlzdFtvbGRJbmRleF1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobmV3SW5kZXggPT09IG9sZEluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UmVvcmRlcigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5nZWRJdGVtLml0ZW0gPSB0aGlzLmNoaXBzTGlzdFtvbGRJbmRleF07XG5cbiAgICAgICAgY29uc3QgYWxsb3dSZW9yZGVyID0gdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW9yZGVyJywgeyRldmVudCwgJGRhdGE6IHRoaXMuY2hpcHNMaXN0LCAkY2hhbmdlZEl0ZW06IGNoYW5nZWRJdGVtfSk7XG5cbiAgICAgICAgaWYgKGlzRGVmaW5lZChhbGxvd1Jlb3JkZXIpICYmIHRvQm9vbGVhbihhbGxvd1Jlb3JkZXIpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFJlb3JkZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1vZGlmeSB0aGUgY2hpcHNMaXN0IGFuZCBkYXRhdmFsdWUgYWZ0ZXIgdGhlIHJlb3JkZXIuXG4gICAgICAgIHRoaXMuc3dhcEVsZW1lbnRzSW5BcnJheSh0aGlzLmNoaXBzTGlzdCwgbmV3SW5kZXgsIG9sZEluZGV4KTtcbiAgICAgICAgdGhpcy5zd2FwRWxlbWVudHNJbkFycmF5KHRoaXMuX21vZGVsQnlWYWx1ZSwgbmV3SW5kZXgsIG9sZEluZGV4KTtcblxuICAgICAgICBjaGFuZ2VkSXRlbS5pdGVtID0gdGhpcy5jaGlwc0xpc3RbbmV3SW5kZXhdO1xuXG4gICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gWy4uLnRoaXMuY2hpcHNMaXN0XTtcblxuICAgICAgICB0aGlzLnJlc2V0UmVvcmRlcigpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jlb3JkZXInLCB7JGV2ZW50LCAkZGF0YTogdGhpcy5jaGlwc0xpc3QsICRjaGFuZ2VkSXRlbTogY2hhbmdlZEl0ZW19KTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdjogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnZGF0YW9wdGlvbnMnKSB7XG4gICAgICAgICAgICAodGhpcy5zZWFyY2hDb21wb25lbnQgYXMgYW55KS5kYXRhb3B0aW9ucyA9IG52O1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdkYXRhZmllbGQnKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kYXRhZmllbGQgPSB0aGlzLmRhdGFmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnZGlzcGxheWZpZWxkJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGlzcGxheWxhYmVsID0gdGhpcy5kaXNwbGF5ZmllbGQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2Rpc3BsYXlleHByZXNzaW9uJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuYmluZGRpc3BsYXlsYWJlbCA9IHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uID8gdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gOiB0aGlzLmRpc3BsYXlleHByZXNzaW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdkaXNwbGF5aW1hZ2VzcmMnKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5iaW5kZGlzcGxheWltYWdlc3JjID0gdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjID8gdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjIDogdGhpcy5kaXNwbGF5aW1hZ2VzcmM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2xpbWl0Jykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubGltaXQgPSB0aGlzLmxpbWl0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdtYXRjaG1vZGUnKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5tYXRjaG1vZGUgPSB0aGlzLm1hdGNobW9kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnZ3JvdXBieScpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29tcG9uZW50Lmdyb3VwYnkgPSB0aGlzLmdyb3VwYnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2VuYWJsZXJlb3JkZXInKSB7XG4gICAgICAgICAgICBpZiAodGhpcy4kZWxlbWVudC5oYXNDbGFzcygndWktc29ydGFibGUnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuc29ydGFibGUoJ29wdGlvbicsICdkaXNhYmxlZCcsICFudiApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChudikge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJlRG5EKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlYWRvbmx5Jykge1xuICAgICAgICAgICAgaWYgKG52KSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5hZGRDbGFzcygncmVhZG9ubHknKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygncmVhZG9ubHknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnaW5wdXRwb3NpdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEVsID0gdGhpcy4kZWxlbWVudC5maW5kKCdsaS5hcHAtY2hpcC1zZWFyY2gnKTtcbiAgICAgICAgICAgIGlmIChudiA9PT0gJ2ZpcnN0Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQucHJlcGVuZCgkaW5wdXRFbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuYXBwZW5kKCRpbnB1dEVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnYXV0b2ZvY3VzJyAmJiBudikge1xuICAgICAgICAgICAgLy8gc2V0dGluZyB0aGUgYXV0b2ZvY3VzIG9uIHRoZSBpbnB1dCBvbmNlIGFmdGVyIGRvbSBpcyB1cGRhdGVkXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCAkY2hpcHNMaXN0ID0gdGhpcy4kZWxlbWVudC5maW5kKCcuYXBwLWNoaXAtaW5wdXQgPiBpbnB1dC5hcHAtdGV4dGJveCcpO1xuICAgICAgICAgICAgICAgIGlmICgkY2hpcHNMaXN0ICYmICRjaGlwc0xpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNTZWFyY2hCb3goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG59XG4iLCI8bGkgY2xhc3M9XCJjaGlwLWl0ZW0ge3tjaGlwY2xhc3MgJiYgIWJpbmRDaGlwY2xhc3MgPyBjaGlwY2xhc3MgOiAnJ319XCIgcm9sZT1cIm9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNoaXBzTGlzdDsgbGV0ICRpbmRleCA9IGluZGV4O1wiXG4gICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpdGVtLmFjdGl2ZSwgJ2Rpc2FibGVkJzogZGlzYWJsZWR9XCI+XG4gICAgPGEgY2xhc3M9XCJhcHAtY2hpcFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAoa2V5ZG93bi5kZWxldGUpPVwib25EZWxldGUoJGV2ZW50LCBpdGVtLCAkaW5kZXgpXCJcbiAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UpPVwib25CYWNrc3BhY2UoJGV2ZW50LCBpdGVtLCAkaW5kZXgpXCJcbiAgICAgICAoa2V5ZG93bi5hcnJvd2xlZnQpPVwib25BcnJvd0xlZnQoaXRlbSwgJGluZGV4KVwiXG4gICAgICAgKGtleWRvd24uYXJyb3dyaWdodCk9XCJvbkFycm93UmlnaHQoaXRlbSwgJGluZGV4KVwiXG4gICAgICAgKGZvY3VzKT1cImhhbmRsZUNoaXBGb2N1cygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAoYmx1cik9XCJyZWFkb25seSA/IDAgOiBpdGVtLmFjdGl2ZSA9IGZhbHNlXCJcbiAgICAgICBbbmdDbGFzc109XCJ7J2NoaXAtZHVwbGljYXRlIGJnLWRhbmdlcic6IGl0ZW0uaXNEdXBsaWNhdGUsICdjaGlwLXBpY3R1cmUnOiBpdGVtLmltZ1NyY31cIj5cbiAgICAgICAgPGltZyBkYXRhLWlkZW50aWZpZXI9XCJpbWdcIiBhbHQ9XCJDaGlwIEltYWdlXCIgY2xhc3M9XCJidXR0b24taW1hZ2UtaWNvblwiIFtzcmNdPVwiaXRlbS5pbWdTcmNcIiAqbmdJZj1cIml0ZW0uaW1nU3JjXCIvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1jaGlwLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIGFyaWEtbGFiZWw9XCJDbGVhciBCdXR0b25cIiBjbGFzcz1cImJ0biBidG4tdHJhbnNwYXJlbnRcIiAoY2xpY2spPVwicmVtb3ZlSXRlbSgkZXZlbnQsIGl0ZW0sICRpbmRleCk7XCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgd2ktY2xvc2VcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvYT5cbjwvbGk+XG48bGkgY2xhc3M9XCJhcHAtY2hpcC1zZWFyY2hcIiBbbmdDbGFzc109XCJ7J2Z1bGwtd2lkdGgnOiBpbnB1dHdpZHRoID09PSAnZnVsbCd9XCI+XG4gICAgPGRpdiAjc2VhcmNoIHdtU2VhcmNoIGNsYXNzPVwiYXBwLWNoaXAtaW5wdXRcIlxuICAgICAgICAgbmFtZT1cImFwcC1jaGlwLXNlYXJjaFwiXG4gICAgICAgICBzdWJtaXQuZXZlbnQ9XCJhZGRJdGVtKCRldmVudCwgd2lkZ2V0KVwiXG4gICAgICAgICBiZWZvcmVzZXJ2aWNlY2FsbC5ldmVudD1cImludm9rZU9uQmVmb3JlU2VydmljZUNhbGwoaW5wdXREYXRhKVwiXG4gICAgICAgICBkaXNhYmxlZC5iaW5kPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgc2F0dXJhdGVcIlxuICAgICAgICAgZGF0YWZpZWxkLmJpbmQ9XCJkYXRhZmllbGRcIlxuICAgICAgICAgYWxsb3dvbmx5c2VsZWN0LmJpbmQ9XCJhbGxvd29ubHlzZWxlY3RcIlxuICAgICAgICAgc2VhcmNoa2V5LmJpbmQ9XCJzZWFyY2hrZXlcIlxuICAgICAgICAgb3JkZXJieS5iaW5kPVwib3JkZXJieVwiXG4gICAgICAgICBwbGFjZWhvbGRlci5iaW5kPVwic2F0dXJhdGUgPyBtYXhTaXplUmVhY2hlZCA6IHBsYWNlaG9sZGVyXCJcbiAgICAgICAgIHNob3dzZWFyY2hpY29uLmJpbmQ9XCJzaG93c2VhcmNoaWNvblwiXG4gICAgICAgICB0YWJpbmRleC5iaW5kPVwidGFiaW5kZXhcIlxuICAgICAgICAgbWluY2hhcnMuYmluZD1cIm1pbmNoYXJzXCJcbiAgICAgICAgIGRlYm91bmNldGltZS5iaW5kPVwiZGVib3VuY2V0aW1lXCJcbiAgICAgICAgIG1hdGNobW9kZS5iaW5kPVwibWF0Y2htb2RlXCJcbiAgICAgICAgIGdyb3VwYnkuYmluZD1cImdyb3VwYnlcIlxuICAgICAgICAgbWF0Y2guYmluZD1cIm1hdGNoXCJcbiAgICAgICAgIGRhdGVmb3JtYXQuYmluZD1cImRhdGVmb3JtYXRcIlxuICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic3RvcEV2ZW50KCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uZGVsZXRlKT1cIm9uVGV4dERlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbklucHV0Q2xlYXIoJGV2ZW50KVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd2xlZnQpPVwib25BcnJvd0xlZnQoKVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd3JpZ2h0KT1cIm9uQXJyb3dSaWdodCgpXCI+XG4gICAgPC9kaXY+XG48L2xpPlxuIl19
|
|
674
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NoaXBzL3NyYy9jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2hpcHMvc3JjL2NoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQThCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLGNBQWMsRUFDZCxTQUFTLEVBQ1QsU0FBUyxFQUNULDJCQUEyQixFQUM5QixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBaUIsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hMLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0lDTnRDLHlCQUErRzs7O0lBQXpDLHNEQUFtQjs7OztJQUV6RixrQ0FBd0o7SUFBOUQsOFFBQVMsZUFBQSw2Q0FBZ0MsQ0FBQSxJQUFFO0lBQ2pJLHdCQUFvQztJQUN4QyxpQkFBUzs7Ozs7O0lBZmpCLDZCQUM4RCxXQUFBO0lBRXZELHdOQUFTLGVBQUEsd0NBQTZCLENBQUEsSUFBQyxrUUFDckIsZUFBQSw0Q0FBOEIsQ0FBQSxJQURULHdRQUVsQixlQUFBLCtDQUFpQyxDQUFBLElBRmYsa1FBR2xCLGVBQUEsdUNBQXlCLENBQUEsSUFIUCxvUUFJakIsZUFBQSx3Q0FBMEIsQ0FBQSxJQUpULDJNQUs5QixlQUFBLHdDQUE2QixDQUFBLElBTEMsbU1BTS9CLGtDQUFXLENBQUMsb0JBQWlCLEtBQUssQ0FBQSxJQU5IO0lBUXRDLG9FQUErRztJQUMvRywwQkFBb0Y7SUFDcEYsMEVBRVM7SUFDYixpQkFBSSxFQUFBOzs7O0lBaEJKLDhHQUFrRTtJQUNsRSxxRkFBeUQ7SUFTdEQsZUFBdUY7SUFBdkYsMEZBQXVGO0lBQ0ssZUFBaUI7SUFBakIscUNBQWlCO0lBQy9FLGVBQTBCO0lBQTFCLDJDQUEwQix3QkFBQTtJQUNnRixlQUFlO0lBQWYsdUNBQWU7OztBRFE5SixNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLFVBQVU7SUFDdEIsU0FBUyxFQUFFLHFDQUFxQztDQUNuRCxDQUFDO0FBY0YsTUFBTSxPQUFPLGNBQWUsU0FBUSx5QkFBeUI7SUEwQnpELG9FQUFvRTtJQUNwRSxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEVBQUU7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFlBQ0ksR0FBYSxFQUMyQixnQkFBZ0IsRUFDWCxlQUFlLEVBQ2pCLGlCQUFpQixFQUN2QixhQUFhLEVBQ2YsV0FBVyxFQUNULGFBQWE7UUFFbEQsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQVBjLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBQTtRQUNYLG9CQUFlLEdBQWYsZUFBZSxDQUFBO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBQTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBQTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBQ1Qsa0JBQWEsR0FBYixhQUFhLENBQUE7UUFwQy9DLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFDakIsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQVM3QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQTZCM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakMsOENBQThDO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7UUFFN0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3BCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTt3QkFDdEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVSLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDNUMsdURBQXVEO1lBQ3RELElBQUksQ0FBQyxlQUF1QixDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUEyQixFQUFFLEVBQUU7WUFDcEYsc0RBQXNEO1lBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIseURBQXlEO2dCQUN6RCxpREFBaUQ7Z0JBQ2pELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRWhELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUYsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLHFCQUFxQixDQUFDLElBQUksRUFBRSxNQUFNO1FBQ3RDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLGtCQUFrQixNQUFNLEVBQUUsQ0FBQztZQUM3RCxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEIscUNBQXFDO1lBQ3JDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUNoRyxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRCxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNsQjtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUs7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsbUZBQW1GO0lBQzNFLGdCQUFnQixDQUFDLElBQVM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNwQixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjtRQUVELHFFQUFxRTtRQUNyRSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFcEIsMERBQTBEO1FBQzFELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRSxJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQ3BCO1FBRUQsTUFBTSxXQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUV0Qzs7Ozs7Ozs7V0FRRztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsQ0FBUyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUMvQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUcsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLFNBQVMsRUFBRTtnQkFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsQztpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO2dCQUNyQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pCO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JDLElBQUksT0FBTyxFQUFFLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxQyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUNoQixJQUFJLE9BQU8sRUFBRTt3QkFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7cUJBQzlCO2lCQUNKO3FCQUFNO29CQUNILCtGQUErRjtvQkFDL0YseUVBQXlFO29CQUN6RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUN6QyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDckMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxXQUFXLEVBQUU7d0JBQ2IsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7cUJBQ25DO2lCQUNKO2dCQUNELE9BQU8sR0FBRyxPQUFPLElBQUksR0FBRyxDQUFDO2dCQUV6QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksUUFBUSxFQUFFO29CQUNULE9BQWUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2lCQUN4QztnQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsMEhBQTBIO1FBQzFILElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7aUJBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdkQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxDQUFTLEVBQUUsRUFBRTtvQkFDdEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQzVDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ25ELENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ1gsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFOzRCQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUNoQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzs2QkFDekI7NEJBQ0QsT0FBTzt5QkFDVjt3QkFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUMzRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2xDLE9BQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDaEM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7UUFFRCxnR0FBZ0c7UUFDaEcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixVQUFVLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFzQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQiw0R0FBNEc7UUFDNUcsbUpBQW1KO1FBQ2xKLElBQUksQ0FBQyxlQUF1QixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELDhCQUE4QjtJQUN0QixPQUFPLENBQUMsTUFBYSxFQUFFLE1BQXdCO1FBQ25ELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUMvQixJQUFJLFFBQVEsQ0FBQztRQUNiLElBQUksT0FBTyxDQUFDO1FBRVosSUFBSSxlQUFlLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxlQUFlLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUM5RixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxRCxPQUFPO2FBQ1Y7WUFDRCxPQUFPLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztTQUN4QzthQUFNO1lBQ0gsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN0QixPQUFPO2FBQ1Y7WUFDRCxJQUFJLE9BQU8sQ0FBQztZQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUMvRSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLHFDQUFxQztvQkFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDVixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTztxQkFDVjtpQkFDSjthQUNKO1lBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksRUFBRTtnQkFDTixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM1RCxPQUFPLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUMzQjtTQUNKO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQ3ZDLE9BQU87U0FDVjtRQUVELFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBRTdFLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdDLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLGlFQUFpRTtRQUNqRSxJQUFJLE1BQU0sSUFBSSxDQUFFLE1BQWMsQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFLLE1BQWMsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFRCxrRkFBa0Y7SUFDMUUscUJBQXFCLENBQUMsR0FBVztRQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdGLElBQUksR0FBRyxFQUFFO1lBQ0wsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDckIsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUQsa0NBQWtDO0lBQzFCLFdBQVcsQ0FBQyxJQUFpQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELCtCQUErQjtJQUN2QixhQUFhO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMvRSxDQUFDO0lBRUQsNkVBQTZFO0lBQ25FLGVBQWUsQ0FBQyxLQUE2QixFQUFFLEtBQWM7UUFDbkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7YUFDeEQsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQWEsRUFBRSxJQUFpQjtRQUNwRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDQSxNQUFNLENBQUMsYUFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxlQUFlLENBQUMsTUFBYSxFQUFFLElBQWlCO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE9BQU87U0FDVjtRQUNBLElBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELDZDQUE2QztJQUN0QyxTQUFTLENBQUMsTUFBYTtRQUMxQixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBYTtRQUM3QixJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFhO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUU7WUFDekUsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBYSxFQUFFLEtBQWtCLEVBQUUsTUFBYztRQUNqRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxRQUFRLENBQUMsTUFBYSxFQUFFLEtBQWtCLEVBQUUsTUFBYztRQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFtQixFQUFFLE1BQWU7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9ELE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMzRTthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFtQixFQUFFLE1BQWU7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBQ0QseURBQXlEO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hFLE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNFO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO0lBQ1osY0FBYztRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCw0QkFBNEI7SUFDcEIsVUFBVSxDQUFDLE1BQWEsRUFBRSxJQUFpQixFQUFFLEtBQWEsRUFBRSxRQUFrQjtRQUNsRixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFekIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAscUVBQXFFO1FBQ3JFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDckgsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbkQsT0FBTztTQUNWO1FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUMsa0NBQWtDO1FBQ2xDLHFEQUFxRDtRQUNyRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUVuRSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUMzQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDekI7aUJBQU0sSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUU7Z0JBQ3ZDLCtEQUErRDtnQkFDL0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0gsMEZBQTBGO2dCQUMxRixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ3pDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDdEM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV0RCxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNwRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN0SCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFFNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLG1CQUFtQixDQUFDLElBQWdCLEVBQUUsUUFBZ0IsRUFBRSxZQUFvQjtRQUNoRixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8seUJBQXlCLENBQUMsU0FBUztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFUyxXQUFXLENBQUMsSUFBaUIsRUFBRSxTQUFpQixFQUFFLGFBQXVCLEVBQUUsTUFBVztRQUM1RixJQUFJLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLGNBQWMsSUFBSSxTQUFTLEtBQUssWUFBWTtlQUNqRixTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsS0FBSyxLQUFLLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQzFHLE9BQU87U0FDVjtRQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHFEQUFxRDtJQUM3QyxZQUFZO1FBQ2hCLE1BQU0sT0FBTyxHQUFHO1lBQ1osS0FBSyxFQUFFLDRCQUE0QjtZQUNuQyxXQUFXLEVBQUUsa0JBQWtCO1NBQ2xDLENBQUM7UUFFRixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsNENBQTRDO0lBQ3BDLGNBQWMsQ0FBQyxHQUFVLEVBQUUsRUFBVTtRQUN6QyxNQUFNLE1BQU0sR0FBSSxFQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2xDLGdEQUFnRDtRQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUcsRUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELGtEQUFrRDtJQUMxQyxNQUFNLENBQUMsTUFBYSxFQUFFLEVBQVU7UUFDcEMsSUFBSSxXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsQ0FBQztRQUViLDJFQUEyRTtRQUMzRSxRQUFRLEdBQUksRUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9FLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDeEUsV0FBVyxHQUFHO1lBQ1YsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ2pDLENBQUM7UUFFRixJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU87U0FDVjtRQUNELFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBRTNILElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU87U0FDVjtRQUVELHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWpFLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVcsRUFBRSxFQUFPLEVBQUUsRUFBTztRQUMxQyxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUU7WUFDcEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUF1QixDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7U0FDbEQ7UUFDRCxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNuRDtRQUNELElBQUksR0FBRyxLQUFLLGNBQWMsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxHQUFHLEtBQUssbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQzVIO1FBQ0QsSUFBSSxHQUFHLEtBQUssaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUN6SDtRQUNELElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDbkQ7UUFDRCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUMvQztRQUNELElBQUksR0FBRyxLQUFLLGVBQWUsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFFLENBQUM7YUFDdEQ7aUJBQU0sSUFBSSxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3ZCO1NBQ0o7UUFDRCxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekM7U0FDSjtRQUNELElBQUksR0FBRyxLQUFLLGVBQWUsRUFBRTtZQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzFELElBQUksRUFBRSxLQUFLLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEM7U0FDSjtRQUNELElBQUksR0FBRyxLQUFLLFdBQVcsSUFBSSxFQUFFLEVBQUU7WUFDM0IsK0RBQStEO1lBQy9ELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtvQkFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUN6QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQXZwQk0sOEJBQWUsR0FBRyxhQUFhLEVBQUUsQ0FBQzs0RUFEaEMsY0FBYywwREF1Q1IsbUJBQW1CLHdCQUNuQix3QkFBd0Isd0JBQ3hCLHNCQUFzQix3QkFDdEIsZ0JBQWdCLHdCQUNoQixjQUFjLHdCQUNkLGdCQUFnQjtpRUE1Q3RCLGNBQWM7dUJBZ0JaLGVBQWU7Ozs7MENBekJmO1lBQ1AsU0FBUyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7WUFDbEQsa0JBQWtCLENBQUMsY0FBYyxDQUFDO1lBQ2xDO2dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxjQUFjO2FBQzlCO1NBQ0o7UUNwQ0wsOERBaUJLO1FBQ0wsNkJBQThFLGdCQUFBO1FBbUJyRSw4R0FBaUIscUJBQWlCLElBQUMsbUdBQ2pCLHdCQUFvQixJQURILHlHQUVkLHdCQUFvQixJQUZOLG1HQUdkLGlCQUFhLElBSEMscUdBSWIsa0JBQWMsSUFKRDtRQUt4QyxpQkFBTSxFQUFBOztRQTFDNEYsdUNBQWM7UUFrQnhGLGVBQWlEO1FBQWpELCtFQUFpRDs7dUZEb0JoRSxjQUFjO2NBWjFCLFNBQVM7MkJBQ0ksV0FBVyxhQUVWO29CQUNQLFNBQVMsaUJBQWlCLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDbEQsa0JBQWtCLGdCQUFnQjtvQkFDbEM7d0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjt3QkFDcEMsV0FBVyxnQkFBZ0I7cUJBQzlCO2lCQUNKOztzQkF5Q0ksU0FBUzt1QkFBQyxtQkFBbUI7O3NCQUM3QixTQUFTO3VCQUFDLHdCQUF3Qjs7c0JBQ2xDLFNBQVM7dUJBQUMsc0JBQXNCOztzQkFDaEMsU0FBUzt1QkFBQyxnQkFBZ0I7O3NCQUMxQixTQUFTO3VCQUFDLGNBQWM7O3NCQUN4QixTQUFTO3VCQUFDLGdCQUFnQjt3QkE1QnlDLGVBQWU7a0JBQXRGLFNBQVM7bUJBQUMsZUFBZSxFQUFFLDJCQUEyQixDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQXR0cmlidXRlLCBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIE9wdGlvbmFsLCBTa2lwU2VsZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge1xuICAgICRhcHBEaWdlc3QsXG4gICAgJHVud2F0Y2gsXG4gICAgJHdhdGNoLFxuICAgIGRlYm91bmNlLFxuICAgIGlzQXBwbGVQcm9kdWN0LFxuICAgIGlzRGVmaW5lZCxcbiAgICB0b0Jvb2xlYW4sXG4gICAgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0XG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEFMTEZJRUxEUywgY29uZmlndXJlRG5ELCBEYXRhU2V0SXRlbSwgZ2V0Q29uZGl0aW9uYWxDbGFzc2VzLCBnZXRVbmlxT2Jqc0J5RGF0YUZpZWxkLCBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvaW5wdXQnO1xuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzaWMvc2VhcmNoJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vY2hpcHMucHJvcHMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWNoaXBzJyxcbiAgICBob3N0Q2xhc3M6ICdhcHAtY2hpcHMgbmF2IG5hdi1waWxscyBsaXN0LWlubGluZSdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2hpcHNdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoQ2hpcHNDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKENoaXBzQ29tcG9uZW50KSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IENoaXBzQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENoaXBzQ29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBwdWJsaWMgYWxsb3dvbmx5c2VsZWN0OiBib29sZWFuO1xuICAgIHB1YmxpYyBlbmFibGVyZW9yZGVyOiBib29sZWFuO1xuICAgIHB1YmxpYyBtYXhzaXplOiBudW1iZXI7XG4gICAgcHVibGljIGlucHV0d2lkdGg6IGFueTtcbiAgICBwcml2YXRlIGRlYm91bmNldGltZTogbnVtYmVyO1xuXG4gICAgcHVibGljIGNoaXBzTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF4U2l6ZVJlYWNoZWQgPSAnTWF4IHNpemUgcmVhY2hlZCc7XG4gICAgcHJpdmF0ZSBzYXR1cmF0ZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIG5leHRJdGVtSW5kZXg6IG51bWJlcjtcbiAgICBwcml2YXRlIGdldFRyYW5zZm9ybWVkRGF0YTogKGRhdGEsIGl0ZW1JbmRleD8pID0+IERhdGFTZXRJdGVtW107XG4gICAgcHJpdmF0ZSBpbnB1dHBvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzaG93c2VhcmNoaWNvbjogYm9vbGVhbjtcblxuICAgIEBWaWV3Q2hpbGQoU2VhcmNoQ29tcG9uZW50LCAvKiBUT0RPOiBhZGQgc3RhdGljIGZsYWcgKi8ge3N0YXRpYzogdHJ1ZX0pIHNlYXJjaENvbXBvbmVudDogU2VhcmNoQ29tcG9uZW50O1xuICAgIHByaXZhdGUgX2RhdGFzb3VyY2U6IGFueTtcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUR2ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzZWFyY2hrZXk6IHN0cmluZztcbiAgICBwcml2YXRlIF9kZWJvdW5jZVVwZGF0ZVF1ZXJ5TW9kZWw6IGFueTtcbiAgICBwcml2YXRlIGxpbWl0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY2xhc3NFeHByOiBhbnk7XG4gICAgcHJpdmF0ZSBtaW5jaGFyczogbnVtYmVyO1xuICAgIHByaXZhdGUgbWF0Y2htb2RlOiBzdHJpbmc7XG5cbiAgICAvLyBnZXR0ZXIgc2V0dGVyIGlzIGFkZGVkIHRvIHBhc3MgdGhlIGRhdGFzb3VyY2UgdG8gc2VhcmNoY29tcG9uZW50LlxuICAgIGdldCBkYXRhc291cmNlICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFzb3VyY2U7XG4gICAgfVxuXG4gICAgc2V0IGRhdGFzb3VyY2UobnYpIHtcbiAgICAgICAgdGhpcy5fZGF0YXNvdXJjZSA9IG52O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kYXRhc291cmNlID0gbnY7XG4gICAgICAgIHRoaXMuX2RlYm91bmNlVXBkYXRlUXVlcnlNb2RlbCh0aGlzLmRhdGF2YWx1ZSB8fCB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBAQXR0cmlidXRlKCdkaXNwbGF5ZmllbGQuYmluZCcpIHByaXZhdGUgYmluZERpc3BsYXlGaWVsZCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWV4cHJlc3Npb24uYmluZCcpIHByaXZhdGUgYmluZERpc3BsYXlFeHByLFxuICAgICAgICBAQXR0cmlidXRlKCdkaXNwbGF5aW1hZ2VzcmMuYmluZCcpIHByaXZhdGUgYmluZERpc3BsYXlJbWdTcmMsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2RhdGFmaWVsZC5iaW5kJykgcHJpdmF0ZSBiaW5kRGF0YUZpZWxkLFxuICAgICAgICBAQXR0cmlidXRlKCdkYXRhc2V0LmJpbmQnKSBwcml2YXRlIGJpbmREYXRhU2V0LFxuICAgICAgICBAQXR0cmlidXRlKCdjaGlwY2xhc3MuYmluZCcpIHByaXZhdGUgYmluZENoaXBjbGFzc1xuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcblxuICAgICAgICAvLyBzZXQgdGhlIHNob3dzZWFyY2hpY29uIGFzIGZhbHNlIGJ5IGRlZmF1bHQuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuc2hvd3NlYXJjaGljb24pKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dzZWFyY2hpY29uID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm11bHRpcGxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uZXh0SXRlbUluZGV4ID0gMDsgLy8gZGVmYXVsdCBjaGlwIGluZGV4XG5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VVcGRhdGVRdWVyeU1vZGVsID0gZGVib3VuY2UoKHZhbCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVRdWVyeU1vZGVsKHZhbCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmluZENoaXBjbGFzcykge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2godGhpcy5jaGlwc0xpc3QsIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckNoaXBJdGVtQ2xhc3MoaXRlbSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgMTUwKTtcblxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGF0YXNldCA9IHRoaXMuZGF0YXNldDtcbiAgICAgICAgICAgIC8vIGNsZWFyaW5nIHRoZSBsYXN0IHJlc3VsdHMgd2hlbiBkYXRhc2V0IGlzIHJlYXNzaWduZWRcbiAgICAgICAgICAgICh0aGlzLnNlYXJjaENvbXBvbmVudCBhcyBhbnkpLl9sYXN0UmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5uZXh0SXRlbUluZGV4ID0gdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VVcGRhdGVRdWVyeU1vZGVsKHRoaXMuZGF0YXZhbHVlIHx8IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGFzZXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgY29uc3QgZGF0YXZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhdmFsdWUkLnN1YnNjcmliZSgodmFsOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgcXVlcnlNb2RlbCBvbmx5IHdoZW4gcGFyZW50UmVmIGlzIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIGlmICghdGhpcy5fdW5zdWJzY3JpYmVEdikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRhdGFmaWVsZCBpcyBBTExGSUxFRFMgZG8gbm90IGZldGNoIHRoZSByZWNvcmRzXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBxdWVyeSBtb2RlbCB3aXRoIHRoZSB2YWx1ZXMgd2UgaGF2ZVxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlVXBkYXRlUXVlcnlNb2RlbCh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhdmFsdWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5iaW5kZGlzcGxheWltYWdlc3JjID0gdGhpcy5iaW5kRGlzcGxheUltZ1NyYztcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGlzcGxheWltYWdlc3JjID0gdGhpcy5kaXNwbGF5aW1hZ2VzcmM7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29tcG9uZW50LmJpbmRkaXNwbGF5bGFiZWwgPSB0aGlzLmJpbmREaXNwbGF5RXhwcjtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGlzcGxheWxhYmVsID0gdGhpcy5kaXNwbGF5ZmllbGQ7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29tcG9uZW50LmRhdGFmaWVsZCA9IHRoaXMuYmluZERhdGFGaWVsZCB8fCB0aGlzLmRhdGFmaWVsZDtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuYmluZGRhdGFzZXQgPSB0aGlzLmJpbmREYXRhU2V0O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kYXRhc2V0ID0gdGhpcy5kYXRhc2V0O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5zZWFyY2hrZXkgPSB0aGlzLnNlYXJjaGtleTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubGltaXQgPSB0aGlzLmxpbWl0O1xuICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kZWJvdW5jZXRpbWUgPSB0aGlzLmRlYm91bmNldGltZTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubWF0Y2htb2RlID0gdGhpcy5tYXRjaG1vZGU7XG5cbiAgICAgICAgdGhpcy5nZXRUcmFuc2Zvcm1lZERhdGEgPSAodmFsLCBpc0N1c3RvbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29tcG9uZW50LmdldFRyYW5zZm9ybWVkRGF0YShbdmFsXSwgdGhpcy5uZXh0SXRlbUluZGV4KyssIGlzQ3VzdG9tKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5lbmFibGVyZW9yZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZURuRCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZXZhbHVhdGVkIGNsYXNzIGV4cHJlc3Npb24uXG4gICAgICogQHBhcmFtICRpbmRleCBpbmRleCBvZiB0aGUgY2hpcFxuICAgICAqIEBwYXJhbSBpdGVtIGNoaXAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGtleSwgdmFsdWUsIGxhYmVsXG4gICAgICogQHJldHVybnMge2FueX0gZXZhbHVhdGVkIGNsYXNzIGV4cHJlc3Npb24gdmFsdWVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ2hpcEl0ZW1DbGFzcyhpdGVtLCAkaW5kZXgpIHtcbiAgICAgICAgaWYgKHRoaXMuYmluZENoaXBjbGFzcykge1xuICAgICAgICAgICAgY29uc3Qgd2F0Y2hOYW1lID0gYCR7dGhpcy53aWRnZXRJZH1fY2hpcEl0ZW1DbGFzc18keyRpbmRleH1gO1xuICAgICAgICAgICAgJHVud2F0Y2god2F0Y2hOYW1lKTtcbiAgICAgICAgICAgIC8vW1RvZG8tQ1NQXTogc2FtZSBhcyBsaXN0IGl0ZW0gY2xhc3NcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoJHdhdGNoKHRoaXMuYmluZENoaXBjbGFzcywgdGhpcy52aWV3UGFyZW50LCB7aXRlbSwgJGluZGV4fSwgKG52LCBvdikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlJdGVtQ2xhc3MoZ2V0Q29uZGl0aW9uYWxDbGFzc2VzKG52LCBvdiksICRpbmRleCk7XG4gICAgICAgICAgICB9LCB3YXRjaE5hbWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlJdGVtQ2xhc3ModmFsLCBpbmRleCkge1xuICAgICAgICBjb25zdCBjaGlwSXRlbSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2hpcC1pdGVtJykuaXRlbShpbmRleCk7XG4gICAgICAgICQoY2hpcEl0ZW0pLnJlbW92ZUNsYXNzKHZhbC50b1JlbW92ZSkuYWRkQ2xhc3ModmFsLnRvQWRkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUR1cGxpY2F0ZXMoKSB7XG4gICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gZ2V0VW5pcU9ianNCeURhdGFGaWVsZCh0aGlzLmNoaXBzTGlzdCwgdGhpcy5kYXRhZmllbGQsIHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG1ldGhvZCB1cGRhdGVzIHRoZSBxdWVyeU1vZGVsLlxuICAgIC8vIGRlZmF1bHQgY2FsbCB0byBnZXQgdGhlIGRlZmF1bHQgZGF0YSBjYW4gYmUgZG9uZSBvbmx5IHdoZW4gZGVmYXVsdFF1ZXJ5IGlzIHRydWUuXG4gICAgcHJpdmF0ZSB1cGRhdGVRdWVyeU1vZGVsKGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gW107XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbG9uZSB0aGUgZGF0YSBhcyB0aGUgdXBkYXRpb25zIG9uIGRhdGEgd2lsbCBjaGFuZ2UgdGhlIGRhdGF2YWx1ZS5cbiAgICAgICAgbGV0IGRhdGFWYWx1ZSA9IF8uY2xvbmUoZGF0YSk7XG4gICAgICAgIGNvbnN0IHByZXZDaGlwc0xpc3QgPSB0aGlzLmNoaXBzTGlzdDtcbiAgICAgICAgdGhpcy5jaGlwc0xpc3QgPSBbXTtcblxuICAgICAgICAvLyB1cGRhdGUgdGhlIG1vZGVsIHdoZW4gbW9kZWwgaGFzIGl0ZW1zIG1vcmUgdGhhbiBtYXhzaXplXG4gICAgICAgIGlmICh0aGlzLm1heHNpemUgJiYgZGF0YVZhbHVlLmxlbmd0aCA+IHRoaXMubWF4c2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gZGF0YVZhbHVlID0gXy5zbGljZShkYXRhVmFsdWUsIDAsIHRoaXMubWF4c2l6ZSk7XG4gICAgICAgICAgICBkYXRhID0gZGF0YVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoUXVlcnk6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9yIGVhY2ggdmFsdWUgaW4gZGF0YXZhbHVlLFxuICAgICAgICAgKiAxLiBjaGVjayB3aGV0aGVyIHZhbHVlIGlzIGluIGRhdGFzZXRJdGVtcywgaWYgaXRlbSBpcyBmb3VuZCwgYWRkZCB0byB0aGUgY2hpcHNMaXN0LlxuICAgICAgICAgKiAyLiBlbHNlIG1ha2UgYSBkZWZhdWx0IHF1ZXJ5IHRvIHRoZSBmaWx0ZXIgYW5kIGdldCB0aGUgcmVjb3JkLlxuICAgICAgICAgKiAzLiBJbiBzdGVwIDIsIGlmIGRhdGF2YWx1ZSBpcyBub3QgQUxMRklFTERTLCB0aGVuIG1ha2UgYSBxdWVyeS4gRXh0cmFjdCB0aGUgY2hpcHNMaXN0IGZyb20gdGhlIHF1ZXJ5IHJlc3BvbnNlLlxuICAgICAgICAgKiA0LiBJZiB0aGVyZSBpcyBubyByZXNwb25zZSBmb3IgdGhlIHZhbHVlIGFuZCBhbGxvd29ubHlzZWxlY3QgaXMgdHJ1ZSwgcmVtb3ZlIHRoZSB2YWx1ZSBmcm9tIHRoZSBkYXRhdmFsdWUuIFNvIHRoYXQgZGF0YXZhbHVlIGp1c3QgY29udGFpbnMgdGhlIHZhbGlkIHZhbHVlcy5cbiAgICAgICAgICogNS4gSW4gc3RlcCAyLCBpZiBkYXRhdmFsdWUgaXMgQUxMRklFTERTIGFuZCB2YWx1ZSBpcyBvYmplY3QsIHRoZW4ganVzdCBwcmVwYXJlIHRoZSBkYXRhc2V0SXRlbSBmcm9tIHRoZSB2YWx1ZS5cbiAgICAgICAgICogNi4gSWYgdmFsdWUgaXMgbm90IG9iamVjdCBhbmQgYWxsb3dvbmx5c2VsZWN0IGlzIGZhbHNlLCB0aGVuIGNyZWF0ZSBhIGN1c3RvbU1vZGVsIGFuZCByZXBsYWNlIHRoaXMgdmFsdWUgd2l0aCBjdXN0b21Nb2RlbCBhbmQgcHJlcGFyZSBkYXRhc2V0SXRlbSBmcm9tIHRoaXMgdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgIGRhdGFWYWx1ZS5mb3JFYWNoKCh2YWw6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtRm91bmQgPSBfLmZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmlzT2JqZWN0KGl0ZW0udmFsdWUpID8gXy5pc0VxdWFsKGl0ZW0udmFsdWUsIHZhbCkgOiBfLnRvU3RyaW5nKGl0ZW0udmFsdWUpID09PSBfLnRvU3RyaW5nKHZhbCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGl0ZW1Gb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0LnB1c2goaXRlbUZvdW5kKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhZmllbGQgIT09IEFMTEZJRUxEUykge1xuICAgICAgICAgICAgICAgIHNlYXJjaFF1ZXJ5LnB1c2godmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUykge1xuICAgICAgICAgICAgICAgIGxldCBkYXRhT2JqLCBpc0N1c3RvbSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICghXy5pc09iamVjdCh2YWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmogPSB0aGlzLmNyZWF0ZUN1c3RvbURhdGFNb2RlbCh2YWwpO1xuICAgICAgICAgICAgICAgICAgICBpc0N1c3RvbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhT2JqKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNwbGljZShpLCAxLCBkYXRhT2JqKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGN1c3RvbSBjaGlwcyBpcyBhbHJlYWR5IGdlbmVyYXRlZCwgdmFsIHdpbGwgYmUgb2JqZWN0IGFzIHsnZGF0YUZpZWxkX3ZhbCc6ICdlbnRlcmVkX3ZhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8vIEhlbmNlIGNoZWNrIHRoaXMgdmFsIGluIHByZXZpb3VzIGNoaXBMaXN0IGFuZCBhc3NpZ24gdGhlIGlzY3VzdG9tIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldkNoaXBPYmogPSBwcmV2Q2hpcHNMaXN0LmZpbmQob2JqID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfLmlzRXF1YWwob2JqLnZhbHVlLCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZDaGlwT2JqKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0N1c3RvbSA9IHByZXZDaGlwT2JqLmlzY3VzdG9tO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGFPYmogPSBkYXRhT2JqIHx8IHZhbDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRoaXMuZ2V0VHJhbnNmb3JtZWREYXRhKGRhdGFPYmosIGlzQ3VzdG9tKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlwT2JqID0gdHJhbnNmb3JtZWREYXRhWzBdO1xuICAgICAgICAgICAgICAgIGlmIChpc0N1c3RvbSkge1xuICAgICAgICAgICAgICAgICAgICAoY2hpcE9iaiBhcyBhbnkpLmlzY3VzdG9tID0gaXNDdXN0b207XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0LnB1c2goY2hpcE9iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIG1ha2UgZGVmYXVsdCBxdWVyeSB3aXRoIGFsbCB0aGUgdmFsdWVzIGFuZCBpZiByZXNwb25zZSBmb3IgdGhlIHZhbHVlIGlzIG5vdCBpbiBkYXRhdmFsdWUgdGhlbiBhZGQgYSBjdXN0b20gY2hpcCBvYmplY3QuXG4gICAgICAgIGlmIChzZWFyY2hRdWVyeS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5nZXREZWZhdWx0TW9kZWwoc2VhcmNoUXVlcnksIHRoaXMubmV4dEl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gdGhpcy5jaGlwc0xpc3QuY29uY2F0KHJlc3BvbnNlIHx8IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVZhbHVlLmZvckVhY2goKHZhbDogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRXhpc3RzID0gXy5maW5kKHRoaXMuY2hpcHNMaXN0LCAob2JqKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iai52YWx1ZS50b1N0cmluZygpID09PSB2YWwudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dvbmx5c2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZGF0YS5pbmRleE9mKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGEgPSB0aGlzLmdldFRyYW5zZm9ybWVkRGF0YSh2YWwsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaXBPYmogPSB0cmFuc2Zvcm1lZERhdGFbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaXBPYmogYXMgYW55KS5pc2N1c3RvbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlwc0xpc3QucHVzaChjaGlwT2JqKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVmYXVsdCBjaGlwIGRhdGEgaXMgYWRkaW5nIGZvY3VzIG9uIHRvIHRoZSBzZWFyY2ggaW5wdXQuIEhlbmNlIHRoaXMgZmxhZyBoZWxwcyBub3QgdG8gZm9jdXMuXG4gICAgICAgIHRoaXMucmVzZXRTZWFyY2hNb2RlbCh0cnVlKTtcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlcygpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVNYXhTaXplKCk7XG4gICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTZWFyY2hNb2RlbChkZWZhdWx0UXVlcnk/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRHYgPSB0cnVlO1xuICAgICAgICAvLyBjbGVhciBzZWFyY2ggd2lsbCBlbXB0eSB0aGUgcXVlcnkgbW9kZWwgYW5kIGdldHMgdGhlIGRhdGEgd2hlbiBtaW5jaGFycyBpcyAwIChpLmUuIGF1dG9jb21wbGV0ZSkgb24gZm9jdXNcbiAgICAgICAgLy8gZGVmYXVsdFF1ZXJ5IGZsYWcgaXMgc2V0IHdoZW4gd2lkZ2V0IGlzIG5vdCBhY3RpdmUuIFRoaXMgd2lsbCBvbmx5IGxvYWQgdGhlIGF1dG9jb21wbGV0ZSBkcm9wdXAgd2l0aCBtaW5jaGFycyBhcyAwIHdoZW4gd2lkZ2V0IGlzIGZvY3VzZWQvYWN0aXZlXG4gICAgICAgICh0aGlzLnNlYXJjaENvbXBvbmVudCBhcyBhbnkpLmNsZWFyU2VhcmNoKHVuZGVmaW5lZCwgIXRoaXMubWluY2hhcnMgJiYgIWRlZmF1bHRRdWVyeSk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRHYgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIG5ld0l0ZW0gdG8gdGhlIGxpc3RcbiAgICBwcml2YXRlIGFkZEl0ZW0oJGV2ZW50OiBFdmVudCwgd2lkZ2V0PzogU2VhcmNoQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaENvbXBvbmVudCA9IHdpZGdldDtcbiAgICAgICAgbGV0IGFsbG93QWRkO1xuICAgICAgICBsZXQgY2hpcE9iajtcblxuICAgICAgICBpZiAoc2VhcmNoQ29tcG9uZW50ICYmIGlzRGVmaW5lZChzZWFyY2hDb21wb25lbnQuZGF0YXZhbHVlKSAmJiBzZWFyY2hDb21wb25lbnQucXVlcnlNb2RlbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmICghc2VhcmNoQ29tcG9uZW50LnF1ZXJ5IHx8ICFfLnRyaW0oc2VhcmNoQ29tcG9uZW50LnF1ZXJ5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoaXBPYmogPSBzZWFyY2hDb21wb25lbnQucXVlcnlNb2RlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93b25seXNlbGVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhT2JqO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YWZpZWxkID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV8uaXNPYmplY3QodGhpcy5zZWFyY2hDb21wb25lbnQucXVlcnkpICYmIF8udHJpbSh0aGlzLnNlYXJjaENvbXBvbmVudC5xdWVyeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iaiA9IHRoaXMuY3JlYXRlQ3VzdG9tRGF0YU1vZGVsKHRoaXMuc2VhcmNoQ29tcG9uZW50LnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGlmIHRoZSBjdXN0b20gY2hpcCBpcyBlbXB0eVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGFPYmopIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRTZWFyY2hNb2RlbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YU9iaiB8fCBfLnRyaW0odGhpcy5zZWFyY2hDb21wb25lbnQucXVlcnkpO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGEgPSB0aGlzLmdldFRyYW5zZm9ybWVkRGF0YShkYXRhLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBjaGlwT2JqID0gdHJhbnNmb3JtZWREYXRhWzBdO1xuICAgICAgICAgICAgICAgIGNoaXBPYmouaXNjdXN0b20gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0RlZmluZWQoY2hpcE9iaikgfHwgY2hpcE9iaiA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGFsbG93QWRkID0gdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVhZGQnLCB7JGV2ZW50LCBuZXdJdGVtOiBjaGlwT2JqfSk7XG5cbiAgICAgICAgaWYgKGlzRGVmaW5lZChhbGxvd0FkZCkgJiYgIXRvQm9vbGVhbihhbGxvd0FkZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRHVwbGljYXRlKGNoaXBPYmopKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VhcmNoTW9kZWwoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZ2lzdGVyQ2hpcEl0ZW1DbGFzcyhjaGlwT2JqLCB0aGlzLmNoaXBzTGlzdC5sZW5ndGgpO1xuICAgICAgICB0aGlzLmNoaXBzTGlzdC5wdXNoKGNoaXBPYmopO1xuXG4gICAgICAgIGlmICghdGhpcy5kYXRhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IFtjaGlwT2JqLnZhbHVlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IFsuLi50aGlzLl9tb2RlbEJ5VmFsdWUsIGNoaXBPYmoudmFsdWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVEdiA9IHRydWU7XG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5fbW9kZWxCeVZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuXG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYWRkJywgeyRldmVudCwgJGl0ZW06IGNoaXBPYmp9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU1heFNpemUoKTtcblxuICAgICAgICAvLyByZXNldCBpbnB1dCBib3ggd2hlbiBpdGVtIGlzIGFkZGVkLlxuICAgICAgICB0aGlzLnJlc2V0U2VhcmNoTW9kZWwoKTtcblxuICAgICAgICAvLyBzdG9wIHRoZSBldmVudCB0byBub3QgdG8gY2FsbCB0aGUgc3VibWl0IGV2ZW50IG9uIGVudGVyIHByZXNzLlxuICAgICAgICBpZiAoJGV2ZW50ICYmICgoJGV2ZW50IGFzIGFueSkua2V5ID09PSAnRW50ZXInIHx8ICgkZXZlbnQgYXMgYW55KS5rZXlDb2RlID09PSAxMykpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEV2ZW50KCRldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGRhdGF2YWx1ZSBvYmplY3QgZnJvbSBhIHN0cmluZyhqdW5rKSB2YWx1ZSB3aGVuIGRhdGFmaWVsZCBpcyBhbGxGaWVsZHMuXG4gICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21EYXRhTW9kZWwodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5kaXNwbGF5ZmllbGQgfHwgKHRoaXMuZGF0YWZpZWxkICE9PSBBTExGSUVMRFMgPyB0aGlzLmRhdGFmaWVsZCA6IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tT2JqID0ge307XG4gICAgICAgICAgICBjdXN0b21PYmpba2V5XSA9IHZhbDtcbiAgICAgICAgICAgIHJldHVybiBjdXN0b21PYmo7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBuZXdJdGVtIGFscmVhZHkgZXhpc3RzXG4gICAgcHJpdmF0ZSBpc0R1cGxpY2F0ZShpdGVtOiBEYXRhU2V0SXRlbSkge1xuICAgICAgICBpZiAodGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUykge1xuICAgICAgICAgICAgcmV0dXJuIF8uZmluZEluZGV4KHRoaXMuY2hpcHNMaXN0LCB7dmFsdWU6IGl0ZW0udmFsdWV9KSA+IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLmZpbmRJbmRleCh0aGlzLmNoaXBzTGlzdCwge2tleTogaXRlbS5rZXl9KSA+IC0xO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIG1heCBzaXplIGlzIHJlYWNoZWRcbiAgICBwcml2YXRlIHVwZGF0ZU1heFNpemUoKSB7XG4gICAgICAgIHRoaXMuc2F0dXJhdGUgPSB0aGlzLm1heHNpemUgPiAwICYmIHRoaXMuY2hpcHNMaXN0Lmxlbmd0aCA9PT0gdGhpcy5tYXhzaXplO1xuICAgIH1cblxuICAgIC8vIE1ha2VzIGNhbGwgdG8gc2VhcmNoQ29tcG9uZW50IHRvIGZpbHRlciB0aGUgZGF0YVNvdXJjZSBiYXNlZCBvbiB0aGUgcXVlcnkuXG4gICAgcHJvdGVjdGVkIGdldERlZmF1bHRNb2RlbChxdWVyeTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZywgaW5kZXg/OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5uZXh0SXRlbUluZGV4Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaENvbXBvbmVudC5nZXREYXRhU291cmNlKHF1ZXJ5LCB0cnVlLCBpbmRleClcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmZpbHRlcihxdWVyeSwgcXVlcnlWYWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZpbmQocmVzcG9uc2UsIHt2YWx1ZTogcXVlcnlWYWx9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2hpcENsaWNrKCRldmVudDogRXZlbnQsIGNoaXA6IERhdGFTZXRJdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKCRldmVudC5jdXJyZW50VGFyZ2V0IGFzIGFueSkuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjaGlwY2xpY2snLCB7JGV2ZW50LCAkaXRlbTogY2hpcH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2hpcEZvY3VzKCRldmVudDogRXZlbnQsIGNoaXA6IERhdGFTZXRJdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKGNoaXAgYXMgYW55KS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoaXBzZWxlY3QnLCB7JGV2ZW50LCAkaXRlbTogY2hpcH0pO1xuICAgIH1cblxuICAgIC8vIFRvIGF2b2lkIGZvcm0gc3VibWl0IG9uIHByZXNzaW5nIGVudGVyIGtleVxuICAgIHB1YmxpYyBzdG9wRXZlbnQoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRleHREZWxldGUoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoaXNBcHBsZVByb2R1Y3QpIHtcbiAgICAgICAgICAgIHRoaXMub25JbnB1dENsZWFyKCRldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25JbnB1dENsZWFyKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoaXBzTGlzdCB8fCAhdGhpcy5jaGlwc0xpc3QubGVuZ3RoIHx8IHRoaXMuc2VhcmNoQ29tcG9uZW50LnF1ZXJ5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCdsaS5jaGlwLWl0ZW0gPiBhLmFwcC1jaGlwJykubGFzdCgpLmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RvcEV2ZW50KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJhY2tzcGFjZSgkZXZlbnQ6IEV2ZW50LCAkaXRlbTogRGF0YVNldEl0ZW0sICRpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKCRldmVudCwgJGl0ZW0sICRpbmRleCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkRlbGV0ZSgkZXZlbnQ6IEV2ZW50LCAkaXRlbTogRGF0YVNldEl0ZW0sICRpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKCRldmVudCwgJGl0ZW0sICRpbmRleCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQXJyb3dMZWZ0KCRpdGVtPzogRGF0YVNldEl0ZW0sICRpbmRleD86IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT24gbGVmdCBhcnJvdyBjbGljayB3aGVuIHNlYXJjaCBpbnB1dCBxdWVyeSBpcyBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENvbXBvbmVudC5xdWVyeSAmJiAhaXNEZWZpbmVkKCRpbmRleCkgJiYgIWlzRGVmaW5lZCgkaXRlbSkpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmxhc3QoKS5mb2N1cygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRpbmRleCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmdldCgkaW5kZXggLSAxKS5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1NlYXJjaEJveCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQXJyb3dSaWdodCgkaXRlbT86IERhdGFTZXRJdGVtLCAkaW5kZXg/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBPbiByaWdodCBhcnJvdyBjbGljayB3aGVuIHNlYXJjaCBpbnB1dCBxdWVyeSBpcyBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENvbXBvbmVudC5xdWVyeSAmJiAhaXNEZWZpbmVkKCRpbmRleCkgJiYgIWlzRGVmaW5lZCgkaXRlbSkpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmZpcnN0KCkuZm9jdXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgkaW5kZXggPCAodGhpcy5jaGlwc0xpc3QubGVuZ3RoIC0gMSkpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGkuY2hpcC1pdGVtID4gYS5hcHAtY2hpcCcpLmdldCgkaW5kZXggKyAxKS5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1NlYXJjaEJveCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZm9jdXMgc2VhcmNoIGJveC5cbiAgICBwcml2YXRlIGZvY3VzU2VhcmNoQm94KCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJy5hcHAtY2hpcC1pbnB1dCA+IGlucHV0LmFwcC10ZXh0Ym94JykuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGl0ZW0gZnJvbSBsaXN0XG4gICAgcHJpdmF0ZSByZW1vdmVJdGVtKCRldmVudDogRXZlbnQsIGl0ZW06IERhdGFTZXRJdGVtLCBpbmRleDogbnVtYmVyLCBjYW5Gb2N1cz86IGJvb2xlYW4pIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGluZGV4ZXMgPSBfLmlzQXJyYXkoaW5kZXgpID8gaW5kZXggOiBbaW5kZXhdO1xuICAgICAgICBjb25zdCBmb2N1c0luZGV4ID0gXy5tYXgoaW5kZXhlcyk7XG5cbiAgICAgICAgY29uc3QgaXRlbXMgPSBfLnJlZHVjZShpbmRleGVzLCAocmVzdWx0LCBpKSA9PiB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLmNoaXBzTGlzdFtpXSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgLy8gcHJldmVudCBkZWxldGlvbiBpZiB0aGUgYmVmb3JlLXJlbW92ZSBldmVudCBjYWxsYmFjayByZXR1cm5zIGZhbHNlXG4gICAgICAgIGNvbnN0IGFsbG93UmVtb3ZlID0gdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW1vdmUnLCB7JGV2ZW50LCAkaXRlbTogaXRlbXMubGVuZ3RoID09PSAxID8gaXRlbXNbMF0gOiBpdGVtc30pO1xuICAgICAgICBpZiAoaXNEZWZpbmVkKGFsbG93UmVtb3ZlKSAmJiAhdG9Cb29sZWFuKGFsbG93UmVtb3ZlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldkRhdGF2YWx1ZSA9IF8uY2xvbmUodGhpcy5kYXRhdmFsdWUpO1xuXG4gICAgICAgIC8vIGZvY3VzIG5leHQgY2hpcCBhZnRlciBkZWxldGlvbi5cbiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIGNoaXBzIGluIHRoZSBsaXN0IGZvY3VzIHNlYXJjaCBib3hcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0xlbmd0aCA9IHRoaXMuY2hpcHNMaXN0Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0ICRjaGlwc0xpc3QgPSB0aGlzLiRlbGVtZW50LmZpbmQoJ2xpLmNoaXAtaXRlbSA+IGEuYXBwLWNoaXAnKTtcblxuICAgICAgICAgICAgaWYgKCFjaGlwc0xlbmd0aCB8fCAhY2FuRm9jdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzU2VhcmNoQm94KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChjaGlwc0xlbmd0aCAtIDEpIDwgZm9jdXNJbmRleCkge1xuICAgICAgICAgICAgICAgIC8vIGlmIGZvY3VzIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBjaGlwcyBsZW5ndGggc2VsZWN0IGxhc3QgY2hpcFxuICAgICAgICAgICAgICAgICRjaGlwc0xpc3QuZ2V0KGNoaXBzTGVuZ3RoIC0gMSkuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbWFudWFsbHkgc2V0IHRoZSBzdWNjZWVkaW5nIGNoaXAgYXMgYWN0aXZlIGlmIHRoZXJlIGlzIGEgY2hpcCBuZXh0IHRvIHRoZSBjdXJyZW50IGNoaXAuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGlwc0xpc3RbZm9jdXNJbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAkY2hpcHNMaXN0LmdldChmb2N1c0luZGV4KS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwdWxsZWRJdGVtcyA9IF8ucHVsbEF0KHRoaXMuY2hpcHNMaXN0LCBpbmRleGVzKTtcblxuICAgICAgICBwdWxsZWRJdGVtcy5mb3JFYWNoKGRhdGFzZXRJdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IF8uZmlsdGVyKHRoaXMuX21vZGVsQnlWYWx1ZSwgdmFsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIShfLmlzT2JqZWN0KHZhbCkgPyBfLmlzRXF1YWwodmFsLCBkYXRhc2V0SXRlbS52YWx1ZSkgOiBfLnRvU3RyaW5nKHZhbCkgPT09IF8udG9TdHJpbmcoZGF0YXNldEl0ZW0udmFsdWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUR2ID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLl9tb2RlbEJ5VmFsdWUsICRldmVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2hhbmdlJywgeyRldmVudCwgbmV3VmFsOiB0aGlzLmRhdGF2YWx1ZSwgb2xkVmFsOiBwcmV2RGF0YXZhbHVlfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVNYXhTaXplKCk7XG5cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdyZW1vdmUnLCB7JGV2ZW50LCAkaXRlbTogaXRlbXMubGVuZ3RoID09PSAxID8gaXRlbXNbMF0gOiBpdGVtc30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN3YXBzIGl0ZW1zIGluIGFuIGFycmF5IGlmIHByb3ZpZGVkIHdpdGggaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0gZGF0YSA6LSBhcnJheSB0byBiZSBzd2FwcGVkXG4gICAgICogQHBhcmFtIG5ld0luZGV4IDotIG5ldyBpbmRleCBmb3IgdGhlIGVsZW1lbnQgdG8gYmUgcGxhY2VkXG4gICAgICogQHBhcmFtIGN1cnJlbnRJbmRleCA6LSB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN3YXBFbGVtZW50c0luQXJyYXkoZGF0YTogQXJyYXk8YW55PiwgbmV3SW5kZXg6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBfLnB1bGxBdChkYXRhLCBjdXJyZW50SW5kZXgpWzBdO1xuICAgICAgICBkYXRhLnNwbGljZShuZXdJbmRleCwgMCwgZHJhZ2dlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbmNlbHMgdGhlIHJlb3JkZXIgYnkgcmVzZXRpbmcgdGhlIGVsZW1lbnRzIHRvIHRoZSBvcmlnaW5hbCBwb3NpdGlvbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlc2V0UmVvcmRlcigpIHtcbiAgICAgICAgdGhpcy4kZWxlbWVudC5yZW1vdmVEYXRhKCdvbGRJbmRleCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW52b2tlT25CZWZvcmVTZXJ2aWNlQ2FsbChpbnB1dERhdGEpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVzZXJ2aWNlY2FsbCcsIHtpbnB1dERhdGF9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ3JlbW92ZScgfHwgZXZlbnROYW1lID09PSAnYmVmb3JlcmVtb3ZlJyB8fCBldmVudE5hbWUgPT09ICdjaGlwc2VsZWN0J1xuICAgICAgICAgICAgfHwgZXZlbnROYW1lID09PSAnY2hpcGNsaWNrJyB8fCBldmVudE5hbWUgPT09ICdhZGQnIHx8IGV2ZW50TmFtZSA9PT0gJ3Jlb3JkZXInIHx8IGV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRDYWxsYmFjaywgbG9jYWxzKTtcbiAgICB9XG5cbiAgICAvLyBDb25maWd1cmVzIHRoZSByZW9yZGFibGUgZmVhdHVyZSBpbiBjaGlwcyB3aWRnZXRzLlxuICAgIHByaXZhdGUgY29uZmlndXJlRG5EKCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgaXRlbXM6ICc+IGxpOm5vdCguYXBwLWNoaXAtc2VhcmNoKScsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ2NoaXAtcGxhY2Vob2xkZXInXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uZmlndXJlRG5EKHRoaXMuJGVsZW1lbnQsIG9wdGlvbnMsIHRoaXMub25SZW9yZGVyU3RhcnQuYmluZCh0aGlzKSwgdGhpcy51cGRhdGUuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlcmVkIG9uIGRyYWcgc3RhcnQgd2hpbGUgcmVvcmRlcmluZy5cbiAgICBwcml2YXRlIG9uUmVvcmRlclN0YXJ0KGV2dDogRXZlbnQsIHVpOiBPYmplY3QpIHtcbiAgICAgICAgY29uc3QgaGVscGVyID0gKHVpIGFzIGFueSkuaGVscGVyO1xuICAgICAgICAvLyBpbmNyZWFzaW5nIHRoZSB3aWR0aCBvZiB0aGUgZHJhZ2dlZCBpdGVtIGJ5IDFcbiAgICAgICAgaGVscGVyLndpZHRoKGhlbHBlci53aWR0aCgpICsgMSk7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuZGF0YSgnb2xkSW5kZXgnLCAodWkgYXMgYW55KS5pdGVtLmluZGV4KCkgLSAodGhpcy5pbnB1dHBvc2l0aW9uID09PSAnZmlyc3QnID8gMSA6IDApKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGVzIHRoZSBjaGlwc0xpc3QgYW5kIGRhdGF2YWx1ZSBvbiByZW9yZGVyLlxuICAgIHByaXZhdGUgdXBkYXRlKCRldmVudDogRXZlbnQsIHVpOiBPYmplY3QpIHtcbiAgICAgICAgbGV0IGNoYW5nZWRJdGVtLFxuICAgICAgICAgICAgbmV3SW5kZXgsXG4gICAgICAgICAgICBvbGRJbmRleDtcblxuICAgICAgICAvLyBHZXQgdGhlIGluZGV4IG9mIHRoZSBpdGVtIGF0IHBvc2l0aW9uIGJlZm9yZSBkcmFnIGFuZCBhZnRlciB0aGUgcmVvcmRlci5cbiAgICAgICAgbmV3SW5kZXggPSAodWkgYXMgYW55KS5pdGVtLmluZGV4KCkgLSAodGhpcy5pbnB1dHBvc2l0aW9uID09PSAnZmlyc3QnID8gMSA6IDApO1xuICAgICAgICBvbGRJbmRleCA9IHRoaXMuJGVsZW1lbnQuZGF0YSgnb2xkSW5kZXgnKTtcblxuICAgICAgICBuZXdJbmRleCA9IHRoaXMuY2hpcHNMaXN0Lmxlbmd0aCA9PT0gbmV3SW5kZXggPyBuZXdJbmRleCAtIDEgOiBuZXdJbmRleDtcbiAgICAgICAgY2hhbmdlZEl0ZW0gPSB7XG4gICAgICAgICAgICBvbGRJbmRleDogb2xkSW5kZXgsXG4gICAgICAgICAgICBuZXdJbmRleDogbmV3SW5kZXgsXG4gICAgICAgICAgICBpdGVtOiB0aGlzLmNoaXBzTGlzdFtvbGRJbmRleF1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobmV3SW5kZXggPT09IG9sZEluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UmVvcmRlcigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5nZWRJdGVtLml0ZW0gPSB0aGlzLmNoaXBzTGlzdFtvbGRJbmRleF07XG5cbiAgICAgICAgY29uc3QgYWxsb3dSZW9yZGVyID0gdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW9yZGVyJywgeyRldmVudCwgJGRhdGE6IHRoaXMuY2hpcHNMaXN0LCAkY2hhbmdlZEl0ZW06IGNoYW5nZWRJdGVtfSk7XG5cbiAgICAgICAgaWYgKGlzRGVmaW5lZChhbGxvd1Jlb3JkZXIpICYmIHRvQm9vbGVhbihhbGxvd1Jlb3JkZXIpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFJlb3JkZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1vZGlmeSB0aGUgY2hpcHNMaXN0IGFuZCBkYXRhdmFsdWUgYWZ0ZXIgdGhlIHJlb3JkZXIuXG4gICAgICAgIHRoaXMuc3dhcEVsZW1lbnRzSW5BcnJheSh0aGlzLmNoaXBzTGlzdCwgbmV3SW5kZXgsIG9sZEluZGV4KTtcbiAgICAgICAgdGhpcy5zd2FwRWxlbWVudHNJbkFycmF5KHRoaXMuX21vZGVsQnlWYWx1ZSwgbmV3SW5kZXgsIG9sZEluZGV4KTtcblxuICAgICAgICBjaGFuZ2VkSXRlbS5pdGVtID0gdGhpcy5jaGlwc0xpc3RbbmV3SW5kZXhdO1xuXG4gICAgICAgIHRoaXMuY2hpcHNMaXN0ID0gWy4uLnRoaXMuY2hpcHNMaXN0XTtcblxuICAgICAgICB0aGlzLnJlc2V0UmVvcmRlcigpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jlb3JkZXInLCB7JGV2ZW50LCAkZGF0YTogdGhpcy5jaGlwc0xpc3QsICRjaGFuZ2VkSXRlbTogY2hhbmdlZEl0ZW19KTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdjogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnZGF0YW9wdGlvbnMnKSB7XG4gICAgICAgICAgICAodGhpcy5zZWFyY2hDb21wb25lbnQgYXMgYW55KS5kYXRhb3B0aW9ucyA9IG52O1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdkYXRhZmllbGQnKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5kYXRhZmllbGQgPSB0aGlzLmRhdGFmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnZGlzcGxheWZpZWxkJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuZGlzcGxheWxhYmVsID0gdGhpcy5kaXNwbGF5ZmllbGQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2Rpc3BsYXlleHByZXNzaW9uJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQuYmluZGRpc3BsYXlsYWJlbCA9IHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uID8gdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gOiB0aGlzLmRpc3BsYXlleHByZXNzaW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdkaXNwbGF5aW1hZ2VzcmMnKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5iaW5kZGlzcGxheWltYWdlc3JjID0gdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjID8gdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjIDogdGhpcy5kaXNwbGF5aW1hZ2VzcmM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2xpbWl0Jykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb21wb25lbnQubGltaXQgPSB0aGlzLmxpbWl0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdtYXRjaG1vZGUnKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbXBvbmVudC5tYXRjaG1vZGUgPSB0aGlzLm1hdGNobW9kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnZ3JvdXBieScpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29tcG9uZW50Lmdyb3VwYnkgPSB0aGlzLmdyb3VwYnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2VuYWJsZXJlb3JkZXInKSB7XG4gICAgICAgICAgICBpZiAodGhpcy4kZWxlbWVudC5oYXNDbGFzcygndWktc29ydGFibGUnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuc29ydGFibGUoJ29wdGlvbicsICdkaXNhYmxlZCcsICFudiApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChudikge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJlRG5EKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlYWRvbmx5Jykge1xuICAgICAgICAgICAgaWYgKG52KSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5hZGRDbGFzcygncmVhZG9ubHknKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygncmVhZG9ubHknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnaW5wdXRwb3NpdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEVsID0gdGhpcy4kZWxlbWVudC5maW5kKCdsaS5hcHAtY2hpcC1zZWFyY2gnKTtcbiAgICAgICAgICAgIGlmIChudiA9PT0gJ2ZpcnN0Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQucHJlcGVuZCgkaW5wdXRFbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuYXBwZW5kKCRpbnB1dEVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnYXV0b2ZvY3VzJyAmJiBudikge1xuICAgICAgICAgICAgLy8gc2V0dGluZyB0aGUgYXV0b2ZvY3VzIG9uIHRoZSBpbnB1dCBvbmNlIGFmdGVyIGRvbSBpcyB1cGRhdGVkXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCAkY2hpcHNMaXN0ID0gdGhpcy4kZWxlbWVudC5maW5kKCcuYXBwLWNoaXAtaW5wdXQgPiBpbnB1dC5hcHAtdGV4dGJveCcpO1xuICAgICAgICAgICAgICAgIGlmICgkY2hpcHNMaXN0ICYmICRjaGlwc0xpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNTZWFyY2hCb3goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG59XG4iLCI8bGkgY2xhc3M9XCJjaGlwLWl0ZW0ge3tjaGlwY2xhc3MgJiYgIWJpbmRDaGlwY2xhc3MgPyBjaGlwY2xhc3MgOiAnJ319XCIgcm9sZT1cIm9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNoaXBzTGlzdDsgbGV0ICRpbmRleCA9IGluZGV4O1wiXG4gICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpdGVtLmFjdGl2ZSwgJ2Rpc2FibGVkJzogZGlzYWJsZWR9XCI+XG4gICAgPGEgY2xhc3M9XCJhcHAtY2hpcFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAoa2V5ZG93bi5kZWxldGUpPVwib25EZWxldGUoJGV2ZW50LCBpdGVtLCAkaW5kZXgpXCJcbiAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UpPVwib25CYWNrc3BhY2UoJGV2ZW50LCBpdGVtLCAkaW5kZXgpXCJcbiAgICAgICAoa2V5ZG93bi5hcnJvd2xlZnQpPVwib25BcnJvd0xlZnQoaXRlbSwgJGluZGV4KVwiXG4gICAgICAgKGtleWRvd24uYXJyb3dyaWdodCk9XCJvbkFycm93UmlnaHQoaXRlbSwgJGluZGV4KVwiXG4gICAgICAgKGZvY3VzKT1cImhhbmRsZUNoaXBGb2N1cygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAoYmx1cik9XCJyZWFkb25seSA/IDAgOiBpdGVtLmFjdGl2ZSA9IGZhbHNlXCJcbiAgICAgICBbbmdDbGFzc109XCJ7J2NoaXAtZHVwbGljYXRlIGJnLWRhbmdlcic6IGl0ZW0uaXNEdXBsaWNhdGUsICdjaGlwLXBpY3R1cmUnOiBpdGVtLmltZ1NyY31cIj5cbiAgICAgICAgPGltZyBkYXRhLWlkZW50aWZpZXI9XCJpbWdcIiBhbHQ9XCJDaGlwIEltYWdlXCIgY2xhc3M9XCJidXR0b24taW1hZ2UtaWNvblwiIFtzcmNdPVwiaXRlbS5pbWdTcmNcIiAqbmdJZj1cIml0ZW0uaW1nU3JjXCIvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1jaGlwLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIGFyaWEtbGFiZWw9XCJDbGVhciBCdXR0b25cIiBjbGFzcz1cImJ0biBidG4tdHJhbnNwYXJlbnRcIiAoY2xpY2spPVwicmVtb3ZlSXRlbSgkZXZlbnQsIGl0ZW0sICRpbmRleCk7XCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgd2ktY2xvc2VcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvYT5cbjwvbGk+XG48bGkgY2xhc3M9XCJhcHAtY2hpcC1zZWFyY2hcIiBbbmdDbGFzc109XCJ7J2Z1bGwtd2lkdGgnOiBpbnB1dHdpZHRoID09PSAnZnVsbCd9XCI+XG4gICAgPGRpdiAjc2VhcmNoIHdtU2VhcmNoIGNsYXNzPVwiYXBwLWNoaXAtaW5wdXRcIlxuICAgICAgICAgbmFtZT1cImFwcC1jaGlwLXNlYXJjaFwiXG4gICAgICAgICBzdWJtaXQuZXZlbnQ9XCJhZGRJdGVtKCRldmVudCwgd2lkZ2V0KVwiXG4gICAgICAgICBiZWZvcmVzZXJ2aWNlY2FsbC5ldmVudD1cImludm9rZU9uQmVmb3JlU2VydmljZUNhbGwoaW5wdXREYXRhKVwiXG4gICAgICAgICBkaXNhYmxlZC5iaW5kPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgc2F0dXJhdGVcIlxuICAgICAgICAgZGF0YWZpZWxkLmJpbmQ9XCJkYXRhZmllbGRcIlxuICAgICAgICAgYWxsb3dvbmx5c2VsZWN0LmJpbmQ9XCJhbGxvd29ubHlzZWxlY3RcIlxuICAgICAgICAgc2VhcmNoa2V5LmJpbmQ9XCJzZWFyY2hrZXlcIlxuICAgICAgICAgb3JkZXJieS5iaW5kPVwib3JkZXJieVwiXG4gICAgICAgICBwbGFjZWhvbGRlci5iaW5kPVwic2F0dXJhdGUgPyBtYXhTaXplUmVhY2hlZCA6IHBsYWNlaG9sZGVyXCJcbiAgICAgICAgIHNob3dzZWFyY2hpY29uLmJpbmQ9XCJzaG93c2VhcmNoaWNvblwiXG4gICAgICAgICB0YWJpbmRleC5iaW5kPVwidGFiaW5kZXhcIlxuICAgICAgICAgbWluY2hhcnMuYmluZD1cIm1pbmNoYXJzXCJcbiAgICAgICAgIGRlYm91bmNldGltZS5iaW5kPVwiZGVib3VuY2V0aW1lXCJcbiAgICAgICAgIG1hdGNobW9kZS5iaW5kPVwibWF0Y2htb2RlXCJcbiAgICAgICAgIGdyb3VwYnkuYmluZD1cImdyb3VwYnlcIlxuICAgICAgICAgbWF0Y2guYmluZD1cIm1hdGNoXCJcbiAgICAgICAgIGRhdGVmb3JtYXQuYmluZD1cImRhdGVmb3JtYXRcIlxuICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic3RvcEV2ZW50KCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uZGVsZXRlKT1cIm9uVGV4dERlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbklucHV0Q2xlYXIoJGV2ZW50KVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd2xlZnQpPVwib25BcnJvd0xlZnQoKVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd3JpZ2h0KT1cIm9uQXJyb3dSaWdodCgpXCI+XG4gICAgPC9kaXY+XG48L2xpPlxuIl19
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Attribute,
|
|
3
|
-
import * as
|
|
2
|
+
import { Component, Attribute, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i3 from '@wm/components/base';
|
|
6
6
|
import { PROP_BOOLEAN, PROP_STRING, PROP_ANY, PROP_NUMBER, register, registerFormWidget, styler, getConditionalClasses, getUniqObjsByDataField, ALLFIELDS, configureDnD, provideAs, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i2 from '@wm/components/basic/search';
|
|
8
8
|
import { SearchComponent, SearchModule } from '@wm/components/basic/search';
|
|
9
9
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
10
|
-
import * as i1 from '@wm/core';
|
|
11
10
|
import { FormWidgetType, isDefined, debounce, $unwatch, $watch, $appDigest, toBoolean, isAppleProduct, UserDefinedExecutionContext } from '@wm/core';
|
|
12
11
|
import { DatasetAwareFormComponent } from '@wm/components/input';
|
|
13
12
|
|
|
@@ -118,15 +117,14 @@ class ChipsComponent extends DatasetAwareFormComponent {
|
|
|
118
117
|
this.searchComponent.datasource = nv;
|
|
119
118
|
this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);
|
|
120
119
|
}
|
|
121
|
-
constructor(inj, bindDisplayField, bindDisplayExpr, bindDisplayImgSrc, bindDataField, bindDataSet, bindChipclass
|
|
122
|
-
super(inj, WIDGET_CONFIG
|
|
120
|
+
constructor(inj, bindDisplayField, bindDisplayExpr, bindDisplayImgSrc, bindDataField, bindDataSet, bindChipclass) {
|
|
121
|
+
super(inj, WIDGET_CONFIG);
|
|
123
122
|
this.bindDisplayField = bindDisplayField;
|
|
124
123
|
this.bindDisplayExpr = bindDisplayExpr;
|
|
125
124
|
this.bindDisplayImgSrc = bindDisplayImgSrc;
|
|
126
125
|
this.bindDataField = bindDataField;
|
|
127
126
|
this.bindDataSet = bindDataSet;
|
|
128
127
|
this.bindChipclass = bindChipclass;
|
|
129
|
-
this._viewParent = _viewParent;
|
|
130
128
|
this.chipsList = [];
|
|
131
129
|
this.maxSizeReached = 'Max size reached';
|
|
132
130
|
this._unsubscribeDv = false;
|
|
@@ -673,7 +671,7 @@ class ChipsComponent extends DatasetAwareFormComponent {
|
|
|
673
671
|
}
|
|
674
672
|
}
|
|
675
673
|
ChipsComponent.initializeProps = registerProps();
|
|
676
|
-
ChipsComponent.ɵfac = function ChipsComponent_Factory(t) { return new (t || ChipsComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('displayfield.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('datafield.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('chipclass.bind')
|
|
674
|
+
ChipsComponent.ɵfac = function ChipsComponent_Factory(t) { return new (t || ChipsComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('displayfield.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('datafield.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('chipclass.bind')); };
|
|
677
675
|
ChipsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChipsComponent, selectors: [["", "wmChips", ""]], viewQuery: function ChipsComponent_Query(rf, ctx) {
|
|
678
676
|
if (rf & 1) {
|
|
679
677
|
i0.ɵɵviewQuery(SearchComponent, 7);
|
|
@@ -701,7 +699,7 @@ ChipsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChipsCompone
|
|
|
701
699
|
i0.ɵɵadvance(1);
|
|
702
700
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c3, ctx.inputwidth === "full"));
|
|
703
701
|
}
|
|
704
|
-
}, dependencies: [
|
|
702
|
+
}, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.SearchComponent, i3.TextContentDirective], encapsulation: 2 });
|
|
705
703
|
(function () {
|
|
706
704
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChipsComponent, [{
|
|
707
705
|
type: Component,
|
|
@@ -732,10 +730,6 @@ ChipsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChipsCompone
|
|
|
732
730
|
}] }, { type: undefined, decorators: [{
|
|
733
731
|
type: Attribute,
|
|
734
732
|
args: ['chipclass.bind']
|
|
735
|
-
}] }, { type: i1.UserDefinedExecutionContext, decorators: [{
|
|
736
|
-
type: SkipSelf
|
|
737
|
-
}, {
|
|
738
|
-
type: Optional
|
|
739
733
|
}] }];
|
|
740
734
|
}, { searchComponent: [{
|
|
741
735
|
type: ViewChild,
|