@wavemaker/app-ng-runtime 11.8.0-next.24904 → 11.8.0-next.27301
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/build-task/bundles/index.umd.js +5 -5
- app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +2 -1
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +6 -6
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +4 -3
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +203 -171
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +12 -11
- app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +47 -41
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +4 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +12 -11
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +40 -14
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +6 -5
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
- app-ng-runtime/components/base/fesm2022/index.mjs +206 -173
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/utils/data-utils.d.ts +0 -1
- app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
- app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +4 -3
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +6 -5
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +7 -6
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +13 -13
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +5 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +6 -5
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +10 -9
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +15 -10
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +14 -8
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +13 -7
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
- app-ng-runtime/components/basic/search/bundles/index.umd.js +67 -65
- app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +31 -30
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +66 -63
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +9 -9
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +7 -6
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +6 -5
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/chart/bundles/index.umd.js +72 -63
- app-ng-runtime/components/chart/chart.component.d.ts +1 -1
- app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +58 -48
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
- app-ng-runtime/components/chart/fesm2022/index.mjs +69 -59
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +16 -16
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +14 -13
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +13 -12
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +3 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +17 -17
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +15 -14
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -13
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +75 -75
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +10 -9
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +54 -53
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +11 -10
- app-ng-runtime/components/data/form/fesm2022/index.mjs +77 -76
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form.component.d.ts +2 -2
- app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +692 -687
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +1 -1
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +687 -682
- app-ng-runtime/components/data/list/fesm2022/index.mjs +690 -684
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +53 -53
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +1 -1
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +14 -14
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +12 -11
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +11 -10
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +175 -172
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +19 -18
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +7 -6
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +53 -55
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +98 -91
- app-ng-runtime/components/data/table/fesm2022/index.mjs +172 -168
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +6 -6
- app-ng-runtime/components/data/table/table.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +33 -31
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +31 -28
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +30 -27
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +29 -28
- app-ng-runtime/components/input/chips/chips.component.d.ts +1 -1
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +27 -25
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +26 -24
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
- app-ng-runtime/components/input/default/bundles/index.umd.js +75 -62
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +14 -8
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +3 -2
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +6 -4
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +29 -23
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -18
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
- app-ng-runtime/components/input/default/fesm2022/index.mjs +75 -62
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +53 -51
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +34 -31
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +7 -6
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +6 -5
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +48 -45
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +15 -15
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +13 -12
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +12 -11
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/bundles/index.umd.js +12 -12
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +10 -9
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +9 -8
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +1 -1
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +23 -22
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +10 -8
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +20 -18
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +1 -1
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/bundles/index.umd.js +6 -6
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +119 -130
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +7 -6
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +17 -16
- app-ng-runtime/core/esm2022/services/utils.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
- app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
- app-ng-runtime/core/fesm2022/index.mjs +117 -123
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/services/pagination.service.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +5 -9
- app-ng-runtime/http/bundles/index.umd.js +7 -7
- app-ng-runtime/http/esm2022/http.service.mjs +5 -4
- app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
- app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
- app-ng-runtime/http/fesm2022/index.mjs +4 -3
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +24 -20
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +12 -8
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +5 -3
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +3 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +21 -16
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +7 -7
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +8 -8
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +4 -3
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +3 -2
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +3 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +9 -9
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +7 -6
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +6 -5
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +25 -25
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +4 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +6 -5
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +9 -8
- app-ng-runtime/mobile/core/fesm2022/index.mjs +22 -21
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
- app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
- app-ng-runtime/mobile/offline/bundles/index.umd.js +161 -144
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +7 -6
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +37 -35
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +54 -45
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
- app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +156 -138
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime/bundles/index.umd.js +11 -8
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +3 -2
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +6 -2
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +4 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +8 -4
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +3 -3
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +2 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/bundles/index.umd.js +23 -16
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +2 -2
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
- app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +19 -11
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/bundles/index.umd.js +12 -12
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +4 -3
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
- app-ng-runtime/oAuth/fesm2022/index.mjs +9 -8
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +121 -120
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +13 -12
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +15 -14
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -10
- app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +17 -14
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +12 -10
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +8 -7
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +6 -7
- app-ng-runtime/runtime/base/fesm2022/index.mjs +119 -117
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +4 -3
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
- app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
- app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
- app-ng-runtime/security/bundles/index.umd.js +14 -14
- app-ng-runtime/security/esm2022/security.service.mjs +12 -11
- app-ng-runtime/security/fesm2022/index.mjs +11 -10
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/security/security.service.d.ts +1 -1
- app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
- app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
- app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/bundles/index.umd.js +155 -145
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +7 -6
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
- app-ng-runtime/variables/fesm2022/index.mjs +169 -158
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
|
@@ -2,6 +2,7 @@ import { from } from 'rxjs';
|
|
|
2
2
|
import { LVService } from '@wavemaker/variables';
|
|
3
3
|
import { noop, triggerFn } from '@wm/core';
|
|
4
4
|
import { WM_LOCAL_OFFLINE_CALL } from './utils';
|
|
5
|
+
import { clone, cloneDeep, extend, filter, find, forEach, get, isArray, isObject } from "lodash-es";
|
|
5
6
|
const apiConfiguration = [{
|
|
6
7
|
'name': 'insertTableData',
|
|
7
8
|
'type': 'INSERT'
|
|
@@ -50,15 +51,15 @@ export class LiveVariableOfflineBehaviour {
|
|
|
50
51
|
const onlineHandler = this.httpService.sendCallAsObservable;
|
|
51
52
|
if (onlineHandler) {
|
|
52
53
|
this.httpService.sendCallAsObservable = (reqParams, params) => {
|
|
53
|
-
if (!params &&
|
|
54
|
+
if (!params && get(reqParams, 'url')) {
|
|
54
55
|
params = { url: reqParams.url };
|
|
55
56
|
}
|
|
56
57
|
// reqParams will contain the full path of insert/update call which will be processed again in parseConfig method
|
|
57
58
|
// and will be appended again with '/services/./.' which will result in deployedUrl + '/service/./.' + '/service/./.' which is wrong.
|
|
58
59
|
// Hence passing url in params
|
|
59
|
-
const clonedParamsUrl =
|
|
60
|
-
params =
|
|
61
|
-
const operation =
|
|
60
|
+
const clonedParamsUrl = clone(params.url);
|
|
61
|
+
params = extend(params, reqParams);
|
|
62
|
+
const operation = find(apiConfiguration, { name: get(params, 'operation') });
|
|
62
63
|
if (this.networkService.isConnected() || params.onlyOnline || !operation || !params.dataModelName) {
|
|
63
64
|
return from(this.remoteDBcall(operation, onlineHandler, params));
|
|
64
65
|
}
|
|
@@ -107,7 +108,7 @@ export class LiveVariableOfflineBehaviour {
|
|
|
107
108
|
}
|
|
108
109
|
// set hasBlob flag on params when blob field is present
|
|
109
110
|
hasBlob(store) {
|
|
110
|
-
const blobColumns =
|
|
111
|
+
const blobColumns = filter(store.entitySchema.columns, {
|
|
111
112
|
'sqlType': 'blob'
|
|
112
113
|
});
|
|
113
114
|
return !!blobColumns.length;
|
|
@@ -150,8 +151,8 @@ export class LiveVariableOfflineBehaviour {
|
|
|
150
151
|
store.saveAll(response.body.content);
|
|
151
152
|
}
|
|
152
153
|
else if (operation.type === 'INSERT') {
|
|
153
|
-
params =
|
|
154
|
-
params.data =
|
|
154
|
+
params = clone(params);
|
|
155
|
+
params.data = clone(response.body);
|
|
155
156
|
this.offlineDBService[operation.name](params, noop, noop, {
|
|
156
157
|
resetPrimaryKey: false
|
|
157
158
|
});
|
|
@@ -174,10 +175,10 @@ export class LiveVariableOfflineBehaviour {
|
|
|
174
175
|
prepareToCascade(params) {
|
|
175
176
|
return this.getStore(params).then(store => {
|
|
176
177
|
const childObjectPromises = [];
|
|
177
|
-
|
|
178
|
+
forEach(params.data, (v, k) => {
|
|
178
179
|
let column, foreignRelation, childParams;
|
|
179
180
|
// NOTE: Save only one-to-one relations for cascade
|
|
180
|
-
if (
|
|
181
|
+
if (isObject(v) && !isArray(v)) {
|
|
181
182
|
column = store.entitySchema.columns.find(c => {
|
|
182
183
|
if (c.primaryKey && c.foreignRelations) {
|
|
183
184
|
foreignRelation = c.foreignRelations.find(f => f.sourceFieldName === k);
|
|
@@ -186,7 +187,7 @@ export class LiveVariableOfflineBehaviour {
|
|
|
186
187
|
});
|
|
187
188
|
}
|
|
188
189
|
if (column) {
|
|
189
|
-
childParams =
|
|
190
|
+
childParams = cloneDeep(params);
|
|
190
191
|
childParams.entityName = foreignRelation.targetEntity;
|
|
191
192
|
childParams.data = v;
|
|
192
193
|
const childPromise = this.getStore(childParams).then(childStore => {
|
|
@@ -228,4 +229,4 @@ export class LiveVariableOfflineBehaviour {
|
|
|
228
229
|
});
|
|
229
230
|
}
|
|
230
231
|
}
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS12YXJpYWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy91dGlscy9saXZlLXZhcmlhYmxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBdUIsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU9oRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJaEQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDO1FBQ2xCLE1BQU0sRUFBRyxpQkFBaUI7UUFDMUIsTUFBTSxFQUFHLFFBQVE7S0FDcEIsRUFBRTtRQUNDLE1BQU0sRUFBRywwQkFBMEI7UUFDbkMsTUFBTSxFQUFHLFFBQVE7S0FDcEIsRUFBRTtRQUNDLE1BQU0sRUFBRyxpQkFBaUI7UUFDMUIsTUFBTSxFQUFHLFFBQVE7S0FDcEIsRUFBRTtRQUNDLE1BQU0sRUFBRywwQkFBMEI7UUFDbkMsTUFBTSxFQUFHLFFBQVE7S0FDcEIsRUFBRTtRQUNDLE1BQU0sRUFBRyxpQkFBaUI7UUFDMUIsTUFBTSxFQUFHLFFBQVE7S0FDcEIsRUFBRTtRQUNDLE1BQU0sRUFBRyxlQUFlO1FBQ3hCLE1BQU0sRUFBRyxNQUFNO1FBQ2YsY0FBYyxFQUFFLElBQUk7S0FDdkIsRUFBRTtRQUNDLE1BQU0sRUFBRyxpQkFBaUI7UUFDMUIsTUFBTSxFQUFHLE1BQU07UUFDZixjQUFjLEVBQUUsSUFBSTtLQUN2QixFQUFFO1FBQ0MsTUFBTSxFQUFHLDBCQUEwQjtRQUNuQyxNQUFNLEVBQUcsTUFBTTtRQUNmLGNBQWMsRUFBRSxJQUFJO0tBQ3ZCLEVBQUU7UUFDQyxNQUFNLEVBQUcseUJBQXlCO1FBQ2xDLE1BQU0sRUFBRyxNQUFNO1FBQ2YsY0FBYyxFQUFFLEtBQUs7S0FDeEIsQ0FBQyxDQUFDO0FBRVAsSUFBSSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUFFbkMsTUFBTSxPQUFPLDRCQUE0QjtJQUlyQyxZQUNZLGdCQUFrQyxFQUNsQyxXQUFnQyxFQUNoQyx3QkFBa0QsRUFDbEQsY0FBOEIsRUFDOUIsZ0JBQWdDO1FBSmhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0I7UUFQcEMsb0JBQWUsR0FBRyxTQUFTLENBQUM7SUFRakMsQ0FBQztJQUVHLEdBQUc7UUFDTixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMxQixzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDOUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1RCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBTyxFQUFFO29CQUMvRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ3JDLE1BQU0sR0FBRyxFQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFDLENBQUM7b0JBQ2xDLENBQUM7b0JBQ0QsaUhBQWlIO29CQUNqSCxxSUFBcUk7b0JBQ3JJLDhCQUE4QjtvQkFDOUIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzVDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDckMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUM7b0JBQy9FLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUNoRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDckUsQ0FBQztvQkFDRCxxRUFBcUU7b0JBQ3JFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQzt5QkFDaEgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDOzRCQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLElBQUksUUFBUSxDQUFDOzRCQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0NBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCO29DQUMxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCOzJDQUM5QixTQUFTLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztvQ0FDL0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dDQUNqRSxDQUFDOzRCQUNMLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0NBQ1QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtvQ0FDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7Z0NBQzFFLENBQUMsQ0FBQyxDQUFDOzRCQUNQLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dDQUN2QixJQUFJLFFBQVEsRUFBRSxDQUFDO29DQUNYLE9BQU8sUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0NBQ2hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7NENBQ3RDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7d0NBQ3hDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTs0Q0FDWCx1Q0FBdUM7NENBQ3ZDLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnREFDNUIsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7NENBQ3pCLENBQUM7NENBQ0QsT0FBTyxRQUFRLENBQUM7d0NBQ3BCLENBQUMsQ0FBQyxDQUFDO29DQUNQLENBQUMsQ0FBQyxDQUFDO2dDQUNQLENBQUM7Z0NBQ0QsT0FBTyxRQUFRLENBQUM7NEJBQ3BCLENBQUMsQ0FBQyxDQUFDO3dCQUNQLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWixDQUFDLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRLENBQUMsTUFBVztRQUN2QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELHdEQUF3RDtJQUNoRCxPQUFPLENBQUMsS0FBSztRQUNqQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQ3JELFNBQVMsRUFBRyxNQUFNO1NBQ3JCLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZTtRQUNwRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLG9CQUFvQjtvQkFDcEIsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3pCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDO29CQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7eUJBQ3RFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakIsUUFBUSxHQUFHLEVBQUMsSUFBSSxFQUFHLFFBQVEsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQztZQUMxRCxTQUFTLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTTtRQUNqRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzlELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDbEQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7Z0NBQ3RELEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs0QkFDekMsQ0FBQztpQ0FBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0NBQ3JDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUN6QixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dDQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO29DQUN0RCxlQUFlLEVBQUUsS0FBSztpQ0FDekIsQ0FBQyxDQUFDOzRCQUNQLENBQUM7aUNBQU0sQ0FBQztnQ0FDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7NEJBQzlELENBQUM7d0JBQ0wsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNuQixDQUFDO29CQUNELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCLENBQUMsTUFBTTtRQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxNQUFrQixFQUNsQixlQUFvQyxFQUNwQyxXQUFXLENBQUM7Z0JBQ2hCLG1EQUFtRDtnQkFDbkQsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNqQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN6QyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7NEJBQ3JDLGVBQWUsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDN0UsQ0FBQzt3QkFDRCxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDVCxXQUFXLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbEMsV0FBVyxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO29CQUN0RCxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztvQkFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQzlELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQzNCLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN6RyxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzs0QkFDbEQsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUM7NEJBQzdILFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUMvQyxDQUFDO3dCQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7d0JBQ2pCLFdBQVcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO3dCQUMvQixXQUFXLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO3dCQUN0QyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQy9DLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO3dCQUNyQixPQUFPLEdBQUcsRUFBRTs0QkFDUixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dDQUMzQixNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQ0FDcEcsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs0QkFDcEUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dDQUNiLElBQUksU0FBUyxDQUFDO2dDQUNkLElBQUksTUFBTSxFQUFFLENBQUM7b0NBQ1QsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztnQ0FDckYsQ0FBQztxQ0FBTSxDQUFDO29DQUNKLFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7Z0NBQ3JGLENBQUM7Z0NBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDOzRCQUNwRSxDQUFDLENBQUMsQ0FBQzt3QkFDWCxDQUFDLENBQUM7b0JBQ04sQ0FBQyxDQUFDLENBQUM7b0JBQ0gsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2xELE9BQU87b0JBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQ3JELENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBMVlNlcnZpY2UgfSBmcm9tICdAd2F2ZW1ha2VyL3ZhcmlhYmxlcyc7XG5cbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnQHdtL21vYmlsZS9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0SHR0cFNlcnZpY2UsIG5vb3AsIHRyaWdnZXJGbiB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgQ29sdW1uSW5mbywgRm9yZWlnblJlbGF0aW9uSW5mbyB9IGZyb20gJy4uL21vZGVscy9jb25maWcnO1xuaW1wb3J0IHsgTG9jYWxEQlN0b3JlIH0gZnJvbSAnLi4vbW9kZWxzL2xvY2FsLWRiLXN0b3JlJztcbmltcG9ydCB7IENoYW5nZUxvZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jaGFuZ2UtbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtZGItbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsRGJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtZGIuc2VydmljZSc7XG5pbXBvcnQgeyBXTV9MT0NBTF9PRkZMSU5FX0NBTEwgfSBmcm9tICcuL3V0aWxzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBhcGlDb25maWd1cmF0aW9uID0gW3tcbiAgICAgICAgJ25hbWUnIDogJ2luc2VydFRhYmxlRGF0YScsXG4gICAgICAgICd0eXBlJyA6ICdJTlNFUlQnXG4gICAgfSwge1xuICAgICAgICAnbmFtZScgOiAnaW5zZXJ0TXVsdGlQYXJ0VGFibGVEYXRhJyxcbiAgICAgICAgJ3R5cGUnIDogJ0lOU0VSVCdcbiAgICB9LCB7XG4gICAgICAgICduYW1lJyA6ICd1cGRhdGVUYWJsZURhdGEnLFxuICAgICAgICAndHlwZScgOiAnVVBEQVRFJ1xuICAgIH0sIHtcbiAgICAgICAgJ25hbWUnIDogJ3VwZGF0ZU11bHRpUGFydFRhYmxlRGF0YScsXG4gICAgICAgICd0eXBlJyA6ICdVUERBVEUnXG4gICAgfSwge1xuICAgICAgICAnbmFtZScgOiAnZGVsZXRlVGFibGVEYXRhJyxcbiAgICAgICAgJ3R5cGUnIDogJ0RFTEVURSdcbiAgICB9LCB7XG4gICAgICAgICduYW1lJyA6ICdyZWFkVGFibGVEYXRhJyxcbiAgICAgICAgJ3R5cGUnIDogJ1JFQUQnLFxuICAgICAgICAnc2F2ZVJlc3BvbnNlJzogdHJ1ZVxuICAgIH0sIHtcbiAgICAgICAgJ25hbWUnIDogJ3NlYXJjaFRhYmxlRGF0YScsXG4gICAgICAgICd0eXBlJyA6ICdSRUFEJyxcbiAgICAgICAgJ3NhdmVSZXNwb25zZSc6IHRydWVcbiAgICB9LCB7XG4gICAgICAgICduYW1lJyA6ICdzZWFyY2hUYWJsZURhdGFXaXRoUXVlcnknLFxuICAgICAgICAndHlwZScgOiAnUkVBRCcsXG4gICAgICAgICdzYXZlUmVzcG9uc2UnOiB0cnVlXG4gICAgfSwge1xuICAgICAgICAnbmFtZScgOiAnZ2V0RGlzdGluY3REYXRhQnlGaWVsZHMnLFxuICAgICAgICAndHlwZScgOiAnUkVBRCcsXG4gICAgICAgICdzYXZlUmVzcG9uc2UnOiBmYWxzZVxuICAgIH1dO1xuXG5sZXQgaXNPZmZsaW5lQmVoYXZpb3JBZGRlZCA9IGZhbHNlO1xuXG5leHBvcnQgY2xhc3MgTGl2ZVZhcmlhYmxlT2ZmbGluZUJlaGF2aW91ciB7XG5cbiAgICBwcml2YXRlIG9ubGluZURCU2VydmljZSA9IExWU2VydmljZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNoYW5nZUxvZ1NlcnZpY2U6IENoYW5nZUxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEFic3RyYWN0SHR0cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlOiBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmV0d29ya1NlcnZpY2U6IE5ldHdvcmtTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG9mZmxpbmVEQlNlcnZpY2U6IExvY2FsRGJTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGFkZCAoKSB7XG4gICAgICAgIGlmICghaXNPZmZsaW5lQmVoYXZpb3JBZGRlZCkge1xuICAgICAgICAgICAgaXNPZmZsaW5lQmVoYXZpb3JBZGRlZCA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBvbmxpbmVIYW5kbGVyID0gdGhpcy5odHRwU2VydmljZS5zZW5kQ2FsbEFzT2JzZXJ2YWJsZTtcbiAgICAgICAgICAgIGlmIChvbmxpbmVIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5odHRwU2VydmljZS5zZW5kQ2FsbEFzT2JzZXJ2YWJsZSA9IChyZXFQYXJhbXMsIHBhcmFtcyk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFyYW1zICYmIF8uZ2V0KHJlcVBhcmFtcywgJ3VybCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSB7dXJsOiByZXFQYXJhbXMudXJsfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByZXFQYXJhbXMgd2lsbCBjb250YWluIHRoZSBmdWxsIHBhdGggb2YgaW5zZXJ0L3VwZGF0ZSBjYWxsIHdoaWNoIHdpbGwgYmUgcHJvY2Vzc2VkIGFnYWluIGluIHBhcnNlQ29uZmlnIG1ldGhvZFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgd2lsbCBiZSBhcHBlbmRlZCBhZ2FpbiB3aXRoICcvc2VydmljZXMvLi8uJyB3aGljaCB3aWxsIHJlc3VsdCBpbiBkZXBsb3llZFVybCArICcvc2VydmljZS8uLy4nICsgJy9zZXJ2aWNlLy4vLicgd2hpY2ggaXMgd3JvbmcuXG4gICAgICAgICAgICAgICAgICAgIC8vIEhlbmNlIHBhc3NpbmcgdXJsIGluIHBhcmFtc1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbG9uZWRQYXJhbXNVcmwgPSBfLmNsb25lKHBhcmFtcy51cmwpO1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBfLmV4dGVuZChwYXJhbXMsIHJlcVBhcmFtcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IF8uZmluZChhcGlDb25maWd1cmF0aW9uLCB7bmFtZTogXy5nZXQocGFyYW1zLCAnb3BlcmF0aW9uJyl9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubmV0d29ya1NlcnZpY2UuaXNDb25uZWN0ZWQoKSB8fCBwYXJhbXMub25seU9ubGluZSB8fCAhb3BlcmF0aW9uIHx8ICFwYXJhbXMuZGF0YU1vZGVsTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb20odGhpcy5yZW1vdGVEQmNhbGwob3BlcmF0aW9uLCBvbmxpbmVIYW5kbGVyLCBwYXJhbXMpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBjb252ZXJ0aW5nIHByb21pc2UgdG8gb2JzZXJ2YWJsZSBhcyBMVlNlcnZpY2UgcmV0dXJucyBhIG9ic2VydmFibGVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb20odGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuaXNPcGVyYXRpb25BbGxvd2VkKHBhcmFtcy5kYXRhTW9kZWxOYW1lLCBwYXJhbXMuZW50aXR5TmFtZSwgb3BlcmF0aW9uLnR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihpc0FsbG93ZWRJbk9mZmxpbmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNBbGxvd2VkSW5PZmZsaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbW90ZURCY2FsbChvcGVyYXRpb24sIG9ubGluZUhhbmRsZXIsIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNhc2NhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmFtcy5pc0Nhc2NhZGluZ1N0b3BwZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3BlcmF0aW9uLm5hbWUgPT09ICdpbnNlcnRUYWJsZURhdGEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG9wZXJhdGlvbi5uYW1lID09PSAndXBkYXRlVGFibGVEYXRhJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlVG9DYXNjYWRlKHBhcmFtcykudGhlbihjID0+IGNhc2NhZGVyID0gYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsREJjYWxsKG9wZXJhdGlvbiwgcGFyYW1zLCByZXNvbHZlLCByZWplY3QsIGNsb25lZFBhcmFtc1VybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbiggKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYXNjYWRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYXNjYWRlci5jYXNjYWRlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0b3JlKHBhcmFtcykudGhlbihzdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmUucmVmcmVzaChyZXNwb25zZS5ib2R5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRhdGEgaW5jbHVkZXMgcGFyZW50IGFuZCBjaGlsZCBkYXRhLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmJvZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5ib2R5ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0b3JlKHBhcmFtczogYW55KTogUHJvbWlzZTxMb2NhbERCU3RvcmU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlLmdldFN0b3JlKHBhcmFtcy5kYXRhTW9kZWxOYW1lLCBwYXJhbXMuZW50aXR5TmFtZSk7XG4gICAgfVxuXG4gICAgLy8gc2V0IGhhc0Jsb2IgZmxhZyBvbiBwYXJhbXMgd2hlbiBibG9iIGZpZWxkIGlzIHByZXNlbnRcbiAgICBwcml2YXRlIGhhc0Jsb2Ioc3RvcmUpIHtcbiAgICAgICAgY29uc3QgYmxvYkNvbHVtbnMgPSBfLmZpbHRlcihzdG9yZS5lbnRpdHlTY2hlbWEuY29sdW1ucywge1xuICAgICAgICAgICAgJ3NxbFR5cGUnIDogJ2Jsb2InXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gISFibG9iQ29sdW1ucy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBEdXJpbmcgb2ZmbGluZSwgTG9jYWxEQlNlcnZpY2Ugd2lsbCBhbnN3ZXIgdG8gYWxsIHRoZSBjYWxscy4gQWxsIGRhdGEgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIHJlY29yZGVkXG4gICAgICogYW5kIHdpbGwgYmUgcmVwb3J0ZWQgdG8gRGF0YWJhc2VTZXJ2aWNlIHdoZW4gZGV2aWNlIGdvZXMgb25saW5lLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9jYWxEQmNhbGwob3BlcmF0aW9uLCBwYXJhbXMsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBjbG9uZWRQYXJhbXNVcmwpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vZmZsaW5lREJTZXJ2aWNlW29wZXJhdGlvbi5uYW1lXShwYXJhbXMsIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uLnR5cGUgPT09ICdSRUFEJykge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdG8gY2hhbmdlIGxvZ1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMub25seU9ubGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcy51cmwgPSBjbG9uZWRQYXJhbXNVcmw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZUxvZ1NlcnZpY2UuYWRkKCdEYXRhYmFzZVNlcnZpY2UnLCBvcGVyYXRpb24ubmFtZSwgcGFyYW1zKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZShyZXNwb25zZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgcmVzcG9uc2UgPSB7Ym9keSA6IHJlc3BvbnNlLCB0eXBlOiBXTV9MT0NBTF9PRkZMSU5FX0NBTEx9O1xuICAgICAgICAgICAgdHJpZ2dlckZuKHN1Y2Nlc3NDYWxsYmFjaywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9LCBmYWlsdXJlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogRHVyaW5nIG9ubGluZSwgYWxsIHJlYWQgb3BlcmF0aW9ucyBkYXRhIHdpbGwgYmUgcHVzaGVkIHRvIG9mZmxpbmUgZGF0YWJhc2UuIFNpbWlsYXJseSwgVXBkYXRlIGFuZCBEZWxldGVcbiAgICAgKiBvcGVyYXRpb25zIGFyZSBzeW5jZWQgd2l0aCB0aGUgb2ZmbGluZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbW90ZURCY2FsbChvcGVyYXRpb24sIG9ubGluZUhhbmRsZXIsIHBhcmFtcyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBvbmxpbmVIYW5kbGVyLmNhbGwodGhpcy5odHRwU2VydmljZSwgcGFyYW1zKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFyYW1zLnNraXBMb2NhbERCKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9mZmxpbmVEQlNlcnZpY2UuZ2V0U3RvcmUocGFyYW1zKS50aGVuKChzdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ1JFQUQnICYmIG9wZXJhdGlvbi5zYXZlUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuc2F2ZUFsbChyZXNwb25zZS5ib2R5LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uLnR5cGUgPT09ICdJTlNFUlQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IF8uY2xvbmUocGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmRhdGEgPSBfLmNsb25lKHJlc3BvbnNlLmJvZHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9mZmxpbmVEQlNlcnZpY2Vbb3BlcmF0aW9uLm5hbWVdKHBhcmFtcywgbm9vcCwgbm9vcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRQcmltYXJ5S2V5OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9mZmxpbmVEQlNlcnZpY2Vbb3BlcmF0aW9uLm5hbWVdKHBhcmFtcywgbm9vcCwgbm9vcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2gobm9vcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIG91dCB0aGUgbmVzdGVkIG9iamVjdHMgdG8gc2F2ZSBhbmQgcHJlcGFyZXMgYSBjbG9uZWQgcGFyYW1zLlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJlcGFyZVRvQ2FzY2FkZShwYXJhbXMpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRPYmplY3RQcm9taXNlcyA9IFtdO1xuICAgICAgICAgICAgXy5mb3JFYWNoKHBhcmFtcy5kYXRhLCAodiwgaykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb2x1bW46IENvbHVtbkluZm8sXG4gICAgICAgICAgICAgICAgICAgIGZvcmVpZ25SZWxhdGlvbjogRm9yZWlnblJlbGF0aW9uSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXM7XG4gICAgICAgICAgICAgICAgLy8gTk9URTogU2F2ZSBvbmx5IG9uZS10by1vbmUgcmVsYXRpb25zIGZvciBjYXNjYWRlXG4gICAgICAgICAgICAgICAgaWYgKF8uaXNPYmplY3QodikgJiYgIV8uaXNBcnJheSh2KSkge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW4gPSBzdG9yZS5lbnRpdHlTY2hlbWEuY29sdW1ucy5maW5kKGMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMucHJpbWFyeUtleSAmJiBjLmZvcmVpZ25SZWxhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduUmVsYXRpb24gPSBjLmZvcmVpZ25SZWxhdGlvbnMuZmluZCggZiA9PiBmLnNvdXJjZUZpZWxkTmFtZSA9PT0gayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gISFmb3JlaWduUmVsYXRpb247XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkUGFyYW1zID0gXy5jbG9uZURlZXAocGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXMuZW50aXR5TmFtZSA9IGZvcmVpZ25SZWxhdGlvbi50YXJnZXRFbnRpdHk7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkUGFyYW1zLmRhdGEgPSB2O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFByb21pc2UgPSB0aGlzLmdldFN0b3JlKGNoaWxkUGFyYW1zKS50aGVuKGNoaWxkU3RvcmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gcGFyYW1zLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW5zID0gY2hpbGRTdG9yZS5lbnRpdHlTY2hlbWEuY29sdW1ucy5maW5kKGMgPT4gYy5uYW1lID09PSBmb3JlaWduUmVsYXRpb24udGFyZ2V0Q29sdW1uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRDb2x1bW5zICYmIHRhcmdldENvbHVtbnMuZm9yZWlnblJlbGF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudEZpZWxkTmFtZSA9IHRhcmdldENvbHVtbnMuZm9yZWlnblJlbGF0aW9ucy5maW5kKCBmID0+IGYudGFyZ2V0VGFibGUgPT09IHN0b3JlLmVudGl0eVNjaGVtYS5uYW1lKS5zb3VyY2VGaWVsZE5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXMuZGF0YVtwYXJlbnRGaWVsZE5hbWVdID0gcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50W2tdID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkUGFyYW1zLm9ubHlPbmxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkUGFyYW1zLmlzQ2FzY2FkaW5nU3RvcHBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFBhcmFtcy5oYXNCbG9iID0gdGhpcy5oYXNCbG9iKGNoaWxkU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXMudXJsID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaW1hcnlLZXlWYWx1ZSA9IGNoaWxkU3RvcmUuZ2V0VmFsdWUoY2hpbGRQYXJhbXMuZGF0YSwgY2hpbGRTdG9yZS5wcmltYXJ5S2V5RmllbGQuZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmltYXJ5S2V5VmFsdWUgPyBjaGlsZFN0b3JlLmdldChwcmltYXJ5S2V5VmFsdWUpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbihvYmplY3QgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wZXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBjaGlsZFBhcmFtcy5oYXNCbG9iID8gJ3VwZGF0ZU11bHRpUGFydFRhYmxlRGF0YScgOiAndXBkYXRlVGFibGVEYXRhJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gY2hpbGRQYXJhbXMuaGFzQmxvYiA/ICdpbnNlcnRNdWx0aVBhcnRUYWJsZURhdGEnIDogJ2luc2VydFRhYmxlRGF0YSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vbmxpbmVEQlNlcnZpY2Vbb3BlcmF0aW9uXShjaGlsZFBhcmFtcykudG9Qcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkT2JqZWN0UHJvbWlzZXMucHVzaChjaGlsZFByb21pc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGNoaWxkT2JqZWN0UHJvbWlzZXMpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBjYXNjYWRlOiAoKSA9PiBQcm9taXNlLmFsbChyZXN1bHQubWFwKGZuID0+IGZuKCkpKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS12YXJpYWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy91dGlscy9saXZlLXZhcmlhYmxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBdUIsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU9oRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxHLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztRQUNsQixNQUFNLEVBQUcsaUJBQWlCO1FBQzFCLE1BQU0sRUFBRyxRQUFRO0tBQ3BCLEVBQUU7UUFDQyxNQUFNLEVBQUcsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRyxRQUFRO0tBQ3BCLEVBQUU7UUFDQyxNQUFNLEVBQUcsaUJBQWlCO1FBQzFCLE1BQU0sRUFBRyxRQUFRO0tBQ3BCLEVBQUU7UUFDQyxNQUFNLEVBQUcsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRyxRQUFRO0tBQ3BCLEVBQUU7UUFDQyxNQUFNLEVBQUcsaUJBQWlCO1FBQzFCLE1BQU0sRUFBRyxRQUFRO0tBQ3BCLEVBQUU7UUFDQyxNQUFNLEVBQUcsZUFBZTtRQUN4QixNQUFNLEVBQUcsTUFBTTtRQUNmLGNBQWMsRUFBRSxJQUFJO0tBQ3ZCLEVBQUU7UUFDQyxNQUFNLEVBQUcsaUJBQWlCO1FBQzFCLE1BQU0sRUFBRyxNQUFNO1FBQ2YsY0FBYyxFQUFFLElBQUk7S0FDdkIsRUFBRTtRQUNDLE1BQU0sRUFBRywwQkFBMEI7UUFDbkMsTUFBTSxFQUFHLE1BQU07UUFDZixjQUFjLEVBQUUsSUFBSTtLQUN2QixFQUFFO1FBQ0MsTUFBTSxFQUFHLHlCQUF5QjtRQUNsQyxNQUFNLEVBQUcsTUFBTTtRQUNmLGNBQWMsRUFBRSxLQUFLO0tBQ3hCLENBQUMsQ0FBQztBQUVQLElBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0FBRW5DLE1BQU0sT0FBTyw0QkFBNEI7SUFJckMsWUFDWSxnQkFBa0MsRUFDbEMsV0FBZ0MsRUFDaEMsd0JBQWtELEVBQ2xELGNBQThCLEVBQzlCLGdCQUFnQztRQUpoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBUHBDLG9CQUFlLEdBQUcsU0FBUyxDQUFDO0lBUWpDLENBQUM7SUFFRyxHQUFHO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDMUIsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7WUFDNUQsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQU8sRUFBRTtvQkFDL0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ25DLE1BQU0sR0FBRyxFQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFDLENBQUM7b0JBQ2xDLENBQUM7b0JBQ0QsaUhBQWlIO29CQUNqSCxxSUFBcUk7b0JBQ3JJLDhCQUE4QjtvQkFDOUIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQztvQkFDM0UsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ2hHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNyRSxDQUFDO29CQUNELHFFQUFxRTtvQkFDckUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDO3lCQUNoSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTt3QkFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7NEJBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUMvRCxDQUFDOzZCQUFNLENBQUM7NEJBQ0osSUFBSSxRQUFRLENBQUM7NEJBQ2IsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQ0FDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0I7b0NBQzFCLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxpQkFBaUI7MkNBQzlCLFNBQVMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUMsRUFBRSxDQUFDO29DQUMvQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0NBQ2pFLENBQUM7NEJBQ0wsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQ0FDVCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO29DQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztnQ0FDMUUsQ0FBQyxDQUFDLENBQUM7NEJBQ1AsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0NBQ3ZCLElBQUksUUFBUSxFQUFFLENBQUM7b0NBQ1gsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3Q0FDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTs0Q0FDdEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3Q0FDeEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFOzRDQUNYLHVDQUF1Qzs0Q0FDdkMsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dEQUM1QixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzs0Q0FDekIsQ0FBQzs0Q0FDRCxPQUFPLFFBQVEsQ0FBQzt3Q0FDcEIsQ0FBQyxDQUFDLENBQUM7b0NBQ1AsQ0FBQyxDQUFDLENBQUM7Z0NBQ1AsQ0FBQztnQ0FDRCxPQUFPLFFBQVEsQ0FBQzs0QkFDcEIsQ0FBQyxDQUFDLENBQUM7d0JBQ1AsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLENBQUMsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsd0RBQXdEO0lBQ2hELE9BQU8sQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUNuRCxTQUFTLEVBQUcsTUFBTTtTQUNyQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWU7UUFDcEYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDckQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixvQkFBb0I7b0JBQ3BCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUN6QixNQUFNLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQztvQkFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO3lCQUN0RSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsR0FBRyxFQUFDLElBQUksRUFBRyxRQUFRLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFDLENBQUM7WUFDMUQsU0FBUyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyQyxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU07UUFDakQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM5RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2xELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO2dDQUN0RCxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7NEJBQ3pDLENBQUM7aUNBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dDQUNyQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUN2QixNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0NBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7b0NBQ3RELGVBQWUsRUFBRSxLQUFLO2lDQUN6QixDQUFDLENBQUM7NEJBQ1AsQ0FBQztpQ0FBTSxDQUFDO2dDQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDOUQsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25CLENBQUM7b0JBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixDQUFDO1lBQ0wsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxNQUFNO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksTUFBa0IsRUFDbEIsZUFBb0MsRUFDcEMsV0FBVyxDQUFDO2dCQUNoQixtREFBbUQ7Z0JBQ25ELElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ3pDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzs0QkFDckMsZUFBZSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUM3RSxDQUFDO3dCQUNELE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQztvQkFDN0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNULFdBQVcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2hDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztvQkFDdEQsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUMzQixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDekcsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7NEJBQ2xELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDOzRCQUM3SCxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDL0MsQ0FBQzt3QkFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO3dCQUNqQixXQUFXLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQzt3QkFDL0IsV0FBVyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQzt3QkFDdEMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUMvQyxXQUFXLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQzt3QkFDckIsT0FBTyxHQUFHLEVBQUU7NEJBQ1IsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQ0FDM0IsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7Z0NBQ3BHLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7NEJBQ3BFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQ0FDYixJQUFJLFNBQVMsQ0FBQztnQ0FDZCxJQUFJLE1BQU0sRUFBRSxDQUFDO29DQUNULFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7Z0NBQ3JGLENBQUM7cUNBQU0sQ0FBQztvQ0FDSixTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO2dDQUNyRixDQUFDO2dDQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDcEUsQ0FBQyxDQUFDLENBQUM7d0JBQ1gsQ0FBQyxDQUFDO29CQUNOLENBQUMsQ0FBQyxDQUFDO29CQUNILG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsRCxPQUFPO29CQUNILE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUNyRCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTFZTZXJ2aWNlIH0gZnJvbSAnQHdhdmVtYWtlci92YXJpYWJsZXMnO1xuXG5pbXBvcnQgeyBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0B3bS9tb2JpbGUvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEh0dHBTZXJ2aWNlLCBub29wLCB0cmlnZ2VyRm4gfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IENvbHVtbkluZm8sIEZvcmVpZ25SZWxhdGlvbkluZm8gfSBmcm9tICcuLi9tb2RlbHMvY29uZmlnJztcbmltcG9ydCB7IExvY2FsREJTdG9yZSB9IGZyb20gJy4uL21vZGVscy9sb2NhbC1kYi1zdG9yZSc7XG5pbXBvcnQgeyBDaGFuZ2VMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2hhbmdlLWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvY2FsLWRiLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbERiU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvY2FsLWRiLnNlcnZpY2UnO1xuaW1wb3J0IHsgV01fTE9DQUxfT0ZGTElORV9DQUxMIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge2Nsb25lLCBjbG9uZURlZXAsIGV4dGVuZCwgZmlsdGVyLCBmaW5kLCBmb3JFYWNoLCBnZXQsIGlzQXJyYXksIGlzT2JqZWN0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IGFwaUNvbmZpZ3VyYXRpb24gPSBbe1xuICAgICAgICAnbmFtZScgOiAnaW5zZXJ0VGFibGVEYXRhJyxcbiAgICAgICAgJ3R5cGUnIDogJ0lOU0VSVCdcbiAgICB9LCB7XG4gICAgICAgICduYW1lJyA6ICdpbnNlcnRNdWx0aVBhcnRUYWJsZURhdGEnLFxuICAgICAgICAndHlwZScgOiAnSU5TRVJUJ1xuICAgIH0sIHtcbiAgICAgICAgJ25hbWUnIDogJ3VwZGF0ZVRhYmxlRGF0YScsXG4gICAgICAgICd0eXBlJyA6ICdVUERBVEUnXG4gICAgfSwge1xuICAgICAgICAnbmFtZScgOiAndXBkYXRlTXVsdGlQYXJ0VGFibGVEYXRhJyxcbiAgICAgICAgJ3R5cGUnIDogJ1VQREFURSdcbiAgICB9LCB7XG4gICAgICAgICduYW1lJyA6ICdkZWxldGVUYWJsZURhdGEnLFxuICAgICAgICAndHlwZScgOiAnREVMRVRFJ1xuICAgIH0sIHtcbiAgICAgICAgJ25hbWUnIDogJ3JlYWRUYWJsZURhdGEnLFxuICAgICAgICAndHlwZScgOiAnUkVBRCcsXG4gICAgICAgICdzYXZlUmVzcG9uc2UnOiB0cnVlXG4gICAgfSwge1xuICAgICAgICAnbmFtZScgOiAnc2VhcmNoVGFibGVEYXRhJyxcbiAgICAgICAgJ3R5cGUnIDogJ1JFQUQnLFxuICAgICAgICAnc2F2ZVJlc3BvbnNlJzogdHJ1ZVxuICAgIH0sIHtcbiAgICAgICAgJ25hbWUnIDogJ3NlYXJjaFRhYmxlRGF0YVdpdGhRdWVyeScsXG4gICAgICAgICd0eXBlJyA6ICdSRUFEJyxcbiAgICAgICAgJ3NhdmVSZXNwb25zZSc6IHRydWVcbiAgICB9LCB7XG4gICAgICAgICduYW1lJyA6ICdnZXREaXN0aW5jdERhdGFCeUZpZWxkcycsXG4gICAgICAgICd0eXBlJyA6ICdSRUFEJyxcbiAgICAgICAgJ3NhdmVSZXNwb25zZSc6IGZhbHNlXG4gICAgfV07XG5cbmxldCBpc09mZmxpbmVCZWhhdmlvckFkZGVkID0gZmFsc2U7XG5cbmV4cG9ydCBjbGFzcyBMaXZlVmFyaWFibGVPZmZsaW5lQmVoYXZpb3VyIHtcblxuICAgIHByaXZhdGUgb25saW5lREJTZXJ2aWNlID0gTFZTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2hhbmdlTG9nU2VydmljZTogQ2hhbmdlTG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwU2VydmljZTogQWJzdHJhY3RIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2NhbERCTWFuYWdlbWVudFNlcnZpY2U6IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgb2ZmbGluZURCU2VydmljZTogTG9jYWxEYlNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgYWRkICgpIHtcbiAgICAgICAgaWYgKCFpc09mZmxpbmVCZWhhdmlvckFkZGVkKSB7XG4gICAgICAgICAgICBpc09mZmxpbmVCZWhhdmlvckFkZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IG9ubGluZUhhbmRsZXIgPSB0aGlzLmh0dHBTZXJ2aWNlLnNlbmRDYWxsQXNPYnNlcnZhYmxlO1xuICAgICAgICAgICAgaWYgKG9ubGluZUhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLnNlbmRDYWxsQXNPYnNlcnZhYmxlID0gKHJlcVBhcmFtcywgcGFyYW1zKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMgJiYgZ2V0KHJlcVBhcmFtcywgJ3VybCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSB7dXJsOiByZXFQYXJhbXMudXJsfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByZXFQYXJhbXMgd2lsbCBjb250YWluIHRoZSBmdWxsIHBhdGggb2YgaW5zZXJ0L3VwZGF0ZSBjYWxsIHdoaWNoIHdpbGwgYmUgcHJvY2Vzc2VkIGFnYWluIGluIHBhcnNlQ29uZmlnIG1ldGhvZFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgd2lsbCBiZSBhcHBlbmRlZCBhZ2FpbiB3aXRoICcvc2VydmljZXMvLi8uJyB3aGljaCB3aWxsIHJlc3VsdCBpbiBkZXBsb3llZFVybCArICcvc2VydmljZS8uLy4nICsgJy9zZXJ2aWNlLy4vLicgd2hpY2ggaXMgd3JvbmcuXG4gICAgICAgICAgICAgICAgICAgIC8vIEhlbmNlIHBhc3NpbmcgdXJsIGluIHBhcmFtc1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbG9uZWRQYXJhbXNVcmwgPSBjbG9uZShwYXJhbXMudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gZXh0ZW5kKHBhcmFtcywgcmVxUGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gZmluZChhcGlDb25maWd1cmF0aW9uLCB7bmFtZTogZ2V0KHBhcmFtcywgJ29wZXJhdGlvbicpfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCkgfHwgcGFyYW1zLm9ubHlPbmxpbmUgfHwgIW9wZXJhdGlvbiB8fCAhcGFyYW1zLmRhdGFNb2RlbE5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tKHRoaXMucmVtb3RlREJjYWxsKG9wZXJhdGlvbiwgb25saW5lSGFuZGxlciwgcGFyYW1zKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gY29udmVydGluZyBwcm9taXNlIHRvIG9ic2VydmFibGUgYXMgTFZTZXJ2aWNlIHJldHVybnMgYSBvYnNlcnZhYmxlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tKHRoaXMubG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlLmlzT3BlcmF0aW9uQWxsb3dlZChwYXJhbXMuZGF0YU1vZGVsTmFtZSwgcGFyYW1zLmVudGl0eU5hbWUsIG9wZXJhdGlvbi50eXBlKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oaXNBbGxvd2VkSW5PZmZsaW5lID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQWxsb3dlZEluT2ZmbGluZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW1vdGVEQmNhbGwob3BlcmF0aW9uLCBvbmxpbmVIYW5kbGVyLCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjYXNjYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMuaXNDYXNjYWRpbmdTdG9wcGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wZXJhdGlvbi5uYW1lID09PSAnaW5zZXJ0VGFibGVEYXRhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBvcGVyYXRpb24ubmFtZSA9PT0gJ3VwZGF0ZVRhYmxlRGF0YScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJlcGFyZVRvQ2FzY2FkZShwYXJhbXMpLnRoZW4oYyA9PiBjYXNjYWRlciA9IGMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbERCY2FsbChvcGVyYXRpb24sIHBhcmFtcywgcmVzb2x2ZSwgcmVqZWN0LCBjbG9uZWRQYXJhbXNVcmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FzY2FkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FzY2FkZXIuY2FzY2FkZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlLnJlZnJlc2gocmVzcG9uc2UuYm9keSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkYXRhIGluY2x1ZGVzIHBhcmVudCBhbmQgY2hpbGQgZGF0YS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5ib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYm9keSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdG9yZShwYXJhbXM6IGFueSk6IFByb21pc2U8TG9jYWxEQlN0b3JlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShwYXJhbXMuZGF0YU1vZGVsTmFtZSwgcGFyYW1zLmVudGl0eU5hbWUpO1xuICAgIH1cblxuICAgIC8vIHNldCBoYXNCbG9iIGZsYWcgb24gcGFyYW1zIHdoZW4gYmxvYiBmaWVsZCBpcyBwcmVzZW50XG4gICAgcHJpdmF0ZSBoYXNCbG9iKHN0b3JlKSB7XG4gICAgICAgIGNvbnN0IGJsb2JDb2x1bW5zID0gZmlsdGVyKHN0b3JlLmVudGl0eVNjaGVtYS5jb2x1bW5zLCB7XG4gICAgICAgICAgICAnc3FsVHlwZScgOiAnYmxvYidcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIWJsb2JDb2x1bW5zLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIER1cmluZyBvZmZsaW5lLCBMb2NhbERCU2VydmljZSB3aWxsIGFuc3dlciB0byBhbGwgdGhlIGNhbGxzLiBBbGwgZGF0YSBtb2RpZmljYXRpb25zIHdpbGwgYmUgcmVjb3JkZWRcbiAgICAgKiBhbmQgd2lsbCBiZSByZXBvcnRlZCB0byBEYXRhYmFzZVNlcnZpY2Ugd2hlbiBkZXZpY2UgZ29lcyBvbmxpbmUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBsb2NhbERCY2FsbChvcGVyYXRpb24sIHBhcmFtcywgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2ssIGNsb25lZFBhcmFtc1VybCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZmxpbmVEQlNlcnZpY2Vbb3BlcmF0aW9uLm5hbWVdKHBhcmFtcywgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ1JFQUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZCB0byBjaGFuZ2UgbG9nXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcy5vbmx5T25saW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnVybCA9IGNsb25lZFBhcmFtc1VybDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlTG9nU2VydmljZS5hZGQoJ0RhdGFiYXNlU2VydmljZScsIG9wZXJhdGlvbi5uYW1lLCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHJlc3BvbnNlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICByZXNwb25zZSA9IHtib2R5IDogcmVzcG9uc2UsIHR5cGU6IFdNX0xPQ0FMX09GRkxJTkVfQ0FMTH07XG4gICAgICAgICAgICB0cmlnZ2VyRm4oc3VjY2Vzc0NhbGxiYWNrLCByZXNwb25zZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0sIGZhaWx1cmVDYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBEdXJpbmcgb25saW5lLCBhbGwgcmVhZCBvcGVyYXRpb25zIGRhdGEgd2lsbCBiZSBwdXNoZWQgdG8gb2ZmbGluZSBkYXRhYmFzZS4gU2ltaWxhcmx5LCBVcGRhdGUgYW5kIERlbGV0ZVxuICAgICAqIG9wZXJhdGlvbnMgYXJlIHN5bmNlZCB3aXRoIHRoZSBvZmZsaW5lIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVtb3RlREJjYWxsKG9wZXJhdGlvbiwgb25saW5lSGFuZGxlciwgcGFyYW1zKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIG9ubGluZUhhbmRsZXIuY2FsbCh0aGlzLmh0dHBTZXJ2aWNlLCBwYXJhbXMpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMuc2tpcExvY2FsREIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub2ZmbGluZURCU2VydmljZS5nZXRTdG9yZShwYXJhbXMpLnRoZW4oKHN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi50eXBlID09PSAnUkVBRCcgJiYgb3BlcmF0aW9uLnNhdmVSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZS5zYXZlQWxsKHJlc3BvbnNlLmJvZHkuY29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ0lOU0VSVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gY2xvbmUocGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmRhdGEgPSBjbG9uZShyZXNwb25zZS5ib2R5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vZmZsaW5lREJTZXJ2aWNlW29wZXJhdGlvbi5uYW1lXShwYXJhbXMsIG5vb3AsIG5vb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0UHJpbWFyeUtleTogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vZmZsaW5lREJTZXJ2aWNlW29wZXJhdGlvbi5uYW1lXShwYXJhbXMsIG5vb3AsIG5vb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKG5vb3ApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBvdXQgdGhlIG5lc3RlZCBvYmplY3RzIHRvIHNhdmUgYW5kIHByZXBhcmVzIGEgY2xvbmVkIHBhcmFtcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVUb0Nhc2NhZGUocGFyYW1zKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RvcmUocGFyYW1zKS50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkT2JqZWN0UHJvbWlzZXMgPSBbXTtcbiAgICAgICAgICAgIGZvckVhY2gocGFyYW1zLmRhdGEsICh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbHVtbjogQ29sdW1uSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgZm9yZWlnblJlbGF0aW9uOiBGb3JlaWduUmVsYXRpb25JbmZvLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZFBhcmFtcztcbiAgICAgICAgICAgICAgICAvLyBOT1RFOiBTYXZlIG9ubHkgb25lLXRvLW9uZSByZWxhdGlvbnMgZm9yIGNhc2NhZGVcbiAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3QodikgJiYgIWlzQXJyYXkodikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gc3RvcmUuZW50aXR5U2NoZW1hLmNvbHVtbnMuZmluZChjID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLnByaW1hcnlLZXkgJiYgYy5mb3JlaWduUmVsYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWlnblJlbGF0aW9uID0gYy5mb3JlaWduUmVsYXRpb25zLmZpbmQoIGYgPT4gZi5zb3VyY2VGaWVsZE5hbWUgPT09IGspO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEhZm9yZWlnblJlbGF0aW9uO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFBhcmFtcyA9IGNsb25lRGVlcChwYXJhbXMpO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFBhcmFtcy5lbnRpdHlOYW1lID0gZm9yZWlnblJlbGF0aW9uLnRhcmdldEVudGl0eTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXMuZGF0YSA9IHY7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkUHJvbWlzZSA9IHRoaXMuZ2V0U3RvcmUoY2hpbGRQYXJhbXMpLnRoZW4oY2hpbGRTdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBwYXJhbXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbHVtbnMgPSBjaGlsZFN0b3JlLmVudGl0eVNjaGVtYS5jb2x1bW5zLmZpbmQoYyA9PiBjLm5hbWUgPT09IGZvcmVpZ25SZWxhdGlvbi50YXJnZXRDb2x1bW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldENvbHVtbnMgJiYgdGFyZ2V0Q29sdW1ucy5mb3JlaWduUmVsYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50RmllbGROYW1lID0gdGFyZ2V0Q29sdW1ucy5mb3JlaWduUmVsYXRpb25zLmZpbmQoIGYgPT4gZi50YXJnZXRUYWJsZSA9PT0gc3RvcmUuZW50aXR5U2NoZW1hLm5hbWUpLnNvdXJjZUZpZWxkTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFBhcmFtcy5kYXRhW3BhcmVudEZpZWxkTmFtZV0gPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRba10gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXMub25seU9ubGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRQYXJhbXMuaXNDYXNjYWRpbmdTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkUGFyYW1zLmhhc0Jsb2IgPSB0aGlzLmhhc0Jsb2IoY2hpbGRTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFBhcmFtcy51cmwgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeUtleVZhbHVlID0gY2hpbGRTdG9yZS5nZXRWYWx1ZShjaGlsZFBhcmFtcy5kYXRhLCBjaGlsZFN0b3JlLnByaW1hcnlLZXlGaWVsZC5maWVsZE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1hcnlLZXlWYWx1ZSA/IGNoaWxkU3RvcmUuZ2V0KHByaW1hcnlLZXlWYWx1ZSkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKG9iamVjdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3BlcmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IGNoaWxkUGFyYW1zLmhhc0Jsb2IgPyAndXBkYXRlTXVsdGlQYXJ0VGFibGVEYXRhJyA6ICd1cGRhdGVUYWJsZURhdGEnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBjaGlsZFBhcmFtcy5oYXNCbG9iID8gJ2luc2VydE11bHRpUGFydFRhYmxlRGF0YScgOiAnaW5zZXJ0VGFibGVEYXRhJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9ubGluZURCU2VydmljZVtvcGVyYXRpb25dKGNoaWxkUGFyYW1zKS50b1Byb21pc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRPYmplY3RQcm9taXNlcy5wdXNoKGNoaWxkUHJvbWlzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoY2hpbGRPYmplY3RQcm9taXNlcykudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2NhZGU6ICgpID0+IFByb21pc2UuYWxsKHJlc3VsdC5tYXAoZm4gPT4gZm4oKSkpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { from } from 'rxjs';
|
|
2
2
|
import { WM_LOCAL_OFFLINE_CALL } from './utils';
|
|
3
|
+
import { extend, get, isEmpty, trim } from "lodash-es";
|
|
3
4
|
const NUMBER_REGEX = /^\d+(\.\d+)?$/;
|
|
4
5
|
let isOfflineBehaviourAdded = false;
|
|
5
6
|
export class NamedQueryExecutionOfflineBehaviour {
|
|
@@ -16,7 +17,7 @@ export class NamedQueryExecutionOfflineBehaviour {
|
|
|
16
17
|
isOfflineBehaviourAdded = true;
|
|
17
18
|
const orig = this.httpService.sendCallAsObservable;
|
|
18
19
|
this.httpService.sendCallAsObservable = (reqParams, params) => {
|
|
19
|
-
if (!params &&
|
|
20
|
+
if (!params && get(reqParams, 'url')) {
|
|
20
21
|
params = { url: reqParams.url };
|
|
21
22
|
}
|
|
22
23
|
if (!this.networkService.isConnected() && params.url.indexOf('/queryExecutor/') > 0) {
|
|
@@ -28,7 +29,7 @@ export class NamedQueryExecutionOfflineBehaviour {
|
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
executeLocally(params) {
|
|
31
|
-
const url = params.url, hasUrlParams = url.indexOf('?') > 0, dbName = this.substring(url, 'services/', '/queryExecutor'), queryName = this.substring(url, 'queries/', hasUrlParams ? '?' : undefined), urlParams = hasUrlParams ? this.getHttpParamMap(this.substring(url, '?', undefined)) : {}, dataParams = this.getHttpParamMap(params.dataParams), queryParams =
|
|
32
|
+
const url = params.url, hasUrlParams = url.indexOf('?') > 0, dbName = this.substring(url, 'services/', '/queryExecutor'), queryName = this.substring(url, 'queries/', hasUrlParams ? '?' : undefined), urlParams = hasUrlParams ? this.getHttpParamMap(this.substring(url, '?', undefined)) : {}, dataParams = this.getHttpParamMap(params.dataParams), queryParams = extend(urlParams, dataParams);
|
|
32
33
|
return this.localDBManagementService.executeNamedQuery(dbName, queryName, queryParams)
|
|
33
34
|
.then(result => {
|
|
34
35
|
const rows = result.rows;
|
|
@@ -67,7 +68,7 @@ export class NamedQueryExecutionOfflineBehaviour {
|
|
|
67
68
|
str = decodeURIComponent(str);
|
|
68
69
|
str.split('&').forEach(c => {
|
|
69
70
|
const csplits = c.split('=');
|
|
70
|
-
if (
|
|
71
|
+
if (isEmpty(trim(csplits[1])) || !NUMBER_REGEX.test(csplits[1])) {
|
|
71
72
|
result[csplits[0]] = csplits[1];
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
@@ -78,4 +79,4 @@ export class NamedQueryExecutionOfflineBehaviour {
|
|
|
78
79
|
return result;
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXhlY3V0b3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2JpbGUvb2ZmbGluZS9zcmMvdXRpbHMvcXVlcnktZXhlY3V0b3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU94QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHaEQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBQ3JDLElBQUksdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLE1BQU0sT0FBTyxtQ0FBbUM7SUFFNUMsWUFDWSxnQkFBa0MsRUFDbEMsV0FBZ0MsRUFDaEMsd0JBQWtELEVBQ2xELGNBQThCO1FBSDlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRzFDLENBQUM7SUFFTSxHQUFHO1FBQ04sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDWCxDQUFDO1FBQ0QsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLFNBQWMsRUFBRSxNQUFZLEVBQW1CLEVBQUU7WUFDdEYsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLEdBQUcsRUFBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxD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TUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxlQUFlLENBQUMsR0FBVztRQUMvQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEh0dHBTZXJ2aWNlIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgTmV0d29ya1NlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuXG5pbXBvcnQgeyBDaGFuZ2VMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2hhbmdlLWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvY2FsLWRiLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBXTV9MT0NBTF9PRkZMSU5FX0NBTEwgfSBmcm9tICcuL3V0aWxzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuY29uc3QgTlVNQkVSX1JFR0VYID0gL15cXGQrKFxcLlxcZCspPyQvO1xubGV0IGlzT2ZmbGluZUJlaGF2aW91ckFkZGVkID0gZmFsc2U7XG5leHBvcnQgY2xhc3MgTmFtZWRRdWVyeUV4ZWN1dGlvbk9mZmxpbmVCZWhhdmlvdXIge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2hhbmdlTG9nU2VydmljZTogQ2hhbmdlTG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwU2VydmljZTogQWJzdHJhY3RIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2NhbERCTWFuYWdlbWVudFNlcnZpY2U6IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2VcbiAgICApIHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBhZGQgKCkge1xuICAgICAgICBpZiAoaXNPZmZsaW5lQmVoYXZpb3VyQWRkZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpc09mZmxpbmVCZWhhdmlvdXJBZGRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IG9yaWcgPSB0aGlzLmh0dHBTZXJ2aWNlLnNlbmRDYWxsQXNPYnNlcnZhYmxlO1xuICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLnNlbmRDYWxsQXNPYnNlcnZhYmxlID0gKHJlcVBhcmFtczogYW55LCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgICAgICAgICAgaWYgKCFwYXJhbXMgJiYgXy5nZXQocmVxUGFyYW1zLCAndXJsJykpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSB7dXJsOiByZXFQYXJhbXMudXJsfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5uZXR3b3JrU2VydmljZS5pc0Nvbm5lY3RlZCgpICYmIHBhcmFtcy51cmwuaW5kZXhPZignL3F1ZXJ5RXhlY3V0b3IvJykgPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyb20odGhpcy5leGVjdXRlTG9jYWxseShwYXJhbXMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWcuY2FsbCh0aGlzLmh0dHBTZXJ2aWNlLCByZXFQYXJhbXMsIHBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjdXRlTG9jYWxseShwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHBhcmFtcy51cmwsXG4gICAgICAgICAgICBoYXNVcmxQYXJhbXMgPSB1cmwuaW5kZXhPZignPycpID4gMCxcbiAgICAgICAgICAgIGRiTmFtZSA9IHRoaXMuc3Vic3RyaW5nKHVybCwgJ3NlcnZpY2VzLycsICcvcXVlcnlFeGVjdXRvcicpLFxuICAgICAgICAgICAgcXVlcnlOYW1lID0gdGhpcy5zdWJzdHJpbmcodXJsLCAncXVlcmllcy8nLCBoYXNVcmxQYXJhbXMgPyAnPycgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgdXJsUGFyYW1zID0gaGFzVXJsUGFyYW1zID8gdGhpcy5nZXRIdHRwUGFyYW1NYXAodGhpcy5zdWJzdHJpbmcodXJsLCAnPycsIHVuZGVmaW5lZCkpIDoge30sXG4gICAgICAgICAgICBkYXRhUGFyYW1zID0gdGhpcy5nZXRIdHRwUGFyYW1NYXAocGFyYW1zLmRhdGFQYXJhbXMpLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSBfLmV4dGVuZCh1cmxQYXJhbXMsIGRhdGFQYXJhbXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuZXhlY3V0ZU5hbWVkUXVlcnkoZGJOYW1lLCBxdWVyeU5hbWUsIHF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gcmVzdWx0LnJvd3M7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5yb3dzQWZmZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlTG9nU2VydmljZS5hZGQoJ1dlYlNlcnZpY2UnLCAnaW52b2tlSmF2YVNlcnZpY2UnLCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiByZXN1bHQucm93c0FmZmVjdGVkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogV01fTE9DQUxfT0ZGTElORV9DQUxMLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGFnZXM6IHJvd3MgJiYgcm93cy5sZW5ndGggPiAwID8gMSA6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxFbGVtZW50czogcm93cy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkVsZW1lbnRzOiByb3dzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IHBhcmFtcy5zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiByb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzdHJpbmcoc291cmNlOiBzdHJpbmcsIHN0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gc291cmNlLmluZGV4T2Yoc3RhcnQpICsgc3RhcnQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gZW5kID8gc291cmNlLmluZGV4T2YoZW5kKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SHR0cFBhcmFtTWFwKHN0cjogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGlmIChzdHIpIHtcbiAgICAgICAgICAgIHN0ciA9IGRlY29kZVVSSUNvbXBvbmVudChzdHIpO1xuICAgICAgICAgICAgc3RyLnNwbGl0KCcmJykuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjc3BsaXRzID0gYy5zcGxpdCgnPScpO1xuICAgICAgICAgICAgICAgIGlmIChfLmlzRW1wdHkoXy50cmltKGNzcGxpdHNbMV0pKSB8fCAhTlVNQkVSX1JFR0VYLnRlc3QoY3NwbGl0c1sxXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2NzcGxpdHNbMF1dID0gY3NwbGl0c1sxXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbY3NwbGl0c1swXV0gPSBwYXJzZUludChjc3BsaXRzWzFdLCAxMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXhlY3V0b3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2JpbGUvb2ZmbGluZS9zcmMvdXRpbHMvcXVlcnktZXhlY3V0b3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU94QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVyRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7QUFDckMsSUFBSSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFDcEMsTUFBTSxPQUFPLG1DQUFtQztJQUU1QyxZQUNZLGdCQUFrQyxFQUNsQyxXQUFnQyxFQUNoQyx3QkFBa0QsRUFDbEQsY0FBOEI7UUFIOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFHMUMsQ0FBQztJQUVNLEdBQUc7UUFDTixJQUFJLHVCQUF1QixFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFDRCx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixHQUFHLENBQUMsU0FBYyxFQUFFLE1BQVksRUFBbUIsRUFBRTtZQUN0RixJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxHQUFHLEVBQUMsR0FBRyxF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Q0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3JELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxlQUFlLENBQUMsR0FBVztRQUMvQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzlELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RIdHRwU2VydmljZSB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnQHdtL21vYmlsZS9jb3JlJztcblxuaW1wb3J0IHsgQ2hhbmdlTG9nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NoYW5nZS1sb2cuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2NhbC1kYi1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgV01fTE9DQUxfT0ZGTElORV9DQUxMIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge2V4dGVuZCwgZ2V0LCBpc0VtcHR5LCB0cmltfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IE5VTUJFUl9SRUdFWCA9IC9eXFxkKyhcXC5cXGQrKT8kLztcbmxldCBpc09mZmxpbmVCZWhhdmlvdXJBZGRlZCA9IGZhbHNlO1xuZXhwb3J0IGNsYXNzIE5hbWVkUXVlcnlFeGVjdXRpb25PZmZsaW5lQmVoYXZpb3VyIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNoYW5nZUxvZ1NlcnZpY2U6IENoYW5nZUxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEFic3RyYWN0SHR0cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlOiBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmV0d29ya1NlcnZpY2U6IE5ldHdvcmtTZXJ2aWNlXG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkICgpIHtcbiAgICAgICAgaWYgKGlzT2ZmbGluZUJlaGF2aW91ckFkZGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaXNPZmZsaW5lQmVoYXZpb3VyQWRkZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBvcmlnID0gdGhpcy5odHRwU2VydmljZS5zZW5kQ2FsbEFzT2JzZXJ2YWJsZTtcbiAgICAgICAgdGhpcy5odHRwU2VydmljZS5zZW5kQ2FsbEFzT2JzZXJ2YWJsZSA9IChyZXFQYXJhbXM6IGFueSwgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcbiAgICAgICAgICAgIGlmICghcGFyYW1zICYmIGdldChyZXFQYXJhbXMsICd1cmwnKSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHt1cmw6IHJlcVBhcmFtcy51cmx9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCkgJiYgcGFyYW1zLnVybC5pbmRleE9mKCcvcXVlcnlFeGVjdXRvci8nKSA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmV4ZWN1dGVMb2NhbGx5KHBhcmFtcykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZy5jYWxsKHRoaXMuaHR0cFNlcnZpY2UsIHJlcVBhcmFtcywgcGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4ZWN1dGVMb2NhbGx5KHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgdXJsID0gcGFyYW1zLnVybCxcbiAgICAgICAgICAgIGhhc1VybFBhcmFtcyA9IHVybC5pbmRleE9mKCc/JykgPiAwLFxuICAgICAgICAgICAgZGJOYW1lID0gdGhpcy5zdWJzdHJpbmcodXJsLCAnc2VydmljZXMvJywgJy9xdWVyeUV4ZWN1dG9yJyksXG4gICAgICAgICAgICBxdWVyeU5hbWUgPSB0aGlzLnN1YnN0cmluZyh1cmwsICdxdWVyaWVzLycsIGhhc1VybFBhcmFtcyA/ICc/JyA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB1cmxQYXJhbXMgPSBoYXNVcmxQYXJhbXMgPyB0aGlzLmdldEh0dHBQYXJhbU1hcCh0aGlzLnN1YnN0cmluZyh1cmwsICc/JywgdW5kZWZpbmVkKSkgOiB7fSxcbiAgICAgICAgICAgIGRhdGFQYXJhbXMgPSB0aGlzLmdldEh0dHBQYXJhbU1hcChwYXJhbXMuZGF0YVBhcmFtcyksXG4gICAgICAgICAgICBxdWVyeVBhcmFtcyA9IGV4dGVuZCh1cmxQYXJhbXMsIGRhdGFQYXJhbXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuZXhlY3V0ZU5hbWVkUXVlcnkoZGJOYW1lLCBxdWVyeU5hbWUsIHF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gcmVzdWx0LnJvd3M7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5yb3dzQWZmZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlTG9nU2VydmljZS5hZGQoJ1dlYlNlcnZpY2UnLCAnaW52b2tlSmF2YVNlcnZpY2UnLCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiByZXN1bHQucm93c0FmZmVjdGVkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogV01fTE9DQUxfT0ZGTElORV9DQUxMLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGFnZXM6IHJvd3MgJiYgcm93cy5sZW5ndGggPiAwID8gMSA6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxFbGVtZW50czogcm93cy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkVsZW1lbnRzOiByb3dzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IHBhcmFtcy5zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiByb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzdHJpbmcoc291cmNlOiBzdHJpbmcsIHN0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gc291cmNlLmluZGV4T2Yoc3RhcnQpICsgc3RhcnQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gZW5kID8gc291cmNlLmluZGV4T2YoZW5kKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SHR0cFBhcmFtTWFwKHN0cjogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGlmIChzdHIpIHtcbiAgICAgICAgICAgIHN0ciA9IGRlY29kZVVSSUNvbXBvbmVudChzdHIpO1xuICAgICAgICAgICAgc3RyLnNwbGl0KCcmJykuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjc3BsaXRzID0gYy5zcGxpdCgnPScpO1xuICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KHRyaW0oY3NwbGl0c1sxXSkpIHx8ICFOVU1CRVJfUkVHRVgudGVzdChjc3BsaXRzWzFdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbY3NwbGl0c1swXV0gPSBjc3BsaXRzWzFdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtjc3BsaXRzWzBdXSA9IHBhcnNlSW50KGNzcGxpdHNbMV0sIDEwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { noop, triggerFn } from '@wm/core';
|
|
2
|
+
import { debounce } from "lodash-es";
|
|
2
3
|
const SECURITY_FILE = 'logged-in-user.info';
|
|
3
4
|
let isOfflineBehaviourAdded = false;
|
|
4
5
|
export class SecurityOfflineBehaviour {
|
|
@@ -8,7 +9,7 @@ export class SecurityOfflineBehaviour {
|
|
|
8
9
|
this.deviceService = deviceService;
|
|
9
10
|
this.networkService = networkService;
|
|
10
11
|
this.securityService = securityService;
|
|
11
|
-
this.saveSecurityConfigLocally =
|
|
12
|
+
this.saveSecurityConfigLocally = debounce((config) => {
|
|
12
13
|
this._saveSecurityConfigLocally(config);
|
|
13
14
|
}, 1000);
|
|
14
15
|
}
|
|
@@ -115,4 +116,4 @@ export class SecurityOfflineBehaviour {
|
|
|
115
116
|
return this.file.readAsText(folderPath, fileName).then(JSON.parse).catch(noop);
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2JpbGUvb2ZmbGluZS9zcmMvdXRpbHMvc2VjdXJpdHkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFPLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFNaEQsTUFBTSxhQUFhLEdBQUcscUJBQXFCLENBQUM7QUFHNUMsSUFBSSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFcEMsTUFBTSxPQUFPLHdCQUF3QjtJQUtqQyxZQUNZLEdBQVEsRUFDUixJQUFVLEVBQ1YsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsZUFBZ0M7UUFKaEMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNSLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRXhDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxHQUFHO1FBQ04sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDWCxDQUFDO1FBQ0QsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JEOzs7Ozs7V0FNRztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsU0FBbUIsRUFBRSxF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LEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUUsQ0FBQyxFQUFFLEdBQUcsRUFBRTtnQkFDSixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGtCQUFrQixFQUNyRSxRQUFRLEdBQUcsc0JBQXNCLENBQUM7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUTtRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2ZpbGUvbmd4JztcblxuaW1wb3J0IHsgQXBwLCBub29wLCB0cmlnZ2VyRm4gfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0B3bS9tb2JpbGUvY29yZSc7XG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5kZWNsYXJlIGNvbnN0IGNvcmRvdmE7XG5jb25zdCBTRUNVUklUWV9GSUxFID0gJ2xvZ2dlZC1pbi11c2VyLmluZm8nO1xuZGVjbGFyZSBjb25zdCByZXNvbHZlTG9jYWxGaWxlU3lzdGVtVVJMO1xuXG5sZXQgaXNPZmZsaW5lQmVoYXZpb3VyQWRkZWQgPSBmYWxzZTtcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5T2ZmbGluZUJlaGF2aW91ciB7XG5cbiAgICBwcml2YXRlIHNhdmVTZWN1cml0eUNvbmZpZ0xvY2FsbHk7XG4gICAgcHJpdmF0ZSBzZWN1cml0eUNvbmZpZzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIHByaXZhdGUgZmlsZTogRmlsZSxcbiAgICAgICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzZWN1cml0eVNlcnZpY2U6IFNlY3VyaXR5U2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnNhdmVTZWN1cml0eUNvbmZpZ0xvY2FsbHkgPSBfLmRlYm91bmNlKChjb25maWc6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2F2ZVNlY3VyaXR5Q29uZmlnTG9jYWxseShjb25maWcpO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICBpZiAoaXNPZmZsaW5lQmVoYXZpb3VyQWRkZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpc09mZmxpbmVCZWhhdmlvdXJBZGRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IG9yaWdMb2FkID0gdGhpcy5zZWN1cml0eVNlcnZpY2UubG9hZDtcbiAgICAgICAgY29uc3Qgb3JpZ0FwcExvZ291dCA9IHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmFwcExvZ291dDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFkZCBvZmZsaW5lIGJlaGF2aW91ciB0byBTZWN1cml0eVNlcnZpY2UuZ2V0Q29uZmlnLiBXaGVuIG9mZmxpbmUsIHRoaXMgZnVuY2F0aW9uIHJldHVybnMgc2VjdXJpdHlcbiAgICAgICAgICogY29uZmlnIG9mIGxhc3QgbG9nZ2VkLWluIHVzZXIgd2lsbCBiZSByZXR1cm5lZCwgcHJvdmlkZWQgdGhlIHVzZXIgZGlkIG5vdCBsb2dvdXQgbGFzdCB0aW1lLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0gc3VjY2Vzc0NhbGxiYWNrXG4gICAgICAgICAqIEBwYXJhbSBmYWlsdXJlQ2FsbGJhY2tcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmxvYWQgPSAoZm9yY2VGbGFnPzogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZXR3b3JrU2VydmljZS5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdMb2FkLmNhbGwodGhpcy5zZWN1cml0eVNlcnZpY2UsIGZvcmNlRmxhZykudGhlbihjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN1cml0eUNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVNlY3VyaXR5Q29uZmlnTG9jYWxseShjb25maWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnNlY3VyaXR5Q29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWRMb2NhbFNlY3VyaXR5Q29uZmlnKCkudGhlbigoY29uZmlnID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJpdHlDb25maWcgPSBjb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlY3VyaXR5U2VydmljZS5jb25maWcgPSBjb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICB9LCAoKSA9PiBvcmlnTG9hZC5jYWxsKHRoaXMuc2VjdXJpdHlDb25maWcpKS50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZW4gdXNlcnMgbG9ncyBvdXQsIGxvY2FsIGNvbmZpZyB3aWxsIGJlIHJlbW92ZWQuIElmIHRoZSB1c2VyIGlzIG9mZmxpbmUgYW5kIGxvZ3Mgb3V0LCB0aGVuIHVzZXJcbiAgICAgICAgICogd2lsbCBiZSBsb2dnZWQgb3V0IGZyb20gdGhlIGFwcCBhbmQgY29va2llcyBhcmUgaW52YWxpZGF0ZWQgd2hlbiBhcHAgZ29lcyBvbmxpbmUgbmV4dCB0aW1lLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0gc3VjY2Vzc0NhbGxiYWNrXG4gICAgICAgICAqIEBwYXJhbSBmYWlsdXJlQ2FsbGJhY2tcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmFwcExvZ291dCA9IChzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWN1cml0eUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb2dnZWRPdXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2VjdXJpdHlFbmFibGVkOiB0aGlzLnNlY3VyaXR5Q29uZmlnICYmIHRoaXMuc2VjdXJpdHlDb25maWcuc2VjdXJpdHlFbmFibGVkLFxuICAgICAgICAgICAgICAgIGxvZ2dlZE91dE9mZmxpbmU6ICF0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCksXG4gICAgICAgICAgICAgICAgbG9naW5Db25maWc6IHRoaXMuc2VjdXJpdHlDb25maWcgJiYgdGhpcy5zZWN1cml0eUNvbmZpZy5sb2dpbkNvbmZpZyxcbiAgICAgICAgICAgICAgICB1c2VySW5mbzogbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuX3NhdmVTZWN1cml0eUNvbmZpZ0xvY2FsbHkodGhpcy5zZWN1cml0eUNvbmZpZykuY2F0Y2gobm9vcCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmV0d29ya1NlcnZpY2UuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBvcmlnQXBwTG9nb3V0LmNhbGwodGhpcy5zZWN1cml0eVNlcnZpY2UsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5hc3NpZ24od2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAcGFyYW0gc3VjY2Vzc0NhbGxiYWNrXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlY3VyaXR5U2VydmljZS5pc0F1dGhlbnRpY2F0ZWQgPSBzdWNjZXNzQ2FsbGJhY2sgPT4ge1xuICAgICAgICAgICAgdHJpZ2dlckZuKHN1Y2Nlc3NDYWxsYmFjaywgdGhpcy5zZWN1cml0eUNvbmZpZy5hdXRoZW50aWNhdGVkID09PSB0cnVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXZpY2VTZXJ2aWNlLndoZW5SZWFkeSgpLnRoZW4oKCkgPT4gdGhpcy5jbGVhckxhc3RMb2dnZWRJblVzZXIoKSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgdXNlciBoYXMgY2hvc2VuIHRvIGxvZ291dCB3aGlsZSBhcHAgaXMgb2ZmbGluZSwgdGhlbiBpbnZhbGlkYXRpb24gb2YgY29va2llcyBoYXBwZW5zIHdoZW5cbiAgICAgICAgICogYXBwIGNvbWVzIG9ubGluZSBuZXh0IHRpbWUuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmFwcC5zdWJzY3JpYmUoJ29uTmV0d29ya1N0YXRlQ2hhbmdlJywgZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YS5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJMYXN0TG9nZ2VkSW5Vc2VyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NhdmVTZWN1cml0eUNvbmZpZ0xvY2FsbHkoY29uZmlnOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlLndyaXRlRmlsZShjb3Jkb3ZhLmZpbGUuZGF0YURpcmVjdG9yeSwgU0VDVVJJVFlfRklMRSwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSwgeyByZXBsYWNlIDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyTGFzdExvZ2dlZEluVXNlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZExvY2FsU2VjdXJpdHlDb25maWcoKS50aGVuKGNvbmZpZyA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5sb2dnZWRPdXRPZmZsaW5lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWN1cml0eVNlcnZpY2UuYXBwTG9nb3V0KG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5uZXR3b3JrU2VydmljZS5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWN1cml0eUNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkTG9jYWxTZWN1cml0eUNvbmZpZygpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyByZWFkaW5nIHRoZSBzZWN1cml0eSBpbmZvIGZyb20gZmlsZSBpbiBkYXRhRGlyZWN0b3J5IGJ1dCB3aGVuIHRoaXMgZmlsZSBpcyBub3QgYXZhaWxhYmxlIHRoZW4gZmV0Y2hpbmcgdGhlIGNvbmZpZyBmcm9tIHRoZSBhcHAgZGlyZWN0b3J5XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb290RGlyID0gY29yZG92YS5maWxlLmRhdGFEaXJlY3Rvcnk7XG4gICAgICAgICAgICB0aGlzLmZpbGUuY2hlY2tGaWxlKHJvb3REaXIsIFNFQ1VSSVRZX0ZJTEUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRGaWxlQXNUeHQocm9vdERpciwgU0VDVVJJVFlfRklMRSkudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlclBhdGggPSBjb3Jkb3ZhLmZpbGUuYXBwbGljYXRpb25EaXJlY3RvcnkgKyAnd3d3L21ldGFkYXRhL2FwcCcsXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gJ3NlY3VyaXR5LWNvbmZpZy5qc29uJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkRmlsZUFzVHh0KGZvbGRlclBhdGgsIGZpbGVOYW1lKS50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkRmlsZUFzVHh0KGZvbGRlclBhdGgsIGZpbGVOYW1lKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5yZWFkQXNUZXh0KGZvbGRlclBhdGgsIGZpbGVOYW1lKS50aGVuKEpTT04ucGFyc2UpLmNhdGNoKG5vb3ApO1xuICAgIH1cbn1cbiJdfQ==
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2JpbGUvb2ZmbGluZS9zcmMvdXRpbHMvc2VjdXJpdHkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFPLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUduQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQztBQUc1QyxJQUFJLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUVwQyxNQUFNLE9BQU8sd0JBQXdCO0lBS2pDLFlBQ1ksR0FBUSxFQUNSLElBQVUsRUFDVixhQUE0QixFQUM1QixjQUE4QixFQUM5QixlQUFnQztRQUpoQyxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1IsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUNWLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFeEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sR0FBRztRQUNOLElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUNELHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztRQUNyRDs7Ozs7O1dBTUc7UUFDSCxJQUFJLENBQUMsZUFBZSxD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RSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVFLENBQUMsRUFBRSxHQUFHLEVBQUU7Z0JBQ0osTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxrQkFBa0IsRUFDckUsUUFBUSxHQUFHLHNCQUFzQixDQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVE7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZSB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9maWxlL25neCc7XG5cbmltcG9ydCB7IEFwcCwgbm9vcCwgdHJpZ2dlckZuIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlU2VydmljZSwgTmV0d29ya1NlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnQHdtL3NlY3VyaXR5JztcbmltcG9ydCB7ZGVib3VuY2V9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCBjb3Jkb3ZhO1xuY29uc3QgU0VDVVJJVFlfRklMRSA9ICdsb2dnZWQtaW4tdXNlci5pbmZvJztcbmRlY2xhcmUgY29uc3QgcmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTDtcblxubGV0IGlzT2ZmbGluZUJlaGF2aW91ckFkZGVkID0gZmFsc2U7XG5cbmV4cG9ydCBjbGFzcyBTZWN1cml0eU9mZmxpbmVCZWhhdmlvdXIge1xuXG4gICAgcHJpdmF0ZSBzYXZlU2VjdXJpdHlDb25maWdMb2NhbGx5O1xuICAgIHByaXZhdGUgc2VjdXJpdHlDb25maWc6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBwcml2YXRlIGZpbGU6IEZpbGUsXG4gICAgICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2VjdXJpdHlTZXJ2aWNlOiBTZWN1cml0eVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zYXZlU2VjdXJpdHlDb25maWdMb2NhbGx5ID0gZGVib3VuY2UoKGNvbmZpZzogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zYXZlU2VjdXJpdHlDb25maWdMb2NhbGx5KGNvbmZpZyk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQoKSB7XG4gICAgICAgIGlmIChpc09mZmxpbmVCZWhhdmlvdXJBZGRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlzT2ZmbGluZUJlaGF2aW91ckFkZGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgb3JpZ0xvYWQgPSB0aGlzLnNlY3VyaXR5U2VydmljZS5sb2FkO1xuICAgICAgICBjb25zdCBvcmlnQXBwTG9nb3V0ID0gdGhpcy5zZWN1cml0eVNlcnZpY2UuYXBwTG9nb3V0O1xuICAgICAgICAvKipcbiAgICAgICAgICogQWRkIG9mZmxpbmUgYmVoYXZpb3VyIHRvIFNlY3VyaXR5U2VydmljZS5nZXRDb25maWcuIFdoZW4gb2ZmbGluZSwgdGhpcyBmdW5jYXRpb24gcmV0dXJucyBzZWN1cml0eVxuICAgICAgICAgKiBjb25maWcgb2YgbGFzdCBsb2dnZWQtaW4gdXNlciB3aWxsIGJlIHJldHVybmVkLCBwcm92aWRlZCB0aGUgdXNlciBkaWQgbm90IGxvZ291dCBsYXN0IHRpbWUuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgICAgICogQHBhcmFtIGZhaWx1cmVDYWxsYmFja1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZWN1cml0eVNlcnZpY2UubG9hZCA9IChmb3JjZUZsYWc/OiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ0xvYWQuY2FsbCh0aGlzLnNlY3VyaXR5U2VydmljZSwgZm9yY2VGbGFnKS50aGVuKGNvbmZpZyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlY3VyaXR5Q29uZmlnID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZlU2VjdXJpdHlDb25maWdMb2NhbGx5KGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRoaXMuc2VjdXJpdHlDb25maWcpO1xuICAgICAgICAgICAgICAgICAgICB9LCByZWplY3QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZExvY2FsU2VjdXJpdHlDb25maWcoKS50aGVuKChjb25maWcgPSB7fSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN1cml0eUNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25maWc7XG4gICAgICAgICAgICAgICAgICAgIH0sICgpID0+IG9yaWdMb2FkLmNhbGwodGhpcy5zZWN1cml0eUNvbmZpZykpLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogV2hlbiB1c2VycyBsb2dzIG91dCwgbG9jYWwgY29uZmlnIHdpbGwgYmUgcmVtb3ZlZC4gSWYgdGhlIHVzZXIgaXMgb2ZmbGluZSBhbmQgbG9ncyBvdXQsIHRoZW4gdXNlclxuICAgICAgICAgKiB3aWxsIGJlIGxvZ2dlZCBvdXQgZnJvbSB0aGUgYXBwIGFuZCBjb29raWVzIGFyZSBpbnZhbGlkYXRlZCB3aGVuIGFwcCBnb2VzIG9ubGluZSBuZXh0IHRpbWUuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgICAgICogQHBhcmFtIGZhaWx1cmVDYWxsYmFja1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZWN1cml0eVNlcnZpY2UuYXBwTG9nb3V0ID0gKHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlY3VyaXR5Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvZ2dlZE91dDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZWN1cml0eUVuYWJsZWQ6IHRoaXMuc2VjdXJpdHlDb25maWcgJiYgdGhpcy5zZWN1cml0eUNvbmZpZy5zZWN1cml0eUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgbG9nZ2VkT3V0T2ZmbGluZTogIXRoaXMubmV0d29ya1NlcnZpY2UuaXNDb25uZWN0ZWQoKSxcbiAgICAgICAgICAgICAgICBsb2dpbkNvbmZpZzogdGhpcy5zZWN1cml0eUNvbmZpZyAmJiB0aGlzLnNlY3VyaXR5Q29uZmlnLmxvZ2luQ29uZmlnLFxuICAgICAgICAgICAgICAgIHVzZXJJbmZvOiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fc2F2ZVNlY3VyaXR5Q29uZmlnTG9jYWxseSh0aGlzLnNlY3VyaXR5Q29uZmlnKS5jYXRjaChub29wKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZXR3b3JrU2VydmljZS5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdBcHBMb2dvdXQuY2FsbCh0aGlzLnNlY3VyaXR5U2VydmljZSwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmFzc2lnbih3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBwYXJhbSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCA9IHN1Y2Nlc3NDYWxsYmFjayA9PiB7XG4gICAgICAgICAgICB0cmlnZ2VyRm4oc3VjY2Vzc0NhbGxiYWNrLCB0aGlzLnNlY3VyaXR5Q29uZmlnLmF1dGhlbnRpY2F0ZWQgPT09IHRydWUpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRldmljZVNlcnZpY2Uud2hlblJlYWR5KCkudGhlbigoKSA9PiB0aGlzLmNsZWFyTGFzdExvZ2dlZEluVXNlcigpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSB1c2VyIGhhcyBjaG9zZW4gdG8gbG9nb3V0IHdoaWxlIGFwcCBpcyBvZmZsaW5lLCB0aGVuIGludmFsaWRhdGlvbiBvZiBjb29raWVzIGhhcHBlbnMgd2hlblxuICAgICAgICAgKiBhcHAgY29tZXMgb25saW5lIG5leHQgdGltZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYXBwLnN1YnNjcmliZSgnb25OZXR3b3JrU3RhdGVDaGFuZ2UnLCBkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckxhc3RMb2dnZWRJblVzZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2F2ZVNlY3VyaXR5Q29uZmlnTG9jYWxseShjb25maWc6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGUud3JpdGVGaWxlKGNvcmRvdmEuZmlsZS5kYXRhRGlyZWN0b3J5LCBTRUNVUklUWV9GSUxFLCBKU09OLnN0cmluZ2lmeShjb25maWcpLCB7IHJlcGxhY2UgOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJMYXN0TG9nZ2VkSW5Vc2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkTG9jYWxTZWN1cml0eUNvbmZpZygpLnRoZW4oY29uZmlnID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmxvZ2dlZE91dE9mZmxpbmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3VyaXR5U2VydmljZS5hcHBMb2dvdXQobnVsbCwgbnVsbCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3VyaXR5Q29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRMb2NhbFNlY3VyaXR5Q29uZmlnKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHJlYWRpbmcgdGhlIHNlY3VyaXR5IGluZm8gZnJvbSBmaWxlIGluIGRhdGFEaXJlY3RvcnkgYnV0IHdoZW4gdGhpcyBmaWxlIGlzIG5vdCBhdmFpbGFibGUgdGhlbiBmZXRjaGluZyB0aGUgY29uZmlnIGZyb20gdGhlIGFwcCBkaXJlY3RvcnlcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3REaXIgPSBjb3Jkb3ZhLmZpbGUuZGF0YURpcmVjdG9yeTtcbiAgICAgICAgICAgIHRoaXMuZmlsZS5jaGVja0ZpbGUocm9vdERpciwgU0VDVVJJVFlfRklMRSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEZpbGVBc1R4dChyb290RGlyLCBTRUNVUklUWV9GSUxFKS50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyUGF0aCA9IGNvcmRvdmEuZmlsZS5hcHBsaWNhdGlvbkRpcmVjdG9yeSArICd3d3cvbWV0YWRhdGEvYXBwJyxcbiAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSAnc2VjdXJpdHktY29uZmlnLmpzb24nO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRGaWxlQXNUeHQoZm9sZGVyUGF0aCwgZmlsZU5hbWUpLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRGaWxlQXNUeHQoZm9sZGVyUGF0aCwgZmlsZU5hbWUpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlLnJlYWRBc1RleHQoZm9sZGVyUGF0aCwgZmlsZU5hbWUpLnRoZW4oSlNPTi5wYXJzZSkuY2F0Y2gobm9vcCk7XG4gICAgfVxufVxuIl19
|