@acorex/platform 18.0.4 → 18.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/auth/README.md +3 -3
- package/common/README.md +3 -3
- package/common/lib/app/application.types.d.ts +10 -6
- package/common/lib/data/dexie-storage.service.d.ts +0 -1
- package/common/lib/layout/grid-layout/grid-layout.types.d.ts +1 -2
- package/common/lib/schema/widgets/lookup/lookup-widget-filter.component.d.ts +1 -1
- package/common/lib/schema/widgets/lookup/lookup-widget-view.component.d.ts +2 -1
- package/common/lib/utils/data-generator.d.ts +13 -1
- package/common/lib/utils/index.d.ts +1 -0
- package/common/lib/utils/pdf.service.d.ts +25 -0
- package/esm2022/auth/index.mjs +1 -1
- package/esm2022/auth/lib/application/application.loader.mjs +1 -1
- package/esm2022/auth/lib/application/application.types.mjs +1 -1
- package/esm2022/auth/lib/auth-registry.service.mjs +1 -1
- package/esm2022/auth/lib/auth.guard.mjs +1 -1
- package/esm2022/auth/lib/auth.module.mjs +1 -1
- package/esm2022/auth/lib/auth.strategy.mjs +1 -1
- package/esm2022/auth/lib/errors.types.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.directive.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.guard.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.loader.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.types.mjs +1 -1
- package/esm2022/auth/lib/feature/index.mjs +1 -1
- package/esm2022/auth/lib/permission/index.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.directive.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.guard.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.loader.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.types.mjs +1 -1
- package/esm2022/auth/lib/session.service.mjs +1 -1
- package/esm2022/auth/lib/session.types.mjs +1 -1
- package/esm2022/auth/lib/tenant/tenant.loader.mjs +1 -1
- package/esm2022/auth/lib/tenant/tenant.types.mjs +1 -1
- package/esm2022/auth/lib/user/user.types.mjs +1 -1
- package/esm2022/common/index.mjs +1 -1
- package/esm2022/common/lib/app/application.types.mjs +5 -1
- package/esm2022/common/lib/app/index.mjs +1 -1
- package/esm2022/common/lib/app/operators.mjs +1 -1
- package/esm2022/common/lib/common.module.mjs +1 -1
- package/esm2022/common/lib/configs/app.config.mjs +1 -1
- package/esm2022/common/lib/configs/config.types.mjs +1 -1
- package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
- package/esm2022/common/lib/data/dexie-storage.service.mjs +2 -4
- package/esm2022/common/lib/data/entity-data-provider.mjs +1 -1
- package/esm2022/common/lib/data/index.mjs +1 -1
- package/esm2022/common/lib/data/storage-service.mjs +1 -1
- package/esm2022/common/lib/errors/error-handler-registry.service.mjs +1 -1
- package/esm2022/common/lib/errors/error-handler.types.mjs +1 -1
- package/esm2022/common/lib/errors/global-error-handler.mjs +1 -1
- package/esm2022/common/lib/errors/index.mjs +1 -1
- package/esm2022/common/lib/layout/beardcrumb.type.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/index.mjs +1 -1
- package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +5 -5
- package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +1 -1
- package/esm2022/common/lib/layout/grid-layout/index.mjs +1 -1
- package/esm2022/common/lib/layout/index.mjs +1 -1
- package/esm2022/common/lib/layout/layout.service.mjs +1 -1
- package/esm2022/common/lib/layout/logo/index.mjs +1 -1
- package/esm2022/common/lib/layout/logo/logo.component.mjs +3 -3
- package/esm2022/common/lib/layout/logo/logo.types.mjs +1 -1
- package/esm2022/common/lib/layout/menu/index.mjs +1 -1
- package/esm2022/common/lib/layout/menu/menu.loader.mjs +1 -1
- package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
- package/esm2022/common/lib/layout/sticky.directive.mjs +1 -1
- package/esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.mjs +5 -5
- package/esm2022/common/lib/layout/theme/components/slots/index.mjs +1 -1
- package/esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.mjs +9 -9
- package/esm2022/common/lib/layout/theme/components/slots/theme-slot.component.mjs +16 -16
- package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/index.mjs +1 -1
- package/esm2022/common/lib/schema/component-loader.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity.class.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity.loader.mjs +1 -1
- package/esm2022/common/lib/schema/entity/index.mjs +1 -1
- package/esm2022/common/lib/schema/formats.mjs +1 -1
- package/esm2022/common/lib/schema/index.mjs +1 -1
- package/esm2022/common/lib/schema/schema-registery.service.mjs +1 -1
- package/esm2022/common/lib/schema/schema.module.mjs +1 -1
- package/esm2022/common/lib/schema/schema.types.mjs +1 -1
- package/esm2022/common/lib/schema/widget/index.mjs +1 -1
- package/esm2022/common/lib/schema/widget/widget-base.mjs +1 -1
- package/esm2022/common/lib/schema/widget/widget-column-renderer.mjs +17 -17
- package/esm2022/common/lib/schema/widget/widget-filter-renderer.mjs +13 -13
- package/esm2022/common/lib/schema/widget/widget-renderer.mjs +13 -13
- package/esm2022/common/lib/schema/widget/widget-token.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +67 -67
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-view.component.mjs +15 -15
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-column.component.mjs +31 -31
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-view.component.mjs +25 -25
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +76 -76
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +86 -86
- package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +68 -68
- package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +100 -100
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +59 -59
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-view.component.mjs +21 -21
- package/esm2022/common/lib/schema/widgets/email/email-widget-column.component.mjs +23 -23
- package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +134 -134
- package/esm2022/common/lib/schema/widgets/email/email-widget-view.component.mjs +65 -65
- package/esm2022/common/lib/schema/widgets/file/file-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/file/file-widget-edit.component.mjs +116 -116
- package/esm2022/common/lib/schema/widgets/file/file-widget-filter.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/file/file-widget-view.component.mjs +70 -70
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +125 -125
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-filter.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-types.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +109 -109
- package/esm2022/common/lib/schema/widgets/index.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +46 -29
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +85 -68
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/map/map-widget-edit.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/map/map-widget-view.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-column.component.mjs +23 -23
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-edit.component.mjs +88 -88
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-view.component.mjs +67 -67
- package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +15 -15
- package/esm2022/common/lib/schema/widgets/number/number-widget-view.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +100 -100
- package/esm2022/common/lib/schema/widgets/password/password-widget-column.component.mjs +37 -37
- package/esm2022/common/lib/schema/widgets/password/password-widget-edit.component.mjs +15 -15
- package/esm2022/common/lib/schema/widgets/password/password-widget-view.component.mjs +58 -58
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-column.component.mjs +41 -41
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +140 -140
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-view.component.mjs +69 -69
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-column.component.mjs +23 -23
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +9 -9
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-view.component.mjs +9 -9
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-column.component.mjs +17 -17
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +29 -29
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +19 -19
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-view.component.mjs +9 -9
- package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-edit.component.mjs +56 -56
- package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-view.component.mjs +17 -17
- package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +13 -13
- package/esm2022/common/lib/schema/widgets/text/text-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +88 -88
- package/esm2022/common/lib/schema/widgets/text/text-widget-view.component.mjs +21 -21
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-column.component.mjs +33 -33
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-edit.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-view.component.mjs +25 -25
- package/esm2022/common/lib/settings/index.mjs +1 -1
- package/esm2022/common/lib/settings/settings.loader.mjs +1 -1
- package/esm2022/common/lib/settings/settings.service.mjs +1 -1
- package/esm2022/common/lib/settings/settings.types.mjs +1 -1
- package/esm2022/common/lib/store/common.actions.mjs +1 -1
- package/esm2022/common/lib/store/common.effects.mjs +1 -1
- package/esm2022/common/lib/store/index.mjs +1 -1
- package/esm2022/common/lib/utils/clipboard-service.mjs +1 -1
- package/esm2022/common/lib/utils/data-generator.mjs +67 -2
- package/esm2022/common/lib/utils/index.mjs +2 -1
- package/esm2022/common/lib/utils/pdf.service.mjs +85 -0
- package/esm2022/common/lib/utils/router-util.service.mjs +1 -1
- package/esm2022/common/lib/workflows/common.workflow.mjs +1 -1
- package/esm2022/common/lib/workflows/error-handler.mjs +1 -1
- package/esm2022/common/lib/workflows/index.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/layout/builder/index.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/builder.module.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/index.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/layout.types.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +17 -17
- package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +19 -19
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +1 -1
- package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +28 -13
- package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +23 -19
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +45 -14
- package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +33 -34
- package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +1 -1
- package/esm2022/layout/entity/lib/entity-registery.service.mjs +1 -1
- package/esm2022/layout/entity/lib/entity.config.mjs +1 -1
- package/esm2022/layout/entity/lib/entity.module.mjs +1 -1
- package/esm2022/layout/entity/lib/entity.viewmodel.mjs +1 -1
- package/esm2022/layout/entity/lib/index.mjs +1 -1
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +60 -43
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +72 -73
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +15 -3
- package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +5 -5
- package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +3 -6
- package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +1 -1
- package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +1 -2
- package/esm2022/layout/entity/lib/workflows/show-list.workflow.mjs +1 -1
- package/esm2022/layouts/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/admin.module.mjs +1 -1
- package/esm2022/layouts/lib/admin/admin.routes.mjs +1 -1
- package/esm2022/layouts/lib/admin/custom-reuse.strategy.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +19 -19
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-section.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-details.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-list.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity.resolver.mjs +1 -1
- package/esm2022/layouts/lib/admin/index.mjs +1 -1
- package/esm2022/layouts/lib/layout.module.mjs +1 -1
- package/esm2022/mocks/index.mjs +1 -1
- package/esm2022/mocks/lib/mocks.module.mjs +1 -1
- package/esm2022/mocks/lib/services/mocker.service.mjs +1 -1
- package/esm2022/mocks/lib/storage/storage.mock.service.mjs +1 -1
- package/esm2022/native/index.mjs +1 -1
- package/esm2022/native/lib/native.service.mjs +1 -1
- package/esm2022/themes/default/index.mjs +1 -1
- package/esm2022/themes/default/lib/default.module.mjs +1 -1
- package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +1 -1
- package/esm2022/themes/default/lib/layout.routes.mjs +1 -1
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +14 -21
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +17 -21
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +8 -5
- package/esm2022/themes/default/lib/layouts/root-layout/components/footer/footer.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +1 -1
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +1 -1
- package/esm2022/themes/default/lib/pages/errors/error-401/error-401.component.mjs +3 -3
- package/esm2022/themes/default/lib/pages/errors/error-404/error-404.component.mjs +3 -3
- package/esm2022/themes/default/lib/pages/errors/error-offline/error-offline.component.mjs +3 -3
- package/esm2022/widgets/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-column.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-view.component.mjs +29 -29
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/checkbox/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +54 -54
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +17 -18
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-column.component.mjs +21 -21
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.mjs +142 -142
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-view.component.mjs +69 -69
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.mjs +112 -112
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-view.component.mjs +64 -64
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.mjs +107 -107
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-types.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-view.component.mjs +97 -97
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.mjs +5 -5
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-view.component.mjs +5 -5
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.mjs +68 -68
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +17 -17
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-view.component.mjs +45 -45
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.mjs +21 -21
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.mjs +138 -138
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.mjs +69 -69
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +17 -11
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-view.component.mjs +23 -23
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.mjs +13 -13
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.mjs +31 -31
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +11 -10
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +57 -56
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +18 -17
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +63 -62
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +18 -17
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-column.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-view.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/layout/block-widget/block-widget.component.mjs +11 -11
- package/esm2022/widgets/lib/layout/block-widget/block-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/layout/block-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/widgets.module.mjs +1 -1
- package/esm2022/workflow/index.mjs +1 -1
- package/esm2022/workflow/lib/actions/start-workflow.action.mjs +7 -3
- package/esm2022/workflow/lib/errors.types.mjs +1 -1
- package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +1 -1
- package/esm2022/workflow/lib/workflow-registery.service.mjs +1 -1
- package/esm2022/workflow/lib/workflow.module.mjs +1 -1
- package/esm2022/workflow/lib/workflow.service.mjs +3 -3
- package/esm2022/workflow/lib/workflow.types.mjs +11 -10
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs → acorex-platform-common-avatar-widget-edit.component-B8txzrTw.mjs} +67 -67
- package/fesm2022/acorex-platform-common-avatar-widget-edit.component-B8txzrTw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs → acorex-platform-common-avatar-widget-view.component-B3Ubyw3X.mjs} +15 -15
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-B3Ubyw3X.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs → acorex-platform-common-boolean-widget-filter.component-CcJ5Vj4q.mjs} +76 -76
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CcJ5Vj4q.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-change-password.component-NvrMMq9e.mjs → acorex-platform-common-change-password.component-CULJjn0l.mjs} +100 -100
- package/fesm2022/acorex-platform-common-change-password.component-CULJjn0l.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs → acorex-platform-common-checkbox-widget-column.component-C91gG8nm.mjs} +31 -31
- package/fesm2022/acorex-platform-common-checkbox-widget-column.component-C91gG8nm.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs → acorex-platform-common-checkbox-widget-view.component-BDAtJB1B.mjs} +25 -25
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs.map → acorex-platform-common-checkbox-widget-view.component-BDAtJB1B.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs → acorex-platform-common-dateTime-widget-edit.component-DRsoJMVG.mjs} +100 -100
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-DRsoJMVG.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs → acorex-platform-common-dateTime-widget-filter.component-uB7iwji0.mjs} +59 -59
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-uB7iwji0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs → acorex-platform-common-dateTime-widget-view.component-Dxmnor_-.mjs} +21 -21
- package/fesm2022/acorex-platform-common-dateTime-widget-view.component-Dxmnor_-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-column.component-BgNdL62k.mjs → acorex-platform-common-email-widget-column.component-DlPoexcx.mjs} +23 -23
- package/fesm2022/acorex-platform-common-email-widget-column.component-DlPoexcx.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs → acorex-platform-common-email-widget-edit.component-CY-Nu0xD.mjs} +134 -134
- package/fesm2022/acorex-platform-common-email-widget-edit.component-CY-Nu0xD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs → acorex-platform-common-email-widget-view.component-C4M7KGUS.mjs} +65 -65
- package/fesm2022/acorex-platform-common-email-widget-view.component-C4M7KGUS.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs → acorex-platform-common-file-widget-edit.component-ZXhaXwWN.mjs} +116 -116
- package/fesm2022/acorex-platform-common-file-widget-edit.component-ZXhaXwWN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs → acorex-platform-common-file-widget-filter.component-qL-PznYm.mjs} +5 -5
- package/fesm2022/acorex-platform-common-file-widget-filter.component-qL-PznYm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs → acorex-platform-common-file-widget-view.component-B0C9oJLT.mjs} +70 -70
- package/fesm2022/acorex-platform-common-file-widget-view.component-B0C9oJLT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs → acorex-platform-common-gallery-widget-edit.component-DB0-6pik.mjs} +125 -125
- package/fesm2022/acorex-platform-common-gallery-widget-edit.component-DB0-6pik.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs → acorex-platform-common-gallery-widget-filter.component-Bvy3nmy6.mjs} +5 -5
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Bvy3nmy6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs → acorex-platform-common-gallery-widget-view.component-Bp5cEEiY.mjs} +109 -109
- package/fesm2022/acorex-platform-common-gallery-widget-view.component-Bp5cEEiY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs → acorex-platform-common-largetext-widget-edit.component-DJhPlQ0G.mjs} +13 -13
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DJhPlQ0G.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs → acorex-platform-common-lookup-widget-edit.component-CpzTuRyJ.mjs} +45 -28
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CpzTuRyJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs → acorex-platform-common-lookup-widget-filter.component-i8oRoMWh.mjs} +84 -67
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-i8oRoMWh.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs → acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs} +5 -5
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs → acorex-platform-common-map-widget-edit.component-BjrRrklq.mjs} +5 -5
- package/fesm2022/acorex-platform-common-map-widget-edit.component-BjrRrklq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs → acorex-platform-common-map-widget-view.component-C5gL9-oB.mjs} +5 -5
- package/fesm2022/acorex-platform-common-map-widget-view.component-C5gL9-oB.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs → acorex-platform-common-messenger-widget-column.component-BQSYcyso.mjs} +23 -23
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-BQSYcyso.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs → acorex-platform-common-messenger-widget-edit.component-WHM8ANuQ.mjs} +88 -88
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-WHM8ANuQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs → acorex-platform-common-messenger-widget-view.component-B4Yt68Vn.mjs} +67 -67
- package/fesm2022/acorex-platform-common-messenger-widget-view.component-B4Yt68Vn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs → acorex-platform-common-number-widget-edit.component-D9dC514F.mjs} +15 -15
- package/fesm2022/acorex-platform-common-number-widget-edit.component-D9dC514F.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs → acorex-platform-common-number-widget-filter.component-BkKeBL6p.mjs} +86 -86
- package/fesm2022/acorex-platform-common-number-widget-filter.component-BkKeBL6p.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs → acorex-platform-common-password-widget-column.component-C0-x1_Np.mjs} +37 -37
- package/fesm2022/acorex-platform-common-password-widget-column.component-C0-x1_Np.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs → acorex-platform-common-password-widget-edit.component-BbYqIGEP.mjs} +15 -15
- package/fesm2022/acorex-platform-common-password-widget-edit.component-BbYqIGEP.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs → acorex-platform-common-password-widget-view.component-B6vGWi9I.mjs} +59 -59
- package/fesm2022/acorex-platform-common-password-widget-view.component-B6vGWi9I.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs → acorex-platform-common-phone-widget-column.component-uAeAPCog.mjs} +41 -41
- package/fesm2022/acorex-platform-common-phone-widget-column.component-uAeAPCog.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs → acorex-platform-common-phone-widget-edit.component-BdxXFoxc.mjs} +140 -140
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-BdxXFoxc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs → acorex-platform-common-phone-widget-view.component-D_A5NXzA.mjs} +69 -69
- package/fesm2022/acorex-platform-common-phone-widget-view.component-D_A5NXzA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs → acorex-platform-common-rich-text-widget-column.component-DDJn1WqG.mjs} +23 -23
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DDJn1WqG.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs → acorex-platform-common-rich-text-widget-edit.component-f30-VPMJ.mjs} +9 -9
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-f30-VPMJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs → acorex-platform-common-rich-text-widget-view.component-Y214kMe4.mjs} +9 -9
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Y214kMe4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs → acorex-platform-common-selection-list-widget-column.component-4uQzk7WQ.mjs} +17 -17
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-4uQzk7WQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs → acorex-platform-common-selection-list-widget-edit.component-BY7A969M.mjs} +29 -29
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BY7A969M.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs → acorex-platform-common-selection-list-widget-filter.component-NDAFZhfE.mjs} +19 -19
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-NDAFZhfE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs → acorex-platform-common-selection-list-widget-view.component-HzxEiWgp.mjs} +9 -9
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-HzxEiWgp.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs → acorex-platform-common-signature-pad-widget-edit.component-C6VI3F_S.mjs} +56 -56
- package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-C6VI3F_S.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs → acorex-platform-common-signature-pad-widget-view.component-CEiBtv9t.mjs} +17 -17
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CEiBtv9t.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs → acorex-platform-common-string-widget-filter.component-BZiyRHfg.mjs} +68 -68
- package/fesm2022/acorex-platform-common-string-widget-filter.component-BZiyRHfg.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-text-widget-column.component-qXusAevm.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs → acorex-platform-common-text-widget-edit.component-DSwPteMX.mjs} +88 -88
- package/fesm2022/acorex-platform-common-text-widget-edit.component-DSwPteMX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs → acorex-platform-common-text-widget-view.component-CKg9nvbY.mjs} +21 -21
- package/fesm2022/acorex-platform-common-text-widget-view.component-CKg9nvbY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs → acorex-platform-common-toggle-widget-column.component-_IrciAj-.mjs} +33 -33
- package/fesm2022/acorex-platform-common-toggle-widget-column.component-_IrciAj-.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs → acorex-platform-common-toggle-widget-view.component-B5JwQ8X-.mjs} +25 -25
- package/fesm2022/acorex-platform-common-toggle-widget-view.component-B5JwQ8X-.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +281 -131
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +34 -34
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +272 -200
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-Bxkv579D.mjs +107 -0
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-Bxkv579D.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C-dS2HFl.mjs +88 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C-dS2HFl.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +35 -35
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CTlj-QBs.mjs +96 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CTlj-QBs.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DHmUvWx8.mjs +85 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DHmUvWx8.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-BeQ4_BgW.mjs +31 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-BeQ4_BgW.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-BYDiT6Ns.mjs +25 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-BYDiT6Ns.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DUtW3w_g.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DUtW3w_g.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +52 -60
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs → acorex-platform-widgets-checkbox-widget-column.component-CFCwedxX.mjs} +25 -25
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CFCwedxX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs → acorex-platform-widgets-checkbox-widget-view.component-CCTIjDb0.mjs} +29 -29
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CCTIjDb0.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +1383 -1374
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +18 -13
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/layout/builder/README.md +3 -3
- package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +2 -1
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +9 -6
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +7 -5
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -0
- package/layouts/README.md +3 -3
- package/mocks/README.md +3 -3
- package/package.json +1 -1
- package/themes/default/README.md +3 -3
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +2 -1
- package/widgets/README.md +3 -3
- package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +1 -1
- package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +3 -2
- package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +1 -1
- package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +1 -1
- package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +1 -1
- package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +1 -1
- package/workflow/README.md +3 -3
- package/workflow/lib/workflow.service.d.ts +1 -1
- package/workflow/lib/workflow.types.d.ts +4 -3
- package/fesm2022/acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-change-password.component-NvrMMq9e.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-column.component-BgNdL62k.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs +0 -107
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs +0 -88
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs +0 -96
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs +0 -85
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs +0 -31
- package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs +0 -25
- package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs.map +0 -1
|
@@ -8,7 +8,7 @@ import { AXDataSource } from "@acorex/components/common";
|
|
|
8
8
|
import { AXPWorkflowService, ofType } from "@acorex/platform/workflow";
|
|
9
9
|
import { AXPEntityCommandScope, AXPLayoutService } from "@acorex/platform/common";
|
|
10
10
|
import { AXPEntityDeletedEvent } from "./workflows/delete-entity.workflow";
|
|
11
|
-
import { Subject } from "rxjs";
|
|
11
|
+
import { Subject, takeUntil } from "rxjs";
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class AXPEntityMasterListViewQueryViewModel {
|
|
14
14
|
constructor(entity, section, view) {
|
|
@@ -31,6 +31,7 @@ export class AXPEntityMasterListViewModel {
|
|
|
31
31
|
this.formatService = this.injector.get(AXFormatService);
|
|
32
32
|
this.session = this.injector.get(AXPSessionService);
|
|
33
33
|
this.workflow = this.injector.get(AXPWorkflowService);
|
|
34
|
+
this.destroyed = new Subject();
|
|
34
35
|
this.events$ = new Subject();
|
|
35
36
|
this.dataSource = new AXDataSource({
|
|
36
37
|
byKey: (key) => {
|
|
@@ -78,18 +79,26 @@ export class AXPEntityMasterListViewModel {
|
|
|
78
79
|
];
|
|
79
80
|
});
|
|
80
81
|
//****************** Actions ******************//
|
|
81
|
-
this.
|
|
82
|
+
this.allActions = computed(() => {
|
|
82
83
|
const list = this.entityDef.interfaces?.master?.list?.actions ?? [];
|
|
83
84
|
return list
|
|
84
|
-
.filter(a => (a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||
|
|
85
|
-
(a.scope != AXPEntityCommandScope.Selected && !this.hasSelectedItems()))
|
|
86
85
|
.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];
|
|
87
86
|
});
|
|
88
87
|
this.primaryActions = computed(() => {
|
|
89
|
-
return this.
|
|
88
|
+
return this.allActions()
|
|
89
|
+
.filter(a => (a.priority == 'primary') &&
|
|
90
|
+
((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||
|
|
91
|
+
(a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
|
|
90
92
|
});
|
|
91
93
|
this.secondaryActions = computed(() => {
|
|
92
|
-
return this.
|
|
94
|
+
return this.allActions()
|
|
95
|
+
.filter(a => (a.priority == 'secondary') &&
|
|
96
|
+
((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||
|
|
97
|
+
(a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
|
|
98
|
+
});
|
|
99
|
+
this.rowActions = computed(() => {
|
|
100
|
+
return this.allActions()
|
|
101
|
+
.filter(a => (a.scope == AXPEntityCommandScope.Individual));
|
|
93
102
|
});
|
|
94
103
|
//****************** Filter ******************//
|
|
95
104
|
this.inlineFilters = {
|
|
@@ -106,11 +115,14 @@ export class AXPEntityMasterListViewModel {
|
|
|
106
115
|
};
|
|
107
116
|
//****************** Columns ******************//
|
|
108
117
|
this.allAvailableColumns = () => {
|
|
109
|
-
const columns =
|
|
110
|
-
const
|
|
111
|
-
const
|
|
112
|
-
return
|
|
113
|
-
|
|
118
|
+
const { columns = [], properties } = this.entityDef;
|
|
119
|
+
const visibleProperties = properties.filter(({ schema }) => !schema?.hidden);
|
|
120
|
+
const visiblePropNames = new Set(visibleProperties.map(({ name }) => name));
|
|
121
|
+
return columns
|
|
122
|
+
.filter(({ name }) => visiblePropNames.has(name))
|
|
123
|
+
.map(column => {
|
|
124
|
+
const property = visibleProperties.find(({ name }) => name === column.name);
|
|
125
|
+
return new AXPEntityListViewColumnViewModel(property, column);
|
|
114
126
|
});
|
|
115
127
|
};
|
|
116
128
|
this.visibleColumnCount = () => {
|
|
@@ -148,7 +160,11 @@ export class AXPEntityMasterListViewModel {
|
|
|
148
160
|
});
|
|
149
161
|
});
|
|
150
162
|
this.view = signal(this.views()[0]);
|
|
151
|
-
this.workflow.events
|
|
163
|
+
this.workflow.events$
|
|
164
|
+
.pipe(ofType(AXPEntityDeletedEvent))
|
|
165
|
+
.pipe(takeUntil(this.destroyed))
|
|
166
|
+
.subscribe((event) => {
|
|
167
|
+
debugger;
|
|
152
168
|
if (event.payload.entity == this.entityDef.source) {
|
|
153
169
|
this.selectedItems.set([]);
|
|
154
170
|
this.events$.next({ action: "refresh" });
|
|
@@ -179,6 +195,12 @@ export class AXPEntityMasterListViewModel {
|
|
|
179
195
|
//
|
|
180
196
|
this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name })));
|
|
181
197
|
//
|
|
198
|
+
this.advanceFilters.filters = this.view().conditions.map(f => ({
|
|
199
|
+
field: f.name,
|
|
200
|
+
operator: f.operator,
|
|
201
|
+
value: f.value
|
|
202
|
+
}));
|
|
203
|
+
//
|
|
182
204
|
const inline = this.inlineFilters.filters?.length ?? 0;
|
|
183
205
|
const advance = this.advanceFilters.filters?.length ?? 0;
|
|
184
206
|
if (inline && !advance) {
|
|
@@ -250,12 +272,21 @@ export class AXPEntityMasterListViewModel {
|
|
|
250
272
|
}
|
|
251
273
|
//****************** Commands ******************//
|
|
252
274
|
async executeCommand(commandName, data = null) {
|
|
253
|
-
const action = this.
|
|
275
|
+
const action = this.allActions().find(c => c.name == commandName &&
|
|
276
|
+
((this.selectedItems().length ?
|
|
277
|
+
c.scope == AXPEntityCommandScope.Selected :
|
|
278
|
+
c.scope == AXPEntityCommandScope.Individual) ||
|
|
279
|
+
c.scope == AXPEntityCommandScope.TypeLevel));
|
|
254
280
|
await this.workflow.execute(commandName, {
|
|
255
281
|
entity: this.entityDef.source,
|
|
256
282
|
data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : data
|
|
257
283
|
});
|
|
258
284
|
}
|
|
285
|
+
//
|
|
286
|
+
destroy() {
|
|
287
|
+
this.destroyed.next();
|
|
288
|
+
this.destroyed.complete();
|
|
289
|
+
}
|
|
259
290
|
}
|
|
260
291
|
export class AXPEntityListViewModelFactory {
|
|
261
292
|
constructor() {
|
|
@@ -283,4 +314,4 @@ export const AXPEntityListViewModelResolver = (route, state, service = inject(AX
|
|
|
283
314
|
//
|
|
284
315
|
return service.create(moduleName, entityName);
|
|
285
316
|
};
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1tYXN0ZXItbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBb0QsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUEwQyxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBYS9CLE1BQU0sT0FBTyxxQ0FBcUM7SUFFOUMsWUFBb0IsTUFBaUIsRUFBVSxPQUFxQyxFQUFVLElBQWtCO1FBQTVGLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUFVLFNBQUksR0FBSixJQUFJLENBQWM7UUFJaEgsU0FB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SyxDQUFDLE1BQU0sQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQVZRLDZCQUE2QjtrSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzJGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWNsQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBcUQsQ0FDNUYsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsVUFBeUMsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEVBQ3pDLEVBQUU7SUFDdkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBVyxDQUFDO0lBQzVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoLWVzXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBWaWV3UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSBcIi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwsIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIH0gZnJvbSBcIi4vZW50aXR5LnZpZXdtb2RlbFwiO1xyXG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9jb3JlL2Zvcm1hdFwiO1xyXG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2F1dGhcIjtcclxuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24gfSBmcm9tIFwiQGFjb3JleC9jb21wb25lbnRzL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UsIG9mVHlwZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93XCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUXVlcnlWaWV3LCBBWFBCZWFyZENydW1iLCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUExheW91dFNlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5RGVsZXRlZEV2ZW50IH0gZnJvbSBcIi4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3dcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWwge1xyXG5cclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBkaXI6IHN0cmluZztcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwsIHByaXZhdGUgdmlldzogQVhQUXVlcnlWaWV3KSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5hbWUgPSB0aGlzLnZpZXcubmFtZTtcclxuICAgIHRpdGxlID0gdGhpcy52aWV3LnRpdGxlO1xyXG4gICAgc29ydHMgPSB0aGlzLnZpZXcuc29ydHM7XHJcbiAgICBjb2x1bW5zID0gdGhpcy52aWV3LmNvbHVtbnM7XHJcbiAgICBjb25kaXRpb25zID0gdGhpcy52aWV3LmNvbmRpdGlvbnM7XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwge1xyXG5cclxuXHJcbiAgICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xyXG4gICAgcHJpdmF0ZSBfdmlld0RlZiA9IGNsb25lRGVlcCh0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3QpIVxyXG4gICAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKVxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2Vzc2lvblNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XHJcblxyXG4gICAgcHVibGljIGV2ZW50cyQ6IFN1YmplY3Q8eyBhY3Rpb246IHN0cmluZyB9PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG5cclxuXHJcbiAgICBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XHJcbiAgICAgICAgYnlLZXk6IChrZXkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxvYWQ6IChlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICAgICAgICAgIHJldHVybiBmdW5jKGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGFnZVNpemU6IDEwLFxyXG4gICAgICAgIGtleTogJ2lkJ1xyXG5cclxuICAgIH0pXHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHlcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXZlbnRzJC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMuZW50aXR5RGVmLnNvdXJjZVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHMkLm5leHQoeyBhY3Rpb246IFwicmVmcmVzaFwiIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcclxuXHJcbiAgICBwdWJsaWMgaGFzU2VsZWN0ZWRJdGVtcyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMFxyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlld0RlZi50aXRsZSA/PyB0aGlzLmVudGl0eURlZi5mb3JtYXRzLnBsdXJhbCE7XHJcbiAgICB9KTtcclxuICAgIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgZGVzY3JpcHRpb24gPSBjb21wdXRlZDxzdHJpbmcgfCBudWxsPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdEZWYuZGVzY3JpcHRpb24gPz8gbnVsbDtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cclxuICAgIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIocCA9PiBwLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKS5tYXAoYyA9PiBjLnRpdGxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cclxuICAgIHB1YmxpYyBiZWFyZGNydW1icyA9IGNvbXB1dGVkPEFYUEJlYXJkQ3J1bWJbXT4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBcIkhvbWVcIixcclxuICAgICAgICAgICAgICAgIGljb246IFwiZmEtc29saWQgZmEtaG9tZSBheC10ZXh0LXhzIGF4LW1lLTJcIixcclxuICAgICAgICAgICAgICAgIHVybDogW2AvJHt0aGlzLnNlc3Npb24uYXBwbGljYXRpb24/Lm5hbWV9YF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcclxuICAgICAgICAgICAgICAgIHVybDogW2AvJHt0aGlzLnNlc3Npb24uYXBwbGljYXRpb24/Lm5hbWV9YCwgJ20nLCBgJHt0aGlzLmVudGl0eURlZi5tb2R1bGV9YCwgJ2UnLCBgJHt0aGlzLmVudGl0eURlZi5uYW1lfWAsICdsaXN0J11cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cclxuICAgIHByaXZhdGUgYWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5saXN0Py5hY3Rpb25zID8/IFtdO1xyXG4gICAgICAgIHJldHVybiBsaXN0XHJcbiAgICAgICAgICAgIC5maWx0ZXIoYSA9PlxyXG4gICAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxyXG4gICAgICAgICAgICAgICAgKGEuc2NvcGUgIT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAubWFwKCh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0cikpID8/IFtdO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoYyA9PiBjLnByaW9yaXR5ID09ICdwcmltYXJ5Jyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBwdWJsaWMgc2Vjb25kYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkuZmlsdGVyKGMgPT4gYy5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5Jyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBGaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbiAgICBwcml2YXRlIGlubGluZUZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiA9IHtcclxuICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXHJcbiAgICAgICAgbG9naWM6ICdvcicsXHJcbiAgICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxyXG4gICAgICAgIGZpbHRlcnM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgYWR2YW5jZUZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiA9IHtcclxuICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXHJcbiAgICAgICAgbG9naWM6ICdhbmQnLFxyXG4gICAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcclxuICAgICAgICBmaWx0ZXJzOiBbXVxyXG4gICAgfTtcclxuXHJcbiAgICBhcHBseUlubGluZUZpbHRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+IGMub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuaW5saW5lRmlsdGVycy5maWx0ZXJzID0gW107XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IHAubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY29udGFpbnMnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseUZpbHRlckFuZFNvcnQoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCguLi50aGlzLnNvcnRlZEZpZWxkcygpLm1hcChzID0+ICh7IGRpcjogcy5kaXIsIGZpZWxkOiBzLm5hbWUgfSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSkpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgY29uc3QgaW5saW5lID0gdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/Lmxlbmd0aCA/PyAwO1xyXG4gICAgICAgIGNvbnN0IGFkdmFuY2UgPSB0aGlzLmFkdmFuY2VGaWx0ZXJzLmZpbHRlcnM/Lmxlbmd0aCA/PyAwO1xyXG4gICAgICAgIGlmIChpbmxpbmUgJiYgIWFkdmFuY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcih0aGlzLmlubGluZUZpbHRlcnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghaW5saW5lICYmIGFkdmFuY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcih0aGlzLmFkdmFuY2VGaWx0ZXJzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5saW5lICYmIGFkdmFuY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbdGhpcy5pbmxpbmVGaWx0ZXJzLCB0aGlzLmFkdmFuY2VGaWx0ZXJzXVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9cclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIENvbHVtbnMgKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbiAgICBwcml2YXRlIGFsbEF2YWlsYWJsZUNvbHVtbnMgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnM/Lm1hcChjID0+IGMubmFtZSkgPz8gW107XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAuc2NoZW1hLmhpZGRlbiAhPSB0cnVlKVxyXG4gICAgICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKHAgPT4gY29sdW1ucy5zb21lKGMgPT4gYyA9PSBwLm5hbWUpKTtcclxuICAgICAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKHAgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIHRoaXMuZW50aXR5RGVmLmNvbHVtbnM/LmZpbmQoYyA9PiBjLm5hbWUgPT0gcC5uYW1lKSEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIHZpc2libGVDb2x1bW5Db3VudCA9ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zKCkuZmlsdGVyKGMgPT4gYy52aXNpYmxlID09IHRydWUpLmxlbmd0aDtcclxuICAgIH07XHJcblxyXG4gICAgY29sdW1ucyA9IHNpZ25hbDxBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdPihbXSk7XHJcblxyXG4gICAgcmVzZXRDb2x1bW5zKCkge1xyXG4gICAgICAgIHRoaXMuYXBwbHlWaWV3Q29sdW1ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFwcGx5Q29sdW1ucygpIHtcclxuICAgICAgICAvL3RoaXMuY29sdW1ucy5zZXQodGhpcy5jbG9uZWRDb2x1bW5zKCkpXHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlWaWV3Q29sdW1ucygpIHtcclxuICAgICAgICBjb25zdCBjb2xzID0gdGhpcy52aWV3KCkuY29sdW1ucztcclxuICAgICAgICBjb25zdCBjbG9uZWQgPSB0aGlzLmFsbEF2YWlsYWJsZUNvbHVtbnMoKVxyXG4gICAgICAgICAgICAubWFwKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5lbnRpdHlEZWYuY29sdW1ucz8uZmluZChjYyA9PiBjYy5uYW1lID09IGMubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maW5kKHAgPT4gcC5uYW1lID09IGMubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocHJvcCEsIGNvbHVtbiEpO1xyXG4gICAgICAgICAgICAgICAgY29sLnZpc2libGUgPSAhY29scy5zb21lKGMgPT4gYyA9PSBjb2wubmFtZSkgJiYgY29sLnZpc2libGUgIT0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5zZXQoY2xvbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBTb3J0ICoqKioqKioqKioqKioqKioqKi8vXHJcblxyXG4gICAgc29ydGFibGVGaWVsZHMgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+IGMub3B0aW9ucz8uc29ydD8uZW5hYmxlZCk7XHJcbiAgICAgICAgcmV0dXJuIHByb3BzLm1hcChlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGUubmFtZSxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBlLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgZGlyOiAnYXNjJ1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIHNvcnRhYmxlRmllbGRzQ291bnQgPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKGMgPT4gYy5vcHRpb25zPy5zb3J0Py5lbmFibGVkKS5sZW5ndGggPz8gMDtcclxuICAgIH1cclxuXHJcbiAgICBjYW5Tb3J0ID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKSA+IDBcclxuICAgIH07XHJcblxyXG4gICAgY2FuQWRkTW9yZVNvcnQgPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydGVkQ291bnQoKSA8IHRoaXMuc29ydGFibGVGaWVsZHNDb3VudCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzb3J0ZWRDb3VudCA9ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0ZWRGaWVsZHMoKS5sZW5ndGhcclxuICAgIH07XHJcblxyXG4gICAgc29ydGVkRmllbGRzID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWxbXT4oW10pO1xyXG5cclxuICAgIHJlc2V0U29ydHMoKSB7XHJcbiAgICAgICAgdGhpcy5hcHBseVZpZXdTb3J0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFwcGx5U29ydHMoKSB7XHJcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRTb3J0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHByb3AgPSB0aGlzLnNvcnRhYmxlRmllbGRzKCkuZmluZChjID0+ICF0aGlzLnNvcnRlZEZpZWxkcygpLnNvbWUocyA9PiBzLm5hbWUgPT0gYy5uYW1lKSlcclxuICAgICAgICBpZiAocHJvcCkge1xyXG4gICAgICAgICAgICB0aGlzLnNvcnRlZEZpZWxkcy5zZXQoWy4uLnRoaXMuc29ydGVkRmllbGRzKCksIC4uLltwcm9wXV0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVTb3J0KG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc29ydGVkRmllbGRzLnNldCh0aGlzLnNvcnRlZEZpZWxkcygpLmZpbHRlcihjID0+IGMubmFtZSAhPSBuYW1lKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlWaWV3U29ydHMoKSB7XHJcbiAgICAgICAgY29uc3QgZmlsZWRzID0gdGhpcy52aWV3KCkuc29ydHMubWFwKGMgPT4gKHtcclxuICAgICAgICAgICAgbmFtZTogYy5uYW1lLFxyXG4gICAgICAgICAgICB0aXRsZTogYy5uYW1lLFxyXG4gICAgICAgICAgICBkaXI6IGMuZGlyID8/ICdhc2MnXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHRoaXMuc29ydGVkRmllbGRzLnNldChmaWxlZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIFZpZXdzICoqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5cclxuICAgIHNldFZpZXcodmlld05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHZpZXdOYW1lICE9IHRoaXMudmlldygpLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3LnNldCh0aGlzLnZpZXdzKCkuZmluZChjID0+IGMubmFtZSA9PSB2aWV3TmFtZSkgPz8gdGhpcy52aWV3cygpWzBdKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVZpZXdTb3J0cygpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Vmlld0NvbHVtbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmlld3MgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgdmlld3MgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LnZpZXdzID8/IFtdO1xyXG4gICAgICAgIHJldHVybiB2aWV3cy5tYXAodiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdRdWVyeVZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdGhpcywgdik7XHJcbiAgICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHZpZXcgPSBzaWduYWw8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdRdWVyeVZpZXdNb2RlbD4odGhpcy52aWV3cygpWzBdKTtcclxuXHJcblxyXG4gICAgLy8qKioqKioqKioqKioqKioqKiogIENvbW1hbmRzICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9ucygpLmZpbmQoYyA9PiBjLm5hbWUgPT0gY29tbWFuZE5hbWUpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZShjb21tYW5kTmFtZSwge1xyXG4gICAgICAgICAgICBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLnNvdXJjZSxcclxuICAgICAgICAgICAgZGF0YTogYWN0aW9uPy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgPyB0aGlzLnNlbGVjdGVkSXRlbXMoKSA6IGRhdGFcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5IHtcclxuICAgIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4ge1xyXG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xyXG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eUxpc3RWaWV3TW9kZWxSZXNvbHZlcjogUmVzb2x2ZUZuPFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4+ID0gKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICAgIHNlcnZpY2U6IEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5KVxyXG4pOiBQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+ID0+IHtcclxuICAgIGNvbnN0IGFwcE5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnYXBwJykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHJvdXRlLnBhcmVudD8ucGFyYW1NYXAuZ2V0KCdtb2R1bGUnKSBhcyBzdHJpbmc7XHJcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XHJcbiAgICAvL1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xyXG59O1xyXG5cclxuXHJcblxyXG4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1tYXN0ZXItbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFFLFFBQVEsRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBb0QsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUEwQyxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWUxQyxNQUFNLE9BQU8scUNBQXFDO0lBRTlDLFlBQW9CLE1BQWlCLEVBQVUsT0FBcUMsRUFBVSxJQUFrQjtRQUE1RixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFjO1FBSWhILFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsVUFBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLFlBQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFObEMsQ0FBQztDQVFKO0FBR0QsTUFBTSxPQUFPLDRCQUE0QjtJQTZCckMsWUFDWSxRQUFrQixFQUNsQixNQUFpQjtRQURqQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVc7UUE1QlosY0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUM7UUFDcEMsYUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFFLENBQUE7UUFDOUQsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNsRCxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyxhQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUxQyxZQUFPLEdBQWdDLElBQUksT0FBTyxFQUFFLENBQUM7UUFJNUQsZUFBVSxHQUFHLElBQUksWUFBWSxDQUFDO1lBQzFCLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFtQixDQUFDO2dCQUM5RCxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBbUIsQ0FBQztnQkFDOUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELFFBQVEsRUFBRSxFQUFFO1lBQ1osR0FBRyxFQUFFLElBQUk7U0FFWixDQUFDLENBQUE7UUFxQkssa0JBQWEsR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFFbEMscUJBQWdCLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBTUgsK0NBQStDO1FBQ3hDLFVBQUssR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0gscURBQXFEO1FBQzlDLGdCQUFXLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7WUFDOUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFFSCx1REFBdUQ7UUFDaEQsOEJBQXlCLEdBQUcsUUFBUSxDQUFXLEdBQUcsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkcsQ0FBQyxDQUFDLENBQUM7UUFFSSxxQkFBZ0IsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILHFEQUFxRDtRQUM5QyxnQkFBVyxHQUFHLFFBQVEsQ0FBa0IsR0FBRyxFQUFFO1lBQ2hELE9BQU87Z0JBQ0g7b0JBQ0ksS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLHFDQUFxQztvQkFDM0MsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDOUM7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ25CLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQztpQkFDdEg7YUFDSixDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxpREFBaUQ7UUFDekMsZUFBVSxHQUFHLFFBQVEsQ0FBcUMsR0FBRyxFQUFFO1lBQ25FLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNwRSxPQUFPLElBQUk7aUJBQ04sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7UUFFSSxtQkFBYyxHQUFHLFFBQVEsQ0FBcUMsR0FBRyxFQUFFO1lBQ3RFLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRTtpQkFDbkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1IsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQztnQkFDekIsQ0FDSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN0RSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FDM0UsQ0FDSixDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7UUFFSSxxQkFBZ0IsR0FBRyxRQUFRLENBQXFDLEdBQUcsRUFBRTtZQUN4RSxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUU7aUJBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNSLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUM7Z0JBQzNCLENBQ0ksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdEUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQzNFLENBQ0osQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO1FBRUksZUFBVSxHQUFHLFFBQVEsQ0FBcUMsR0FBRyxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRTtpQkFDbkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1IsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUNoRCxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7UUFFSCxnREFBZ0Q7UUFFeEMsa0JBQWEsR0FBNkI7WUFDOUMsS0FBSyxFQUFFLElBQVc7WUFDbEIsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsSUFBVztZQUNyQixPQUFPLEVBQUUsRUFBRTtTQUNkLENBQUM7UUFFTSxtQkFBYyxHQUE2QjtZQUMvQyxLQUFLLEVBQUUsSUFBVztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxJQUFXO1lBQ3JCLE9BQU8sRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQWtERixpREFBaUQ7UUFFekMsd0JBQW1CLEdBQUcsR0FBdUMsRUFBRTtZQUNuRSxNQUFNLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUU1RSxPQUFPLE9BQU87aUJBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUUsT0FBTyxJQUFJLGdDQUFnQyxDQUFDLFFBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQztRQUVGLHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNoRSxDQUFDLENBQUM7UUFFRixZQUFPLEdBQUcsTUFBTSxDQUFxQyxFQUFFLENBQUMsQ0FBQztRQXVCekQsOENBQThDO1FBRTlDLG1CQUFjLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlFLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsT0FBTztvQkFDSCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7b0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO29CQUNkLEdBQUcsRUFBRSxLQUFLO2lCQUNiLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQztRQUVGLHdCQUFtQixHQUFHLEdBQUcsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFBO1FBRUQsWUFBTyxHQUFHLEdBQUcsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ3pDLENBQUMsQ0FBQztRQUVGLG1CQUFjLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNELENBQUMsQ0FBQTtRQUdELGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFBO1FBQ3JDLENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsTUFBTSxDQUE2QyxFQUFFLENBQUMsQ0FBQztRQTBDdEUsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25FLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsT0FBTyxJQUFJLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlFLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFJLEdBQUcsTUFBTSxDQUF3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQXRSbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO2FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixRQUFRLENBQUE7WUFDUixJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUMvQyxDQUFDO2dCQUNDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFRTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUF1RkQsaUJBQWlCLENBQUMsS0FBYTtRQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztvQkFDN0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO29CQUNiLFFBQVEsRUFBRTt3QkFDTixJQUFJLEVBQUUsVUFBVTtxQkFDbkI7b0JBQ0QsS0FBSztpQkFDUixDQUFDLENBQUE7WUFDTixDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixFQUFFO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUE2QixDQUFBLENBQUMsQ0FBQyxDQUFDO1FBQ2pILEVBQUU7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ2IsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1lBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztTQUNqQixDQUFDLENBQUMsQ0FBQztRQUNKLEVBQUU7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0MsQ0FBQzthQUNJLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFDSSxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDbkIsS0FBSyxFQUFFLElBQVc7Z0JBQ2xCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFFBQVEsRUFBRSxJQUFXO2dCQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDckQsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELEVBQUU7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUF1QkQsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZO1FBQ1Isd0NBQXdDO0lBQzVDLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRTthQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsR0FBRyxJQUFJLGdDQUFnQyxDQUFDLElBQUssRUFBRSxNQUFPLENBQUMsQ0FBQztZQUNqRSxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7WUFDckUsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFrQ0QsVUFBVTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDOUYsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ2IsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSztTQUN0QixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwrQ0FBK0M7SUFHL0MsT0FBTyxDQUFDLFdBQTBCLElBQUk7UUFDbEMsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQVlELG1EQUFtRDtJQUM1QyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQW1CLEVBQUUsT0FBWSxJQUFJO1FBQzdELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdEMsQ0FBQyxDQUFDLElBQUksSUFBSSxXQUFXO1lBQ3JCLENBQ0ksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsVUFBVSxDQUM5QztnQkFDRCxDQUFDLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLFNBQVMsQ0FDN0MsQ0FDSixDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDckMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUM3QixJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUN0RixDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0QsRUFBRTtJQUNGLE9BQU87UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFPLDZCQUE2QjtJQUQxQztRQUVZLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FRdkM7SUFOVSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsVUFBa0I7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLENBQUM7OEdBVlEsNkJBQTZCO2tIQUE3Qiw2QkFBNkIsY0FEaEIsTUFBTTs7MkZBQ25CLDZCQUE2QjtrQkFEekMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBY2xDLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFxRCxDQUM1RixLQUE2QixFQUM3QixLQUEwQixFQUMxQixVQUF5QyxNQUFNLENBQUMsNkJBQTZCLENBQUMsRUFDekMsRUFBRTtJQUN2QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFXLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQ2xFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQzFELEVBQUU7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBWaWV3UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gXCIuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZUZuLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwsIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIH0gZnJvbSBcIi4vZW50aXR5LnZpZXdtb2RlbFwiO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS9mb3JtYXRcIjtcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vYXV0aFwiO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24gfSBmcm9tIFwiQGFjb3JleC9jb21wb25lbnRzL2NvbW1vblwiO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvd1wiO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBRdWVyeVZpZXcsIEFYUEJlYXJkQ3J1bWIsIEFYUEVudGl0eUNvbW1hbmRTY29wZSwgQVhQTGF5b3V0U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2NvbW1vblwiO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVsZXRlZEV2ZW50IH0gZnJvbSBcIi4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3dcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSBcIkBhY29yZXgvY29yZS91dGlsc1wiO1xuXG5cblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWwge1xuXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGlyOiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWwge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsLCBwcml2YXRlIHZpZXc6IEFYUFF1ZXJ5Vmlldykge1xuXG4gICAgfVxuXG4gICAgbmFtZSA9IHRoaXMudmlldy5uYW1lO1xuICAgIHRpdGxlID0gdGhpcy52aWV3LnRpdGxlO1xuICAgIHNvcnRzID0gdGhpcy52aWV3LnNvcnRzO1xuICAgIGNvbHVtbnMgPSB0aGlzLnZpZXcuY29sdW1ucztcbiAgICBjb25kaXRpb25zID0gdGhpcy52aWV3LmNvbmRpdGlvbnM7XG5cbn1cblxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCB7XG5cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmlld0RlZiA9IGNsb25lRGVlcCh0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3QpIVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGV2ZW50cyQ6IFN1YmplY3Q8eyBhY3Rpb246IHN0cmluZyB9PiA9IG5ldyBTdWJqZWN0KCk7XG5cblxuXG4gICAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgICAgICBieUtleTogKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBmdW5jKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmMoZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAga2V5OiAnaWQnXG5cbiAgICB9KVxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHlcbiAgICApIHtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAgICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5RGVsZXRlZEV2ZW50KSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGRlYnVnZ2VyXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmVudGl0eURlZi5zb3VyY2VcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzJC5uZXh0KHsgYWN0aW9uOiBcInJlZnJlc2hcIiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gICAgcHVibGljIGhhc1NlbGVjdGVkSXRlbXMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwXG4gICAgfSk7XG5cbiAgICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICAgIH1cblxuICAgIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXG4gICAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3RGVmLnRpdGxlID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsITtcbiAgICB9KTtcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBEZXNjcmlwdGlvbiAqKioqKioqKioqKioqKioqKiovL1xuICAgIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdEZWYuZGVzY3JpcHRpb24gPz8gbnVsbDtcbiAgICB9KTtcblxuICAgIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cbiAgICBwdWJsaWMgaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycyA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcChjID0+IGMudGl0bGUpO1xuICAgIH0pO1xuXG4gICAgcHVibGljIGhhc0lubGluZUZpbHRlcnMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICAgIH0pO1xuXG4gICAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cbiAgICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCZWFyZENydW1iW10+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJIb21lXCIsXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYS1zb2xpZCBmYS1ob21lIGF4LXRleHQteHMgYXgtbWUtMlwiLFxuICAgICAgICAgICAgICAgIHVybDogW2AvJHt0aGlzLnNlc3Npb24uYXBwbGljYXRpb24/Lm5hbWV9YF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcbiAgICAgICAgICAgICAgICB1cmw6IFtgLyR7dGhpcy5zZXNzaW9uLmFwcGxpY2F0aW9uPy5uYW1lfWAsICdtJywgYCR7dGhpcy5lbnRpdHlEZWYubW9kdWxlfWAsICdlJywgYCR7dGhpcy5lbnRpdHlEZWYubmFtZX1gLCAnbGlzdCddXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9KTtcblxuICAgIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgICBwcml2YXRlIGFsbEFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LmFjdGlvbnMgPz8gW107XG4gICAgICAgIHJldHVybiBsaXN0XG4gICAgICAgICAgICAubWFwKCh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0cikpID8/IFtdO1xuICAgIH0pO1xuXG4gICAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgICAgIC5maWx0ZXIoYSA9PlxuICAgICAgICAgICAgICAgIChhLnByaW9yaXR5ID09ICdwcmltYXJ5JykgJiZcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgICAgIC5maWx0ZXIoYSA9PlxuICAgICAgICAgICAgICAgIChhLnByaW9yaXR5ID09ICdzZWNvbmRhcnknKSAmJlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxuICAgICAgICAgICAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgcHVibGljIHJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKVxuICAgICAgICAgICAgLmZpbHRlcihhID0+XG4gICAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwpXG4gICAgICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8qKioqKioqKioqKioqKioqKiogRmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgICBwcml2YXRlIGlubGluZUZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiA9IHtcbiAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICBsb2dpYzogJ29yJyxcbiAgICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgIH07XG5cbiAgICBwcml2YXRlIGFkdmFuY2VGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgIGZpbHRlcnM6IFtdXG4gICAgfTtcblxuICAgIGFwcGx5SW5saW5lRmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+IGMub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpO1xuICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycyA9IFtdO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogcC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfVxuXG4gICAgYXBwbHlGaWx0ZXJBbmRTb3J0KCkge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQoLi4udGhpcy5zb3J0ZWRGaWVsZHMoKS5tYXAocyA9PiAoeyBkaXI6IHMuZGlyLCBmaWVsZDogcy5uYW1lIH0gYXMgQVhEYXRhU291cmNlU29ydE9wdGlvbikpKTtcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5hZHZhbmNlRmlsdGVycy5maWx0ZXJzID0gdGhpcy52aWV3KCkuY29uZGl0aW9ucy5tYXAoZiA9PiAoe1xuICAgICAgICAgICAgZmllbGQ6IGYubmFtZSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiBmLm9wZXJhdG9yLFxuICAgICAgICAgICAgdmFsdWU6IGYudmFsdWVcbiAgICAgICAgfSkpO1xuICAgICAgICAvL1xuICAgICAgICBjb25zdCBpbmxpbmUgPSB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ubGVuZ3RoID8/IDA7XG4gICAgICAgIGNvbnN0IGFkdmFuY2UgPSB0aGlzLmFkdmFuY2VGaWx0ZXJzLmZpbHRlcnM/Lmxlbmd0aCA/PyAwO1xuICAgICAgICBpZiAoaW5saW5lICYmICFhZHZhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHRoaXMuaW5saW5lRmlsdGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWlubGluZSAmJiBhZHZhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHRoaXMuYWR2YW5jZUZpbHRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlubGluZSAmJiBhZHZhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbdGhpcy5pbmxpbmVGaWx0ZXJzLCB0aGlzLmFkdmFuY2VGaWx0ZXJzXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgICB9XG5cbiAgICAvLyoqKioqKioqKioqKioqKioqKiBDb2x1bW5zICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgICBwcml2YXRlIGFsbEF2YWlsYWJsZUNvbHVtbnMgPSAoKTogQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWxbXSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucyA9IFtdLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICAgICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigoeyBzY2hlbWEgfSkgPT4gIXNjaGVtYT8uaGlkZGVuKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZVByb3BOYW1lcyA9IG5ldyBTZXQodmlzaWJsZVByb3BlcnRpZXMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpO1xuXG4gICAgICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT4gdmlzaWJsZVByb3BOYW1lcy5oYXMobmFtZSkpXG4gICAgICAgICAgICAubWFwKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSB2aXNpYmxlUHJvcGVydGllcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gY29sdW1uLm5hbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocHJvcGVydHkhLCBjb2x1bW4pO1xuICAgICAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHZpc2libGVDb2x1bW5Db3VudCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1ucygpLmZpbHRlcihjID0+IGMudmlzaWJsZSA9PSB0cnVlKS5sZW5ndGg7XG4gICAgfTtcblxuICAgIGNvbHVtbnMgPSBzaWduYWw8QVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWxbXT4oW10pO1xuXG4gICAgcmVzZXRDb2x1bW5zKCkge1xuICAgICAgICB0aGlzLmFwcGx5Vmlld0NvbHVtbnMoKTtcbiAgICB9XG5cbiAgICBhcHBseUNvbHVtbnMoKSB7XG4gICAgICAgIC8vdGhpcy5jb2x1bW5zLnNldCh0aGlzLmNsb25lZENvbHVtbnMoKSlcbiAgICB9XG5cbiAgICBhcHBseVZpZXdDb2x1bW5zKCkge1xuICAgICAgICBjb25zdCBjb2xzID0gdGhpcy52aWV3KCkuY29sdW1ucztcbiAgICAgICAgY29uc3QgY2xvbmVkID0gdGhpcy5hbGxBdmFpbGFibGVDb2x1bW5zKClcbiAgICAgICAgICAgIC5tYXAoYyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5lbnRpdHlEZWYuY29sdW1ucz8uZmluZChjYyA9PiBjYy5uYW1lID09IGMubmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcCA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZChwID0+IHAubmFtZSA9PSBjLm5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IG5ldyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbChwcm9wISwgY29sdW1uISk7XG4gICAgICAgICAgICAgICAgY29sLnZpc2libGUgPSAhY29scy5zb21lKGMgPT4gYyA9PSBjb2wubmFtZSkgJiYgY29sLnZpc2libGUgIT0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIHRoaXMuY29sdW1ucy5zZXQoY2xvbmVkKTtcbiAgICB9XG5cbiAgICAvLyoqKioqKioqKioqKioqKioqKiBTb3J0ICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgICBzb3J0YWJsZUZpZWxkcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+IGMub3B0aW9ucz8uc29ydD8uZW5hYmxlZCk7XG4gICAgICAgIHJldHVybiBwcm9wcy5tYXAoZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGUubmFtZSxcbiAgICAgICAgICAgICAgICB0aXRsZTogZS50aXRsZSxcbiAgICAgICAgICAgICAgICBkaXI6ICdhc2MnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgIH07XG5cbiAgICBzb3J0YWJsZUZpZWxkc0NvdW50ID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoYyA9PiBjLm9wdGlvbnM/LnNvcnQ/LmVuYWJsZWQpLmxlbmd0aCA/PyAwO1xuICAgIH1cblxuICAgIGNhblNvcnQgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKSA+IDBcbiAgICB9O1xuXG4gICAgY2FuQWRkTW9yZVNvcnQgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRlZENvdW50KCkgPCB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKTtcbiAgICB9XG5cblxuICAgIHNvcnRlZENvdW50ID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0ZWRGaWVsZHMoKS5sZW5ndGhcbiAgICB9O1xuXG4gICAgc29ydGVkRmllbGRzID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWxbXT4oW10pO1xuXG4gICAgcmVzZXRTb3J0cygpIHtcbiAgICAgICAgdGhpcy5hcHBseVZpZXdTb3J0cygpO1xuICAgIH1cblxuICAgIGFwcGx5U29ydHMoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfVxuXG4gICAgYWRkU29ydCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJvcCA9IHRoaXMuc29ydGFibGVGaWVsZHMoKS5maW5kKGMgPT4gIXRoaXMuc29ydGVkRmllbGRzKCkuc29tZShzID0+IHMubmFtZSA9PSBjLm5hbWUpKVxuICAgICAgICBpZiAocHJvcCkge1xuICAgICAgICAgICAgdGhpcy5zb3J0ZWRGaWVsZHMuc2V0KFsuLi50aGlzLnNvcnRlZEZpZWxkcygpLCAuLi5bcHJvcF1dKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZVNvcnQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc29ydGVkRmllbGRzLnNldCh0aGlzLnNvcnRlZEZpZWxkcygpLmZpbHRlcihjID0+IGMubmFtZSAhPSBuYW1lKSk7XG4gICAgfVxuXG4gICAgYXBwbHlWaWV3U29ydHMoKSB7XG4gICAgICAgIGNvbnN0IGZpbGVkcyA9IHRoaXMudmlldygpLnNvcnRzLm1hcChjID0+ICh7XG4gICAgICAgICAgICBuYW1lOiBjLm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogYy5uYW1lLFxuICAgICAgICAgICAgZGlyOiBjLmRpciA/PyAnYXNjJ1xuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMuc29ydGVkRmllbGRzLnNldChmaWxlZHMpO1xuICAgIH1cblxuICAgIC8vKioqKioqKioqKioqKioqKioqIFZpZXdzICoqKioqKioqKioqKioqKioqKi8vXG5cblxuICAgIHNldFZpZXcodmlld05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIGlmICh2aWV3TmFtZSAhPSB0aGlzLnZpZXcoKS5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXcuc2V0KHRoaXMudmlld3MoKS5maW5kKGMgPT4gYy5uYW1lID09IHZpZXdOYW1lKSA/PyB0aGlzLnZpZXdzKClbMF0pO1xuICAgICAgICAgICAgdGhpcy5hcHBseVZpZXdTb3J0cygpO1xuICAgICAgICAgICAgdGhpcy5hcHBseVZpZXdDb2x1bW5zKCk7XG4gICAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmlld3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZpZXdzID0gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5saXN0Py52aWV3cyA/PyBbXTtcbiAgICAgICAgcmV0dXJuIHZpZXdzLm1hcCh2ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdRdWVyeVZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdGhpcywgdik7XG4gICAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB2aWV3ID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWw+KHRoaXMudmlld3MoKVswXSk7XG5cblxuICAgIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICAgIHB1YmxpYyBhc3luYyBleGVjdXRlQ29tbWFuZChjb21tYW5kTmFtZTogc3RyaW5nLCBkYXRhOiBhbnkgPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoYyA9PlxuICAgICAgICAgICAgYy5uYW1lID09IGNvbW1hbmROYW1lICYmXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA/XG4gICAgICAgICAgICAgICAgICAgIGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkIDpcbiAgICAgICAgICAgICAgICAgICAgYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbFxuICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLCB7XG4gICAgICAgICAgICBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLnNvdXJjZSxcbiAgICAgICAgICAgIGRhdGE6IGFjdGlvbj8uc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkID8gdGhpcy5zZWxlY3RlZEl0ZW1zKCkgOiBkYXRhXG4gICAgICAgIH0pXG4gICAgfVxuICAgIC8vXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlMaXN0Vmlld01vZGVsRmFjdG9yeSB7XG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICAgIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFNlcnZpY2UpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4ge1xuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZyk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyOiBSZXNvbHZlRm48UHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsPj4gPSAoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gICAgc2VydmljZTogQVhQRW50aXR5TGlzdFZpZXdNb2RlbEZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TGlzdFZpZXdNb2RlbEZhY3RvcnkpXG4pOiBQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+ID0+IHtcbiAgICBjb25zdCBhcHBOYW1lID0gcm91dGUucGFyZW50Py5wYXJhbU1hcC5nZXQoJ2FwcCcpIGFzIHN0cmluZztcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gcm91dGUucGFyZW50Py5wYXJhbU1hcC5nZXQoJ21vZHVsZScpIGFzIHN0cmluZztcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XG4gICAgLy9cbiAgICByZXR1cm4gc2VydmljZS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG59O1xuXG5cblxuIl19
|
|
@@ -9,7 +9,7 @@ import { AXPEntityDeletedEvent } from "./workflows/delete-entity.workflow";
|
|
|
9
9
|
import { AXPEntityModifyEvent } from "./workflows/modify-section.workflow";
|
|
10
10
|
import { AXPEntityDetailListViewModel } from "./entity-detail-list.viewmodel";
|
|
11
11
|
import { AXPEntityCommandScope, AXPLayoutService } from "@acorex/platform/common";
|
|
12
|
-
import { Subject } from "rxjs";
|
|
12
|
+
import { Subject, takeUntil } from "rxjs";
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export class AXPEntityMasterSingleViewGroupViewModel {
|
|
15
15
|
constructor(entity, section) {
|
|
@@ -30,21 +30,18 @@ export class AXPEntityMasterSingleViewGroupViewModel {
|
|
|
30
30
|
return source;
|
|
31
31
|
});
|
|
32
32
|
this.props = computed(() => {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
const { properties, interfaces } = this.entity;
|
|
34
|
+
const groupProperties = properties
|
|
35
|
+
.filter(({ groupId, schema }) => groupId === this.group.id && !schema.hidden)
|
|
36
|
+
.map(({ name }) => name);
|
|
37
|
+
const viewProperties = interfaces?.master?.single?.properties?.filter(({ name }) => groupProperties.includes(name)) ?? [];
|
|
38
|
+
return viewProperties.map(prop => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));
|
|
39
39
|
});
|
|
40
40
|
this.editableProps = computed(() => {
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return props.map(e => {
|
|
46
|
-
return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);
|
|
47
|
-
});
|
|
41
|
+
const { properties, interfaces } = this.entity;
|
|
42
|
+
const editablePropertyNames = interfaces?.master?.update?.properties?.map(({ name }) => name) ?? [];
|
|
43
|
+
const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && editablePropertyNames.includes(name));
|
|
44
|
+
return filteredProperties.map(prop => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));
|
|
48
45
|
});
|
|
49
46
|
this.editable = computed(() => {
|
|
50
47
|
return this.editableProps().length > 0;
|
|
@@ -92,6 +89,7 @@ export class AXPEntityMasterSingleViewModel {
|
|
|
92
89
|
this.session = this.injector.get(AXPSessionService);
|
|
93
90
|
this.formatService = this.injector.get(AXFormatService);
|
|
94
91
|
this.workflow = this.injector.get(AXPWorkflowService);
|
|
92
|
+
this.destroyed = new Subject();
|
|
95
93
|
this.events$ = new Subject();
|
|
96
94
|
this.context = signal(cloneDeep(this.entityData));
|
|
97
95
|
this.actions = computed(() => {
|
|
@@ -104,15 +102,11 @@ export class AXPEntityMasterSingleViewModel {
|
|
|
104
102
|
return this.actions().filter(c => c.priority == 'secondary');
|
|
105
103
|
});
|
|
106
104
|
this.sections = computed(() => {
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const result = groups?.map((section) => {
|
|
113
|
-
return new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section);
|
|
114
|
-
});
|
|
115
|
-
return (result ?? []);
|
|
105
|
+
const { interfaces, properties } = this.entityDef;
|
|
106
|
+
const viewProps = interfaces?.master?.single?.properties?.map(({ name }) => name) ?? [];
|
|
107
|
+
const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && viewProps.includes(name));
|
|
108
|
+
const groups = interfaces?.master?.single?.sections?.filter(({ id }) => filteredProperties.some(({ groupId }) => groupId === id)) ?? [];
|
|
109
|
+
return groups.map(section => new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section));
|
|
116
110
|
});
|
|
117
111
|
//****************** Title ******************//
|
|
118
112
|
this.title = computed(() => {
|
|
@@ -146,7 +140,10 @@ export class AXPEntityMasterSingleViewModel {
|
|
|
146
140
|
this.relatedEntities = computed(() => {
|
|
147
141
|
return this.entityDef.relatedEntities?.map(re => new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })) ?? [];
|
|
148
142
|
});
|
|
149
|
-
this.workflow.events
|
|
143
|
+
this.workflow.events$
|
|
144
|
+
.pipe(ofType(AXPEntityDeletedEvent))
|
|
145
|
+
.pipe(takeUntil(this.destroyed))
|
|
146
|
+
.subscribe((event) => {
|
|
150
147
|
if (event.payload.entity == this.entityDef.source &&
|
|
151
148
|
event.payload.ids.includes(this.context().id)) {
|
|
152
149
|
this.workflow.execute('show-list-view', {
|
|
@@ -154,7 +151,10 @@ export class AXPEntityMasterSingleViewModel {
|
|
|
154
151
|
});
|
|
155
152
|
}
|
|
156
153
|
});
|
|
157
|
-
this.workflow.events
|
|
154
|
+
this.workflow.events$
|
|
155
|
+
.pipe(ofType(AXPEntityModifyEvent))
|
|
156
|
+
.pipe(takeUntil(this.destroyed))
|
|
157
|
+
.subscribe(async (event) => {
|
|
158
158
|
if (event.payload.entity == this.entityDef.source &&
|
|
159
159
|
event.payload.values.id === this.context().id) {
|
|
160
160
|
this.context.set(event.payload.values);
|
|
@@ -162,15 +162,8 @@ export class AXPEntityMasterSingleViewModel {
|
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
164
|
async executeCommand(commandName, data = null) {
|
|
165
|
-
// debugger
|
|
166
165
|
//TODO: syntact for workflow
|
|
167
166
|
switch (commandName) {
|
|
168
|
-
case 'delete-entity':
|
|
169
|
-
this.workflow.execute('delete-entity', {
|
|
170
|
-
entity: this.entityDef.source,
|
|
171
|
-
data: [this.context()],
|
|
172
|
-
});
|
|
173
|
-
break;
|
|
174
167
|
case 'modify-entity-section': {
|
|
175
168
|
this.workflow.execute('modify-entity-section', {
|
|
176
169
|
entity: this.entityDef.source,
|
|
@@ -186,11 +179,17 @@ export class AXPEntityMasterSingleViewModel {
|
|
|
186
179
|
const action = this.actions().find(c => c.name == commandName);
|
|
187
180
|
this.workflow.execute(commandName, {
|
|
188
181
|
entity: this.entityDef.source,
|
|
189
|
-
data: action?.scope == AXPEntityCommandScope.Individual ?
|
|
182
|
+
data: action?.scope == AXPEntityCommandScope.Individual ? this.context() : null
|
|
190
183
|
});
|
|
191
184
|
}
|
|
192
185
|
}
|
|
193
186
|
}
|
|
187
|
+
//
|
|
188
|
+
//
|
|
189
|
+
destroy() {
|
|
190
|
+
this.destroyed.next();
|
|
191
|
+
this.destroyed.complete();
|
|
192
|
+
}
|
|
194
193
|
}
|
|
195
194
|
export class AXPEntityDetailViewModelFactory {
|
|
196
195
|
constructor() {
|
|
@@ -224,4 +223,4 @@ export const AXPEntityDetailViewModelResolver = (route, state, service = inject(
|
|
|
224
223
|
//
|
|
225
224
|
return service.create(moduleName, entityName, id);
|
|
226
225
|
};
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBNEIscUJBQXFCLEVBQXdGLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbE0sT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFPLHVDQUF1QztJQUVoRCxZQUFvQixNQUFpQixFQUFVLE9BQTZCO1FBQXhELFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxZQUFPLEdB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LElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBaEJRLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQXFCbEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQXVELENBQ2hHLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQTJDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUMzQyxFQUFFO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztJQUM5QyxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS9mb3JtYXRcIjtcclxuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSwgc2V0IH0gZnJvbSBcImxvZGFzaC1lc1wiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZUZuLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UsIG9mVHlwZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93XCI7XHJcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vYXV0aFwiO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSBcIi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIH0gZnJvbSBcIi4vZW50aXR5LnZpZXdtb2RlbFwiO1xyXG5pbXBvcnQgeyBBWFBXaWRnZXROb2RlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXJcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5RGVsZXRlZEV2ZW50IH0gZnJvbSBcIi4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3dcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tIFwiLi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3dcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCB9IGZyb20gXCIuL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWxcIjtcclxuaW1wb3J0IHsgQVhQQmVhcmRDcnVtYiwgQVhQRW50aXR5LCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUEVudGl0eVByb3BlcnR5LCBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcsIEFYUEVudGl0eVNlY3Rpb25WaWV3LCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQTGF5b3V0U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdyb3VwID0gdGhpcy5lbnRpdHkuZ3JvdXBzPy5maW5kKGMgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcclxuICAgIG5hbWUgPSBzaWduYWwodGhpcy5ncm91cC5pZCk7XHJcbiAgICBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICAgIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcclxuICAgIH0pO1xyXG5cclxuICAgIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwLmRlc2NyaXB0aW9uO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xyXG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XHJcbiAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcclxuICAgIH0pO1xyXG5cclxuICAgIHByb3BzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHkucHJvcGVydGllcy5maWx0ZXIoXHJcbiAgICAgICAgICAgIGMgPT4gYy5ncm91cElkID09IHRoaXMuZ3JvdXAuaWQgJiZcclxuICAgICAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlXHJcbiAgICAgICAgKS5tYXAoYyA9PiBjLm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHZpZXdQcm9wcyA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maWx0ZXIoYyA9PiBwcm9wcy5pbmNsdWRlcyhjLm5hbWUpKSA/PyBbXVxyXG5cclxuICAgICAgICByZXR1cm4gdmlld1Byb3BzLm1hcChlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBlKTtcclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWRpdGFibGVQcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICBjb25zdCBlZGl0YWJsZVByb3BzID0gdGhpcy5lbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy51cGRhdGU/LnByb3BlcnRpZXM/Lm1hcChjID0+IGMubmFtZSkgPz8gW107XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eS5wcm9wZXJ0aWVzLmZpbHRlcihjID0+XHJcbiAgICAgICAgICAgIGMuZ3JvdXBJZCA9PSB0aGlzLmdyb3VwLmlkICYmXHJcbiAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmXHJcbiAgICAgICAgICAgIGVkaXRhYmxlUHJvcHMuaW5jbHVkZXMoYy5uYW1lKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHByb3BzLm1hcChlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBlKTtcclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWRpdGFibGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGFibGVQcm9wcygpLmxlbmd0aCA+IDBcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlRWxlbWVudFZpZXdNb2RlbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwsIHByaXZhdGUgcHJvcGVydHlWaWV3OiBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eSA9IHRoaXMuZW50aXR5LnByb3BlcnRpZXMuZmluZChjID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Vmlldy5uYW1lKSFcclxuICAgIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcclxuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xyXG4gICAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XHJcblxyXG5cclxuICAgIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgdmlld1Byb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8uZmluZChjID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Lm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh2aWV3UHJvcD8ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XHJcbiAgICAgICAgc2V0KHNvdXJjZSwgXCJwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuXCIsIDEyKTtcclxuICAgICAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XHJcbiAgICAgICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXHJcbiAgICAgICAgICAgIG1vZGU6ICd2aWV3JyxcclxuICAgICAgICAgICAgcGF0aDogdGhpcy5uYW1lKCksXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxyXG4gICAgICAgICAgICBvcHRpb25zOiBtZXJnZShcclxuICAgICAgICAgICAgICAgIHNjaGVtYS5pbnRlcmZhY2U/Lm9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAvL3RoaXMucHJvcGVydHkub3B0aW9ucz8uY3JlYXRlPy53aWRnZXQsXHJcbiAgICAgICAgICAgICAgICB7IHZhbGlkYXRpb25SdWxlczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSBhcyBBWFBXaWRnZXROb2RlO1xyXG4gICAgfSlcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsIHtcclxuXHJcbiAgICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xyXG4gICAgcHJpdmF0ZSBfdmlld0RlZiA9IGNsb25lRGVlcCh0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSkhXHJcbiAgICBwcml2YXRlIHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XHJcbiAgICBwcml2YXRlIGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpXHJcbiAgICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKVxyXG5cclxuICAgIHB1YmxpYyBldmVudHMkOiBTdWJqZWN0PHsgYWN0aW9uOiBzdHJpbmcgfT4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHksXHJcbiAgICAgICAgcHJpdmF0ZSBlbnRpdHlEYXRhOiBhbnksXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLndvcmtmbG93LmV2ZW50cyQucGlwZShvZlR5cGUoQVhQRW50aXR5RGVsZXRlZEV2ZW50KSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmVudGl0eURlZi5zb3VyY2UgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuaWRzLmluY2x1ZGVzKHRoaXMuY29udGV4dCgpLmlkKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1saXN0LXZpZXcnLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2VcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvdy5ldmVudHMkLnBpcGUob2ZUeXBlKEFYUEVudGl0eU1vZGlmeUV2ZW50KSkuc3Vic2NyaWJlKGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmVudGl0eURlZi5zb3VyY2UgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQudmFsdWVzLmlkID09PSB0aGlzLmNvbnRleHQoKS5pZFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5zZXQoZXZlbnQucGF5bG9hZC52YWx1ZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4oY2xvbmVEZWVwKHRoaXMuZW50aXR5RGF0YSkpO1xyXG5cclxuICAgIHByaXZhdGUgYWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LmFjdGlvbnM/Lm1hcCgodHIpID0+IG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdHIpKSA/PyBbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkuZmlsdGVyKGMgPT4gYy5wcmlvcml0eSA9PSAncHJpbWFyeScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcihjID0+IGMucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHNlY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3UHJvcHMgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8ubWFwKGMgPT4gYy5uYW1lKTtcclxuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKGMgPT5cclxuICAgICAgICAgICAgYy5ncm91cElkICYmXHJcbiAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmXHJcbiAgICAgICAgICAgIHZpZXdQcm9wcz8uaW5jbHVkZXMoYy5uYW1lKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnNlY3Rpb25zPy5maWx0ZXIoZyA9PlxyXG4gICAgICAgICAgICBwcm9wcy5zb21lKHAgPT4gcC5ncm91cElkID09IGcuaWQpXHJcbiAgICAgICAgKSA/PyBbXTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBncm91cHM/Lm1hcCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbilcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiAocmVzdWx0ID8/IFtdKSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWxbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzdWdnZXN0ZWRQcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgoYykgPT4gWyd0aXRsZScsICduYW1lJywgJ2NvZGUnXS5pbmNsdWRlcyhjLm5hbWUpKTtcclxuICAgICAgICBsZXQgc3VnZ2VzdGVkRm9ybWF0ID0gJ0l0ZW0gI3t7aWR9fSc7XHJcbiAgICAgICAgaWYgKHN1Z2dlc3RlZFByb3BzKSBzdWdnZXN0ZWRGb3JtYXQgPSBge3ske3N1Z2dlc3RlZFByb3BzLm5hbWV9fX1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gc3VnZ2VzdGVkRm9ybWF0LFxyXG4gICAgICAgICAgICAnc3RyaW5nJyxcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0KClcclxuICAgICAgICApO1xyXG4gICAgfSk7XHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBEZXNjcmlwdGlvbiAqKioqKioqKioqKioqKioqKiovL1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uID8gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAnc3RyaW5nJyxcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0KClcclxuICAgICAgICApIDogbnVsbDtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIEJlYXJkY3J1bWJzICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCZWFyZENydW1iW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJIb21lXCIsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhLXNvbGlkIGZhLWhvbWUgYXgtdGV4dC14cyBheC1tZS0yXCIsXHJcbiAgICAgICAgICAgICAgICB1cmw6IFtgLyR7dGhpcy5zZXNzaW9uLmFwcGxpY2F0aW9uPy5uYW1lfWBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmVudGl0eURlZi5mb3JtYXRzLnBsdXJhbCA/PyB0aGlzLmVudGl0eURlZi5mb3JtYXRzLmluZGl2aWR1YWwsXHJcbiAgICAgICAgICAgICAgICB1cmw6IFtgLyR7dGhpcy5zZXNzaW9uLmFwcGxpY2F0aW9uPy5uYW1lfWAsICdtJywgYCR7dGhpcy5lbnRpdHlEZWYubW9kdWxlfWAsICdlJywgYCR7dGhpcy5lbnRpdHlEZWYubmFtZX1gLCAnbGlzdCddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlKCksXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgcHVibGljIHJlbGF0ZWRFbnRpdGllcyA9IGNvbXB1dGVkPEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWxbXT4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5yZWxhdGVkRW50aXRpZXM/Lm1hcChyZSA9PlxyXG4gICAgICAgICAgICBuZXcgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCByZSwgeyBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLCBkYXRhOiB0aGlzLmVudGl0eURhdGEgfSlcclxuICAgICAgICApID8/IFtdXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcclxuICAgICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgICAgIC8vVE9ETzogc3ludGFjdCBmb3Igd29ya2Zsb3dcclxuICAgICAgICBzd2l0Y2ggKGNvbW1hbmROYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZS1lbnRpdHknOlxyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IFt0aGlzLmNvbnRleHQoKV0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdtb2RpZnktZW50aXR5LXNlY3Rpb24nOiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ21vZGlmeS1lbnRpdHktc2VjdGlvbicsIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLnNvdXJjZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmNvbnRleHQoKS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogKGRhdGEgYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKS5lZGl0YWJsZVByb3BzKCkubWFwKG0gPT4gbS5uYW1lKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25zKCkuZmluZChjID0+IGMubmFtZSA9PSBjb21tYW5kTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBhY3Rpb24/LnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsID8gZGF0YSA6IG51bGxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3Rvcnkge1xyXG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+IHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcclxuICAgICAgICBpZiAoY29uZmlnLnF1ZXJpZXMuYnlLZXkpIHtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmdW5jKGlkKTtcclxuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXI6IFJlc29sdmVGbjxQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4+ID0gKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICAgIHNlcnZpY2U6IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSlcclxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+ID0+IHtcclxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgZW50aXR5TmFtZSA9IHJvdXRlLnBhcmFtTWFwLmdldCgnZW50aXR5JykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xyXG4gICAgLy9cclxuICAgIHJldHVybiBzZXJ2aWNlLmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCk7XHJcbn07XHJcblxyXG5cclxuIl19
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBNEIscUJBQXFCLEVBQXdGLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbE0sT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSTFDLE1BQU0sT0FBTyx1Q0FBdUM7SUFFaEQsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FB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Q0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs4R0FoQlEsK0JBQStCO2tIQUEvQiwrQkFBK0IsY0FEbEIsTUFBTTs7MkZBQ25CLCtCQUErQjtrQkFEM0MsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBcUJsQyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBdUQsQ0FDaEcsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsVUFBMkMsTUFBTSxDQUFDLCtCQUErQixDQUFDLEVBQzNDLEVBQUU7SUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQ2xFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQzFELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBVyxDQUFDO0lBQzlDLEVBQUU7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9jb3JlL2Zvcm1hdFwiO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSwgc2V0IH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlRm4sIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UsIG9mVHlwZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93XCI7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2F1dGhcIjtcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tIFwiLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIH0gZnJvbSBcIi4vZW50aXR5LnZpZXdtb2RlbFwiO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyXCI7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tIFwiLi93b3JrZmxvd3MvZGVsZXRlLWVudGl0eS53b3JrZmxvd1wiO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tIFwiLi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3dcIjtcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwgfSBmcm9tIFwiLi9lbnRpdHktZGV0YWlsLWxpc3Qudmlld21vZGVsXCI7XG5pbXBvcnQgeyBBWFBCZWFyZENydW1iLCBBWFBFbnRpdHksIEFYUEVudGl0eUNvbW1hbmRTY29wZSwgQVhQRW50aXR5UHJvcGVydHksIEFYUEVudGl0eVByb3BlcnR5VmlldywgQVhQRW50aXR5U2VjdGlvblZpZXcsIEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBMYXlvdXRTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7XG4gICAgfVxuXG5cbiAgICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZChjID0+IGMuaWQgPT0gdGhpcy5zZWN0aW9uLmlkKSE7XG4gICAgbmFtZSA9IHNpZ25hbCh0aGlzLmdyb3VwLmlkKTtcbiAgICBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcbiAgICB9KTtcblxuICAgIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjtcbiAgICB9KTtcblxuICAgIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLnNlY3Rpb24ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XG4gICAgICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gICAgfSk7XG5cbiAgICBwcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpbnRlcmZhY2VzIH0gPSB0aGlzLmVudGl0eTtcbiAgICAgICAgY29uc3QgZ3JvdXBQcm9wZXJ0aWVzID0gcHJvcGVydGllc1xuICAgICAgICAgICAgLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbilcbiAgICAgICAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKTtcblxuICAgICAgICBjb25zdCB2aWV3UHJvcGVydGllcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maWx0ZXIoKHsgbmFtZSB9KSA9PlxuICAgICAgICAgICAgZ3JvdXBQcm9wZXJ0aWVzLmluY2x1ZGVzKG5hbWUpXG4gICAgICAgICkgPz8gW107XG5cbiAgICAgICAgcmV0dXJuIHZpZXdQcm9wZXJ0aWVzLm1hcChwcm9wID0+XG4gICAgICAgICAgICBuZXcgQVhQRW50aXR5TWFzdGVyU2luZ2xlRWxlbWVudFZpZXdNb2RlbCh0aGlzLmVudGl0eSwgdGhpcywgcHJvcClcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGVkaXRhYmxlUHJvcHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgaW50ZXJmYWNlcyB9ID0gdGhpcy5lbnRpdHk7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlUHJvcGVydHlOYW1lcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8udXBkYXRlPy5wcm9wZXJ0aWVzPy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXTtcblxuICAgICAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT5cbiAgICAgICAgICAgIGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgZWRpdGFibGVQcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKG5hbWUpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkUHJvcGVydGllcy5tYXAocHJvcCA9PlxuICAgICAgICAgICAgbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBlZGl0YWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGFibGVQcm9wcygpLmxlbmd0aCA+IDBcbiAgICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwsIHByaXZhdGUgcHJvcGVydHlWaWV3OiBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcpIHtcblxuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGVydHkgPSB0aGlzLmVudGl0eS5wcm9wZXJ0aWVzLmZpbmQoYyA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eVZpZXcubmFtZSkhXG4gICAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xuICAgIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG5cbiAgICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgICAgICBjb25zdCB2aWV3UHJvcCA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maW5kKGMgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh2aWV3UHJvcD8ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XG4gICAgICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gICAgfSk7XG5cbiAgICBub2RlID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Tm9kZT4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICAgICAgICBtb2RlOiAndmlldycsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLm5hbWUoKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXG4gICAgICAgICAgICBmb3JtdWxhOiB3aWRnZXQuZm9ybXVsYSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG1lcmdlKFxuICAgICAgICAgICAgICAgIHNjaGVtYS5pbnRlcmZhY2U/Lm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLy90aGlzLnByb3BlcnR5Lm9wdGlvbnM/LmNyZWF0ZT8ud2lkZ2V0LFxuICAgICAgICAgICAgICAgIHsgdmFsaWRhdGlvblJ1bGVzOiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zIH0sXG4gICAgICAgICAgICApXG4gICAgICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgICB9KVxufVxuXG5cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEZWYgPSBjbG9uZURlZXAodGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGUpIVxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvbiA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgZXZlbnRzJDogU3ViamVjdDx7IGFjdGlvbjogc3RyaW5nIH0+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcbiAgICAgICAgcHJpdmF0ZSBlbnRpdHlEYXRhOiBhbnksXG4gICAgKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXZlbnRzJFxuICAgICAgICAgICAgLnBpcGUob2ZUeXBlKEFYUEVudGl0eURlbGV0ZWRFdmVudCkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMuZW50aXR5RGVmLnNvdXJjZSAmJlxuICAgICAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLmlkcy5pbmNsdWRlcyh0aGlzLmNvbnRleHQoKS5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdzaG93LWxpc3QtdmlldycsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgICAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlNb2RpZnlFdmVudCkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMuZW50aXR5RGVmLnNvdXJjZSAmJlxuICAgICAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLnZhbHVlcy5pZCA9PT0gdGhpcy5jb250ZXh0KCkuaWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnNldChldmVudC5wYXlsb2FkLnZhbHVlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgY29udGV4dCA9IHNpZ25hbDxhbnk+KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcblxuICAgIHByaXZhdGUgYWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5hY3Rpb25zPy5tYXAoKHRyKSA9PiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHRyKSkgPz8gW107XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgcHJpbWFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoYyA9PiBjLnByaW9yaXR5ID09ICdwcmltYXJ5Jyk7XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgc2Vjb25kYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcihjID0+IGMucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpO1xuICAgIH0pO1xuXG4gICAgcHVibGljIHNlY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsW10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICAgICAgY29uc3Qgdmlld1Byb3BzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/Lm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpID8/IFtdO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKCh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PlxuICAgICAgICAgICAgZ3JvdXBJZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiB2aWV3UHJvcHMuaW5jbHVkZXMobmFtZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBncm91cHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8uc2VjdGlvbnM/LmZpbHRlcigoeyBpZCB9KSA9PlxuICAgICAgICAgICAgZmlsdGVyZWRQcm9wZXJ0aWVzLnNvbWUoKHsgZ3JvdXBJZCB9KSA9PiBncm91cElkID09PSBpZClcbiAgICAgICAgKSA/PyBbXTtcblxuICAgICAgICByZXR1cm4gZ3JvdXBzLm1hcChzZWN0aW9uID0+XG4gICAgICAgICAgICBuZXcgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCBzZWN0aW9uKVxuICAgICAgICApO1xuICAgIH0pO1xuXG5cbiAgICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICAgIHB1YmxpYyB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWdnZXN0ZWRQcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgoYykgPT4gWyd0aXRsZScsICduYW1lJywgJ2NvZGUnXS5pbmNsdWRlcyhjLm5hbWUpKTtcbiAgICAgICAgbGV0IHN1Z2dlc3RlZEZvcm1hdCA9ICdJdGVtICN7e2lkfX0nO1xuICAgICAgICBpZiAoc3VnZ2VzdGVkUHJvcHMpIHN1Z2dlc3RlZEZvcm1hdCA9IGB7eyR7c3VnZ2VzdGVkUHJvcHMubmFtZX19fWA7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gc3VnZ2VzdGVkRm9ybWF0LFxuICAgICAgICAgICAgJ3N0cmluZycsXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQoKVxuICAgICAgICApO1xuICAgIH0pO1xuICAgIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXG4gICAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICdzdHJpbmcnLFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0KClcbiAgICAgICAgKSA6IG51bGw7XG4gICAgfSk7XG5cbiAgICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xuICAgIHB1YmxpYyBiZWFyZGNydW1icyA9IGNvbXB1dGVkPEFYUEJlYXJkQ3J1bWJbXT4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBcIkhvbWVcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhLXNvbGlkIGZhLWhvbWUgYXgtdGV4dC14cyBheC1tZS0yXCIsXG4gICAgICAgICAgICAgICAgdXJsOiBbYC8ke3RoaXMuc2Vzc2lvbi5hcHBsaWNhdGlvbj8ubmFtZX1gXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5lbnRpdHlEZWYuZm9ybWF0cy5wbHVyYWwgPz8gdGhpcy5lbnRpdHlEZWYuZm9ybWF0cy5pbmRpdmlkdWFsLFxuICAgICAgICAgICAgICAgIHVybDogW2AvJHt0aGlzLnNlc3Npb24uYXBwbGljYXRpb24/Lm5hbWV9YCwgJ20nLCBgJHt0aGlzLmVudGl0eURlZi5tb2R1bGV9YCwgJ2UnLCBgJHt0aGlzLmVudGl0eURlZi5uYW1lfWAsICdsaXN0J11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH0pO1xuXG5cbiAgICBwdWJsaWMgcmVsYXRlZEVudGl0aWVzID0gY29tcHV0ZWQ8QVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5yZWxhdGVkRW50aXRpZXM/Lm1hcChyZSA9PlxuICAgICAgICAgICAgbmV3IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgcmUsIHsgZW50aXR5OiB0aGlzLmVudGl0eURlZiwgZGF0YTogdGhpcy5lbnRpdHlEYXRhIH0pXG4gICAgICAgICkgPz8gW11cbiAgICB9KTtcblxuXG4gICAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICAgICAgLy9UT0RPOiBzeW50YWN0IGZvciB3b3JrZmxvd1xuICAgICAgICBzd2l0Y2ggKGNvbW1hbmROYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdtb2RpZnktZW50aXR5LXNlY3Rpb24nOiB7XG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdtb2RpZnktZW50aXR5LXNlY3Rpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5jb250ZXh0KCkuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiAoZGF0YSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwpLmVkaXRhYmxlUHJvcHMoKS5tYXAobSA9PiBtLm5hbWUoKSksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25zKCkuZmluZChjID0+IGMubmFtZSA9PSBjb21tYW5kTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZShjb21tYW5kTmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBhY3Rpb24/LnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsID8gdGhpcy5jb250ZXh0KCkgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vXG4gICAgLy9cbiAgICBkZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3Rvcnkge1xuICAgIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGUobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4ge1xuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XG4gICAgfVxufVxuXG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxSZXNvbHZlcjogUmVzb2x2ZUZuPFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPj4gPSAoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gICAgc2VydmljZTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5KVxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+ID0+IHtcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gcm91dGUucGFyZW50Py5wYXJhbU1hcC5nZXQoJ21vZHVsZScpIGFzIHN0cmluZztcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIC8vXG4gICAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUsIGlkKTtcbn07XG5cblxuIl19
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
100
100
|
type: Injectable,
|
|
101
101
|
args: [{ providedIn: 'root' }]
|
|
102
102
|
}] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQXNELGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRy9HLE1BQU0sT0FBTyxxQ0FBcUM7SUFFOUMsWUFBb0IsTUFBaUIsRUFBVSxRQUEyQjtRQUF0RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFJMUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWhELGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQTtRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUdILGVBQVUsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUE7UUFDOUUsQ0FBQyxDQUFDLENBQUM7UUFFSCxXQUFNLEdBQUcsUUFBUSxDQUF1QixHQUFHLEVBQUU7WUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9HLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBVyxDQUFDO1lBQzdELEdBQUcsQ0FBQyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsT0FBTyxNQUE4QixDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBSSxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTyxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7WUFDakMsT0FBTztnQkFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN2QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sRUFBRSxLQUFLLENBQ1YsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPO2dCQUN6Qix3Q0FBd0M7Z0JBQ3hDLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQ2pEO2FBQ2EsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQTtJQXRDRixDQUFDO0NBdUNKO0FBSUQsTUFBTSxPQUFPLDhCQUE4QjtJQUt2QyxZQUNZLFFBQWtCLEVBQ2xCLE1BQWlCLEVBQ2pCLFVBQWUsRUFDZixLQUFlO1FBSGYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBUG5CLGNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBRSxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBV2xELGlCQUFZLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXRDLFlBQU8sR0FBRyxNQUFNLENBQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRXpELGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQztZQUM3QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFkSCxDQUFDO0lBZ0JNLEtBQUssQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO1lBQzVDLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQW1CLENBQUM7Z0JBQ3JDLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUM7Z0JBQ08sQ0FBQztZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBRUo7QUFHRCxNQUFNLE9BQU8scUNBQXFDO0lBRGxEO1FBRVksa0JBQWEsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUMzRCxXQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQWN2QztJQVpVLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxVQUFrQixFQUFFLEVBQVUsRUFBRSxLQUFlO1FBQ25GLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQW1CLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQWhCUSxxQ0FBcUM7a0hBQXJDLHFDQUFxQyxjQUR4QixNQUFNOzsyRkFDbkIscUNBQXFDO2tCQURqRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UsIHNldCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tIFwiLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyXCI7XHJcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93XCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQRW50aXR5UHJvcGVydHksIEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBMYXlvdXRTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclVwZGF0ZUVsZW1lbnRWaWV3TW9kZWwge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5KSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcclxuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xyXG4gICAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICEodGhpcy5wcm9wZXJ0eS5zY2hlbWEucmVhZG9ubHkgPz8gZmFsc2UpXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZShjID0+IGMucnVsZSA9PSAncmVxdWlyZWQnKSB8fCBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcclxuICAgICAgICBjb25zdCB1cGRhdGVQcm9wID0gdGhpcy5lbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy51cGRhdGU/LnByb3BlcnRpZXM/LmZpbmQoYyA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodXBkYXRlUHJvcD8ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XHJcbiAgICAgICAgc2V0KHNvdXJjZSwgXCJwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuXCIsIDEyKTtcclxuICAgICAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XHJcbiAgICAgICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXHJcbiAgICAgICAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcclxuICAgICAgICAgICAgcGF0aDogdGhpcy5uYW1lKCksXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxyXG4gICAgICAgICAgICB0cmlnZ2Vyczogd2lkZ2V0LnRyaWdnZXJzLFxyXG4gICAgICAgICAgICBvcHRpb25zOiBtZXJnZShcclxuICAgICAgICAgICAgICAgIHNjaGVtYS5pbnRlcmZhY2U/Lm9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAvL3RoaXMucHJvcGVydHkub3B0aW9ucz8uY3JlYXRlPy53aWRnZXQsXHJcbiAgICAgICAgICAgICAgICB7IHZhbGlkYXRpb25SdWxlczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSBhcyBBWFBXaWRnZXROb2RlO1xyXG4gICAgfSlcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsIHtcclxuXHJcbiAgICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xyXG4gICAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcclxuICAgICAgICBwcml2YXRlIGVudGl0eURhdGE6IGFueSxcclxuICAgICAgICBwcml2YXRlIHByb3BzOiBzdHJpbmdbXVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBpc0luUHJvZ3Jlc3MgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAgIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4oY2xvbmVEZWVwKHRoaXMuZW50aXR5RGF0YSkpO1xyXG5cclxuICAgIGVsZW1lbnRzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoYyA9PlxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmluY2x1ZGVzKGMubmFtZSkgJiZcclxuICAgICAgICAgICAgYy5zY2hlbWEuaGlkZGVuICE9IHRydWUpO1xyXG4gICAgICAgIHJldHVybiBwcm9wcy5tYXAoZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyVXBkYXRlRWxlbWVudFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgZSk7XHJcbiAgICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzYXZlKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KHRydWUpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbSA9IHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy51cGRhdGU7XHJcbiAgICAgICAgICAgIGlmIChjb20pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4ZWMgPSBjb20uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjKHRoaXMuY29udGV4dCgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5zZXQoY2xvbmVEZWVwKHRoaXMuZW50aXR5RGF0YSkpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbEZhY3Rvcnkge1xyXG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwcm9wczogc3RyaW5nW10pOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbD4ge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xyXG4gICAgICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xyXG4gICAgICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gY29uZmlnLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGZ1bmMoaWQpO1xyXG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZywgZGF0YSwgcHJvcHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQXNELGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRy9HLE1BQU0sT0FBTyxxQ0FBcUM7SUFFOUMsWUFBb0IsTUFBaUIsRUFBVSxRQUEyQjtRQUF0RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFJMUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWhELGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQTtRQUNwRCxDQUFDLENBQUMsQ0FBQztR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dkMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQW1CLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQWhCUSxxQ0FBcUM7a0hBQXJDLHFDQUFxQyxjQUR4QixNQUFNOzsyRkFDbkIscUNBQXFDO2tCQURqRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UsIHNldCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gXCIuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZVwiO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyXCI7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvd1wiO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlQcm9wZXJ0eSwgQVhQR3JpZExheW91dE9wdGlvbnMsIEFYUExheW91dFNlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcblxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyVXBkYXRlRWxlbWVudFZpZXdNb2RlbCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHByb3BlcnR5OiBBWFBFbnRpdHlQcm9wZXJ0eSkge1xuXG4gICAgfVxuXG4gICAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xuICAgIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gICAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKVxuICAgIH0pO1xuXG5cbiAgICBpc1JlcXVpcmVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZShjID0+IGMucnVsZSA9PSAncmVxdWlyZWQnKSB8fCBmYWxzZVxuICAgIH0pO1xuXG4gICAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlUHJvcCA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8udXBkYXRlPy5wcm9wZXJ0aWVzPy5maW5kKGMgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh1cGRhdGVQcm9wPy5sYXlvdXQgPz8ge30pIGFzIG9iamVjdDtcbiAgICAgICAgc2V0KHNvdXJjZSwgXCJwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuXCIsIDEyKTtcbiAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgICB9KTtcblxuICAgIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMucHJvcGVydHkuc2NoZW1hITtcbiAgICAgICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcbiAgICAgICAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxuICAgICAgICAgICAgY2hpbGRyZW46IHdpZGdldC5jaGlsZHJlbixcbiAgICAgICAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxuICAgICAgICAgICAgdHJpZ2dlcnM6IHdpZGdldC50cmlnZ2VycyxcbiAgICAgICAgICAgIG9wdGlvbnM6IG1lcmdlKFxuICAgICAgICAgICAgICAgIHNjaGVtYS5pbnRlcmZhY2U/Lm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLy90aGlzLnByb3BlcnR5Lm9wdGlvbnM/LmNyZWF0ZT8ud2lkZ2V0LFxuICAgICAgICAgICAgICAgIHsgdmFsaWRhdGlvblJ1bGVzOiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zIH0sXG4gICAgICAgICAgICApXG4gICAgICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgICB9KVxufVxuXG5cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbCB7XG5cbiAgICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICAgIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICAgICAgICBwcml2YXRlIGVudGl0eURhdGE6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBwcm9wczogc3RyaW5nW11cbiAgICApIHtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBpc0luUHJvZ3Jlc3MgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgICBlbGVtZW50cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+XG4gICAgICAgICAgICB0aGlzLnByb3BzLmluY2x1ZGVzKGMubmFtZSkgJiZcbiAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHByb3BzLm1hcChlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyVXBkYXRlRWxlbWVudFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgZSk7XG4gICAgICAgIH0pXG4gICAgfSk7XG5cbiAgICBwdWJsaWMgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb20gPSB0aGlzLmVudGl0eURlZi5jb21tYW5kcz8udXBkYXRlO1xuICAgICAgICAgICAgaWYgKGNvbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4ZWMgPSBjb20uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZXhlYyh0aGlzLmNvbnRleHQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCkge1xuICAgICAgICB0aGlzLmNvbnRleHQuc2V0KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcbiAgICB9XG5cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5IHtcbiAgICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwcm9wczogc3RyaW5nW10pOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbD4ge1xuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEsIHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnY2Fubm90IGZldGNoICcpO1xuICAgIH1cbn1cblxuXG4iXX0=
|