@alauda-fe/common 1.3.0 → 1.3.1
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/api/helpers.d.ts +8 -16
- package/array-form-table/form/component.d.ts +1 -1
- package/business/resource-select/internals/namespace-list/component.d.ts +3 -1
- package/business/resource-select/module.d.ts +2 -1
- package/core/components/tree/toggle.d.ts +3 -3
- package/core/constants/constants.d.ts +4 -1
- package/core/constants/patterns.d.ts +8 -0
- package/core/constants/status-icons.d.ts +2 -1
- package/core/services/encode-url-param.interceptor.d.ts +12 -0
- package/core/services/public-api.d.ts +1 -0
- package/core/services/time.service.d.ts +1 -0
- package/core/types/k8s/crd.d.ts +11 -5
- package/core/types/k8s/raw.d.ts +25 -38
- package/core/types/resource-definitions.d.ts +57 -71
- package/core/utils/common.d.ts +5 -11
- package/core/utils/disabled-state.d.ts +20 -0
- package/core/utils/public-api.d.ts +2 -0
- package/core/utils/workload.d.ts +66 -0
- package/esm2022/abnormal-page/abnormal-page.component.mjs +5 -4
- package/esm2022/abnormal-page/abnormal-page.module.mjs +2 -2
- package/esm2022/api/acp-common-api.service.mjs +3 -3
- package/esm2022/api/api-compatible.interceptor.mjs +1 -1
- package/esm2022/api/api-gateway.interceptor.mjs +3 -3
- package/esm2022/api/api-gateway.service.mjs +2 -2
- package/esm2022/api/cluster-version.service.mjs +3 -3
- package/esm2022/api/crypto.interceptor.mjs +4 -4
- package/esm2022/api/helpers.mjs +1 -1
- package/esm2022/api/k8s-api-resource.service.mjs +4 -4
- package/esm2022/api/k8s-api.service.mjs +6 -6
- package/esm2022/api/page-visibility.service.mjs +2 -2
- package/esm2022/api/platform-ui.service.mjs +2 -2
- package/esm2022/api/product.service.mjs +3 -3
- package/esm2022/api/project-api.service.mjs +3 -3
- package/esm2022/api/resource-update.service.mjs +3 -3
- package/esm2022/array-form-table/base-string-map-form.component.mjs +3 -3
- package/esm2022/array-form-table/form/component.mjs +104 -111
- package/esm2022/array-form-table/form/module.mjs +2 -2
- package/esm2022/array-form-table/key-value-form/component.mjs +53 -58
- package/esm2022/array-form-table/key-value-table/component.mjs +7 -7
- package/esm2022/array-form-table/string-array-form/component.mjs +48 -52
- package/esm2022/async-data/async-data-loader.mjs +1 -1
- package/esm2022/async-data/async-data.module.mjs +2 -2
- package/esm2022/async-data/error-page/component.mjs +21 -22
- package/esm2022/async-data/page-state/component.mjs +16 -15
- package/esm2022/authorization/app-init-url.mjs +1 -1
- package/esm2022/authorization/guard.service.mjs +4 -4
- package/esm2022/authorization/interceptor.service.mjs +4 -4
- package/esm2022/authorization/session-manage.service.mjs +5 -5
- package/esm2022/authorization/state.service.mjs +2 -2
- package/esm2022/authorization/storage-token.mjs +2 -2
- package/esm2022/business/module-info/api.service.mjs +3 -3
- package/esm2022/business/notification-disabled-container/component.mjs +14 -14
- package/esm2022/business/resource-select/base-list.mjs +3 -3
- package/esm2022/business/resource-select/context.service.mjs +3 -3
- package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +22 -20
- package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +22 -20
- package/esm2022/business/resource-select/exports/namespace-page/component.mjs +6 -5
- package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +37 -35
- package/esm2022/business/resource-select/exports/project-page/component.mjs +6 -5
- package/esm2022/business/resource-select/exports/project-selector/component.mjs +23 -22
- package/esm2022/business/resource-select/helpers.directive.mjs +2 -2
- package/esm2022/business/resource-select/internals/cluster-list/component.mjs +7 -6
- package/esm2022/business/resource-select/internals/data-grid/component.mjs +173 -176
- package/esm2022/business/resource-select/internals/icon/component.mjs +3 -2
- package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +5 -4
- package/esm2022/business/resource-select/internals/namespace-list/component.mjs +145 -100
- package/esm2022/business/resource-select/internals/no-data/component.mjs +12 -14
- package/esm2022/business/resource-select/internals/project-list/component.mjs +5 -4
- package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +7 -6
- package/esm2022/business/resource-select/internals/selector-popup/component.mjs +6 -5
- package/esm2022/business/resource-select/internals/selector-popup/ref.mjs +1 -1
- package/esm2022/business/resource-select/internals/selector-popup/service.mjs +3 -3
- package/esm2022/business/resource-select/module.mjs +17 -14
- package/esm2022/business/resource-select/project.service.mjs +3 -3
- package/esm2022/business/resource-select/utils.mjs +1 -1
- package/esm2022/chart/chart.module.mjs +2 -2
- package/esm2022/chart/chart.service.mjs +4 -4
- package/esm2022/chart/common/axis/axis-label.component.mjs +4 -3
- package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +27 -27
- package/esm2022/chart/common/axis/x-axis.component.mjs +6 -5
- package/esm2022/chart/common/axis/x-plot-lines.component.mjs +7 -6
- package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +35 -35
- package/esm2022/chart/common/axis/y-axis.component.mjs +9 -8
- package/esm2022/chart/common/axis/y-plot-lines.component.mjs +6 -5
- package/esm2022/chart/common/chart/chart.component.mjs +41 -43
- package/esm2022/chart/common/legend/legend.component.mjs +62 -65
- package/esm2022/chart/common/range-area/range-area.component.mjs +13 -11
- package/esm2022/chart/common/reference-area/reference-area.component.mjs +4 -3
- package/esm2022/chart/common/series/area-series.component.mjs +15 -14
- package/esm2022/chart/common/series/bar-path.component.mjs +20 -21
- package/esm2022/chart/common/series/bar-series.component.mjs +8 -7
- package/esm2022/chart/common/series/line-series.component.mjs +7 -6
- package/esm2022/chart/common/series/series.component.mjs +3 -3
- package/esm2022/chart/common/tooltip/tooltip.component.mjs +73 -81
- package/esm2022/chart/custom-template/dropdown-legend.mjs +23 -25
- package/esm2022/chart/utils.mjs +1 -1
- package/esm2022/code/code-display-dialog/component.mjs +9 -8
- package/esm2022/code/code-editor-configs.mjs +2 -2
- package/esm2022/code/code.module.mjs +2 -2
- package/esm2022/code/k8s-yaml-display-dialog/component.mjs +9 -8
- package/esm2022/code/resource-yaml-display/component.mjs +21 -22
- package/esm2022/core/abstract/base-form-container.mjs +3 -3
- package/esm2022/core/abstract/base-nested-form-control.mjs +5 -5
- package/esm2022/core/components/tree/module.mjs +2 -2
- package/esm2022/core/components/tree/node/component.mjs +7 -6
- package/esm2022/core/components/tree/outlet.mjs +4 -4
- package/esm2022/core/components/tree/padding.mjs +6 -6
- package/esm2022/core/components/tree/toggle.mjs +9 -9
- package/esm2022/core/components/tree/tree/component.mjs +4 -3
- package/esm2022/core/constants/constants.mjs +4 -1
- package/esm2022/core/constants/patterns.mjs +10 -1
- package/esm2022/core/constants/status-icons.mjs +2 -1
- package/esm2022/core/constants/tokens.mjs +1 -1
- package/esm2022/core/directives/aui-code-editor.directive.mjs +3 -3
- package/esm2022/core/directives/click-outside.directive.mjs +4 -4
- package/esm2022/core/directives/declare.directive.mjs +2 -2
- package/esm2022/core/directives/disabled.directive.mjs +4 -4
- package/esm2022/core/directives/feature-gate.directive.mjs +4 -4
- package/esm2022/core/directives/intercept-deactivate.directive.mjs +4 -4
- package/esm2022/core/directives/last-form-item.directive.mjs +3 -3
- package/esm2022/core/directives/page-header-content.directive.mjs +3 -3
- package/esm2022/core/directives/readonly-field.directive.mjs +8 -7
- package/esm2022/core/directives/resize.directive.mjs +3 -3
- package/esm2022/core/directives/scroll-border-observer.directive.mjs +4 -4
- package/esm2022/core/directives/scroll-to-first-invalid.directive.mjs +5 -5
- package/esm2022/core/guards/feature.guard.mjs +4 -4
- package/esm2022/core/guards/intercept-deactivate.guard.mjs +3 -3
- package/esm2022/core/guards/leave-edit-page.guard.mjs +3 -3
- package/esm2022/core/guards/project-namespace.guard.mjs +5 -5
- package/esm2022/core/module.mjs +2 -2
- package/esm2022/core/pipes/calc.pipe.mjs +2 -2
- package/esm2022/core/pipes/cron-human-readable.pipe.mjs +2 -2
- package/esm2022/core/pipes/crontab-next.pipe.mjs +3 -3
- package/esm2022/core/pipes/duration.pipe.mjs +3 -3
- package/esm2022/core/pipes/field-not-available.pipe.mjs +2 -2
- package/esm2022/core/pipes/img-header.pipe.mjs +2 -2
- package/esm2022/core/pipes/img-theme.pipe.mjs +3 -3
- package/esm2022/core/pipes/k8s-util.pipe.mjs +24 -24
- package/esm2022/core/pipes/k8s-util.pipe.module.mjs +2 -2
- package/esm2022/core/pipes/keyvalue.pipe.mjs +3 -3
- package/esm2022/core/pipes/marked.pipe.mjs +2 -2
- package/esm2022/core/pipes/minimum-format.pipe.mjs +3 -3
- package/esm2022/core/pipes/page-env.pipe.mjs +5 -5
- package/esm2022/core/pipes/parse-json-translate.pipe.mjs +3 -3
- package/esm2022/core/pipes/parse-json.pipe.mjs +2 -2
- package/esm2022/core/pipes/pure.pipe.mjs +2 -2
- package/esm2022/core/pipes/pure.pipe.module.mjs +2 -2
- package/esm2022/core/pipes/safe.pipe.mjs +3 -3
- package/esm2022/core/pipes/sanitize.pipe.mjs +3 -3
- package/esm2022/core/pipes/time.pipe.mjs +9 -9
- package/esm2022/core/pipes/timezone-display.pipe.mjs +2 -2
- package/esm2022/core/services/aui-paginator-intl.service.mjs +3 -3
- package/esm2022/core/services/aui-tooltip-copy-intl.service.mjs +3 -3
- package/esm2022/core/services/context.service.mjs +4 -4
- package/esm2022/core/services/custom-code-editor-intl.service.mjs +3 -3
- package/esm2022/core/services/encode-url-param.interceptor.mjs +32 -0
- package/esm2022/core/services/feature-gate.service.mjs +3 -3
- package/esm2022/core/services/form-row-duplicate/form-row-duplicate.service.mjs +3 -3
- package/esm2022/core/services/intercept-deactivate.service.mjs +3 -3
- package/esm2022/core/services/k8s-util.service.mjs +3 -3
- package/esm2022/core/services/on-resize.service.mjs +5 -5
- package/esm2022/core/services/public-api.mjs +2 -1
- package/esm2022/core/services/silently-navigate.service.mjs +3 -3
- package/esm2022/core/services/time.service.mjs +4 -3
- package/esm2022/core/services/ui-state.service.mjs +2 -2
- package/esm2022/core/services/workspace-helper.service.mjs +2 -2
- package/esm2022/core/services/yaml-util.service.mjs +4 -4
- package/esm2022/core/types/k8s/crd.mjs +1 -1
- package/esm2022/core/types/k8s/raw.mjs +1 -1
- package/esm2022/core/types/resource-definitions.mjs +42 -65
- package/esm2022/core/utils/cache-store.mjs +1 -1
- package/esm2022/core/utils/common.mjs +3 -2
- package/esm2022/core/utils/create-recursive-filter.mjs +1 -1
- package/esm2022/core/utils/cron-util.mjs +1 -1
- package/esm2022/core/utils/decorators.mjs +1 -1
- package/esm2022/core/utils/disabled-state.mjs +47 -0
- package/esm2022/core/utils/format-number.mjs +1 -1
- package/esm2022/core/utils/k8s-util.mjs +1 -1
- package/esm2022/core/utils/observable.mjs +1 -1
- package/esm2022/core/utils/operators.mjs +1 -1
- package/esm2022/core/utils/public-api.mjs +3 -1
- package/esm2022/core/utils/request-pool.mjs +1 -1
- package/esm2022/core/utils/resources.mjs +1 -1
- package/esm2022/core/utils/sort-fn.mjs +1 -1
- package/esm2022/core/utils/tree.mjs +1 -1
- package/esm2022/core/utils/unit.mjs +1 -1
- package/esm2022/core/utils/version.mjs +1 -1
- package/esm2022/core/utils/workload.mjs +183 -0
- package/esm2022/core/utils/workspace.mjs +1 -1
- package/esm2022/core/utils/yaml.mjs +1 -1
- package/esm2022/custom-columns-setting/component.mjs +30 -23
- package/esm2022/disabled-container/disabled-container.component.mjs +4 -3
- package/esm2022/disabled-container/disabled-container.module.mjs +2 -2
- package/esm2022/editable-text/component.mjs +14 -12
- package/esm2022/editable-text/module.mjs +2 -2
- package/esm2022/effect-directive/coerce-number.directive.mjs +4 -4
- package/esm2022/effect-directive/e2e-attribute-binding.directive.mjs +3 -3
- package/esm2022/effect-directive/event.directive.mjs +3 -3
- package/esm2022/effect-directive/min-max.directive.mjs +3 -3
- package/esm2022/effect-directive/module.mjs +2 -2
- package/esm2022/effect-directive/trim.directive.mjs +3 -3
- package/esm2022/effect-directive/validators.directive.mjs +3 -3
- package/esm2022/exec/module.mjs +2 -2
- package/esm2022/exec/placeholder/component.mjs +4 -3
- package/esm2022/exec/service.mjs +3 -3
- package/esm2022/exec/terminal/component.mjs +77 -69
- package/esm2022/exec/terminal-group/component.mjs +42 -44
- package/esm2022/feature-gate-forbidden/component/component.mjs +9 -8
- package/esm2022/feature-gate-forbidden/module.mjs +2 -2
- package/esm2022/form/directives/value-trace.directive.mjs +4 -4
- package/esm2022/form/errors-mapper/base-errors-mapper.mjs +3 -3
- package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +3 -3
- package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +6 -5
- package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +7 -6
- package/esm2022/form/errors-mapper/errors-mapper.module.mjs +2 -2
- package/esm2022/form/labels-editor/component.mjs +36 -36
- package/esm2022/form/taints-editor/component.mjs +42 -42
- package/esm2022/form/upload-file/component.mjs +9 -7
- package/esm2022/form/utils.mjs +1 -1
- package/esm2022/form/validators/async-function-validator.directive.mjs +4 -3
- package/esm2022/form/validators/dns1123-subdomain.mjs +1 -1
- package/esm2022/form/validators/function-validator.directive.mjs +4 -3
- package/esm2022/form/validators/maxlength-minlength-validator.directive.mjs +9 -7
- package/esm2022/form/validators/module.mjs +7 -8
- package/esm2022/form/validators/not-be-validator.directive.mjs +4 -3
- package/esm2022/form/validators/one-of-validator.directive.mjs +4 -3
- package/esm2022/form/validators/resource-limit.mjs +1 -1
- package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +30 -28
- package/esm2022/form/validators/strong-password/strong-password-validator.directive.mjs +3 -3
- package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +6 -7
- package/esm2022/form/validators/utils.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-actions.component.mjs +3 -2
- package/esm2022/graph-canvas/components/graph-canvas.component.mjs +25 -23
- package/esm2022/graph-canvas/components/graph-link.component.mjs +12 -13
- package/esm2022/graph-canvas/components/graph-links.component.mjs +3 -2
- package/esm2022/graph-canvas/components/graph-node.directive.mjs +4 -4
- package/esm2022/graph-canvas/graph-canvas.module.mjs +2 -2
- package/esm2022/graph-canvas/graph-store.service.mjs +2 -2
- package/esm2022/grid-layout/components/grid/component.mjs +5 -4
- package/esm2022/grid-layout/components/grid-items/component.mjs +8 -7
- package/esm2022/grid-layout/directives/drag-handler.directive.mjs +3 -3
- package/esm2022/grid-layout/directives/placeholder.directive.mjs +3 -3
- package/esm2022/grid-layout/directives/remove-handler.directive.mjs +3 -3
- package/esm2022/grid-layout/directives/resize-handler.directive.mjs +3 -3
- package/esm2022/grid-layout/grid-layout.service.mjs +2 -2
- package/esm2022/grid-layout/grid-placeholder.service.mjs +3 -3
- package/esm2022/grid-layout/module.mjs +2 -2
- package/esm2022/grid-layout/utils/grid.utils.mjs +1 -1
- package/esm2022/grid-layout/utils/react-grid-layout.utils.mjs +1 -1
- package/esm2022/grid-layout/utils/scroll.utils.mjs +1 -1
- package/esm2022/help-document/component.mjs +18 -16
- package/esm2022/help-document/directive.mjs +4 -4
- package/esm2022/help-document/module.mjs +2 -2
- package/esm2022/help-document/service.mjs +4 -4
- package/esm2022/iframe-config/config.service.mjs +3 -3
- package/esm2022/k8s-resource-list/footer/component.mjs +53 -51
- package/esm2022/k8s-resource-list/k8s-resource-list.mjs +3 -6
- package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +2 -2
- package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +1 -1
- package/esm2022/k8s-resource-list/utils.mjs +1 -1
- package/esm2022/k8s-shared/constants.mjs +53 -0
- package/esm2022/k8s-shared/k8s-resource-translate-key.pipe.mjs +30 -0
- package/esm2022/k8s-shared/k8s-shared-util.service.mjs +3 -3
- package/esm2022/k8s-shared/public-api.mjs +2 -1
- package/esm2022/k8s-shared/update-description-dialog/component.mjs +10 -9
- package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +22 -20
- package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +13 -11
- package/esm2022/lazy-component/lazy-load-component.mjs +25 -26
- package/esm2022/lazy-component/visibility.service.mjs +2 -2
- package/esm2022/license/license-api.mjs +3 -3
- package/esm2022/license/license-error/component.mjs +25 -25
- package/esm2022/license/license-error/module.mjs +2 -2
- package/esm2022/license/license.guard.mjs +4 -4
- package/esm2022/license/license.service.mjs +4 -4
- package/esm2022/list-display/component.mjs +39 -40
- package/esm2022/metric-chart/common-chart.service.mjs +3 -3
- package/esm2022/metric-chart/helpers.mjs +1 -1
- package/esm2022/metric-chart/metric-chart.component.mjs +6 -5
- package/esm2022/metric-chart/metric-chart.module.mjs +2 -2
- package/esm2022/metric-chart/metric-time-pick.mjs +20 -17
- package/esm2022/metric-chart/utils.mjs +1 -1
- package/esm2022/multi-search/action-input/component.mjs +180 -181
- package/esm2022/multi-search/form/component.mjs +26 -22
- package/esm2022/multi-search/multi-search-tags/component.mjs +33 -31
- package/esm2022/mutable/element.mjs +1 -1
- package/esm2022/mutable/mosaic/mosaic.component.mjs +6 -5
- package/esm2022/mutable/mosaic/mosaic.directive.mjs +3 -3
- package/esm2022/mutable/mutable.directive.mjs +4 -4
- package/esm2022/mutable/mutable.module.mjs +2 -2
- package/esm2022/notification/feedback-notification/component.mjs +22 -23
- package/esm2022/notification/notification-util.service.mjs +3 -3
- package/esm2022/notification/resource-error.interceptor.mjs +3 -3
- package/esm2022/overview-banner/overview-banner.component.mjs +3 -2
- package/esm2022/overview-banner/overview-banner.module.mjs +2 -2
- package/esm2022/page-guard/component/component.mjs +70 -78
- package/esm2022/page-guard/component/helper-directives.mjs +5 -5
- package/esm2022/page-guard/module.mjs +2 -2
- package/esm2022/page-scaffold/module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.mjs +3 -3
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +177 -88
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.service.mjs +2 -2
- package/esm2022/page-scaffold/navigation/breadcrumb/module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/lottie-icons/animation-data.mjs +1 -3
- package/esm2022/page-scaffold/navigation/lottie-icons/lottie-icon.directive.mjs +3 -3
- package/esm2022/page-scaffold/navigation/lottie-icons/module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/lottie-icons/replace-lottie-colors.mjs +11 -11
- package/esm2022/page-scaffold/navigation/module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +128 -99
- package/esm2022/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.mjs +30 -32
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +21 -19
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +4 -4
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.types.mjs +1 -1
- package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +6 -5
- package/esm2022/page-scaffold/page/context.service.mjs +2 -2
- package/esm2022/page-scaffold/page/helper-directives.mjs +10 -10
- package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +11 -11
- package/esm2022/page-scaffold/page/notices/notice.component.mjs +15 -15
- package/esm2022/page-scaffold/page/page.component.mjs +20 -20
- package/esm2022/page-scaffold/page/page.module.mjs +2 -2
- package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +40 -39
- package/esm2022/page-scaffold/page-header/account-menu/module.mjs +2 -2
- package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +2 -2
- package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +4 -4
- package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +58 -59
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +64 -65
- package/esm2022/page-scaffold/page-header/common-layout/product-select/service.mjs +2 -2
- package/esm2022/page-scaffold/page-header/common-layout/project-select/base-selection.mjs +3 -3
- package/esm2022/page-scaffold/page-header/common-layout/store.service.mjs +3 -3
- package/esm2022/page-scaffold/page-header/component.mjs +24 -25
- package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +15 -14
- package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +27 -27
- package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +22 -21
- package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +2 -2
- package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +5 -5
- package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +59 -62
- package/esm2022/page-scaffold/page-header/help-menu/module.mjs +2 -2
- package/esm2022/page-scaffold/page-header/module.mjs +2 -2
- package/esm2022/permission/helpers.mjs +1 -1
- package/esm2022/permission/k8s-permission.service.mjs +3 -3
- package/esm2022/permission/permission.guard.mjs +3 -3
- package/esm2022/pie-derivative-chart/donut-status/component.mjs +29 -28
- package/esm2022/pie-derivative-chart/indicator-color.directive.mjs +3 -3
- package/esm2022/pie-derivative-chart/numerical-limit.pipe.mjs +3 -3
- package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +2 -2
- package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +54 -59
- package/esm2022/pod-status/component.mjs +167 -0
- package/esm2022/pod-status/public-api.mjs +4 -0
- package/esm2022/pod-status/status.mjs +84 -0
- package/esm2022/pod-status/typings.mjs +19 -0
- package/esm2022/public-api.mjs +3 -1
- package/esm2022/searchable-selector/component.mjs +73 -75
- package/esm2022/searchable-selector/module.mjs +2 -2
- package/esm2022/skeleton/item/component.mjs +4 -3
- package/esm2022/skeleton/module.mjs +2 -2
- package/esm2022/skeleton/nav-skeleton/component.mjs +8 -7
- package/esm2022/table/component.mjs +253 -271
- package/esm2022/table/helper.mjs +1 -1
- package/esm2022/table/helpers.directive.mjs +3 -3
- package/esm2022/table/module.mjs +40 -31
- package/esm2022/table/util.service.mjs +4 -4
- package/esm2022/translate/helpers.mjs +1 -1
- package/esm2022/translate/i18n-config.mjs +3 -8
- package/esm2022/translate/translate.directive.mjs +9 -9
- package/esm2022/translate/translate.module.mjs +2 -2
- package/esm2022/translate/translate.pipe.mjs +3 -3
- package/esm2022/translate/translate.service.mjs +4 -4
- package/esm2022/view-chart/custom-template/dropdown-legend.mjs +24 -26
- package/esm2022/view-chart/legend/legend.component.mjs +66 -70
- package/esm2022/view-chart/view-chart.component.mjs +90 -98
- package/esm2022/view-chart/view-chart.module.mjs +2 -2
- package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +24 -26
- package/esm2022/view-zchart/legend/legend.component.mjs +77 -82
- package/esm2022/view-zchart/units.mjs +1 -1
- package/esm2022/view-zchart/view-zchart.component.mjs +111 -120
- package/esm2022/view-zchart/view-zchart.module.mjs +2 -2
- package/esm2022/widget/card-section/card-section.component.mjs +13 -12
- package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +45 -46
- package/esm2022/widget/current-time/component.mjs +4 -3
- package/esm2022/widget/date-range-picker/component.mjs +42 -40
- package/esm2022/widget/field-set/column/component.mjs +5 -3
- package/esm2022/widget/field-set/group/component.mjs +3 -2
- package/esm2022/widget/field-set/item/component.mjs +8 -7
- package/esm2022/widget/foldable-block/component.mjs +25 -24
- package/esm2022/widget/foldable-item-in-table/component.mjs +41 -42
- package/esm2022/widget/loading-mask/loading-mask.component.mjs +9 -9
- package/esm2022/widget/password-input/component.mjs +72 -71
- package/esm2022/widget/relative-time/component.mjs +4 -3
- package/esm2022/widget/resource-multi-select/component.mjs +20 -19
- package/esm2022/widget/resource-multi-select/util.mjs +1 -1
- package/esm2022/widget/search-panel/component.mjs +3 -2
- package/esm2022/widget/search-panel/helper.directive.mjs +2 -2
- package/esm2022/widget/search-panel/search-item/component.mjs +3 -2
- package/esm2022/widget/select-prefix-label/directive.mjs +4 -4
- package/esm2022/widget/status-icon/status-icon.component.mjs +16 -15
- package/esm2022/widget/tags-label/component.mjs +61 -62
- package/esm2022/widget/terminating-tag/component.mjs +4 -3
- package/esm2022/widget/text-ellipsis/component.mjs +11 -11
- package/esm2022/widget/text-tooltip/directive.mjs +3 -3
- package/esm2022/widget/text-with-url/component.mjs +8 -8
- package/esm2022/widget/widget.module.mjs +2 -2
- package/esm2022/widget/zero-state/zero-state.component.mjs +17 -17
- package/esm2022/window-channel/base-window-channel.mjs +1 -1
- package/esm2022/window-channel/directives/host-link.directive.mjs +2 -2
- package/esm2022/window-channel/host-window-channel.service.mjs +3 -3
- package/esm2022/window-channel/plugin-window-channel.service.mjs +3 -3
- package/esm2022/workload-status-icon/component.mjs +72 -0
- package/esm2022/workload-status-icon/public-api.mjs +2 -0
- package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +68 -71
- package/esm2022/xterm/xterm-terminal/xterm-terminal.directive.mjs +3 -3
- package/esm2022/xterm/xterm.component.mjs +5 -4
- package/exec/terminal/component.d.ts +0 -1
- package/form/validators/async-function-validator.directive.d.ts +1 -1
- package/form/validators/function-validator.directive.d.ts +1 -1
- package/form/validators/maxlength-minlength-validator.directive.d.ts +2 -2
- package/form/validators/module.d.ts +8 -8
- package/form/validators/not-be-validator.directive.d.ts +1 -1
- package/form/validators/one-of-validator.directive.d.ts +1 -1
- package/form/validators/resource-limit.d.ts +1 -1
- package/form/validators/strong-password/strong-password-validator.module.d.ts +2 -2
- package/graph-canvas/components/graph-canvas.component.d.ts +2 -2
- package/k8s-resource-list/footer/component.d.ts +2 -1
- package/k8s-shared/constants.d.ts +7 -0
- package/k8s-shared/k8s-resource-translate-key.pipe.d.ts +9 -0
- package/k8s-shared/public-api.d.ts +1 -0
- package/license/license-api.d.ts +1 -1
- package/license/license-error/component.d.ts +1 -1
- package/metric-chart/helpers.d.ts +1 -1
- package/package.json +2 -1
- package/page-guard/component/component.d.ts +1 -1
- package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts +2 -0
- package/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.d.ts +1 -0
- package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts +8 -1
- package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts +2 -1
- package/page-scaffold/page-header/header-notify/utils.d.ts +3 -3
- package/pod-status/component.d.ts +27 -0
- package/pod-status/public-api.d.ts +3 -0
- package/pod-status/status.d.ts +4 -0
- package/pod-status/typings.d.ts +16 -0
- package/public-api.d.ts +2 -0
- package/styles/ansi-color.scss +131 -0
- package/styles/global.scss +3 -1
- package/styles/tailwind-preset.scss +1 -1
- package/table/component.d.ts +2 -1
- package/table/module.d.ts +22 -6
- package/widget/zero-state/zero-state.component.d.ts +1 -1
- package/workload-status-icon/component.d.ts +36 -0
- package/workload-status-icon/public-api.d.ts +1 -0
- package/a-chart/a-chart.module.d.ts +0 -16
- package/a-chart/base-chart.d.ts +0 -24
- package/a-chart/chart-status.component.d.ts +0 -15
- package/a-chart/chart.component.d.ts +0 -56
- package/a-chart/components/base-component.d.ts +0 -12
- package/a-chart/components/legend/base-legend.component.d.ts +0 -31
- package/a-chart/components/legend/dropdown-legend.d.ts +0 -17
- package/a-chart/components/legend/legend.component.d.ts +0 -17
- package/a-chart/components/legend/public-api.d.ts +0 -3
- package/a-chart/components/public-api.d.ts +0 -3
- package/a-chart/components/title.component.d.ts +0 -17
- package/a-chart/constant.d.ts +0 -6
- package/a-chart/public-api.d.ts +0 -12
- package/a-chart/types.d.ts +0 -38
- package/a-chart/utils.d.ts +0 -13
- package/a-metric-chart/a-metric-chart.component.d.ts +0 -154
- package/a-metric-chart/a-metric-chart.module.d.ts +0 -16
- package/a-metric-chart/bar-gauge/bar-gauge.component.d.ts +0 -25
- package/a-metric-chart/base-chart.component.d.ts +0 -14
- package/a-metric-chart/metric-chart-refresh.service.d.ts +0 -8
- package/a-metric-chart/public-api.d.ts +0 -14
- package/a-metric-chart/stat-chart/stat-chart.component.d.ts +0 -11
- package/a-metric-chart/table-chart/table-chart.component.d.ts +0 -29
- package/a-metric-chart/types.d.ts +0 -130
- package/a-metric-chart/utils/public-api.d.ts +0 -3
- package/a-metric-chart/utils/range.d.ts +0 -1
- package/a-metric-chart/utils/unit.d.ts +0 -48
- package/a-metric-chart/utils/util.d.ts +0 -45
- package/api/monitor-api.service.d.ts +0 -104
- package/esm2022/a-chart/a-chart.module.mjs +0 -76
- package/esm2022/a-chart/base-chart.mjs +0 -98
- package/esm2022/a-chart/chart-status.component.mjs +0 -195
- package/esm2022/a-chart/chart.component.mjs +0 -307
- package/esm2022/a-chart/components/base-component.mjs +0 -23
- package/esm2022/a-chart/components/legend/base-legend.component.mjs +0 -111
- package/esm2022/a-chart/components/legend/dropdown-legend.mjs +0 -199
- package/esm2022/a-chart/components/legend/legend.component.mjs +0 -102
- package/esm2022/a-chart/components/legend/public-api.mjs +0 -4
- package/esm2022/a-chart/components/public-api.mjs +0 -4
- package/esm2022/a-chart/components/title.component.mjs +0 -99
- package/esm2022/a-chart/constant.mjs +0 -24
- package/esm2022/a-chart/public-api.mjs +0 -13
- package/esm2022/a-chart/types.mjs +0 -7
- package/esm2022/a-chart/utils.mjs +0 -37
- package/esm2022/a-metric-chart/a-metric-chart.component.mjs +0 -937
- package/esm2022/a-metric-chart/a-metric-chart.module.mjs +0 -74
- package/esm2022/a-metric-chart/bar-gauge/bar-gauge.component.mjs +0 -166
- package/esm2022/a-metric-chart/base-chart.component.mjs +0 -30
- package/esm2022/a-metric-chart/metric-chart-refresh.service.mjs +0 -18
- package/esm2022/a-metric-chart/public-api.mjs +0 -15
- package/esm2022/a-metric-chart/stat-chart/stat-chart.component.mjs +0 -122
- package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +0 -201
- package/esm2022/a-metric-chart/types.mjs +0 -26
- package/esm2022/a-metric-chart/utils/public-api.mjs +0 -4
- package/esm2022/a-metric-chart/utils/range.mjs +0 -35
- package/esm2022/a-metric-chart/utils/unit.mjs +0 -83
- package/esm2022/a-metric-chart/utils/util.mjs +0 -243
- package/esm2022/api/monitor-api.service.mjs +0 -158
- package/esm2022/notification/notification-util.module.mjs +0 -32
- package/esm2022/page-scaffold/navigation/lottie-icons/animations/dashboard.json +0 -1
- package/notification/notification-util.module.d.ts +0 -10
|
@@ -16,7 +16,7 @@ export class GridItemPlaceholderDirective {
|
|
|
16
16
|
},
|
|
17
17
|
])] }); }
|
|
18
18
|
}
|
|
19
|
-
(
|
|
19
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridItemPlaceholderDirective, [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{
|
|
22
22
|
selector: '[aclGridItemPlaceholder]ng-template',
|
|
@@ -27,10 +27,10 @@ export class GridItemPlaceholderDirective {
|
|
|
27
27
|
},
|
|
28
28
|
],
|
|
29
29
|
}]
|
|
30
|
-
}],
|
|
30
|
+
}], () => [{ type: i0.TemplateRef }], { clazz: [{
|
|
31
31
|
type: HostBinding,
|
|
32
32
|
args: ['class']
|
|
33
33
|
}], data: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}] }); })();
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2RpcmVjdGl2ZXMvcGxhY2Vob2xkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLGNBQWMsRUFDZCxLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDOztBQUV2QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsSUFBSSxjQUFjLENBQStCLHVCQUF1QixDQUFDLENBQUM7QUFXNUUsTUFBTSxPQUFPLDRCQUE0QjtJQU12QyxZQUFtQixXQUEyQjtRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFKOUMsVUFBSyxHQUFHLCtCQUErQixDQUFDO0lBSVMsQ0FBQzs2RkFOdkMsNEJBQTRCO29FQUE1Qiw0QkFBNEI7WUFBNUIsd0JBQTRCO3dFQVA1QjtnQkFDVDtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixXQUFXLEVBQUUsNEJBQTRCO2lCQUMxQzthQUNGOztpRkFFVSw0QkFBNEI7Y0FUeEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUscUJBQXFCO3dCQUM5QixXQUFXLDhCQUE4QjtxQkFDMUM7aUJBQ0Y7YUFDRjs0Q0FHQyxLQUFLO2tCQURKLFdBQVc7bUJBQUMsT0FBTztZQUlYLElBQUk7a0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgR1JJRF9JVEVNX1BMQUNFSE9MREVSID1cbiAgbmV3IEluamVjdGlvblRva2VuPEdyaWRJdGVtUGxhY2Vob2xkZXJEaXJlY3RpdmU+KCdncmlkIGl0ZW0gcGxhY2Vob2xkZXInKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEdyaWRJdGVtUGxhY2Vob2xkZXJdbmctdGVtcGxhdGUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBHUklEX0lURU1fUExBQ0VIT0xERVIsXG4gICAgICB1c2VFeGlzdGluZzogR3JpZEl0ZW1QbGFjZWhvbGRlckRpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkSXRlbVBsYWNlaG9sZGVyRGlyZWN0aXZlPFQgPSBhbnk+IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGNsYXp6ID0gJ2dyaWQtaXRlbS1wbGFjZWhvbGRlci1jb250ZW50JztcblxuICAvKiogQ29udGV4dCBkYXRhLiAqL1xuICBASW5wdXQoKSBkYXRhOiBUO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFQ+KSB7fVxufVxuIl19
|
|
@@ -10,7 +10,7 @@ export class GridRemoveHandlerDirective {
|
|
|
10
10
|
{ provide: GRID_REMOVE_HANDLER, useExisting: GridRemoveHandlerDirective },
|
|
11
11
|
])] }); }
|
|
12
12
|
}
|
|
13
|
-
(
|
|
13
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridRemoveHandlerDirective, [{
|
|
14
14
|
type: Directive,
|
|
15
15
|
args: [{
|
|
16
16
|
selector: '[aclGridRemoveHandler]',
|
|
@@ -18,5 +18,5 @@ export class GridRemoveHandlerDirective {
|
|
|
18
18
|
{ provide: GRID_REMOVE_HANDLER, useExisting: GridRemoveHandlerDirective },
|
|
19
19
|
],
|
|
20
20
|
}]
|
|
21
|
-
}],
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
}], () => [{ type: i0.ElementRef }], null); })();
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWhhbmRsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2RpcmVjdGl2ZXMvcmVtb3ZlLWhhbmRsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQzlCLElBQUksY0FBYyxDQUE2QixxQkFBcUIsQ0FBQyxDQUFDO0FBUXhFLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBbUIsT0FBZ0M7UUFBaEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7SUFBRyxDQUFDOzJGQUQ1QywwQkFBMEI7b0VBQTFCLDBCQUEwQixrRkFKMUI7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFO2FBQzFFOztpRkFFVSwwQkFBMEI7Y0FOdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLDRCQUE0QixFQUFFO2lCQUMxRTthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgR1JJRF9SRU1PVkVfSEFORExFUiA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxHcmlkUmVtb3ZlSGFuZGxlckRpcmVjdGl2ZT4oJ2dyaWQgcmVtb3ZlIGhhbmRsZXInKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEdyaWRSZW1vdmVIYW5kbGVyXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogR1JJRF9SRU1PVkVfSEFORExFUiwgdXNlRXhpc3Rpbmc6IEdyaWRSZW1vdmVIYW5kbGVyRGlyZWN0aXZlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRSZW1vdmVIYW5kbGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxufVxuIl19
|
|
@@ -14,7 +14,7 @@ export class GridResizeHandlerDirective {
|
|
|
14
14
|
{ provide: GRID_RESIZE_HANDLER, useExisting: GridResizeHandlerDirective },
|
|
15
15
|
])] }); }
|
|
16
16
|
}
|
|
17
|
-
(
|
|
17
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridResizeHandlerDirective, [{
|
|
18
18
|
type: Directive,
|
|
19
19
|
args: [{
|
|
20
20
|
selector: '[aclGridResizeHandler]',
|
|
@@ -22,8 +22,8 @@ export class GridResizeHandlerDirective {
|
|
|
22
22
|
{ provide: GRID_RESIZE_HANDLER, useExisting: GridResizeHandlerDirective },
|
|
23
23
|
],
|
|
24
24
|
}]
|
|
25
|
-
}],
|
|
25
|
+
}], () => [{ type: i0.ElementRef }], { clazz: [{
|
|
26
26
|
type: HostBinding,
|
|
27
27
|
args: ['class']
|
|
28
28
|
}] }); })();
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2RpcmVjdGl2ZXMvcmVzaXplLWhhbmRsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7O0FBRXZCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUM5QixJQUFJLGNBQWMsQ0FBNkIscUJBQXFCLENBQUMsQ0FBQztBQUV4RSxtREFBbUQ7QUFPbkQsTUFBTSxPQUFPLDBCQUEwQjtJQUlyQyxZQUFtQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUZuRCxVQUFLLEdBQUcscUJBQXFCLENBQUM7SUFFd0IsQ0FBQzsyRkFKNUMsMEJBQTBCO29FQUExQiwwQkFBMEI7WUFBMUIsd0JBQTBCOzhDQUoxQjtnQkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUU7YUFDMUU7O2lGQUVVLDBCQUEwQjtjQU50QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsU0FBUyxFQUFFO29CQUNULEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsNEJBQTRCLEVBQUU7aUJBQzFFO2FBQ0Y7MkNBR0MsS0FBSztrQkFESixXQUFXO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3Rpb25Ub2tlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBHUklEX1JFU0laRV9IQU5ETEVSID1cbiAgbmV3IEluamVjdGlvblRva2VuPEdyaWRSZXNpemVIYW5kbGVyRGlyZWN0aXZlPignZ3JpZCByZXNpemUgaGFuZGxlcicpO1xuXG4vKiogSGFuZGxlciB0aGF0IGNhbiBiZSB1c2VkIHRvIGRyYWcgYSBncmlkIGl0ZW0gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xHcmlkUmVzaXplSGFuZGxlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEdSSURfUkVTSVpFX0hBTkRMRVIsIHVzZUV4aXN0aW5nOiBHcmlkUmVzaXplSGFuZGxlckRpcmVjdGl2ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkUmVzaXplSGFuZGxlckRpcmVjdGl2ZSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBjbGF6eiA9ICdncmlkLXJlc2l6ZS1oYW5kbGVyJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG59XG4iXX0=
|
|
@@ -79,7 +79,7 @@ export class GridLayoutService {
|
|
|
79
79
|
static { this.ɵfac = function GridLayoutService_Factory(t) { return new (t || GridLayoutService)(); }; }
|
|
80
80
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridLayoutService, factory: GridLayoutService.ɵfac }); }
|
|
81
81
|
}
|
|
82
|
-
(
|
|
82
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridLayoutService, [{
|
|
83
83
|
type: Injectable
|
|
84
84
|
}], null, null); })();
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9ncmlkLWxheW91dC9ncmlkLWxheW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsR0FBRyxFQUVILEVBQUUsRUFDRixhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFhZCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUE0Q0UsdUJBQWtCLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBRy9CLENBQUM7S0F3Rk47SUFwSUMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBT0QscUJBQXFCLENBQUMsYUFBa0M7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFFbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQ3JCLE9BQU8sZ0JBQWdCLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMxQyxDQUFDLENBQUMsZ0JBQWdCLENBQ3JCLEVBQ0QsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FDM0IsZ0JBQWdCO1lBQ2QsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUN0RCxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUMvQjtZQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUM1QixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQUMsYUFBZ0M7UUFDbEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0RCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FDNUMsSUFBSSxDQUFDLFVBQVUsRUFDZixVQUFVLENBQUMsS0FBSyxFQUNoQixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBUUQsb0JBQW9CLENBQUMsU0FBUyxHQUFHLElBQUk7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUM5QixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSTtRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELHNDQUFzQztJQUN0QyxhQUFhLENBQUMsTUFBa0I7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUNkLFFBQTJCLEVBQzNCLElBQW9CLEVBQ3BCLEVBQ0UsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUlqQixFQUNELGdCQUErQyxFQUMvQyxrQkFBc0MsRUFDdEMsa0JBQXNDO1FBRXRDLE1BQU0sRUFDSixTQUFTLEVBQ1QsTUFBTSxFQUNOLElBQUksRUFDSixnQkFBZ0IsRUFDaEIsTUFBTSxFQUFFLFNBQVMsR0FDbEIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRXBCLE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxNQUFNLGFBQWEsR0FBZSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUMxRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsQ0FDNUQsUUFBUSxFQUNSO1lBQ0UsR0FBRyxJQUFJLENBQUMsVUFBVTtZQUNsQixNQUFNLEVBQUUsYUFBYTtTQUN0QixFQUNELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUM5QjtZQUNFLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixnQkFBZ0I7U0FDakIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFFNUIsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQ3pDO1lBQ0UsSUFBSTtZQUNKLFNBQVM7WUFDVCxNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0I7WUFDaEIsTUFBTTtTQUNQLEVBQ0Qsa0JBQWtCLENBQUMsS0FBSyxDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RCxzTUFBc007UUFDdE0sSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUN0QyxHQUFHLGNBQWM7WUFDakIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1NBQ00sQ0FBQztRQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDMUQsQ0FBQztrRkF0SVUsaUJBQWlCO3VFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCOzt1RkFBakIsaUJBQWlCO2NBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgR3JpZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ncmlkL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ncmlkLWl0ZW1zL2NvbXBvbmVudCc7XG5pbXBvcnQge1xuICBEcmFnQWN0aW9uVHlwZSxcbiAgR3JpZEl0ZW1DbGllbnRSZWN0LFxuICBHcmlkSXRlbVJlbmRlckRhdGEsXG4gIEdyaWRMYXlvdXQsXG4gIEdyaWRMYXlvdXRJdGVtLFxufSBmcm9tICcuL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZ2V0Q2xpZW50UmVjdFNuYXBzaG90IH0gZnJvbSAnLi91dGlscy9jbGllbnQtcmVjdC51dGlscyc7XG5pbXBvcnQge1xuICBnZXRHcmlkSGVpZ2h0LFxuICBncmlkSXRlbURyYWdnaW5nLFxuICBncmlkSXRlbVJlc2l6aW5nLFxuICBsYXlvdXRUb1JlbmRlckl0ZW1zLFxufSBmcm9tICcuL3V0aWxzL2dyaWQudXRpbHMnO1xuaW1wb3J0IHsgZ2V0U2Nyb2xsVG90YWxSZWxhdGl2ZURpZmZlcmVuY2UkIH0gZnJvbSAnLi91dGlscy9zY3JvbGwudXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR3JpZExheW91dFNlcnZpY2Uge1xuICBncmlkQ29tcG9uZW50OiBHcmlkTGF5b3V0Q29tcG9uZW50O1xuXG4gIGdldCBncmlkQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb21wb25lbnQ/LmNvbmZpZztcbiAgfVxuXG4gIGdyaWRJdGVtc1JlbmRlckRhdGE6IERpY3Rpb25hcnk8R3JpZEl0ZW1SZW5kZXJEYXRhPjtcbiAgZ3JpZEhlaWdodDogbnVtYmVyO1xuXG4gIHNjcm9sbERpZmZlcmVuY2UkOiBPYnNlcnZhYmxlPHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9PjtcblxuICByZWdpc3RlckdyaWRDb21wb25lbnQoZ3JpZENvbXBvbmVudDogR3JpZExheW91dENvbXBvbmVudCkge1xuICAgIHRoaXMuZ3JpZENvbXBvbmVudCA9IGdyaWRDb21wb25lbnQ7XG5cbiAgICB0aGlzLnNjcm9sbERpZmZlcmVuY2UkID0gZ3JpZENvbXBvbmVudC5zY3JvbGxhYmxlUGFyZW50JC5waXBlKFxuICAgICAgbWFwKHNjcm9sbGFibGVQYXJlbnQgPT5cbiAgICAgICAgdHlwZW9mIHNjcm9sbGFibGVQYXJlbnQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNjcm9sbGFibGVQYXJlbnQpXG4gICAgICAgICAgOiBzY3JvbGxhYmxlUGFyZW50LFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChzY3JvbGxhYmxlUGFyZW50ID0+XG4gICAgICAgIHNjcm9sbGFibGVQYXJlbnRcbiAgICAgICAgICA/IGdldFNjcm9sbFRvdGFsUmVsYXRpdmVEaWZmZXJlbmNlJChzY3JvbGxhYmxlUGFyZW50KS5waXBlKFxuICAgICAgICAgICAgICBzdGFydFdpdGgoeyB0b3A6IDAsIGxlZnQ6IDAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZih7IHRvcDogMCwgbGVmdDogMCB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVJlbmRlckRhdGEoX3VwZGF0ZUxheW91dD86IEdyaWRMYXlvdXRJdGVtW10pIHtcbiAgICBjb25zdCB7IHJvd0hlaWdodCwgZ3V0dGVyLCBsYXlvdXQgfSA9IHRoaXMuZ3JpZENvbmZpZztcbiAgICBjb25zdCBjbGllbnRSZWN0ID0gZ2V0Q2xpZW50UmVjdFNuYXBzaG90KHRoaXMuZ3JpZENvbXBvbmVudC5ob3N0RWxlbWVudCk7XG4gICAgdGhpcy5sYXN0TGF5b3V0ID0gbGF5b3V0O1xuICAgIHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSA9IGxheW91dFRvUmVuZGVySXRlbXMoXG4gICAgICB0aGlzLmdyaWRDb25maWcsXG4gICAgICBjbGllbnRSZWN0LndpZHRoLFxuICAgICAgdGhpcy5sYXN0TGF5b3V0LFxuICAgICk7XG4gICAgdGhpcy5ncmlkSGVpZ2h0ID0gZ2V0R3JpZEhlaWdodChsYXlvdXQsIHJvd0hlaWdodCwgZ3V0dGVyKTtcbiAgfVxuXG4gIGdyaWRSZW5kZXJIZWlnaHQkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIGdyaWRSZW5kZXJJdGVtc0RhdGEkJCA9IG5ldyBTdWJqZWN0PHtcbiAgICBkYXRhOiBEaWN0aW9uYXJ5PEdyaWRJdGVtUmVuZGVyRGF0YT47XG4gICAgYW5pbWF0aW9uOiBib29sZWFuO1xuICB9PigpO1xuXG4gIGZsdXNoUmVuZGVySXRlbXNEYXRhKGFuaW1hdGlvbiA9IHRydWUpIHtcbiAgICB0aGlzLmdyaWRSZW5kZXJJdGVtc0RhdGEkJC5uZXh0KHtcbiAgICAgIGRhdGE6IHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSxcbiAgICAgIGFuaW1hdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIGZsdXNoUmVuZGVyRGF0YShhbmltYXRpb24gPSB0cnVlKSB7XG4gICAgdGhpcy5mbHVzaFJlbmRlckl0ZW1zRGF0YShhbmltYXRpb24pO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLmdyaWRSZW5kZXJIZWlnaHQkJC5uZXh0KHRoaXMuZ3JpZEhlaWdodCk7XG4gICAgfSk7XG4gIH1cblxuICBsYXN0TGF5b3V0OiBHcmlkTGF5b3V0O1xuXG4gIC8vIHVzZSB0aGlzIHRvIGhhbmRsZSByZW1vdmUgZ3JpZCBpdGVtXG4gIHNldExhc3RMYXlvdXQobGF5b3V0OiBHcmlkTGF5b3V0KSB7XG4gICAgdGhpcy5sYXN0TGF5b3V0ID0gbGF5b3V0O1xuICB9XG5cbiAgbGF5b3V0V2hlbkFjdGlvbihcbiAgICBncmlkSXRlbTogR3JpZEl0ZW1Db21wb25lbnQsXG4gICAgdHlwZTogRHJhZ0FjdGlvblR5cGUsXG4gICAge1xuICAgICAgcG9pbnRlckRvd25FdmVudCxcbiAgICAgIHBvaW50ZXJEcmFnRXZlbnQsXG4gICAgfToge1xuICAgICAgcG9pbnRlckRvd25FdmVudDogTW91c2VFdmVudDtcbiAgICAgIHBvaW50ZXJEcmFnRXZlbnQ6IE1vdXNlRXZlbnQ7XG4gICAgfSxcbiAgICBzY3JvbGxEaWZmZXJlbmNlOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSxcbiAgICBkcmFnRWxlbUNsaWVudFJlY3Q6IEdyaWRJdGVtQ2xpZW50UmVjdCxcbiAgICBncmlkRWxlbUNsaWVudFJlY3Q6IEdyaWRJdGVtQ2xpZW50UmVjdCxcbiAgKSB7XG4gICAgY29uc3Qge1xuICAgICAgcm93SGVpZ2h0LFxuICAgICAgZ3V0dGVyLFxuICAgICAgY29scyxcbiAgICAgIHByZXZlbnRDb2xsaXNpb24sXG4gICAgICBsYXlvdXQ6IHJhd0xheW91dCxcbiAgICB9ID0gdGhpcy5ncmlkQ29uZmlnO1xuXG4gICAgY29uc3QgY2FsY05ld1N0YXRlRnVuYyA9XG4gICAgICB0eXBlID09PSAnZHJhZycgPyBncmlkSXRlbURyYWdnaW5nIDogZ3JpZEl0ZW1SZXNpemluZztcbiAgICBjb25zdCBjdXJyZW50TGF5b3V0OiBHcmlkTGF5b3V0ID0gY2xvbmVEZWVwKHRoaXMubGFzdExheW91dCB8fCByYXdMYXlvdXQpO1xuICAgIGNvbnN0IHsgbGF5b3V0OiBuZXdMYXlvdXQsIGRyYWdnZWRJdGVtUG9zIH0gPSBjYWxjTmV3U3RhdGVGdW5jKFxuICAgICAgZ3JpZEl0ZW0sXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMuZ3JpZENvbmZpZyxcbiAgICAgICAgbGF5b3V0OiBjdXJyZW50TGF5b3V0LFxuICAgICAgfSxcbiAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5jb21wYWN0VHlwZSxcbiAgICAgIHtcbiAgICAgICAgcG9pbnRlckRvd25FdmVudCxcbiAgICAgICAgcG9pbnRlckRyYWdFdmVudCxcbiAgICAgICAgZ3JpZEVsZW1DbGllbnRSZWN0LFxuICAgICAgICBkcmFnRWxlbUNsaWVudFJlY3QsXG4gICAgICAgIHNjcm9sbERpZmZlcmVuY2UsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmxhc3RMYXlvdXQgPSBuZXdMYXlvdXQ7XG5cbiAgICBjb25zdCBpdGVtc0xheW91dERhdGEgPSBsYXlvdXRUb1JlbmRlckl0ZW1zKFxuICAgICAge1xuICAgICAgICBjb2xzLFxuICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgIGxheW91dDogbmV3TGF5b3V0LFxuICAgICAgICBwcmV2ZW50Q29sbGlzaW9uLFxuICAgICAgICBndXR0ZXIsXG4gICAgICB9LFxuICAgICAgZ3JpZEVsZW1DbGllbnRSZWN0LndpZHRoLFxuICAgICk7XG4gICAgdGhpcy5ncmlkSGVpZ2h0ID0gZ2V0R3JpZEhlaWdodChuZXdMYXlvdXQsIHJvd0hlaWdodCwgZ3V0dGVyKTtcblxuICAgIC8vIGl0ZW1zTGF5b3V0RGF0YSBhbmQgdGhpcy5ncmlkSXRlbXNSZW5kZXJEYXRhIHdpbGwgYmUgZGlmZmVyZW50LCBiZWNhdXNlIHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSB3aWxsIGJlIHVzZWQgdG8gcmVuZGVyIG9uLWZsaWdodCBpdGVtIHBvc2l0aW9uLiBidWQgaXRlbXNMYXlvdXREYXRhIGlzIG5vcm1hbGl6ZWQgcG9zaXRpb24gYnkgZ3JpZFxuICAgIHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSA9IGNsb25lRGVlcChpdGVtc0xheW91dERhdGEpO1xuXG4gICAgLy8gbW9kaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJhZ2dlZCBpdGVtIHRvIGJlIHRoZSBvbmNlIHdlIHdhbnRcbiAgICB0aGlzLmdyaWRJdGVtc1JlbmRlckRhdGFbZ3JpZEl0ZW0uaWRdID0ge1xuICAgICAgLi4uZHJhZ2dlZEl0ZW1Qb3MsXG4gICAgICBpZDogZ3JpZEl0ZW0uaWQsXG4gICAgfSBhcyBHcmlkSXRlbVJlbmRlckRhdGE7XG4gICAgcmV0dXJuIHsgZ3JpZERhdGE6IGl0ZW1zTGF5b3V0RGF0YSwgbGF5b3V0OiBuZXdMYXlvdXQgfTtcbiAgfVxufVxuIl19
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9ncmlkLWxheW91dC9ncmlkLWxheW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsR0FBRyxFQUVILEVBQUUsRUFDRixhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFhZCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUE0Q0UsdUJBQWtCLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBRy9CLENBQUM7S0F3Rk47SUFwSUMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBT0QscUJBQXFCLENBQUMsYUFBa0M7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFFbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQ3JCLE9BQU8sZ0JBQWdCLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFB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Q0UsSUFBSTtZQUNKLFNBQVM7WUFDVCxNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0I7WUFDaEIsTUFBTTtTQUNQLEVBQ0Qsa0JBQWtCLENBQUMsS0FBSyxDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RCxzTUFBc007UUFDdE0sSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUN0QyxHQUFHLGNBQWM7WUFDakIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1NBQ00sQ0FBQztRQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDMUQsQ0FBQztrRkF0SVUsaUJBQWlCO3VFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCOztpRkFBakIsaUJBQWlCO2NBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgR3JpZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ncmlkL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ncmlkLWl0ZW1zL2NvbXBvbmVudCc7XG5pbXBvcnQge1xuICBEcmFnQWN0aW9uVHlwZSxcbiAgR3JpZEl0ZW1DbGllbnRSZWN0LFxuICBHcmlkSXRlbVJlbmRlckRhdGEsXG4gIEdyaWRMYXlvdXQsXG4gIEdyaWRMYXlvdXRJdGVtLFxufSBmcm9tICcuL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZ2V0Q2xpZW50UmVjdFNuYXBzaG90IH0gZnJvbSAnLi91dGlscy9jbGllbnQtcmVjdC51dGlscyc7XG5pbXBvcnQge1xuICBnZXRHcmlkSGVpZ2h0LFxuICBncmlkSXRlbURyYWdnaW5nLFxuICBncmlkSXRlbVJlc2l6aW5nLFxuICBsYXlvdXRUb1JlbmRlckl0ZW1zLFxufSBmcm9tICcuL3V0aWxzL2dyaWQudXRpbHMnO1xuaW1wb3J0IHsgZ2V0U2Nyb2xsVG90YWxSZWxhdGl2ZURpZmZlcmVuY2UkIH0gZnJvbSAnLi91dGlscy9zY3JvbGwudXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR3JpZExheW91dFNlcnZpY2Uge1xuICBncmlkQ29tcG9uZW50OiBHcmlkTGF5b3V0Q29tcG9uZW50O1xuXG4gIGdldCBncmlkQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb21wb25lbnQ/LmNvbmZpZztcbiAgfVxuXG4gIGdyaWRJdGVtc1JlbmRlckRhdGE6IERpY3Rpb25hcnk8R3JpZEl0ZW1SZW5kZXJEYXRhPjtcbiAgZ3JpZEhlaWdodDogbnVtYmVyO1xuXG4gIHNjcm9sbERpZmZlcmVuY2UkOiBPYnNlcnZhYmxlPHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9PjtcblxuICByZWdpc3RlckdyaWRDb21wb25lbnQoZ3JpZENvbXBvbmVudDogR3JpZExheW91dENvbXBvbmVudCkge1xuICAgIHRoaXMuZ3JpZENvbXBvbmVudCA9IGdyaWRDb21wb25lbnQ7XG5cbiAgICB0aGlzLnNjcm9sbERpZmZlcmVuY2UkID0gZ3JpZENvbXBvbmVudC5zY3JvbGxhYmxlUGFyZW50JC5waXBlKFxuICAgICAgbWFwKHNjcm9sbGFibGVQYXJlbnQgPT5cbiAgICAgICAgdHlwZW9mIHNjcm9sbGFibGVQYXJlbnQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNjcm9sbGFibGVQYXJlbnQpXG4gICAgICAgICAgOiBzY3JvbGxhYmxlUGFyZW50LFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChzY3JvbGxhYmxlUGFyZW50ID0+XG4gICAgICAgIHNjcm9sbGFibGVQYXJlbnRcbiAgICAgICAgICA/IGdldFNjcm9sbFRvdGFsUmVsYXRpdmVEaWZmZXJlbmNlJChzY3JvbGxhYmxlUGFyZW50KS5waXBlKFxuICAgICAgICAgICAgICBzdGFydFdpdGgoeyB0b3A6IDAsIGxlZnQ6IDAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZih7IHRvcDogMCwgbGVmdDogMCB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVJlbmRlckRhdGEoX3VwZGF0ZUxheW91dD86IEdyaWRMYXlvdXRJdGVtW10pIHtcbiAgICBjb25zdCB7IHJvd0hlaWdodCwgZ3V0dGVyLCBsYXlvdXQgfSA9IHRoaXMuZ3JpZENvbmZpZztcbiAgICBjb25zdCBjbGllbnRSZWN0ID0gZ2V0Q2xpZW50UmVjdFNuYXBzaG90KHRoaXMuZ3JpZENvbXBvbmVudC5ob3N0RWxlbWVudCk7XG4gICAgdGhpcy5sYXN0TGF5b3V0ID0gbGF5b3V0O1xuICAgIHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSA9IGxheW91dFRvUmVuZGVySXRlbXMoXG4gICAgICB0aGlzLmdyaWRDb25maWcsXG4gICAgICBjbGllbnRSZWN0LndpZHRoLFxuICAgICAgdGhpcy5sYXN0TGF5b3V0LFxuICAgICk7XG4gICAgdGhpcy5ncmlkSGVpZ2h0ID0gZ2V0R3JpZEhlaWdodChsYXlvdXQsIHJvd0hlaWdodCwgZ3V0dGVyKTtcbiAgfVxuXG4gIGdyaWRSZW5kZXJIZWlnaHQkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIGdyaWRSZW5kZXJJdGVtc0RhdGEkJCA9IG5ldyBTdWJqZWN0PHtcbiAgICBkYXRhOiBEaWN0aW9uYXJ5PEdyaWRJdGVtUmVuZGVyRGF0YT47XG4gICAgYW5pbWF0aW9uOiBib29sZWFuO1xuICB9PigpO1xuXG4gIGZsdXNoUmVuZGVySXRlbXNEYXRhKGFuaW1hdGlvbiA9IHRydWUpIHtcbiAgICB0aGlzLmdyaWRSZW5kZXJJdGVtc0RhdGEkJC5uZXh0KHtcbiAgICAgIGRhdGE6IHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSxcbiAgICAgIGFuaW1hdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIGZsdXNoUmVuZGVyRGF0YShhbmltYXRpb24gPSB0cnVlKSB7XG4gICAgdGhpcy5mbHVzaFJlbmRlckl0ZW1zRGF0YShhbmltYXRpb24pO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLmdyaWRSZW5kZXJIZWlnaHQkJC5uZXh0KHRoaXMuZ3JpZEhlaWdodCk7XG4gICAgfSk7XG4gIH1cblxuICBsYXN0TGF5b3V0OiBHcmlkTGF5b3V0O1xuXG4gIC8vIHVzZSB0aGlzIHRvIGhhbmRsZSByZW1vdmUgZ3JpZCBpdGVtXG4gIHNldExhc3RMYXlvdXQobGF5b3V0OiBHcmlkTGF5b3V0KSB7XG4gICAgdGhpcy5sYXN0TGF5b3V0ID0gbGF5b3V0O1xuICB9XG5cbiAgbGF5b3V0V2hlbkFjdGlvbihcbiAgICBncmlkSXRlbTogR3JpZEl0ZW1Db21wb25lbnQsXG4gICAgdHlwZTogRHJhZ0FjdGlvblR5cGUsXG4gICAge1xuICAgICAgcG9pbnRlckRvd25FdmVudCxcbiAgICAgIHBvaW50ZXJEcmFnRXZlbnQsXG4gICAgfToge1xuICAgICAgcG9pbnRlckRvd25FdmVudDogTW91c2VFdmVudDtcbiAgICAgIHBvaW50ZXJEcmFnRXZlbnQ6IE1vdXNlRXZlbnQ7XG4gICAgfSxcbiAgICBzY3JvbGxEaWZmZXJlbmNlOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSxcbiAgICBkcmFnRWxlbUNsaWVudFJlY3Q6IEdyaWRJdGVtQ2xpZW50UmVjdCxcbiAgICBncmlkRWxlbUNsaWVudFJlY3Q6IEdyaWRJdGVtQ2xpZW50UmVjdCxcbiAgKSB7XG4gICAgY29uc3Qge1xuICAgICAgcm93SGVpZ2h0LFxuICAgICAgZ3V0dGVyLFxuICAgICAgY29scyxcbiAgICAgIHByZXZlbnRDb2xsaXNpb24sXG4gICAgICBsYXlvdXQ6IHJhd0xheW91dCxcbiAgICB9ID0gdGhpcy5ncmlkQ29uZmlnO1xuXG4gICAgY29uc3QgY2FsY05ld1N0YXRlRnVuYyA9XG4gICAgICB0eXBlID09PSAnZHJhZycgPyBncmlkSXRlbURyYWdnaW5nIDogZ3JpZEl0ZW1SZXNpemluZztcbiAgICBjb25zdCBjdXJyZW50TGF5b3V0OiBHcmlkTGF5b3V0ID0gY2xvbmVEZWVwKHRoaXMubGFzdExheW91dCB8fCByYXdMYXlvdXQpO1xuICAgIGNvbnN0IHsgbGF5b3V0OiBuZXdMYXlvdXQsIGRyYWdnZWRJdGVtUG9zIH0gPSBjYWxjTmV3U3RhdGVGdW5jKFxuICAgICAgZ3JpZEl0ZW0sXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMuZ3JpZENvbmZpZyxcbiAgICAgICAgbGF5b3V0OiBjdXJyZW50TGF5b3V0LFxuICAgICAgfSxcbiAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5jb21wYWN0VHlwZSxcbiAgICAgIHtcbiAgICAgICAgcG9pbnRlckRvd25FdmVudCxcbiAgICAgICAgcG9pbnRlckRyYWdFdmVudCxcbiAgICAgICAgZ3JpZEVsZW1DbGllbnRSZWN0LFxuICAgICAgICBkcmFnRWxlbUNsaWVudFJlY3QsXG4gICAgICAgIHNjcm9sbERpZmZlcmVuY2UsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmxhc3RMYXlvdXQgPSBuZXdMYXlvdXQ7XG5cbiAgICBjb25zdCBpdGVtc0xheW91dERhdGEgPSBsYXlvdXRUb1JlbmRlckl0ZW1zKFxuICAgICAge1xuICAgICAgICBjb2xzLFxuICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgIGxheW91dDogbmV3TGF5b3V0LFxuICAgICAgICBwcmV2ZW50Q29sbGlzaW9uLFxuICAgICAgICBndXR0ZXIsXG4gICAgICB9LFxuICAgICAgZ3JpZEVsZW1DbGllbnRSZWN0LndpZHRoLFxuICAgICk7XG4gICAgdGhpcy5ncmlkSGVpZ2h0ID0gZ2V0R3JpZEhlaWdodChuZXdMYXlvdXQsIHJvd0hlaWdodCwgZ3V0dGVyKTtcblxuICAgIC8vIGl0ZW1zTGF5b3V0RGF0YSBhbmQgdGhpcy5ncmlkSXRlbXNSZW5kZXJEYXRhIHdpbGwgYmUgZGlmZmVyZW50LCBiZWNhdXNlIHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSB3aWxsIGJlIHVzZWQgdG8gcmVuZGVyIG9uLWZsaWdodCBpdGVtIHBvc2l0aW9uLiBidWQgaXRlbXNMYXlvdXREYXRhIGlzIG5vcm1hbGl6ZWQgcG9zaXRpb24gYnkgZ3JpZFxuICAgIHRoaXMuZ3JpZEl0ZW1zUmVuZGVyRGF0YSA9IGNsb25lRGVlcChpdGVtc0xheW91dERhdGEpO1xuXG4gICAgLy8gbW9kaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJhZ2dlZCBpdGVtIHRvIGJlIHRoZSBvbmNlIHdlIHdhbnRcbiAgICB0aGlzLmdyaWRJdGVtc1JlbmRlckRhdGFbZ3JpZEl0ZW0uaWRdID0ge1xuICAgICAgLi4uZHJhZ2dlZEl0ZW1Qb3MsXG4gICAgICBpZDogZ3JpZEl0ZW0uaWQsXG4gICAgfSBhcyBHcmlkSXRlbVJlbmRlckRhdGE7XG4gICAgcmV0dXJuIHsgZ3JpZERhdGE6IGl0ZW1zTGF5b3V0RGF0YSwgbGF5b3V0OiBuZXdMYXlvdXQgfTtcbiAgfVxufVxuIl19
|
|
@@ -39,7 +39,7 @@ export class GridPlaceholderService {
|
|
|
39
39
|
static { this.ɵfac = function GridPlaceholderService_Factory(t) { return new (t || GridPlaceholderService)(i0.ɵɵinject(i0.Renderer2)); }; }
|
|
40
40
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridPlaceholderService, factory: GridPlaceholderService.ɵfac }); }
|
|
41
41
|
}
|
|
42
|
-
(
|
|
42
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridPlaceholderService, [{
|
|
43
43
|
type: Injectable
|
|
44
|
-
}],
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
}], () => [{ type: i0.Renderer2 }], null); })();
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wbGFjZWhvbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2dyaWQtcGxhY2Vob2xkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsVUFBVSxFQUNWLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFN0QsbUZBQW1GO0FBRW5GLE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFBNkIsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFDcEQsaUJBQWlCLENBQUMsSUFBd0I7UUFDeEMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QyxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGNBQWMsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUUsQ0FBQztJQUVELHdCQUF3QixDQUN0QixVQUE4QixFQUM5QixVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsbUJBQWtEO1FBRWxELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsY0FBYyxVQUFVLENBQUMsSUFBSSxrQkFBa0IsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRFLG9EQUFvRDtRQUNwRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDdkQsbUJBQW1CLENBQUMsV0FBVyxFQUMvQixtQkFBbUIsQ0FBQyxJQUFJLENBQ3pCLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSyxDQUFDO0lBQ2pELENBQUM7dUZBakRVLHNCQUFzQjt1RUFBdEIsc0JBQXNCLFdBQXRCLHNCQUFzQjs7aUZBQXRCLHNCQUFzQjtjQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcmlkSXRlbVBsYWNlaG9sZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BsYWNlaG9sZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHcmlkSXRlbUNsaWVudFJlY3QsIEdyaWRJdGVtUmVuZGVyRGF0YSB9IGZyb20gJy4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBwYXJzZVJlbmRlckl0ZW1Ub1BpeGVscyB9IGZyb20gJy4vdXRpbHMvZ3JpZC51dGlscyc7XG5cbi8vIHVzZSBDb21wb25lbnQgbGV2ZWwgc2VydmljZSB0byBtYWtlIHBsYWNlaG9sZGVyIHNlcnZlIGZvciBzcGVjaWZpYyBncmlkQ29tcG9uZW50XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR3JpZFBsYWNlaG9sZGVyU2VydmljZSB7XG4gIC8qKiByZWZlcmVuY2UgdG8gdGhlIHZpZXcgb2YgdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnQuICovXG4gIHByaXZhdGUgcGxhY2Vob2xkZXJSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgbnVsbDtcblxuICAvKiogZWxlbWVudCB0aGF0IGlzIHJlbmRlcmVkIGFzIHBsYWNlaG9sZGVyIHdoZW4gYSBncmlkIGl0ZW0gYmVpbmcgZHJhZ2dlZCAqL1xuICBwbGFjZWhvbGRlcjogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cbiAgdXBkYXRlUGxhY2VIb2xkZXIoZGF0YTogR3JpZEl0ZW1SZW5kZXJEYXRhKSB7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBsZWZ0LCB0b3AgfSA9IHBhcnNlUmVuZGVySXRlbVRvUGl4ZWxzKGRhdGEpO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyLnN0eWxlLmhlaWdodCA9IGhlaWdodDtcbiAgICAvLyB0cmFuc2xhdGUgZmFzdGVyIHRoZW4gdG9wL2xlZnRcbiAgICB0aGlzLnBsYWNlaG9sZGVyLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7bGVmdH0pIHRyYW5zbGF0ZVkoJHt0b3B9KWA7XG4gIH1cblxuICBjcmVhdGVQbGFjZWhvbGRlckVsZW1lbnQoXG4gICAgY2xpZW50UmVjdDogR3JpZEl0ZW1DbGllbnRSZWN0LFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBncmlkSXRlbVBsYWNlaG9sZGVyPzogR3JpZEl0ZW1QbGFjZWhvbGRlckRpcmVjdGl2ZSxcbiAgKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5wbGFjZWhvbGRlci5zdHlsZS53aWR0aCA9IGAke2NsaWVudFJlY3Qud2lkdGh9cHhgO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuc3R5bGUuaGVpZ2h0ID0gYCR7Y2xpZW50UmVjdC5oZWlnaHR9cHhgO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtjbGllbnRSZWN0LmxlZnR9cHgpIHRyYW5zbGF0ZVkoJHtjbGllbnRSZWN0LnRvcH1weClgO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCgnZ3JpZC1pdGVtLXBsYWNlaG9sZGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIpO1xuXG4gICAgLy8gY3JlYXRlIGFuZCBhcHBlbmQgY3VzdG9tIHBsYWNlaG9sZGVyIGlmIHByb3ZpZGVkLlxuICAgIGlmIChncmlkSXRlbVBsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyUmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoXG4gICAgICAgIGdyaWRJdGVtUGxhY2Vob2xkZXIudGVtcGxhdGVSZWYsXG4gICAgICAgIGdyaWRJdGVtUGxhY2Vob2xkZXIuZGF0YSxcbiAgICAgICk7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyUmVmLnJvb3ROb2Rlcy5mb3JFYWNoKG5vZGUgPT5cbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlci5hcHBlbmQobm9kZSksXG4gICAgICApO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCgnZ3JpZC1pdGVtLXBsYWNlaG9sZGVyLWRlZmF1bHQnKTtcbiAgICB9XG4gIH1cblxuICAvLyBkZXN0cm95cyB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudFxuICBkZXN0cm95UGxhY2Vob2xkZXIoKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlcj8ucmVtb3ZlKCk7XG4gICAgdGhpcy5wbGFjZWhvbGRlclJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyUmVmID0gbnVsbCE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -20,7 +20,7 @@ export class GridLayoutModule {
|
|
|
20
20
|
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: GridLayoutModule }); }
|
|
21
21
|
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, IconModule] }); }
|
|
22
22
|
}
|
|
23
|
-
(
|
|
23
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridLayoutModule, [{
|
|
24
24
|
type: NgModule,
|
|
25
25
|
args: [{
|
|
26
26
|
imports: [CommonModule, IconModule],
|
|
@@ -35,4 +35,4 @@ export class GridLayoutModule {
|
|
|
35
35
|
GridResizeHandlerDirective,
|
|
36
36
|
GridRemoveHandlerDirective,
|
|
37
37
|
GridItemPlaceholderDirective] }); })();
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUVuRixNQUFNLFVBQVUsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDNUQsTUFBTSxVQUFVLEdBQUc7SUFDakIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsNEJBQTRCO0NBQzdCLENBQUM7QUFPRixNQUFNLE9BQU8sZ0JBQWdCO2lGQUFoQixnQkFBZ0I7bUVBQWhCLGdCQUFnQjt1RUFKakIsWUFBWSxFQUFFLFVBQVU7O2lGQUl2QixnQkFBZ0I7Y0FMNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7Z0JBQ25DLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDO2dCQUM1QyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQzthQUN4Qzs7d0ZBQ1ksZ0JBQWdCLG1CQWJULG1CQUFtQixFQUFFLGlCQUFpQixFQUV4RCx3QkFBd0I7UUFDeEIsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQiw0QkFBNEIsYUFJbEIsWUFBWSxFQUFFLFVBQVUsYUFUaEIsbUJBQW1CLEVBQUUsaUJBQWlCLEVBRXhELHdCQUF3QjtRQUN4QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcmlkTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyaWQvY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyaWQtaXRlbXMvY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWREcmFnSGFuZGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kcmFnLWhhbmRsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyaWRJdGVtUGxhY2Vob2xkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGxhY2Vob2xkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyaWRSZW1vdmVIYW5kbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlbW92ZS1oYW5kbGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHcmlkUmVzaXplSGFuZGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUtaGFuZGxlci5kaXJlY3RpdmUnO1xuXG5jb25zdCBDT01QT05FTlRTID0gW0dyaWRMYXlvdXRDb21wb25lbnQsIEdyaWRJdGVtQ29tcG9uZW50XTtcbmNvbnN0IERJUkVDVElWRVMgPSBbXG4gIEdyaWREcmFnSGFuZGxlckRpcmVjdGl2ZSxcbiAgR3JpZFJlc2l6ZUhhbmRsZXJEaXJlY3RpdmUsXG4gIEdyaWRSZW1vdmVIYW5kbGVyRGlyZWN0aXZlLFxuICBHcmlkSXRlbVBsYWNlaG9sZGVyRGlyZWN0aXZlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFMsIC4uLkRJUkVDVElWRVNdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UUywgLi4uRElSRUNUSVZFU10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRMYXlvdXRNb2R1bGUge31cbiJdfQ==
|
|
@@ -244,4 +244,4 @@ export function parseRenderItemToPixels(renderItem) {
|
|
|
244
244
|
export function correctLayout(layout, cols = 12) {
|
|
245
245
|
return compactGridLayout(layout, 'vertical', cols);
|
|
246
246
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9ncmlkLWxheW91dC91dGlscy9ncmlkLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJbEMsT0FBTyxFQUdMLGVBQWUsR0FPaEIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNMLE9BQU8sRUFFUCxpQkFBaUIsRUFHakIsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFFBQVE7SUFDdEQsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFvQjtJQUM1RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDakIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixNQUFrQixFQUNsQixXQUE0QixFQUM1QixJQUFZO0lBRVosT0FBTyxDQUNMLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztRQUNoQyxvREFBb0Q7U0FDbkQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUNYLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULENBQUMsRUFB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QUcsa0JBQWtCLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUQsQ0FBQztLQUNIO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsVUFBOEI7SUFFOUIsT0FBTztRQUNMLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRTtRQUNqQixHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQzFCLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLElBQUk7UUFDNUIsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSTtRQUM5QixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJO0tBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFrQixFQUFFLElBQUksR0FBRyxFQUFFO0lBQ3pELE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBHcmlkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZ3JpZC1pdGVtcy9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRHJhZ1Jlc2l6ZUV2ZW50LFxuICBHcmlkQ2ZnLFxuICBHcmlkQ29tcGFjdFR5cGUsXG4gIEdyaWRJdGVtQ2xpZW50UmVjdCxcbiAgR3JpZEl0ZW1EaW1lbnNpb24sXG4gIEdyaWRJdGVtRHJhZ2dpbmdJbmZvLFxuICBHcmlkSXRlbVJlbmRlckRhdGEsXG4gIEdyaWRMYXlvdXQsXG4gIEdyaWRMYXlvdXRJdGVtLFxufSBmcm9tICcuLi90eXBlJztcblxuaW1wb3J0IHsgZ2V0UG9pbnRlclBhZ2VYLCBnZXRQb2ludGVyUGFnZVkgfSBmcm9tICcuL21vdXNlLnV0aWxzJztcbmltcG9ydCB7XG4gIGNvbXBhY3QsXG4gIENvbXBhY3RUeXBlLFxuICBnZXRGaXJzdENvbGxpc2lvbixcbiAgTGF5b3V0LFxuICBMYXlvdXRJdGVtLFxuICBtb3ZlRWxlbWVudCxcbn0gZnJvbSAnLi9yZWFjdC1ncmlkLWxheW91dC51dGlscyc7XG5cbmZ1bmN0aW9uIGNsYW1wU2l6ZShzaXplOiBudW1iZXIsIG1pbiA9IDEsIG1heCA9IEluZmluaXR5KSB7XG4gIHJldHVybiBjbGFtcChzaXplLCBtaW4gfHwgMSwgbWF4IHx8IEluZmluaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQnlJZChfaW5kZXg6IG51bWJlciwgaXRlbTogeyBpZDogc3RyaW5nIH0pIHtcbiAgcmV0dXJuIGl0ZW0uaWQ7XG59XG5cbi8qKlxuICogY2FsbCByZWFjdC1ncmlkLWxheW91dCB1dGlscyAnY29tcGFjdCgpJyBmdW5jdGlvbiBhbmQgcmV0dXJuIHRoZSBjb21wYWN0ZWQgbGF5b3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFjdEdyaWRMYXlvdXQoXG4gIGxheW91dDogR3JpZExheW91dCxcbiAgY29tcGFjdFR5cGU6IEdyaWRDb21wYWN0VHlwZSxcbiAgY29sczogbnVtYmVyLFxuKTogR3JpZExheW91dCB7XG4gIHJldHVybiAoXG4gICAgY29tcGFjdChsYXlvdXQsIGNvbXBhY3RUeXBlLCBjb2xzKVxuICAgICAgLy8gUHJ1bmUgcmVhY3QtZ3JpZC1sYXlvdXQgY29tcGFjdCBleHRyYSBwcm9wZXJ0aWVzLlxuICAgICAgLm1hcChpdGVtID0+ICh7XG4gICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICB4OiBpdGVtLngsXG4gICAgICAgIHk6IGl0ZW0ueSxcbiAgICAgICAgdzogaXRlbS53LFxuICAgICAgICBoOiBpdGVtLmgsXG4gICAgICAgIG1pblc6IGl0ZW0ubWluVyxcbiAgICAgICAgbWluSDogaXRlbS5taW5ILFxuICAgICAgICBtYXhXOiBpdGVtLm1heFcsXG4gICAgICAgIG1heEg6IGl0ZW0ubWF4SCxcbiAgICAgIH0pKVxuICApO1xufVxuXG4vLyBjb252ZXJ0IHdlYiBwYWdlIGFic29sdXRlIHBvc2l0aW9uIHRvIGdyaWQgbGF5b3V0IGxvY2F0aW9uICh1c2VkIGZvciBsb2NhdGUgbGFzdCBwb3NpdGlvbilcbmZ1bmN0aW9uIHNjcmVlblhUb0dyaWRYKFxuICBzY3JlZW5YUG9zOiBudW1iZXIsXG4gIGNvbHM6IG51bWJlcixcbiAgd2lkdGg6IG51bWJlcixcbiAgZ3V0dGVyOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBjb25zdCB3aWR0aE1pbnVzR3V0dGVycyA9IHdpZHRoIC0gZ3V0dGVyICogKGNvbHMgLSAxKTtcbiAgY29uc3QgaXRlbVdpZHRoID0gd2lkdGhNaW51c0d1dHRlcnMgLyBjb2xzO1xuICBjb25zdCB3aWR0aE1pbnVzT25lSXRlbSA9IHdpZHRoIC0gaXRlbVdpZHRoO1xuICBjb25zdCBjb2xXaWR0aFdpdGhHdXR0ZXIgPSB3aWR0aE1pbnVzT25lSXRlbSAvIChjb2xzIC0gMSk7XG4gIHJldHVybiBNYXRoLnJvdW5kKHNjcmVlblhQb3MgLyBjb2xXaWR0aFdpdGhHdXR0ZXIpO1xufVxuXG5mdW5jdGlvbiBzY3JlZW5ZVG9HcmlkWShcbiAgc2NyZWVuWVBvczogbnVtYmVyLFxuICByb3dIZWlnaHQ6IG51bWJlcixcbiAgZ3V0dGVyOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5yb3VuZChzY3JlZW5ZUG9zIC8gKHJvd0hlaWdodCArIGd1dHRlcikpO1xufVxuLy8gY29udmVydCB3ZWIgcGFnZSBhYnNvbHV0ZSBzaXplIHRvIGdyaWQgbGF5b3V0IHNpemUgKHVzZWQgZm9yIGxvY2F0ZSBsYXN0IHBvc2l0aW9uKVxuZnVuY3Rpb24gc2NyZWVuV2lkdGhUb0dyaWRXaWR0aChcbiAgZ3JpZFNjcmVlbldpZHRoOiBudW1iZXIsXG4gIGNvbHM6IG51bWJlcixcbiAgd2lkdGg6IG51bWJlcixcbiAgZ3V0dGVyOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBjb25zdCB3aWR0aE1pbnVzR3V0dGVycyA9IHdpZHRoIC0gZ3V0dGVyICogKGNvbHMgLSAxKTtcbiAgY29uc3QgaXRlbVdpZHRoID0gd2lkdGhNaW51c0d1dHRlcnMgLyBjb2xzO1xuICBjb25zdCBncmlkU2NyZWVuV2lkdGhNaW51c0ZpcnN0ID0gZ3JpZFNjcmVlbldpZHRoIC0gaXRlbVdpZHRoO1xuICByZXR1cm4gTWF0aC5yb3VuZChncmlkU2NyZWVuV2lkdGhNaW51c0ZpcnN0IC8gKGl0ZW1XaWR0aCArIGd1dHRlcikpICsgMTtcbn1cblxuZnVuY3Rpb24gc2NyZWVuSGVpZ2h0VG9HcmlkSGVpZ2h0KFxuICBncmlkU2NyZWVuSGVpZ2h0OiBudW1iZXIsXG4gIHJvd0hlaWdodDogbnVtYmVyLFxuICBndXR0ZXI6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGNvbnN0IGdyaWRTY3JlZW5IZWlnaHRNaW51c0ZpcnN0ID0gZ3JpZFNjcmVlbkhlaWdodCAtIHJvd0hlaWdodDtcbiAgcmV0dXJuIE1hdGgucm91bmQoZ3JpZFNjcmVlbkhlaWdodE1pbnVzRmlyc3QgLyAocm93SGVpZ2h0ICsgZ3V0dGVyKSkgKyAxO1xufVxuXG4vKiogUmV0dXJucyBhIERpY3Rpb25hcnkgd2hlcmUgdGhlIGtleSBpcyB0aGUgaWQgYW5kIHRoZSB2YWx1ZSBpcyB0aGUgY2hhbmdlIGFwcGxpZWQgdG8gdGhhdCBpdGVtLiBJZiBubyBjaGFuZ2VzIERpY3Rpb25hcnkgaXMgZW1wdHkuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2V0R3JpZExheW91dERpZmYoXG4gIGdyaWRMYXlvdXRBOiBHcmlkTGF5b3V0SXRlbVtdLFxuICBncmlkTGF5b3V0QjogR3JpZExheW91dEl0ZW1bXSxcbik6IERpY3Rpb25hcnk8eyBjaGFuZ2U6ICdtb3ZlJyB8ICdyZXNpemUnIHwgJ21vdmVyZXNpemUnIH0+IHtcbiAgY29uc3QgZGlmZjogRGljdGlvbmFyeTx7IGNoYW5nZTogJ21vdmUnIHwgJ3Jlc2l6ZScgfCAnbW92ZXJlc2l6ZScgfT4gPSB7fTtcblxuICBncmlkTGF5b3V0QS5mb3JFYWNoKGl0ZW1BID0+IHtcbiAgICBjb25zdCBpdGVtQiA9IGdyaWRMYXlvdXRCLmZpbmQoX2l0ZW1CID0+IF9pdGVtQi5pZCA9PT0gaXRlbUEuaWQpO1xuICAgIGlmIChpdGVtQiAhPSBudWxsKSB7XG4gICAgICBjb25zdCBwb3NDaGFuZ2VkID0gaXRlbUEueCAhPT0gaXRlbUIueCB8fCBpdGVtQS55ICE9PSBpdGVtQi55O1xuICAgICAgY29uc3Qgc2l6ZUNoYW5nZWQgPSBpdGVtQS53ICE9PSBpdGVtQi53IHx8IGl0ZW1BLmggIT09IGl0ZW1CLmg7XG4gICAgICBjb25zdCBjaGFuZ2U6ICdtb3ZlJyB8ICdyZXNpemUnIHwgJ21vdmVyZXNpemUnIHwgbnVsbCA9XG4gICAgICAgIHBvc0NoYW5nZWQgJiYgc2l6ZUNoYW5nZWRcbiAgICAgICAgICA/ICdtb3ZlcmVzaXplJ1xuICAgICAgICAgIDogcG9zQ2hhbmdlZFxuICAgICAgICAgID8gJ21vdmUnXG4gICAgICAgICAgOiBzaXplQ2hhbmdlZFxuICAgICAgICAgID8gJ3Jlc2l6ZSdcbiAgICAgICAgICA6IG51bGw7XG4gICAgICBpZiAoY2hhbmdlKSB7XG4gICAgICAgIGRpZmZbaXRlbUIuaWRdID0geyBjaGFuZ2UgfTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZGlmZjtcbn1cblxuLy8gZ2V0IHRoZSBvbi1mbGlnaHQgZHJhZ2dpbmcgaXRlbSBwb3NpdGlvbiBhbmQgaXRzIGxhc3QgcG9zaXRpb24odXNlZCBmb3IgcGxhY2Vob2xkZXIpXG5leHBvcnQgZnVuY3Rpb24gZ3JpZEl0ZW1EcmFnZ2luZyhcbiAgZ3JpZEl0ZW06IEdyaWRJdGVtQ29tcG9uZW50LFxuICBjb25maWc6IEdyaWRDZmcsXG4gIGNvbXBhY3RUeXBlOiBDb21wYWN0VHlwZSxcbiAgZHJhZ2dpbmdEYXRhOiBHcmlkSXRlbURyYWdnaW5nSW5mbyxcbik6IHsgbGF5b3V0OiBHcmlkTGF5b3V0SXRlbVtdOyBkcmFnZ2VkSXRlbVBvczogR3JpZEl0ZW1DbGllbnRSZWN0IH0ge1xuICBjb25zdCB7XG4gICAgcG9pbnRlckRvd25FdmVudCxcbiAgICBwb2ludGVyRHJhZ0V2ZW50LFxuICAgIGdyaWRFbGVtQ2xpZW50UmVjdCxcbiAgICBkcmFnRWxlbUNsaWVudFJlY3QsXG4gICAgc2Nyb2xsRGlmZmVyZW5jZSxcbiAgfSA9IGRyYWdnaW5nRGF0YTtcblxuICBjb25zdCBncmlkSXRlbUlkID0gZ3JpZEl0ZW0uaWQ7XG4gIGNvbnN0IGRyYWdnaW5nRWxlbVByZXZJdGVtID0gY29uZmlnLmxheW91dC5maW5kKFxuICAgIGl0ZW0gPT4gaXRlbS5pZCA9PT0gZ3JpZEl0ZW1JZCxcbiAgKSE7XG5cbiAgY29uc3QgY2xpZW50U3RhcnRYID0gZ2V0UG9pbnRlclBhZ2VYKHBvaW50ZXJEb3duRXZlbnQpO1xuICBjb25zdCBjbGllbnRTdGFydFkgPSBnZXRQb2ludGVyUGFnZVkocG9pbnRlckRvd25FdmVudCk7XG4gIGNvbnN0IGNsaWVudFggPSBnZXRQb2ludGVyUGFnZVgocG9pbnRlckRyYWdFdmVudCk7XG4gIGNvbnN0IGNsaWVudFkgPSBnZXRQb2ludGVyUGFnZVkocG9pbnRlckRyYWdFdmVudCk7XG5cbiAgY29uc3Qgb2Zmc2V0WCA9IGNsaWVudFN0YXJ0WCAtIGRyYWdFbGVtQ2xpZW50UmVjdC5sZWZ0O1xuICBjb25zdCBvZmZzZXRZID0gY2xpZW50U3RhcnRZIC0gZHJhZ0VsZW1DbGllbnRSZWN0LnRvcDtcblxuICAvLyBHcmlkIGVsZW1lbnQgcG9zaXRpb25zIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHBvc3NpYmxlIHNjcm9sbCB0b3RhbCBkaWZmZXJlbmNlIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgY29uc3QgZ3JpZEVsZW1lbnRMZWZ0UG9zaXRpb24gPVxuICAgIGdyaWRFbGVtQ2xpZW50UmVjdC5sZWZ0ICsgc2Nyb2xsRGlmZmVyZW5jZS5sZWZ0O1xuICBjb25zdCBncmlkRWxlbWVudFRvcFBvc2l0aW9uID0gZ3JpZEVsZW1DbGllbnRSZWN0LnRvcCArIHNjcm9sbERpZmZlcmVuY2UudG9wO1xuICAvLyBDYWxjdWxhdGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGdyaWQgZWxlbWVudC5cbiAgY29uc3QgZ3JpZFJlbFhQb3MgPSBjbGllbnRYIC0gZ3JpZEVsZW1lbnRMZWZ0UG9zaXRpb24gLSBvZmZzZXRYO1xuXG4gIGNvbnN0IGdyaWRSZWxZUG9zID0gY2xpZW50WSAtIGdyaWRFbGVtZW50VG9wUG9zaXRpb24gLSBvZmZzZXRZO1xuXG4gIC8vIEdldCBsYXlvdXQgaXRlbSBwb3NpdGlvblxuICBjb25zdCBsYXlvdXRJdGVtOiBHcmlkTGF5b3V0SXRlbSA9IHtcbiAgICAuLi5kcmFnZ2luZ0VsZW1QcmV2SXRlbSxcbiAgICB4OiBzY3JlZW5YVG9HcmlkWChcbiAgICAgIGdyaWRSZWxYUG9zLFxuICAgICAgY29uZmlnLmNvbHMsXG4gICAgICBncmlkRWxlbUNsaWVudFJlY3Qud2lkdGgsXG4gICAgICBjb25maWcuZ3V0dGVyLFxuICAgICksXG4gICAgeTogc2NyZWVuWVRvR3JpZFkoZ3JpZFJlbFlQb3MsIGNvbmZpZy5yb3dIZWlnaHQsIGNvbmZpZy5ndXR0ZXIpLFxuICB9O1xuXG4gIC8vIGNvcnJlY3QgdGhlIHZhbHVlcyBpZiB0aGV5IG92ZXJmbG93XG4gIGxheW91dEl0ZW0ueCA9IE1hdGgubWF4KDAsIGxheW91dEl0ZW0ueCk7XG4gIGxheW91dEl0ZW0ueSA9IE1hdGgubWF4KDAsIGxheW91dEl0ZW0ueSk7XG5cbiAgaWYgKGxheW91dEl0ZW0ueCArIGxheW91dEl0ZW0udyA+IGNvbmZpZy5jb2xzKSB7XG4gICAgbGF5b3V0SXRlbS54ID0gTWF0aC5tYXgoMCwgY29uZmlnLmNvbHMgLSBsYXlvdXRJdGVtLncpO1xuICB9XG5cbiAgLy8gUGFyc2UgdG8gTGF5b3V0SXRlbSBhcnJheSBkYXRhIGluIG9yZGVyIHRvIHVzZSAncmVhY3QuZ3JpZC1sYXlvdXQnIHV0aWxzXG4gIGNvbnN0IGxheW91dEl0ZW1zOiBMYXlvdXRJdGVtW10gPSBjb25maWcubGF5b3V0O1xuICBjb25zdCBkcmFnZ2VkTGF5b3V0SXRlbTogTGF5b3V0SXRlbSA9IGxheW91dEl0ZW1zLmZpbmQoXG4gICAgaXRlbSA9PiBpdGVtLmlkID09PSBncmlkSXRlbUlkLFxuICApITtcblxuICBsZXQgbmV3TGF5b3V0SXRlbXM6IExheW91dEl0ZW1bXSA9IG1vdmVFbGVtZW50KFxuICAgIGxheW91dEl0ZW1zLFxuICAgIGRyYWdnZWRMYXlvdXRJdGVtLFxuICAgIGxheW91dEl0ZW0ueCxcbiAgICBsYXlvdXRJdGVtLnksXG4gICAgdHJ1ZSxcbiAgICBjb25maWcucHJldmVudENvbGxpc2lvbixcbiAgICBjb21wYWN0VHlwZSxcbiAgICBjb25maWcuY29scyxcbiAgKTtcblxuICBuZXdMYXlvdXRJdGVtcyA9IGNvbXBhY3QobmV3TGF5b3V0SXRlbXMsIGNvbXBhY3RUeXBlLCBjb25maWcuY29scyk7XG4gIGNvbnN0IGRyYWdJdGVtID0ge1xuICAgIC4uLmRyYWdnaW5nRWxlbVByZXZJdGVtLFxuICAgIC8vIGl0ZW1zIGxheW91dCBib3VuZGFyeSB3aWxsIGNoYW5nZWQgYnkgY29tcGFjdFR5cGUsIHdoZW4gdmVydGljYWwsd2UgY2FuIGxldCBib3R0b20gZ3Jvdy4gd2hlbiBob3Jpem9udGFsLHdlIGxldCByaWdodCBhbmQgYm90dG9tIGdyb3cuXG4gICAgLy8gc28sIGxlZnQgYW5kIHRvcCB3aWxsIGFsd2F5cyBib3VuZCB0byAwLlxuICAgIHRvcDogY2xhbXBTaXplKGdyaWRSZWxZUG9zLCAwLCBJbmZpbml0eSksXG4gICAgbGVmdDogY2xhbXBTaXplKFxuICAgICAgZ3JpZFJlbFhQb3MsXG4gICAgICAwLFxuICAgICAgY29tcGFjdFR5cGUgPT09IEdyaWRDb21wYWN0VHlwZS5WRVJUSUNBTFxuICAgICAgICA/IGdyaWRFbGVtQ2xpZW50UmVjdC53aWR0aCAtIGRyYWdFbGVtQ2xpZW50UmVjdC53aWR0aFxuICAgICAgICA6IEluZmluaXR5LFxuICAgICksXG4gIH07XG4gIHJldHVybiB7XG4gICAgbGF5b3V0OiBuZXdMYXlvdXRJdGVtcyxcbiAgICBkcmFnZ2VkSXRlbVBvczogZHJhZ0l0ZW0sXG4gIH07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG5leHBvcnQgZnVuY3Rpb24gZ3JpZEl0ZW1SZXNpemluZyhcbiAgZ3JpZEl0ZW06IEdyaWRJdGVtQ29tcG9uZW50LFxuICBjb25maWc6IEdyaWRDZmcsXG4gIGNvbXBhY3RUeXBlOiBDb21wYWN0VHlwZSxcbiAgZHJhZ2dpbmdEYXRhOiBHcmlkSXRlbURyYWdnaW5nSW5mbyxcbik6IHsgbGF5b3V0OiBHcmlkTGF5b3V0SXRlbVtdOyBkcmFnZ2VkSXRlbVBvczogR3JpZEl0ZW1DbGllbnRSZWN0IH0ge1xuICBjb25zdCB7XG4gICAgcG9pbnRlckRvd25FdmVudCxcbiAgICBwb2ludGVyRHJhZ0V2ZW50LFxuICAgIGdyaWRFbGVtQ2xpZW50UmVjdCxcbiAgICBkcmFnRWxlbUNsaWVudFJlY3QsXG4gICAgc2Nyb2xsRGlmZmVyZW5jZSxcbiAgfSA9IGRyYWdnaW5nRGF0YTtcbiAgY29uc3QgZ3JpZEl0ZW1JZCA9IGdyaWRJdGVtLmlkO1xuXG4gIC8vIHVzZSBwYWdlIG9mZnNldCB0byBhdm9pZCBzY3JvbGxpbmcgb2Zmc2V0IGNhdXNlZCBieSBwYWdlIHNocmlua1xuICBjb25zdCBjbGllbnRTdGFydFggPSBnZXRQb2ludGVyUGFnZVgocG9pbnRlckRvd25FdmVudCk7XG4gIGNvbnN0IGNsaWVudFN0YXJ0WSA9IGdldFBvaW50ZXJQYWdlWShwb2ludGVyRG93bkV2ZW50KTtcbiAgY29uc3QgY2xpZW50WCA9IGdldFBvaW50ZXJQYWdlWChwb2ludGVyRHJhZ0V2ZW50KTtcbiAgY29uc3QgY2xpZW50WSA9IGdldFBvaW50ZXJQYWdlWShwb2ludGVyRHJhZ0V2ZW50KTtcblxuICAvLyBnZXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbW91c2VEb3duIGFuZCBvbi1mbGlnaHQgbW91c2VEcmFnZ2luZy5cbiAgY29uc3QgcmVzaXplRWxlbU9mZnNldFggPSBjbGllbnRYIC0gY2xpZW50U3RhcnRYO1xuICBjb25zdCByZXNpemVFbGVtT2Zmc2V0WSA9IGNsaWVudFkgLSBjbGllbnRTdGFydFk7XG4gIGNvbnN0IGRyYWdnaW5nRWxlbVByZXZJdGVtID0gY29uZmlnLmxheW91dC5maW5kKFxuICAgIGl0ZW0gPT4gaXRlbS5pZCA9PT0gZ3JpZEl0ZW1JZCxcbiAgKSE7XG4gIGNvbnN0IHdpZHRoID1cbiAgICBkcmFnRWxlbUNsaWVudFJlY3Qud2lkdGggKyByZXNpemVFbGVtT2Zmc2V0WCAtIHNjcm9sbERpZmZlcmVuY2UubGVmdDtcbiAgY29uc3QgaGVpZ2h0ID1cbiAgICBkcmFnRWxlbUNsaWVudFJlY3QuaGVpZ2h0ICsgcmVzaXplRWxlbU9mZnNldFkgLSBzY3JvbGxEaWZmZXJlbmNlLnRvcDtcblxuICAvLyBHZXQgbGF5b3V0IGl0ZW0gZ3JpZCBwb3NpdGlvblxuICBjb25zdCBsYXlvdXRJdGVtOiBHcmlkTGF5b3V0SXRlbSA9IHtcbiAgICAuLi5kcmFnZ2luZ0VsZW1QcmV2SXRlbSxcbiAgICB3OiBzY3JlZW5XaWR0aFRvR3JpZFdpZHRoKFxuICAgICAgd2lkdGgsXG4gICAgICBjb25maWcuY29scyxcbiAgICAgIGdyaWRFbGVtQ2xpZW50UmVjdC53aWR0aCxcbiAgICAgIGNvbmZpZy5ndXR0ZXIsXG4gICAgKSxcbiAgICBoOiBzY3JlZW5IZWlnaHRUb0dyaWRIZWlnaHQoaGVpZ2h0LCBjb25maWcucm93SGVpZ2h0LCBjb25maWcuZ3V0dGVyKSxcbiAgfTtcblxuICBsYXlvdXRJdGVtLncgPSBjbGFtcFNpemUoXG4gICAgbGF5b3V0SXRlbS53LFxuICAgIGdyaWRJdGVtLm1pblcgPz8gbGF5b3V0SXRlbS5taW5XLFxuICAgIGdyaWRJdGVtLm1heFcgPz8gbGF5b3V0SXRlbS5tYXhXLFxuICApO1xuICBsYXlvdXRJdGVtLmggPSBjbGFtcFNpemUoXG4gICAgbGF5b3V0SXRlbS5oLFxuICAgIGdyaWRJdGVtLm1pbkggPz8gbGF5b3V0SXRlbS5taW5ILFxuICAgIGdyaWRJdGVtLm1heEggPz8gbGF5b3V0SXRlbS5tYXhILFxuICApO1xuICBpZiAobGF5b3V0SXRlbS54ICsgbGF5b3V0SXRlbS53ID4gY29uZmlnLmNvbHMpIHtcbiAgICBsYXlvdXRJdGVtLncgPSBNYXRoLm1heCgxLCBjb25maWcuY29scyAtIGxheW91dEl0ZW0ueCk7XG4gIH1cblxuICBpZiAoY29uZmlnLnByZXZlbnRDb2xsaXNpb24pIHtcbiAgICBjb25zdCBtYXhXID0gbGF5b3V0SXRlbS53O1xuICAgIGNvbnN0IG1heEggPSBsYXlvdXRJdGVtLmg7XG5cbiAgICBsZXQgY29sbGlkaW5nID0gaGFzQ29sbGlzaW9uKGNvbmZpZy5sYXlvdXQsIGxheW91dEl0ZW0pO1xuICAgIGxldCBzaHJ1bmtEaW1lbnNpb246IEdyaWRJdGVtRGltZW5zaW9uO1xuXG4gICAgd2hpbGUgKGNvbGxpZGluZykge1xuICAgICAgc2hydW5rRGltZW5zaW9uID0gZ2V0U2hyaW5rRGltZW5zaW9uKGxheW91dEl0ZW0sIHNocnVua0RpbWVuc2lvbik7XG4gICAgICBsYXlvdXRJdGVtW3NocnVua0RpbWVuc2lvbl0tLTtcbiAgICAgIGNvbGxpZGluZyA9IGhhc0NvbGxpc2lvbihjb25maWcubGF5b3V0LCBsYXlvdXRJdGVtKTtcbiAgICB9XG5cbiAgICBpZiAoc2hydW5rRGltZW5zaW9uID09PSAndycpIHtcbiAgICAgIGxheW91dEl0ZW0uaCA9IG1heEg7XG5cbiAgICAgIGNvbGxpZGluZyA9IGhhc0NvbGxpc2lvbihjb25maWcubGF5b3V0LCBsYXlvdXRJdGVtKTtcbiAgICAgIHdoaWxlIChjb2xsaWRpbmcpIHtcbiAgICAgICAgbGF5b3V0SXRlbS5oLS07XG4gICAgICAgIGNvbGxpZGluZyA9IGhhc0NvbGxpc2lvbihjb25maWcubGF5b3V0LCBsYXlvdXRJdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNocnVua0RpbWVuc2lvbiA9PT0gJ2gnKSB7XG4gICAgICBsYXlvdXRJdGVtLncgPSBtYXhXO1xuXG4gICAgICBjb2xsaWRpbmcgPSBoYXNDb2xsaXNpb24oY29uZmlnLmxheW91dCwgbGF5b3V0SXRlbSk7XG4gICAgICB3aGlsZSAoY29sbGlkaW5nKSB7XG4gICAgICAgIGxheW91dEl0ZW0udy0tO1xuICAgICAgICBjb2xsaWRpbmcgPSBoYXNDb2xsaXNpb24oY29uZmlnLmxheW91dCwgbGF5b3V0SXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IG5ld0xheW91dEl0ZW1zOiBMYXlvdXRJdGVtW10gPSBjb25maWcubGF5b3V0Lm1hcChpdGVtID0+XG4gICAgaXRlbS5pZCA9PT0gZ3JpZEl0ZW1JZCA/IGxheW91dEl0ZW0gOiBpdGVtLFxuICApO1xuICByZXR1cm4ge1xuICAgIGxheW91dDogY29tcGFjdChuZXdMYXlvdXRJdGVtcywgY29tcGFjdFR5cGUsIGNvbmZpZy5jb2xzKSxcbiAgICBkcmFnZ2VkSXRlbVBvczoge1xuICAgICAgdG9wOiBkcmFnRWxlbUNsaWVudFJlY3QudG9wIC0gZ3JpZEVsZW1DbGllbnRSZWN0LnRvcCxcbiAgICAgIGxlZnQ6IGRyYWdFbGVtQ2xpZW50UmVjdC5sZWZ0IC0gZ3JpZEVsZW1DbGllbnRSZWN0LmxlZnQsXG4gICAgICAvLyB3aGVuIHZlcnRpY2FsLCBtYWtlIHN1cmUgcmVzaXppbmcgbm90IG92ZXJmbG93IHJpZ2h0IGJvdW5kYXJ5XG4gICAgICB3aWR0aDogY2xhbXBTaXplKFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgMCxcbiAgICAgICAgY29tcGFjdFR5cGUgPT09IEdyaWRDb21wYWN0VHlwZS5WRVJUSUNBTFxuICAgICAgICAgID8gKGdyaWRFbGVtQ2xpZW50UmVjdC53aWR0aCAqIChjb25maWcuY29scyAtIGxheW91dEl0ZW0ueCkpIC9cbiAgICAgICAgICAgICAgY29uZmlnLmNvbHNcbiAgICAgICAgICA6IEluZmluaXR5LFxuICAgICAgKSxcbiAgICAgIGhlaWdodCxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBoYXNDb2xsaXNpb24obGF5b3V0OiBMYXlvdXQsIGxheW91dEl0ZW06IExheW91dEl0ZW0pOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZ2V0Rmlyc3RDb2xsaXNpb24obGF5b3V0LCBsYXlvdXRJdGVtKTtcbn1cblxuZnVuY3Rpb24gZ2V0U2hyaW5rRGltZW5zaW9uKFxuICBsYXlvdXRJdGVtOiBHcmlkTGF5b3V0SXRlbSxcbiAgbGFzdFNocnVuazogR3JpZEl0ZW1EaW1lbnNpb24sXG4pOiBHcmlkSXRlbURpbWVuc2lvbiB7XG4gIGlmIChsYXlvdXRJdGVtLmggPD0gMSkge1xuICAgIHJldHVybiAndyc7XG4gIH1cbiAgaWYgKGxheW91dEl0ZW0udyA8PSAxKSB7XG4gICAgcmV0dXJuICdoJztcbiAgfVxuXG4gIHJldHVybiBsYXN0U2hydW5rID09PSAndycgPyAnaCcgOiAndyc7XG59XG5cbi8qKiBSZXR1cm5zIHRydWUgaWYgYm90aCBpdGVtMSBhbmQgaXRlbTIgR3JpZExheW91dEl0ZW1zIGFyZSBlcXVpdmFsZW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzR3JpZEl0ZW1MYXlvdXRJdGVtRXF1YWwoXG4gIGl0ZW0xOiBHcmlkTGF5b3V0SXRlbSxcbiAgaXRlbTI6IEdyaWRMYXlvdXRJdGVtLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXRlbTEuaWQgPT09IGl0ZW0yLmlkICYmXG4gICAgaXRlbTEueCA9PT0gaXRlbTIueCAmJlxuICAgIGl0ZW0xLnkgPT09IGl0ZW0yLnkgJiZcbiAgICBpdGVtMS53ID09PSBpdGVtMi53ICYmXG4gICAgaXRlbTEuaCA9PT0gaXRlbTIuaFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JpZEhlaWdodChcbiAgbGF5b3V0OiBHcmlkTGF5b3V0LFxuICByb3dIZWlnaHQ6IG51bWJlcixcbiAgZ3V0dGVyOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICByZXR1cm4gbGF5b3V0LnJlZHVjZShcbiAgICAoYWNjLCBjdXIpID0+XG4gICAgICBNYXRoLm1heChcbiAgICAgICAgYWNjLFxuICAgICAgICAoY3VyLnkgKyBjdXIuaCkgKiByb3dIZWlnaHQgKyBNYXRoLm1heChjdXIueSArIGN1ci5oIC0gMSwgMCkgKiBndXR0ZXIsXG4gICAgICApLFxuICAgIDAsXG4gICk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RHJhZ1Jlc2l6ZUV2ZW50RGF0YShcbiAgZ3JpZEl0ZW06IEdyaWRJdGVtQ29tcG9uZW50LFxuICBsYXlvdXQ6IEdyaWRMYXlvdXQsXG4pOiBEcmFnUmVzaXplRXZlbnQge1xuICByZXR1cm4ge1xuICAgIGxheW91dCxcbiAgICBsYXlvdXRJdGVtOiBsYXlvdXQuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGdyaWRJdGVtLmlkKSEsXG4gICAgZ3JpZEl0ZW1SZWY6IGdyaWRJdGVtLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGF5b3V0VG9SZW5kZXJJdGVtcyhcbiAgY29uZmlnOiBHcmlkQ2ZnLFxuICB3aWR0aDogbnVtYmVyLFxuICBsYXlvdXQ/OiBHcmlkTGF5b3V0LFxuKTogRGljdGlvbmFyeTxHcmlkSXRlbVJlbmRlckRhdGE+IHtcbiAgY29uc3QgeyBjb2xzLCByb3dIZWlnaHQsIGxheW91dDogcmF3TGF5b3V0LCBndXR0ZXIgfSA9IGNvbmZpZztcbiAgY29uc3Qgd2lkdGhXaXRob3V0R3V0dGVyID0gd2lkdGggLSBNYXRoLm1heChndXR0ZXIgKiAoY29scyAtIDEpLCAwKTtcbiAgY29uc3QgaXRlbVdpZHRoUGVyQ29sdW1uID0gd2lkdGhXaXRob3V0R3V0dGVyIC8gY29scztcbiAgY29uc3QgcmVuZGVySXRlbXM6IERpY3Rpb25hcnk8R3JpZEl0ZW1SZW5kZXJEYXRhPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBsYXlvdXQgPz8gcmF3TGF5b3V0KSB7XG4gICAgcmVuZGVySXRlbXNbaXRlbS5pZF0gPSB7XG4gICAgICBpZDogaXRlbS5pZCxcbiAgICAgIHRvcDogaXRlbS55ICogcm93SGVpZ2h0ICsgZ3V0dGVyICogaXRlbS55LFxuICAgICAgbGVmdDogaXRlbS54ICogaXRlbVdpZHRoUGVyQ29sdW1uICsgZ3V0dGVyICogaXRlbS54LFxuICAgICAgd2lkdGg6IGl0ZW0udyAqIGl0ZW1XaWR0aFBlckNvbHVtbiArIGd1dHRlciAqIE1hdGgubWF4KGl0ZW0udyAtIDEsIDApLFxuICAgICAgaGVpZ2h0OiBpdGVtLmggKiByb3dIZWlnaHQgKyBndXR0ZXIgKiBNYXRoLm1heChpdGVtLmggLSAxLCAwKSxcbiAgICB9O1xuICB9XG4gIHJldHVybiByZW5kZXJJdGVtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVuZGVySXRlbVRvUGl4ZWxzKFxuICByZW5kZXJJdGVtOiBHcmlkSXRlbVJlbmRlckRhdGEsXG4pOiBHcmlkSXRlbVJlbmRlckRhdGE8c3RyaW5nPiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IHJlbmRlckl0ZW0uaWQsXG4gICAgdG9wOiBgJHtyZW5kZXJJdGVtLnRvcH1weGAsXG4gICAgbGVmdDogYCR7cmVuZGVySXRlbS5sZWZ0fXB4YCxcbiAgICB3aWR0aDogYCR7cmVuZGVySXRlbS53aWR0aH1weGAsXG4gICAgaGVpZ2h0OiBgJHtyZW5kZXJJdGVtLmhlaWdodH1weGAsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3JyZWN0TGF5b3V0KGxheW91dDogR3JpZExheW91dCwgY29scyA9IDEyKSB7XG4gIHJldHVybiBjb21wYWN0R3JpZExheW91dChsYXlvdXQsICd2ZXJ0aWNhbCcsIGNvbHMpO1xufVxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9ncmlkLWxheW91dC91dGlscy9ncmlkLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJbEMsT0FBTyxFQUdMLGVBQWUsR0FPaEIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNMLE9BQU8sRUFFUCxpQkFBaUIsRUFHakIsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFFBQVE7SUFDdEQsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFvQjtJQUM1RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDakIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixNQUFrQixFQUNsQixXQUE0QixFQUM1QixJQUFZO0lBRVosT0FBTyxDQUNMLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztRQUNoQyxvREFBb0Q7U0FDbkQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUNYLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULENBQUMsRUFB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QUFHLElBQUksQ0FBQyxDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxrQkFBa0IsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFVBQThCO0lBRTlCLE9BQU87UUFDTCxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUU7UUFDakIsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUMxQixJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJO1FBQzVCLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLElBQUk7UUFDOUIsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sSUFBSTtLQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBa0IsRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUN6RCxPQUFPLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgR3JpZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2dyaWQtaXRlbXMvY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERyYWdSZXNpemVFdmVudCxcbiAgR3JpZENmZyxcbiAgR3JpZENvbXBhY3RUeXBlLFxuICBHcmlkSXRlbUNsaWVudFJlY3QsXG4gIEdyaWRJdGVtRGltZW5zaW9uLFxuICBHcmlkSXRlbURyYWdnaW5nSW5mbyxcbiAgR3JpZEl0ZW1SZW5kZXJEYXRhLFxuICBHcmlkTGF5b3V0LFxuICBHcmlkTGF5b3V0SXRlbSxcbn0gZnJvbSAnLi4vdHlwZSc7XG5cbmltcG9ydCB7IGdldFBvaW50ZXJQYWdlWCwgZ2V0UG9pbnRlclBhZ2VZIH0gZnJvbSAnLi9tb3VzZS51dGlscyc7XG5pbXBvcnQge1xuICBjb21wYWN0LFxuICBDb21wYWN0VHlwZSxcbiAgZ2V0Rmlyc3RDb2xsaXNpb24sXG4gIExheW91dCxcbiAgTGF5b3V0SXRlbSxcbiAgbW92ZUVsZW1lbnQsXG59IGZyb20gJy4vcmVhY3QtZ3JpZC1sYXlvdXQudXRpbHMnO1xuXG5mdW5jdGlvbiBjbGFtcFNpemUoc2l6ZTogbnVtYmVyLCBtaW4gPSAxLCBtYXggPSBJbmZpbml0eSkge1xuICByZXR1cm4gY2xhbXAoc2l6ZSwgbWluIHx8IDEsIG1heCB8fCBJbmZpbml0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0J5SWQoX2luZGV4OiBudW1iZXIsIGl0ZW06IHsgaWQ6IHN0cmluZyB9KSB7XG4gIHJldHVybiBpdGVtLmlkO1xufVxuXG4vKipcbiAqIGNhbGwgcmVhY3QtZ3JpZC1sYXlvdXQgdXRpbHMgJ2NvbXBhY3QoKScgZnVuY3Rpb24gYW5kIHJldHVybiB0aGUgY29tcGFjdGVkIGxheW91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhY3RHcmlkTGF5b3V0KFxuICBsYXlvdXQ6IEdyaWRMYXlvdXQsXG4gIGNvbXBhY3RUeXBlOiBHcmlkQ29tcGFjdFR5cGUsXG4gIGNvbHM6IG51bWJlcixcbik6IEdyaWRMYXlvdXQge1xuICByZXR1cm4gKFxuICAgIGNvbXBhY3QobGF5b3V0LCBjb21wYWN0VHlwZSwgY29scylcbiAgICAgIC8vIFBydW5lIHJlYWN0LWdyaWQtbGF5b3V0IGNvbXBhY3QgZXh0cmEgcHJvcGVydGllcy5cbiAgICAgIC5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgeDogaXRlbS54LFxuICAgICAgICB5OiBpdGVtLnksXG4gICAgICAgIHc6IGl0ZW0udyxcbiAgICAgICAgaDogaXRlbS5oLFxuICAgICAgICBtaW5XOiBpdGVtLm1pblcsXG4gICAgICAgIG1pbkg6IGl0ZW0ubWluSCxcbiAgICAgICAgbWF4VzogaXRlbS5tYXhXLFxuICAgICAgICBtYXhIOiBpdGVtLm1heEgsXG4gICAgICB9KSlcbiAgKTtcbn1cblxuLy8gY29udmVydCB3ZWIgcGFnZSBhYnNvbHV0ZSBwb3NpdGlvbiB0byBncmlkIGxheW91dCBsb2NhdGlvbiAodXNlZCBmb3IgbG9jYXRlIGxhc3QgcG9zaXRpb24pXG5mdW5jdGlvbiBzY3JlZW5YVG9HcmlkWChcbiAgc2NyZWVuWFBvczogbnVtYmVyLFxuICBjb2xzOiBudW1iZXIsXG4gIHdpZHRoOiBudW1iZXIsXG4gIGd1dHRlcjogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgY29uc3Qgd2lkdGhNaW51c0d1dHRlcnMgPSB3aWR0aCAtIGd1dHRlciAqIChjb2xzIC0gMSk7XG4gIGNvbnN0IGl0ZW1XaWR0aCA9IHdpZHRoTWludXNHdXR0ZXJzIC8gY29scztcbiAgY29uc3Qgd2lkdGhNaW51c09uZUl0ZW0gPSB3aWR0aCAtIGl0ZW1XaWR0aDtcbiAgY29uc3QgY29sV2lkdGhXaXRoR3V0dGVyID0gd2lkdGhNaW51c09uZUl0ZW0gLyAoY29scyAtIDEpO1xuICByZXR1cm4gTWF0aC5yb3VuZChzY3JlZW5YUG9zIC8gY29sV2lkdGhXaXRoR3V0dGVyKTtcbn1cblxuZnVuY3Rpb24gc2NyZWVuWVRvR3JpZFkoXG4gIHNjcmVlbllQb3M6IG51bWJlcixcbiAgcm93SGVpZ2h0OiBudW1iZXIsXG4gIGd1dHRlcjogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgucm91bmQoc2NyZWVuWVBvcyAvIChyb3dIZWlnaHQgKyBndXR0ZXIpKTtcbn1cbi8vIGNvbnZlcnQgd2ViIHBhZ2UgYWJzb2x1dGUgc2l6ZSB0byBncmlkIGxheW91dCBzaXplICh1c2VkIGZvciBsb2NhdGUgbGFzdCBwb3NpdGlvbilcbmZ1bmN0aW9uIHNjcmVlbldpZHRoVG9HcmlkV2lkdGgoXG4gIGdyaWRTY3JlZW5XaWR0aDogbnVtYmVyLFxuICBjb2xzOiBudW1iZXIsXG4gIHdpZHRoOiBudW1iZXIsXG4gIGd1dHRlcjogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgY29uc3Qgd2lkdGhNaW51c0d1dHRlcnMgPSB3aWR0aCAtIGd1dHRlciAqIChjb2xzIC0gMSk7XG4gIGNvbnN0IGl0ZW1XaWR0aCA9IHdpZHRoTWludXNHdXR0ZXJzIC8gY29scztcbiAgY29uc3QgZ3JpZFNjcmVlbldpZHRoTWludXNGaXJzdCA9IGdyaWRTY3JlZW5XaWR0aCAtIGl0ZW1XaWR0aDtcbiAgcmV0dXJuIE1hdGgucm91bmQoZ3JpZFNjcmVlbldpZHRoTWludXNGaXJzdCAvIChpdGVtV2lkdGggKyBndXR0ZXIpKSArIDE7XG59XG5cbmZ1bmN0aW9uIHNjcmVlbkhlaWdodFRvR3JpZEhlaWdodChcbiAgZ3JpZFNjcmVlbkhlaWdodDogbnVtYmVyLFxuICByb3dIZWlnaHQ6IG51bWJlcixcbiAgZ3V0dGVyOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBjb25zdCBncmlkU2NyZWVuSGVpZ2h0TWludXNGaXJzdCA9IGdyaWRTY3JlZW5IZWlnaHQgLSByb3dIZWlnaHQ7XG4gIHJldHVybiBNYXRoLnJvdW5kKGdyaWRTY3JlZW5IZWlnaHRNaW51c0ZpcnN0IC8gKHJvd0hlaWdodCArIGd1dHRlcikpICsgMTtcbn1cblxuLyoqIFJldHVybnMgYSBEaWN0aW9uYXJ5IHdoZXJlIHRoZSBrZXkgaXMgdGhlIGlkIGFuZCB0aGUgdmFsdWUgaXMgdGhlIGNoYW5nZSBhcHBsaWVkIHRvIHRoYXQgaXRlbS4gSWYgbm8gY2hhbmdlcyBEaWN0aW9uYXJ5IGlzIGVtcHR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdldEdyaWRMYXlvdXREaWZmKFxuICBncmlkTGF5b3V0QTogR3JpZExheW91dEl0ZW1bXSxcbiAgZ3JpZExheW91dEI6IEdyaWRMYXlvdXRJdGVtW10sXG4pOiBEaWN0aW9uYXJ5PHsgY2hhbmdlOiAnbW92ZScgfCAncmVzaXplJyB8ICdtb3ZlcmVzaXplJyB9PiB7XG4gIGNvbnN0IGRpZmY6IERpY3Rpb25hcnk8eyBjaGFuZ2U6ICdtb3ZlJyB8ICdyZXNpemUnIHwgJ21vdmVyZXNpemUnIH0+ID0ge307XG5cbiAgZ3JpZExheW91dEEuZm9yRWFjaChpdGVtQSA9PiB7XG4gICAgY29uc3QgaXRlbUIgPSBncmlkTGF5b3V0Qi5maW5kKF9pdGVtQiA9PiBfaXRlbUIuaWQgPT09IGl0ZW1BLmlkKTtcbiAgICBpZiAoaXRlbUIgIT0gbnVsbCkge1xuICAgICAgY29uc3QgcG9zQ2hhbmdlZCA9IGl0ZW1BLnggIT09IGl0ZW1CLnggfHwgaXRlbUEueSAhPT0gaXRlbUIueTtcbiAgICAgIGNvbnN0IHNpemVDaGFuZ2VkID0gaXRlbUEudyAhPT0gaXRlbUIudyB8fCBpdGVtQS5oICE9PSBpdGVtQi5oO1xuICAgICAgY29uc3QgY2hhbmdlOiAnbW92ZScgfCAncmVzaXplJyB8ICdtb3ZlcmVzaXplJyB8IG51bGwgPVxuICAgICAgICBwb3NDaGFuZ2VkICYmIHNpemVDaGFuZ2VkXG4gICAgICAgICAgPyAnbW92ZXJlc2l6ZSdcbiAgICAgICAgICA6IHBvc0NoYW5nZWRcbiAgICAgICAgICA/ICdtb3ZlJ1xuICAgICAgICAgIDogc2l6ZUNoYW5nZWRcbiAgICAgICAgICA/ICdyZXNpemUnXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICBkaWZmW2l0ZW1CLmlkXSA9IHsgY2hhbmdlIH07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGRpZmY7XG59XG5cbi8vIGdldCB0aGUgb24tZmxpZ2h0IGRyYWdnaW5nIGl0ZW0gcG9zaXRpb24gYW5kIGl0cyBsYXN0IHBvc2l0aW9uKHVzZWQgZm9yIHBsYWNlaG9sZGVyKVxuZXhwb3J0IGZ1bmN0aW9uIGdyaWRJdGVtRHJhZ2dpbmcoXG4gIGdyaWRJdGVtOiBHcmlkSXRlbUNvbXBvbmVudCxcbiAgY29uZmlnOiBHcmlkQ2ZnLFxuICBjb21wYWN0VHlwZTogQ29tcGFjdFR5cGUsXG4gIGRyYWdnaW5nRGF0YTogR3JpZEl0ZW1EcmFnZ2luZ0luZm8sXG4pOiB7IGxheW91dDogR3JpZExheW91dEl0ZW1bXTsgZHJhZ2dlZEl0ZW1Qb3M6IEdyaWRJdGVtQ2xpZW50UmVjdCB9IHtcbiAgY29uc3Qge1xuICAgIHBvaW50ZXJEb3duRXZlbnQsXG4gICAgcG9pbnRlckRyYWdFdmVudCxcbiAgICBncmlkRWxlbUNsaWVudFJlY3QsXG4gICAgZHJhZ0VsZW1DbGllbnRSZWN0LFxuICAgIHNjcm9sbERpZmZlcmVuY2UsXG4gIH0gPSBkcmFnZ2luZ0RhdGE7XG5cbiAgY29uc3QgZ3JpZEl0ZW1JZCA9IGdyaWRJdGVtLmlkO1xuICBjb25zdCBkcmFnZ2luZ0VsZW1QcmV2SXRlbSA9IGNvbmZpZy5sYXlvdXQuZmluZChcbiAgICBpdGVtID0+IGl0ZW0uaWQgPT09IGdyaWRJdGVtSWQsXG4gICkhO1xuXG4gIGNvbnN0IGNsaWVudFN0YXJ0WCA9IGdldFBvaW50ZXJQYWdlWChwb2ludGVyRG93bkV2ZW50KTtcbiAgY29uc3QgY2xpZW50U3RhcnRZID0gZ2V0UG9pbnRlclBhZ2VZKHBvaW50ZXJEb3duRXZlbnQpO1xuICBjb25zdCBjbGllbnRYID0gZ2V0UG9pbnRlclBhZ2VYKHBvaW50ZXJEcmFnRXZlbnQpO1xuICBjb25zdCBjbGllbnRZID0gZ2V0UG9pbnRlclBhZ2VZKHBvaW50ZXJEcmFnRXZlbnQpO1xuXG4gIGNvbnN0IG9mZnNldFggPSBjbGllbnRTdGFydFggLSBkcmFnRWxlbUNsaWVudFJlY3QubGVmdDtcbiAgY29uc3Qgb2Zmc2V0WSA9IGNsaWVudFN0YXJ0WSAtIGRyYWdFbGVtQ2xpZW50UmVjdC50b3A7XG5cbiAgLy8gR3JpZCBlbGVtZW50IHBvc2l0aW9ucyB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBwb3NzaWJsZSBzY3JvbGwgdG90YWwgZGlmZmVyZW5jZSBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gIGNvbnN0IGdyaWRFbGVtZW50TGVmdFBvc2l0aW9uID1cbiAgICBncmlkRWxlbUNsaWVudFJlY3QubGVmdCArIHNjcm9sbERpZmZlcmVuY2UubGVmdDtcbiAgY29uc3QgZ3JpZEVsZW1lbnRUb3BQb3NpdGlvbiA9IGdyaWRFbGVtQ2xpZW50UmVjdC50b3AgKyBzY3JvbGxEaWZmZXJlbmNlLnRvcDtcbiAgLy8gQ2FsY3VsYXRlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBncmlkIGVsZW1lbnQuXG4gIGNvbnN0IGdyaWRSZWxYUG9zID0gY2xpZW50WCAtIGdyaWRFbGVtZW50TGVmdFBvc2l0aW9uIC0gb2Zmc2V0WDtcblxuICBjb25zdCBncmlkUmVsWVBvcyA9IGNsaWVudFkgLSBncmlkRWxlbWVudFRvcFBvc2l0aW9uIC0gb2Zmc2V0WTtcblxuICAvLyBHZXQgbGF5b3V0IGl0ZW0gcG9zaXRpb25cbiAgY29uc3QgbGF5b3V0SXRlbTogR3JpZExheW91dEl0ZW0gPSB7XG4gICAgLi4uZHJhZ2dpbmdFbGVtUHJldkl0ZW0sXG4gICAgeDogc2NyZWVuWFRvR3JpZFgoXG4gICAgICBncmlkUmVsWFBvcyxcbiAgICAgIGNvbmZpZy5jb2xzLFxuICAgICAgZ3JpZEVsZW1DbGllbnRSZWN0LndpZHRoLFxuICAgICAgY29uZmlnLmd1dHRlcixcbiAgICApLFxuICAgIHk6IHNjcmVlbllUb0dyaWRZKGdyaWRSZWxZUG9zLCBjb25maWcucm93SGVpZ2h0LCBjb25maWcuZ3V0dGVyKSxcbiAgfTtcblxuICAvLyBjb3JyZWN0IHRoZSB2YWx1ZXMgaWYgdGhleSBvdmVyZmxvd1xuICBsYXlvdXRJdGVtLnggPSBNYXRoLm1heCgwLCBsYXlvdXRJdGVtLngpO1xuICBsYXlvdXRJdGVtLnkgPSBNYXRoLm1heCgwLCBsYXlvdXRJdGVtLnkpO1xuXG4gIGlmIChsYXlvdXRJdGVtLnggKyBsYXlvdXRJdGVtLncgPiBjb25maWcuY29scykge1xuICAgIGxheW91dEl0ZW0ueCA9IE1hdGgubWF4KDAsIGNvbmZpZy5jb2xzIC0gbGF5b3V0SXRlbS53KTtcbiAgfVxuXG4gIC8vIFBhcnNlIHRvIExheW91dEl0ZW0gYXJyYXkgZGF0YSBpbiBvcmRlciB0byB1c2UgJ3JlYWN0LmdyaWQtbGF5b3V0JyB1dGlsc1xuICBjb25zdCBsYXlvdXRJdGVtczogTGF5b3V0SXRlbVtdID0gY29uZmlnLmxheW91dDtcbiAgY29uc3QgZHJhZ2dlZExheW91dEl0ZW06IExheW91dEl0ZW0gPSBsYXlvdXRJdGVtcy5maW5kKFxuICAgIGl0ZW0gPT4gaXRlbS5pZCA9PT0gZ3JpZEl0ZW1JZCxcbiAgKSE7XG5cbiAgbGV0IG5ld0xheW91dEl0ZW1zOiBMYXlvdXRJdGVtW10gPSBtb3ZlRWxlbWVudChcbiAgICBsYXlvdXRJdGVtcyxcbiAgICBkcmFnZ2VkTGF5b3V0SXRlbSxcbiAgICBsYXlvdXRJdGVtLngsXG4gICAgbGF5b3V0SXRlbS55LFxuICAgIHRydWUsXG4gICAgY29uZmlnLnByZXZlbnRDb2xsaXNpb24sXG4gICAgY29tcGFjdFR5cGUsXG4gICAgY29uZmlnLmNvbHMsXG4gICk7XG5cbiAgbmV3TGF5b3V0SXRlbXMgPSBjb21wYWN0KG5ld0xheW91dEl0ZW1zLCBjb21wYWN0VHlwZSwgY29uZmlnLmNvbHMpO1xuICBjb25zdCBkcmFnSXRlbSA9IHtcbiAgICAuLi5kcmFnZ2luZ0VsZW1QcmV2SXRlbSxcbiAgICAvLyBpdGVtcyBsYXlvdXQgYm91bmRhcnkgd2lsbCBjaGFuZ2VkIGJ5IGNvbXBhY3RUeXBlLCB3aGVuIHZlcnRpY2FsLHdlIGNhbiBsZXQgYm90dG9tIGdyb3cuIHdoZW4gaG9yaXpvbnRhbCx3ZSBsZXQgcmlnaHQgYW5kIGJvdHRvbSBncm93LlxuICAgIC8vIHNvLCBsZWZ0IGFuZCB0b3Agd2lsbCBhbHdheXMgYm91bmQgdG8gMC5cbiAgICB0b3A6IGNsYW1wU2l6ZShncmlkUmVsWVBvcywgMCwgSW5maW5pdHkpLFxuICAgIGxlZnQ6IGNsYW1wU2l6ZShcbiAgICAgIGdyaWRSZWxYUG9zLFxuICAgICAgMCxcbiAgICAgIGNvbXBhY3RUeXBlID09PSBHcmlkQ29tcGFjdFR5cGUuVkVSVElDQUxcbiAgICAgICAgPyBncmlkRWxlbUNsaWVudFJlY3Qud2lkdGggLSBkcmFnRWxlbUNsaWVudFJlY3Qud2lkdGhcbiAgICAgICAgOiBJbmZpbml0eSxcbiAgICApLFxuICB9O1xuICByZXR1cm4ge1xuICAgIGxheW91dDogbmV3TGF5b3V0SXRlbXMsXG4gICAgZHJhZ2dlZEl0ZW1Qb3M6IGRyYWdJdGVtLFxuICB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGdyaWRJdGVtUmVzaXppbmcoXG4gIGdyaWRJdGVtOiBHcmlkSXRlbUNvbXBvbmVudCxcbiAgY29uZmlnOiBHcmlkQ2ZnLFxuICBjb21wYWN0VHlwZTogQ29tcGFjdFR5cGUsXG4gIGRyYWdnaW5nRGF0YTogR3JpZEl0ZW1EcmFnZ2luZ0luZm8sXG4pOiB7IGxheW91dDogR3JpZExheW91dEl0ZW1bXTsgZHJhZ2dlZEl0ZW1Qb3M6IEdyaWRJdGVtQ2xpZW50UmVjdCB9IHtcbiAgY29uc3Qge1xuICAgIHBvaW50ZXJEb3duRXZlbnQsXG4gICAgcG9pbnRlckRyYWdFdmVudCxcbiAgICBncmlkRWxlbUNsaWVudFJlY3QsXG4gICAgZHJhZ0VsZW1DbGllbnRSZWN0LFxuICAgIHNjcm9sbERpZmZlcmVuY2UsXG4gIH0gPSBkcmFnZ2luZ0RhdGE7XG4gIGNvbnN0IGdyaWRJdGVtSWQgPSBncmlkSXRlbS5pZDtcblxuICAvLyB1c2UgcGFnZSBvZmZzZXQgdG8gYXZvaWQgc2Nyb2xsaW5nIG9mZnNldCBjYXVzZWQgYnkgcGFnZSBzaHJpbmtcbiAgY29uc3QgY2xpZW50U3RhcnRYID0gZ2V0UG9pbnRlclBhZ2VYKHBvaW50ZXJEb3duRXZlbnQpO1xuICBjb25zdCBjbGllbnRTdGFydFkgPSBnZXRQb2ludGVyUGFnZVkocG9pbnRlckRvd25FdmVudCk7XG4gIGNvbnN0IGNsaWVudFggPSBnZXRQb2ludGVyUGFnZVgocG9pbnRlckRyYWdFdmVudCk7XG4gIGNvbnN0IGNsaWVudFkgPSBnZXRQb2ludGVyUGFnZVkocG9pbnRlckRyYWdFdmVudCk7XG5cbiAgLy8gZ2V0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIG1vdXNlRG93biBhbmQgb24tZmxpZ2h0IG1vdXNlRHJhZ2dpbmcuXG4gIGNvbnN0IHJlc2l6ZUVsZW1PZmZzZXRYID0gY2xpZW50WCAtIGNsaWVudFN0YXJ0WDtcbiAgY29uc3QgcmVzaXplRWxlbU9mZnNldFkgPSBjbGllbnRZIC0gY2xpZW50U3RhcnRZO1xuICBjb25zdCBkcmFnZ2luZ0VsZW1QcmV2SXRlbSA9IGNvbmZpZy5sYXlvdXQuZmluZChcbiAgICBpdGVtID0+IGl0ZW0uaWQgPT09IGdyaWRJdGVtSWQsXG4gICkhO1xuICBjb25zdCB3aWR0aCA9XG4gICAgZHJhZ0VsZW1DbGllbnRSZWN0LndpZHRoICsgcmVzaXplRWxlbU9mZnNldFggLSBzY3JvbGxEaWZmZXJlbmNlLmxlZnQ7XG4gIGNvbnN0IGhlaWdodCA9XG4gICAgZHJhZ0VsZW1DbGllbnRSZWN0LmhlaWdodCArIHJlc2l6ZUVsZW1PZmZzZXRZIC0gc2Nyb2xsRGlmZmVyZW5jZS50b3A7XG5cbiAgLy8gR2V0IGxheW91dCBpdGVtIGdyaWQgcG9zaXRpb25cbiAgY29uc3QgbGF5b3V0SXRlbTogR3JpZExheW91dEl0ZW0gPSB7XG4gICAgLi4uZHJhZ2dpbmdFbGVtUHJldkl0ZW0sXG4gICAgdzogc2NyZWVuV2lkdGhUb0dyaWRXaWR0aChcbiAgICAgIHdpZHRoLFxuICAgICAgY29uZmlnLmNvbHMsXG4gICAgICBncmlkRWxlbUNsaWVudFJlY3Qud2lkdGgsXG4gICAgICBjb25maWcuZ3V0dGVyLFxuICAgICksXG4gICAgaDogc2NyZWVuSGVpZ2h0VG9HcmlkSGVpZ2h0KGhlaWdodCwgY29uZmlnLnJvd0hlaWdodCwgY29uZmlnLmd1dHRlciksXG4gIH07XG5cbiAgbGF5b3V0SXRlbS53ID0gY2xhbXBTaXplKFxuICAgIGxheW91dEl0ZW0udyxcbiAgICBncmlkSXRlbS5taW5XID8/IGxheW91dEl0ZW0ubWluVyxcbiAgICBncmlkSXRlbS5tYXhXID8/IGxheW91dEl0ZW0ubWF4VyxcbiAgKTtcbiAgbGF5b3V0SXRlbS5oID0gY2xhbXBTaXplKFxuICAgIGxheW91dEl0ZW0uaCxcbiAgICBncmlkSXRlbS5taW5IID8/IGxheW91dEl0ZW0ubWluSCxcbiAgICBncmlkSXRlbS5tYXhIID8/IGxheW91dEl0ZW0ubWF4SCxcbiAgKTtcbiAgaWYgKGxheW91dEl0ZW0ueCArIGxheW91dEl0ZW0udyA+IGNvbmZpZy5jb2xzKSB7XG4gICAgbGF5b3V0SXRlbS53ID0gTWF0aC5tYXgoMSwgY29uZmlnLmNvbHMgLSBsYXlvdXRJdGVtLngpO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5wcmV2ZW50Q29sbGlzaW9uKSB7XG4gICAgY29uc3QgbWF4VyA9IGxheW91dEl0ZW0udztcbiAgICBjb25zdCBtYXhIID0gbGF5b3V0SXRlbS5oO1xuXG4gICAgbGV0IGNvbGxpZGluZyA9IGhhc0NvbGxpc2lvbihjb25maWcubGF5b3V0LCBsYXlvdXRJdGVtKTtcbiAgICBsZXQgc2hydW5rRGltZW5zaW9uOiBHcmlkSXRlbURpbWVuc2lvbjtcblxuICAgIHdoaWxlIChjb2xsaWRpbmcpIHtcbiAgICAgIHNocnVua0RpbWVuc2lvbiA9IGdldFNocmlua0RpbWVuc2lvbihsYXlvdXRJdGVtLCBzaHJ1bmtEaW1lbnNpb24pO1xuICAgICAgbGF5b3V0SXRlbVtzaHJ1bmtEaW1lbnNpb25dLS07XG4gICAgICBjb2xsaWRpbmcgPSBoYXNDb2xsaXNpb24oY29uZmlnLmxheW91dCwgbGF5b3V0SXRlbSk7XG4gICAgfVxuXG4gICAgaWYgKHNocnVua0RpbWVuc2lvbiA9PT0gJ3cnKSB7XG4gICAgICBsYXlvdXRJdGVtLmggPSBtYXhIO1xuXG4gICAgICBjb2xsaWRpbmcgPSBoYXNDb2xsaXNpb24oY29uZmlnLmxheW91dCwgbGF5b3V0SXRlbSk7XG4gICAgICB3aGlsZSAoY29sbGlkaW5nKSB7XG4gICAgICAgIGxheW91dEl0ZW0uaC0tO1xuICAgICAgICBjb2xsaWRpbmcgPSBoYXNDb2xsaXNpb24oY29uZmlnLmxheW91dCwgbGF5b3V0SXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzaHJ1bmtEaW1lbnNpb24gPT09ICdoJykge1xuICAgICAgbGF5b3V0SXRlbS53ID0gbWF4VztcblxuICAgICAgY29sbGlkaW5nID0gaGFzQ29sbGlzaW9uKGNvbmZpZy5sYXlvdXQsIGxheW91dEl0ZW0pO1xuICAgICAgd2hpbGUgKGNvbGxpZGluZykge1xuICAgICAgICBsYXlvdXRJdGVtLnctLTtcbiAgICAgICAgY29sbGlkaW5nID0gaGFzQ29sbGlzaW9uKGNvbmZpZy5sYXlvdXQsIGxheW91dEl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdCBuZXdMYXlvdXRJdGVtczogTGF5b3V0SXRlbVtdID0gY29uZmlnLmxheW91dC5tYXAoaXRlbSA9PlxuICAgIGl0ZW0uaWQgPT09IGdyaWRJdGVtSWQgPyBsYXlvdXRJdGVtIDogaXRlbSxcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICBsYXlvdXQ6IGNvbXBhY3QobmV3TGF5b3V0SXRlbXMsIGNvbXBhY3RUeXBlLCBjb25maWcuY29scyksXG4gICAgZHJhZ2dlZEl0ZW1Qb3M6IHtcbiAgICAgIHRvcDogZHJhZ0VsZW1DbGllbnRSZWN0LnRvcCAtIGdyaWRFbGVtQ2xpZW50UmVjdC50b3AsXG4gICAgICBsZWZ0OiBkcmFnRWxlbUNsaWVudFJlY3QubGVmdCAtIGdyaWRFbGVtQ2xpZW50UmVjdC5sZWZ0LFxuICAgICAgLy8gd2hlbiB2ZXJ0aWNhbCwgbWFrZSBzdXJlIHJlc2l6aW5nIG5vdCBvdmVyZmxvdyByaWdodCBib3VuZGFyeVxuICAgICAgd2lkdGg6IGNsYW1wU2l6ZShcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIDAsXG4gICAgICAgIGNvbXBhY3RUeXBlID09PSBHcmlkQ29tcGFjdFR5cGUuVkVSVElDQUxcbiAgICAgICAgICA/IChncmlkRWxlbUNsaWVudFJlY3Qud2lkdGggKiAoY29uZmlnLmNvbHMgLSBsYXlvdXRJdGVtLngpKSAvXG4gICAgICAgICAgICAgIGNvbmZpZy5jb2xzXG4gICAgICAgICAgOiBJbmZpbml0eSxcbiAgICAgICksXG4gICAgICBoZWlnaHQsXG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFzQ29sbGlzaW9uKGxheW91dDogTGF5b3V0LCBsYXlvdXRJdGVtOiBMYXlvdXRJdGVtKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIWdldEZpcnN0Q29sbGlzaW9uKGxheW91dCwgbGF5b3V0SXRlbSk7XG59XG5cbmZ1bmN0aW9uIGdldFNocmlua0RpbWVuc2lvbihcbiAgbGF5b3V0SXRlbTogR3JpZExheW91dEl0ZW0sXG4gIGxhc3RTaHJ1bms6IEdyaWRJdGVtRGltZW5zaW9uLFxuKTogR3JpZEl0ZW1EaW1lbnNpb24ge1xuICBpZiAobGF5b3V0SXRlbS5oIDw9IDEpIHtcbiAgICByZXR1cm4gJ3cnO1xuICB9XG4gIGlmIChsYXlvdXRJdGVtLncgPD0gMSkge1xuICAgIHJldHVybiAnaCc7XG4gIH1cblxuICByZXR1cm4gbGFzdFNocnVuayA9PT0gJ3cnID8gJ2gnIDogJ3cnO1xufVxuXG4vKiogUmV0dXJucyB0cnVlIGlmIGJvdGggaXRlbTEgYW5kIGl0ZW0yIEdyaWRMYXlvdXRJdGVtcyBhcmUgZXF1aXZhbGVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0dyaWRJdGVtTGF5b3V0SXRlbUVxdWFsKFxuICBpdGVtMTogR3JpZExheW91dEl0ZW0sXG4gIGl0ZW0yOiBHcmlkTGF5b3V0SXRlbSxcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGl0ZW0xLmlkID09PSBpdGVtMi5pZCAmJlxuICAgIGl0ZW0xLnggPT09IGl0ZW0yLnggJiZcbiAgICBpdGVtMS55ID09PSBpdGVtMi55ICYmXG4gICAgaXRlbTEudyA9PT0gaXRlbTIudyAmJlxuICAgIGl0ZW0xLmggPT09IGl0ZW0yLmhcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdyaWRIZWlnaHQoXG4gIGxheW91dDogR3JpZExheW91dCxcbiAgcm93SGVpZ2h0OiBudW1iZXIsXG4gIGd1dHRlcjogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIGxheW91dC5yZWR1Y2UoXG4gICAgKGFjYywgY3VyKSA9PlxuICAgICAgTWF0aC5tYXgoXG4gICAgICAgIGFjYyxcbiAgICAgICAgKGN1ci55ICsgY3VyLmgpICogcm93SGVpZ2h0ICsgTWF0aC5tYXgoY3VyLnkgKyBjdXIuaCAtIDEsIDApICogZ3V0dGVyLFxuICAgICAgKSxcbiAgICAwLFxuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERyYWdSZXNpemVFdmVudERhdGEoXG4gIGdyaWRJdGVtOiBHcmlkSXRlbUNvbXBvbmVudCxcbiAgbGF5b3V0OiBHcmlkTGF5b3V0LFxuKTogRHJhZ1Jlc2l6ZUV2ZW50IHtcbiAgcmV0dXJuIHtcbiAgICBsYXlvdXQsXG4gICAgbGF5b3V0SXRlbTogbGF5b3V0LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBncmlkSXRlbS5pZCkhLFxuICAgIGdyaWRJdGVtUmVmOiBncmlkSXRlbSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxheW91dFRvUmVuZGVySXRlbXMoXG4gIGNvbmZpZzogR3JpZENmZyxcbiAgd2lkdGg6IG51bWJlcixcbiAgbGF5b3V0PzogR3JpZExheW91dCxcbik6IERpY3Rpb25hcnk8R3JpZEl0ZW1SZW5kZXJEYXRhPiB7XG4gIGNvbnN0IHsgY29scywgcm93SGVpZ2h0LCBsYXlvdXQ6IHJhd0xheW91dCwgZ3V0dGVyIH0gPSBjb25maWc7XG4gIGNvbnN0IHdpZHRoV2l0aG91dEd1dHRlciA9IHdpZHRoIC0gTWF0aC5tYXgoZ3V0dGVyICogKGNvbHMgLSAxKSwgMCk7XG4gIGNvbnN0IGl0ZW1XaWR0aFBlckNvbHVtbiA9IHdpZHRoV2l0aG91dEd1dHRlciAvIGNvbHM7XG4gIGNvbnN0IHJlbmRlckl0ZW1zOiBEaWN0aW9uYXJ5PEdyaWRJdGVtUmVuZGVyRGF0YT4gPSB7fTtcblxuICBmb3IgKGNvbnN0IGl0ZW0gb2YgbGF5b3V0ID8/IHJhd0xheW91dCkge1xuICAgIHJlbmRlckl0ZW1zW2l0ZW0uaWRdID0ge1xuICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICB0b3A6IGl0ZW0ueSAqIHJvd0hlaWdodCArIGd1dHRlciAqIGl0ZW0ueSxcbiAgICAgIGxlZnQ6IGl0ZW0ueCAqIGl0ZW1XaWR0aFBlckNvbHVtbiArIGd1dHRlciAqIGl0ZW0ueCxcbiAgICAgIHdpZHRoOiBpdGVtLncgKiBpdGVtV2lkdGhQZXJDb2x1bW4gKyBndXR0ZXIgKiBNYXRoLm1heChpdGVtLncgLSAxLCAwKSxcbiAgICAgIGhlaWdodDogaXRlbS5oICogcm93SGVpZ2h0ICsgZ3V0dGVyICogTWF0aC5tYXgoaXRlbS5oIC0gMSwgMCksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gcmVuZGVySXRlbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlbmRlckl0ZW1Ub1BpeGVscyhcbiAgcmVuZGVySXRlbTogR3JpZEl0ZW1SZW5kZXJEYXRhLFxuKTogR3JpZEl0ZW1SZW5kZXJEYXRhPHN0cmluZz4ge1xuICByZXR1cm4ge1xuICAgIGlkOiByZW5kZXJJdGVtLmlkLFxuICAgIHRvcDogYCR7cmVuZGVySXRlbS50b3B9cHhgLFxuICAgIGxlZnQ6IGAke3JlbmRlckl0ZW0ubGVmdH1weGAsXG4gICAgd2lkdGg6IGAke3JlbmRlckl0ZW0ud2lkdGh9cHhgLFxuICAgIGhlaWdodDogYCR7cmVuZGVySXRlbS5oZWlnaHR9cHhgLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29ycmVjdExheW91dChsYXlvdXQ6IEdyaWRMYXlvdXQsIGNvbHMgPSAxMikge1xuICByZXR1cm4gY29tcGFjdEdyaWRMYXlvdXQobGF5b3V0LCAndmVydGljYWwnLCBjb2xzKTtcbn1cbiJdfQ==
|
|
@@ -468,4 +468,4 @@ function log(...args) {
|
|
|
468
468
|
// eslint-disable-next-line no-console
|
|
469
469
|
console.log(...args);
|
|
470
470
|
}
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QtZ3JpZC1sYXlvdXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvdXRpbHMvcmVhY3QtZ3JpZC1sYXlvdXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELGdEQUFnRDtBQTBGaEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBRXBCOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFjO0lBQ25DLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLElBQUksT0FBTyxDQUFDO0lBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNqRCxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNqQixHQUFHLEdBQUcsT0FBTyxDQUFDO1NBQ2Y7S0FDRjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYztJQUN4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBVyxDQUFDO0lBQ2xFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDakQsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMs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LENBQUMsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29uYXIvbm8tcmVkdW5kYW50LW9wdGlvbmFsICovXG4vKiBlc2xpbnQtZGlzYWJsZSBzb25hcmpzL25vLWR1cGxpY2F0ZS1zdHJpbmcgKi9cblxuLyogZXNsaW50LWRpc2FibGUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgc29uYXJqcy9wcmVmZXItc2luZ2xlLWJvb2xlYW4tcmV0dXJuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwgKi9cblxuLy8gVGhlc2UgdXRpbHMgZm9yayBmcm9tIDogaHR0cHM6Ly9naXRodWIuY29tL1NUUk1ML3JlYWN0LWdyaWQtbGF5b3V0LlxuLy8gTk9URTogLS0tLS0tLT4gRG8gbm90IG1vZGlmeSB0aGlzIGZpbGUgZm9yIGVhc3kgbWFpbnRlbmFuY2UgISEhIDwtLS0tLS0tXG4vLyBXZSBvbmx5IGFkZCBlc2xpbnQtZGlzYWJsZS90cy1pZ25vcmUgdG8gaWdub3JlIHVubmVjZXNzYXJ5IGNoYW5nZXNcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRJdGVtIHtcbiAgdzogbnVtYmVyO1xuICBoOiBudW1iZXI7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBpZDogc3RyaW5nO1xuICBtaW5XPzogbnVtYmVyO1xuICBtaW5IPzogbnVtYmVyO1xuICBtYXhXPzogbnVtYmVyO1xuICBtYXhIPzogbnVtYmVyO1xuICBtb3ZlZD86IGJvb2xlYW47XG4gIHN0YXRpYz86IGJvb2xlYW47XG4gIGlzRHJhZ2dhYmxlPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGlzUmVzaXphYmxlPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgdHlwZSBMYXlvdXQgPSBMYXlvdXRJdGVtW107XG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgbGVmdDogbnVtYmVyO1xuICB0b3A6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0RHJhZ2dhYmxlQ2FsbGJhY2tEYXRhIHtcbiAgbm9kZTogSFRNTEVsZW1lbnQ7XG4gIHg/OiBudW1iZXI7XG4gIHk/OiBudW1iZXI7XG4gIGRlbHRhWDogbnVtYmVyO1xuICBkZWx0YVk6IG51bWJlcjtcbiAgbGFzdFg/OiBudW1iZXI7XG4gIGxhc3RZPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxQb3NpdGlvbiB7XG4gIGxlZnQ6IG51bWJlcjtcbiAgdG9wOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyb3BwaW5nUG9zaXRpb24ge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgZTogRXZlbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpemUge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZERyYWdFdmVudCB7XG4gIGU6IEV2ZW50O1xuICBub2RlOiBIVE1MRWxlbWVudDtcbiAgbmV3UG9zaXRpb246IFBhcnRpYWxQb3NpdGlvbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFJlc2l6ZUV2ZW50IHtcbiAgZTogRXZlbnQ7XG4gIG5vZGU6IEhUTUxFbGVtZW50O1xuICBzaXplOiBTaXplO1xufVxuZXhwb3J0IHR5cGUgRHJhZ092ZXJFdmVudCA9IE1vdXNlRXZlbnQgJiB7XG4gIG5hdGl2ZUV2ZW50OiB7XG4gICAgbGF5ZXJYOiBudW1iZXI7XG4gICAgbGF5ZXJZOiBudW1iZXI7XG4gICAgdGFyZ2V0OiB7XG4gICAgICBjbGFzc05hbWU6IFN0cmluZztcbiAgICB9O1xuICB9O1xufTtcblxuLy8gdHlwZSBSRWwgPSBSZWFjdEVsZW1lbnQ8YW55Pjtcbi8vIGV4cG9ydCB0eXBlIFJlYWN0Q2hpbGRyZW4gPSBSZWFjdENoaWxkcmVuQXJyYXk8UkVsPjtcblxuLy8gQWxsIGNhbGxiYWNrcyBhcmUgb2YgdGhlIHNpZ25hdHVyZSAobGF5b3V0LCBvbGRJdGVtLCBuZXdJdGVtLCBwbGFjZWhvbGRlciwgZSkuXG5leHBvcnQgdHlwZSBFdmVudENhbGxiYWNrID0gKFxuICBhcmcwOiBMYXlvdXQsXG4gIG9sZEl0ZW06IExheW91dEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBuZXdJdGVtOiBMYXlvdXRJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgcGxhY2Vob2xkZXI6IExheW91dEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBhcmc0OiBFdmVudCxcbiAgYXJnNTogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkLFxuKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgQ29tcGFjdFR5cGUgPSAoJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJykgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBERUJVRyA9IGZhbHNlO1xuXG4vKipcbiAqIFJldHVybiB0aGUgYm90dG9tIGNvb3JkaW5hdGUgb2YgdGhlIGxheW91dC5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gbGF5b3V0IExheW91dCBhcnJheS5cbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgQm90dG9tIGNvb3JkaW5hdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib3R0b20obGF5b3V0OiBMYXlvdXQpOiBudW1iZXIge1xuICBsZXQgbWF4ID0gMDtcbiAgbGV0IGJvdHRvbVk7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsYXlvdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBib3R0b21ZID0gbGF5b3V0W2ldLnkgKyBsYXlvdXRbaV0uaDtcbiAgICBpZiAoYm90dG9tWSA+IG1heCkge1xuICAgICAgbWF4ID0gYm90dG9tWTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1heDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lTGF5b3V0KGxheW91dDogTGF5b3V0KTogTGF5b3V0IHtcbiAgY29uc3QgbmV3TGF5b3V0ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogbGF5b3V0Lmxlbmd0aCB9KSBhcyBMYXlvdXQ7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsYXlvdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuZXdMYXlvdXRbaV0gPSBjbG9uZUxheW91dEl0ZW0obGF5b3V0W2ldKTtcbiAgfVxuICByZXR1cm4gbmV3TGF5b3V0O1xufVxuXG4vLyBGYXN0IHBhdGggdG8gY2xvbmluZywgc2luY2UgdGhpcyBpcyBtb25vbW9ycGhpY1xuLyoqIE5PVEU6IFRoaXMgY29kZSBoYXMgYmVlbiBtb2RpZmllZCBmcm9tIHRoZSBvcmlnaW5hbCBzb3VyY2UgKi9cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZUxheW91dEl0ZW0obGF5b3V0SXRlbTogTGF5b3V0SXRlbSk6IExheW91dEl0ZW0ge1xuICBjb25zdCBjbG9uZWRMYXlvdXRJdGVtOiBMYXlvdXRJdGVtID0ge1xuICAgIHc6IGxheW91dEl0ZW0udyxcbiAgICBoOiBsYXlvdXRJdGVtLmgsXG4gICAgeDogbGF5b3V0SXRlbS54LFxuICAgIHk6IGxheW91dEl0ZW0ueSxcbiAgICBpZDogbGF5b3V0SXRlbS5pZCxcbiAgICBtb3ZlZDogISFsYXlvdXRJdGVtLm1vdmVkLFxuICAgIHN0YXRpYzogISFsYXlvdXRJdGVtLnN0YXRpYyxcbiAgfTtcblxuICBpZiAobGF5b3V0SXRlbS5taW5XICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbG9uZWRMYXlvdXRJdGVtLm1pblcgPSBsYXlvdXRJdGVtLm1pblc7XG4gIH1cbiAgaWYgKGxheW91dEl0ZW0ubWF4VyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xvbmVkTGF5b3V0SXRlbS5tYXhXID0gbGF5b3V0SXRlbS5tYXhXO1xuICB9XG4gIGlmIChsYXlvdXRJdGVtLm1pbkggIT09IHVuZGVmaW5lZCkge1xuICAgIGNsb25lZExheW91dEl0ZW0ubWluSCA9IGxheW91dEl0ZW0ubWluSDtcbiAgfVxuICBpZiAobGF5b3V0SXRlbS5tYXhIICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbG9uZWRMYXlvdXRJdGVtLm1heEggPSBsYXlvdXRJdGVtLm1heEg7XG4gIH1cbiAgLy8gVGhlc2UgY2FuIGJlIG51bGxcbiAgaWYgKGxheW91dEl0ZW0uaXNEcmFnZ2FibGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsb25lZExheW91dEl0ZW0uaXNEcmFnZ2FibGUgPSBsYXlvdXRJdGVtLmlzRHJhZ2dhYmxlO1xuICB9XG4gIGlmIChsYXlvdXRJdGVtLmlzUmVzaXphYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbG9uZWRMYXlvdXRJdGVtLmlzUmVzaXphYmxlID0gbGF5b3V0SXRlbS5pc1Jlc2l6YWJsZTtcbiAgfVxuXG4gIHJldHVybiBjbG9uZWRMYXlvdXRJdGVtO1xufVxuXG4vKipcbiAqIEdpdmVuIHR3byBsYXlvdXQgaXRlbXMsIGNoZWNrIGlmIHRoZXkgY29sbGlkZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxpZGVzKGwxOiBMYXlvdXRJdGVtLCBsMjogTGF5b3V0SXRlbSk6IGJvb2xlYW4ge1xuICBpZiAobDEuaWQgPT09IGwyLmlkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIHNhbWUgZWxlbWVudFxuICBpZiAobDEueCArIGwxLncgPD0gbDIueCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBsMSBpcyBsZWZ0IG9mIGwyXG4gIGlmIChsMS54ID49IGwyLnggKyBsMi53KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIGwxIGlzIHJpZ2h0IG9mIGwyXG4gIGlmIChsMS55ICsgbDEuaCA8PSBsMi55KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIGwxIGlzIGFib3ZlIGwyXG4gIGlmIChsMS55ID49IGwyLnkgKyBsMi5oKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIGwxIGlzIGJlbG93IGwyXG4gIHJldHVybiB0cnVlOyAvLyBib3hlcyBvdmVybGFwXG59XG5cbi8qKlxuICogR2l2ZW4gYSBsYXlvdXQsIGNvbXBhY3QgaXQuIFRoaXMgaW52b2x2ZXMgZ29pbmcgZG93biBlYWNoIHkgY29vcmRpbmF0ZSBhbmQgcmVtb3ZpbmcgZ2Fwc1xuICogYmV0d2VlbiBpdGVtcy5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gbGF5b3V0IExheW91dC5cbiAqIEBwYXJhbSAge0Jvb2xlYW59IHZlcnRpY2FsQ29tcGFjdCBXaGV0aGVyIG9yIG5vdCB0byBjb21wYWN0IHRoZSBsYXlvdXRcbiAqICAgdmVydGljYWxseS5cbiAqIEByZXR1cm4ge0FycmF5fSAgICAgICBDb21wYWN0ZWQgTGF5b3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFjdChcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGNvbXBhY3RUeXBlOiBDb21wYWN0VHlwZSxcbiAgY29sczogbnVtYmVyLFxuKTogTGF5b3V0IHtcbiAgLy8gU3RhdGljcyBnbyBpbiB0aGUgY29tcGFyZVdpdGggYXJyYXkgcmlnaHQgYXdheSBzbyBpdGVtcyBmbG93IGFyb3VuZCB0aGVtLlxuICBjb25zdCBjb21wYXJlV2l0aCA9IGdldFN0YXRpY3MobGF5b3V0KTtcbiAgLy8gV2UgZ28gdGhyb3VnaCB0aGUgaXRlbXMgYnkgcm93IGFuZCBjb2x1bW4uXG4gIGNvbnN0IHNvcnRlZCA9IHNvcnRMYXlvdXRJdGVtcyhsYXlvdXQsIGNvbXBhY3RUeXBlKTtcbiAgLy8gSG9sZGluZyBmb3IgbmV3IGl0ZW1zLlxuICBjb25zdCBvdXQgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBsYXlvdXQubGVuZ3RoIH0pO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzb3J0ZWQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBsZXQgbCA9IGNsb25lTGF5b3V0SXRlbShzb3J0ZWRbaV0pO1xuXG4gICAgLy8gRG9uJ3QgbW92ZSBzdGF0aWMgZWxlbWVudHNcbiAgICBpZiAoIWwuc3RhdGljKSB7XG4gICAgICBsID0gY29tcGFjdEl0ZW0oY29tcGFyZVdpdGgsIGwsIGNvbXBhY3RUeXBlLCBjb2xzLCBzb3J0ZWQpO1xuXG4gICAgICAvLyBBZGQgdG8gY29tcGFyaXNvbiBhcnJheS4gV2Ugb25seSBjb2xsaWRlIHdpdGggaXRlbXMgYmVmb3JlIHRoaXMgb25lLlxuICAgICAgLy8gU3RhdGljcyBhcmUgYWxyZWFkeSBpbiB0aGlzIGFycmF5LlxuICAgICAgY29tcGFyZVdpdGgucHVzaChsKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdG8gb3V0cHV0IGFycmF5IHRvIG1ha2Ugc3VyZSB0aGV5IHN0aWxsIGNvbWUgb3V0IGluIHRoZSByaWdodCBvcmRlci5cbiAgICBvdXRbbGF5b3V0LmluZGV4T2Yoc29ydGVkW2ldKV0gPSBsO1xuXG4gICAgLy8gQ2xlYXIgbW92ZWQgZmxhZywgaWYgaXQgZXhpc3RzLlxuICAgIGwubW92ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBvdXQgYXMgTGF5b3V0O1xufVxuXG5jb25zdCBoZWlnaHRXaWR0aCA9IHsgeDogJ3cnLCB5OiAnaCcgfTtcblxuLyoqXG4gKiBCZWZvcmUgbW92aW5nIGl0ZW0gZG93biwgaXQgd2lsbCBjaGVjayBpZiB0aGUgbW92ZW1lbnQgd2lsbCBjYXVzZSBjb2xsaXNpb25zIGFuZCBtb3ZlIHRob3NlIGl0ZW1zIGRvd24gYmVmb3JlLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQ29tcGFjdGlvbkNvbGxpc2lvbihcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGl0ZW06IExheW91dEl0ZW0sXG4gIG1vdmVUb0Nvb3JkOiBudW1iZXIsXG4gIGF4aXM6ICd4JyB8ICd5Jyxcbikge1xuICBjb25zdCBzaXplUHJvcCA9IGhlaWdodFdpZHRoW2F4aXNdO1xuICBpdGVtW2F4aXNdICs9IDE7XG4gIGNvbnN0IGl0ZW1JbmRleCA9IGxheW91dC5tYXAobGF5b3V0SXRlbSA9PiBsYXlvdXRJdGVtLmlkKS5pbmRleE9mKGl0ZW0uaWQpO1xuXG4gIC8vIEdvIHRocm91Z2ggZWFjaCBpdGVtIHdlIGNvbGxpZGUgd2l0aC5cbiAgZm9yIChsZXQgaSA9IGl0ZW1JbmRleCArIDE7IGkgPCBsYXlvdXQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBvdGhlckl0ZW0gPSBsYXlvdXRbaV07XG4gICAgLy8gSWdub3JlIHN0YXRpYyBpdGVtc1xuICAgIGlmIChvdGhlckl0ZW0uc3RhdGljKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBPcHRpbWl6YXRpb246IHdlIGNhbiBicmVhayBlYXJseSBpZiB3ZSBrbm93IHdlJ3JlIHBhc3QgdGhpcyBlbFxuICAgIC8vIFdlIGNhbiBkbyB0aGlzIGIvYyBpdCdzIGEgc29ydGVkIGxheW91dFxuICAgIGlmIChvdGhlckl0ZW0ueSA+IGl0ZW0ueSArIGl0ZW0uaCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGNvbGxpZGVzKGl0ZW0sIG90aGVySXRlbSkpIHtcbiAgICAgIHJlc29sdmVDb21wYWN0aW9uQ29sbGlzaW9uKFxuICAgICAgICBsYXlvdXQsXG4gICAgICAgIG90aGVySXRlbSxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBtb3ZlVG9Db29yZCArIGl0ZW1bc2l6ZVByb3BdLFxuICAgICAgICBheGlzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpdGVtW2F4aXNdID0gbW92ZVRvQ29vcmQ7XG59XG5cbi8qKlxuICogQ29tcGFjdCBhbiBpdGVtIGluIHRoZSBsYXlvdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYWN0SXRlbShcbiAgY29tcGFyZVdpdGg6IExheW91dCxcbiAgbDogTGF5b3V0SXRlbSxcbiAgY29tcGFjdFR5cGU6IENvbXBhY3RUeXBlLFxuICBjb2xzOiBudW1iZXIsXG4gIGZ1bGxMYXlvdXQ6IExheW91dCxcbik6IExheW91dEl0ZW0ge1xuICBjb25zdCBjb21wYWN0ViA9IGNvbXBhY3RUeXBlID09PSAndmVydGljYWwnO1xuICBjb25zdCBjb21wYWN0SCA9IGNvbXBhY3RUeXBlID09PSAnaG9yaXpvbnRhbCc7XG4gIGlmIChjb21wYWN0Vikge1xuICAgIC8vIEJvdHRvbSAneScgcG9zc2libGUgaXMgdGhlIGJvdHRvbSBvZiB0aGUgbGF5b3V0LlxuICAgIC8vIFRoaXMgYWxsb3dzIHlvdSB0byBkbyBuaWNlIHN0dWZmIGxpa2Ugc3BlY2lmeSB7eTogSW5maW5pdHl9XG4gICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgdGhlIGxheW91dCBtdXN0IGJlIHNvcnRlZCBpbiBvcmRlciB0byBnZXQgdGhlIGNvcnJlY3QgYm90dG9tIGB5YC5cbiAgICBsLnkgPSBNYXRoLm1pbihib3R0b20oY29tcGFyZVdpdGgpLCBsLnkpO1xuICAgIC8vIE1vdmUgdGhlIGVsZW1lbnQgdXAgYXMgZmFyIGFzIGl0IGNhbiBnbyB3aXRob3V0IGNvbGxpZGluZy5cbiAgICB3aGlsZSAobC55ID4gMCAmJiAhZ2V0Rmlyc3RDb2xsaXNpb24oY29tcGFyZVdpdGgsIGwpKSB7XG4gICAgICBsLnktLTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29tcGFjdEgpIHtcbiAgICBsLnkgPSBNYXRoLm1pbihib3R0b20oY29tcGFyZVdpdGgpLCBsLnkpO1xuICAgIC8vIE1vdmUgdGhlIGVsZW1lbnQgbGVmdCBhcyBmYXIgYXMgaXQgY2FuIGdvIHdpdGhvdXQgY29sbGlkaW5nLlxuICAgIHdoaWxlIChsLnggPiAwICYmICFnZXRGaXJzdENvbGxpc2lvbihjb21wYXJlV2l0aCwgbCkpIHtcbiAgICAgIGwueC0tO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaXQgZG93biwgYW5kIGtlZXAgbW92aW5nIGl0IGRvd24gaWYgaXQncyBjb2xsaWRpbmcuXG4gIGxldCBjb2xsaWRlcztcbiAgd2hpbGUgKChjb2xsaWRlcyA9IGdldEZpcnN0Q29sbGlzaW9uKGNvbXBhcmVXaXRoLCBsKSkpIHtcbiAgICBpZiAoY29tcGFjdEgpIHtcbiAgICAgIHJlc29sdmVDb21wYWN0aW9uQ29sbGlzaW9uKGZ1bGxMYXlvdXQsIGwsIGNvbGxpZGVzLnggKyBjb2xsaWRlcy53LCAneCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlQ29tcGFjdGlvbkNvbGxpc2lvbihmdWxsTGF5b3V0LCBsLCBjb2xsaWRlcy55ICsgY29sbGlkZXMuaCwgJ3knKTtcbiAgICB9XG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgZ3JvdyB3aXRob3V0IGJvdW5kcyBob3Jpem9udGFsbHksIGlmIHdlJ3ZlIG92ZXJmbG93biwgbGV0J3MgbW92ZSBpdCBkb3duIGFuZCB0cnkgYWdhaW4uXG4gICAgaWYgKGNvbXBhY3RIICYmIGwueCArIGwudyA+IGNvbHMpIHtcbiAgICAgIGwueCA9IGNvbHMgLSBsLnc7XG4gICAgICBsLnkrKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGw7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBsYXlvdXQsIG1ha2Ugc3VyZSBhbGwgZWxlbWVudHMgZml0IHdpdGhpbiBpdHMgYm91bmRzLlxuICpcbiAqIEBwYXJhbSAge0FycmF5fSBsYXlvdXQgTGF5b3V0IGFycmF5LlxuICogQHBhcmFtICB7TnVtYmVyfSBib3VuZHMgTnVtYmVyIG9mIGNvbHVtbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3JyZWN0Qm91bmRzKFxuICBsYXlvdXQ6IExheW91dCxcbiAgYm91bmRzOiB7IGNvbHM6IG51bWJlciB9LFxuKTogTGF5b3V0IHtcbiAgY29uc3QgY29sbGlkZXNXaXRoID0gZ2V0U3RhdGljcyhsYXlvdXQpO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5b3V0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgbCA9IGxheW91dFtpXTtcbiAgICAvLyBPdmVyZmxvd3MgcmlnaHRcbiAgICBpZiAobC54ICsgbC53ID4gYm91bmRzLmNvbHMpIHtcbiAgICAgIGwueCA9IGJvdW5kcy5jb2xzIC0gbC53O1xuICAgIH1cbiAgICAvLyBPdmVyZmxvd3MgbGVmdFxuICAgIGlmIChsLnggPCAwKSB7XG4gICAgICBsLnggPSAwO1xuICAgICAgbC53ID0gYm91bmRzLmNvbHM7XG4gICAgfVxuICAgIGlmIChsLnN0YXRpYykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBzdGF0aWMgYW5kIGNvbGxpZGVzIHdpdGggb3RoZXIgc3RhdGljcywgd2UgbXVzdCBtb3ZlIGl0IGRvd24uXG4gICAgICAvLyBXZSBoYXZlIHRvIGRvIHNvbWV0aGluZyBuaWNlciB0aGFuIGp1c3QgbGV0dGluZyB0aGVtIG92ZXJsYXAuXG4gICAgICB3aGlsZSAoZ2V0Rmlyc3RDb2xsaXNpb24oY29sbGlkZXNXaXRoLCBsKSkge1xuICAgICAgICBsLnkrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29sbGlkZXNXaXRoLnB1c2gobCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsYXlvdXQ7XG59XG5cbi8qKlxuICogR2V0IGEgbGF5b3V0IGl0ZW0gYnkgSUQuIFVzZWQgc28gd2UgY2FuIG92ZXJyaWRlIGxhdGVyIG9uIGlmIG5lY2Vzc2FyeS5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gIGxheW91dCBMYXlvdXQgYXJyYXkuXG4gKiBAcGFyYW0gIHtTdHJpbmd9IGlkICAgICBJRFxuICogQHJldHVybiB7TGF5b3V0SXRlbX0gICAgSXRlbSBhdCBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExheW91dEl0ZW0oXG4gIGxheW91dDogTGF5b3V0LFxuICBpZDogc3RyaW5nLFxuKTogTGF5b3V0SXRlbSB8IG51bGwgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5b3V0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGxheW91dFtpXS5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiBsYXlvdXRbaV07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gdGhpcyBsYXlvdXQgY29sbGlkZXMgd2l0aC5cbiAqIEl0IGRvZXNuJ3QgYXBwZWFyIHRvIG1hdHRlciB3aGljaCBvcmRlciB3ZSBhcHByb2FjaCB0aGlzIGZyb20sIGFsdGhvdWdoXG4gKiBwZXJoYXBzIHRoYXQgaXMgdGhlIHdyb25nIHRoaW5nIHRvIGRvLlxuICpcbiAqIEBwYXJhbSAge09iamVjdH0gbGF5b3V0SXRlbSBMYXlvdXQgaXRlbS5cbiAqIEByZXR1cm4ge09iamVjdHx1bmRlZmluZWR9ICBBIGNvbGxpZGluZyBsYXlvdXQgaXRlbSwgb3IgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RDb2xsaXNpb24oXG4gIGxheW91dDogTGF5b3V0LFxuICBsYXlvdXRJdGVtOiBMYXlvdXRJdGVtLFxuKTogTGF5b3V0SXRlbSB8IG51bGwgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5b3V0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGNvbGxpZGVzKGxheW91dFtpXSwgbGF5b3V0SXRlbSkpIHtcbiAgICAgIHJldHVybiBsYXlvdXRbaV07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsQ29sbGlzaW9ucyhcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGxheW91dEl0ZW06IExheW91dEl0ZW0sXG4pOiBMYXlvdXRJdGVtW10ge1xuICByZXR1cm4gbGF5b3V0LmZpbHRlcihsID0+IGNvbGxpZGVzKGwsIGxheW91dEl0ZW0pKTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHN0YXRpYyBlbGVtZW50cy5cbiAqIEBwYXJhbSAge0FycmF5fSBsYXlvdXQgQXJyYXkgb2YgbGF5b3V0IG9iamVjdHMuXG4gKiBAcmV0dXJuIHtBcnJheX0gICAgICAgIEFycmF5IG9mIHN0YXRpYyBsYXlvdXQgaXRlbXMuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdGljcyhsYXlvdXQ6IExheW91dCk6IExheW91dEl0ZW1bXSB7XG4gIHJldHVybiBsYXlvdXQuZmlsdGVyKGwgPT4gbC5zdGF0aWMpO1xufVxuXG4vKipcbiAqIE1vdmUgYW4gZWxlbWVudC4gUmVzcG9uc2libGUgZm9yIGRvaW5nIGNhc2NhZGluZyBtb3ZlbWVudHMgb2Ygb3RoZXIgZWxlbWVudHMuXG4gKlxuICogQHBhcmFtICB7QXJyYXl9ICAgICAgbGF5b3V0ICAgICAgICAgICAgRnVsbCBsYXlvdXQgdG8gbW9kaWZ5LlxuICogQHBhcmFtICB7TGF5b3V0SXRlbX0gbCAgICAgICAgICAgICAgICAgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtICB7TnVtYmVyfSAgICAgW3hdICAgICAgICAgICAgICAgWCBwb3NpdGlvbiBpbiBncmlkIHVuaXRzLlxuICogQHBhcmFtICB7TnVtYmVyfSAgICAgW3ldICAgICAgICAgICAgICAgWSBwb3NpdGlvbiBpbiBncmlkIHVuaXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW92ZUVsZW1lbnQoXG4gIGxheW91dDogTGF5b3V0LFxuICBsOiBMYXlvdXRJdGVtLFxuICB4OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICB5OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBpc1VzZXJBY3Rpb246IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBwcmV2ZW50Q29sbGlzaW9uOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdFR5cGU6IENvbXBhY3RUeXBlLFxuICBjb2xzOiBudW1iZXIsXG4pOiBMYXlvdXQge1xuICAvLyBJZiB0aGlzIGlzIHN0YXRpYyBhbmQgbm90IGV4cGxpY2l0bHkgZW5hYmxlZCBhcyBkcmFnZ2FibGUsXG4gIC8vIG5vIG1vdmUgaXMgcG9zc2libGUsIHNvIHdlIGNhbiBzaG9ydC1jaXJjdWl0IHRoaXMgaW1tZWRpYXRlbHkuXG4gIGlmIChsLnN0YXRpYyAmJiBsLmlzRHJhZ2dhYmxlICE9PSB0cnVlKSB7XG4gICAgcmV0dXJuIGxheW91dDtcbiAgfVxuXG4gIC8vIFNob3J0LWNpcmN1aXQgaWYgbm90aGluZyB0byBkby5cbiAgaWYgKGwueSA9PT0geSAmJiBsLnggPT09IHgpIHtcbiAgICByZXR1cm4gbGF5b3V0O1xuICB9XG5cbiAgbG9nKFxuICAgIGBNb3ZpbmcgZWxlbWVudCAke2wuaWR9IHRvIFske1N0cmluZyh4KX0sJHtTdHJpbmcoeSl9XSBmcm9tIFske2wueH0sJHtcbiAgICAgIGwueVxuICAgIH1dYCxcbiAgKTtcbiAgY29uc3Qgb2xkWCA9IGwueDtcbiAgY29uc3Qgb2xkWSA9IGwueTtcblxuICAvLyBUaGlzIGlzIHF1aXRlIGEgYml0IGZhc3RlciB0aGFuIGV4dGVuZGluZyB0aGUgb2JqZWN0XG4gIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicpIHtcbiAgICBsLnggPSB4O1xuICB9XG4gIGlmICh0eXBlb2YgeSA9PT0gJ251bWJlcicpIHtcbiAgICBsLnkgPSB5O1xuICB9XG4gIGwubW92ZWQgPSB0cnVlO1xuXG4gIC8vIElmIHRoaXMgY29sbGlkZXMgd2l0aCBhbnl0aGluZywgbW92ZSBpdC5cbiAgLy8gV2hlbiBkb2luZyB0aGlzIGNvbXBhcmlzb24sIHdlIGhhdmUgdG8gc29ydCB0aGUgaXRlbXMgd2UgY29tcGFyZSB3aXRoXG4gIC8vIHRvIGVuc3VyZSwgaW4gdGhlIGNhc2Ugb2YgbXVsdGlwbGUgY29sbGlzaW9ucywgdGhhdCB3ZSdyZSBnZXR0aW5nIHRoZVxuICAvLyBuZWFyZXN0IGNvbGxpc2lvbi5cbiAgbGV0IHNvcnRlZCA9IHNvcnRMYXlvdXRJdGVtcyhsYXlvdXQsIGNvbXBhY3RUeXBlKTtcbiAgY29uc3QgbW92aW5nVXAgPVxuICAgIGNvbXBhY3RUeXBlID09PSAndmVydGljYWwnICYmIHR5cGVvZiB5ID09PSAnbnVtYmVyJ1xuICAgICAgPyBvbGRZID49IHlcbiAgICAgIDogY29tcGFjdFR5cGUgPT09ICdob3Jpem9udGFsJyAmJiB0eXBlb2YgeCA9PT0gJ251bWJlcidcbiAgICAgID8gb2xkWCA+PSB4XG4gICAgICA6IGZhbHNlO1xuICBpZiAobW92aW5nVXApIHtcbiAgICBzb3J0ZWQgPSBzb3J0ZWQucmV2ZXJzZSgpO1xuICB9XG4gIGNvbnN0IGNvbGxpc2lvbnMgPSBnZXRBbGxDb2xsaXNpb25zKHNvcnRlZCwgbCk7XG5cbiAgLy8gVGhlcmUgd2FzIGEgY29sbGlzaW9uOyBhYm9ydFxuICBpZiAocHJldmVudENvbGxpc2lvbiAmJiBjb2xsaXNpb25zLmxlbmd0aCkge1xuICAgIGxvZyhgQ29sbGlzaW9uIHByZXZlbnRlZCBvbiAke2wuaWR9LCByZXZlcnRpbmcuYCk7XG4gICAgbC54ID0gb2xkWDtcbiAgICBsLnkgPSBvbGRZO1xuICAgIGwubW92ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gbGF5b3V0O1xuICB9XG5cbiAgLy8gTW92ZSBlYWNoIGl0ZW0gdGhhdCBjb2xsaWRlcyBhd2F5IGZyb20gdGhpcyBlbGVtZW50LlxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gY29sbGlzaW9ucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGNvbGxpc2lvbiA9IGNvbGxpc2lvbnNbaV07XG4gICAgbG9nKFxuICAgICAgYFJlc29sdmluZyBjb2xsaXNpb24gYmV0d2VlbiAke2wuaWR9IGF0IFske2wueH0sJHtsLnl9XSBhbmQgJHtjb2xsaXNpb24uaWR9IGF0IFske2NvbGxpc2lvbi54fSwke2NvbGxpc2lvbi55fV1gLFxuICAgICk7XG5cbiAgICAvLyBTaG9ydCBjaXJjdWl0IHNvIHdlIGNhbid0IGluZmluaXRlIGxvb3BcbiAgICBpZiAoY29sbGlzaW9uLm1vdmVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBEb24ndCBtb3ZlIHN0YXRpYyBpdGVtcyAtIHdlIGhhdmUgdG8gbW92ZSAqdGhpcyogZWxlbWVudCBhd2F5XG4gICAgbGF5b3V0ID0gY29sbGlzaW9uLnN0YXRpY1xuICAgICAgPyBtb3ZlRWxlbWVudEF3YXlGcm9tQ29sbGlzaW9uKFxuICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICBjb2xsaXNpb24sXG4gICAgICAgICAgbCxcbiAgICAgICAgICBpc1VzZXJBY3Rpb24sXG4gICAgICAgICAgY29tcGFjdFR5cGUsXG4gICAgICAgICAgY29scyxcbiAgICAgICAgKVxuICAgICAgOiBtb3ZlRWxlbWVudEF3YXlGcm9tQ29sbGlzaW9uKFxuICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICBsLFxuICAgICAgICAgIGNvbGxpc2lvbixcbiAgICAgICAgICBpc1VzZXJBY3Rpb24sXG4gICAgICAgICAgY29tcGFjdFR5cGUsXG4gICAgICAgICAgY29scyxcbiAgICAgICAgKTtcbiAgfVxuXG4gIHJldHVybiBsYXlvdXQ7XG59XG5cbi8qKlxuICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgbmVlZHMgdG8gaGFwcGVuIC0gZ2l2ZW4gYSBjb2xsaXNpb24sIG1vdmUgYW4gZWxlbWVudCBhd2F5IGZyb20gdGhlIGNvbGxpc2lvbi5cbiAqIFdlIGF0dGVtcHQgdG8gbW92ZSBpdCB1cCBpZiB0aGVyZSdzIHJvb20sIG90aGVyd2lzZSBpdCBnb2VzIGJlbG93LlxuICpcbiAqIEBwYXJhbSAge0FycmF5fSBsYXlvdXQgICAgICAgICAgICBGdWxsIGxheW91dCB0byBtb2RpZnkuXG4gKiBAcGFyYW0gIHtMYXlvdXRJdGVtfSBjb2xsaWRlc1dpdGggTGF5b3V0IGl0ZW0gd2UncmUgY29sbGlkaW5nIHdpdGguXG4gKiBAcGFyYW0gIHtMYXlvdXRJdGVtfSBpdGVtVG9Nb3ZlICAgTGF5b3V0IGl0ZW0gd2UncmUgbW92aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW92ZUVsZW1lbnRBd2F5RnJvbUNvbGxpc2lvbihcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGNvbGxpZGVzV2l0aDogTGF5b3V0SXRlbSxcbiAgaXRlbVRvTW92ZTogTGF5b3V0SXRlbSxcbiAgaXNVc2VyQWN0aW9uOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdFR5cGU6IENvbXBhY3RUeXBlLFxuICBjb2xzOiBudW1iZXIsXG4pOiBMYXlvdXQge1xuICBjb25zdCBjb21wYWN0SCA9IGNvbXBhY3RUeXBlID09PSAnaG9yaXpvbnRhbCc7XG4gIC8vIENvbXBhY3QgdmVydGljYWxseSBpZiBub3Qgc2V0IHRvIGhvcml6b250YWxcbiAgY29uc3QgY29tcGFjdFYgPSBjb21wYWN0VHlwZSAhPT0gJ2hvcml6b250YWwnO1xuICBjb25zdCBwcmV2ZW50Q29sbGlzaW9uID0gY29sbGlkZXNXaXRoLnN0YXRpYzsgLy8gd2UncmUgYWxyZWFkeSBjb2xsaWRpbmcgKG5vdCBmb3Igc3RhdGljIGl0ZW1zKVxuXG4gIC8vIElmIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBhYm92ZSB0aGUgY29sbGlzaW9uIHRvIHB1dCB0aGlzIGVsZW1lbnQsIG1vdmUgaXQgdGhlcmUuXG4gIC8vIFdlIG9ubHkgZG8gdGhpcyBvbiB0aGUgbWFpbiBjb2xsaXNpb24gYXMgdGhpcyBjYW4gZ2V0IGZ1bmt5IGluIGNhc2NhZGVzIGFuZCBjYXVzZVxuICAvLyB1bndhbnRlZCBzd2FwcGluZyBiZWhhdmlvci5cbiAgaWYgKGlzVXNlckFjdGlvbikge1xuICAgIC8vIFJlc2V0IGlzVXNlckFjdGlvbiBmbGFnIGJlY2F1c2Ugd2UncmUgbm90IGluIHRoZSBtYWluIGNvbGxpc2lvbiBhbnltb3JlLlxuICAgIGlzVXNlckFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gTWFrZSBhIG1vY2sgaXRlbSBzbyB3ZSBkb24ndCBtb2RpZnkgdGhlIGl0ZW0gaGVyZSwgb25seSBtb2RpZnkgaW4gbW92ZUVsZW1lbnQuXG4gICAgY29uc3QgZmFrZUl0ZW06IExheW91dEl0ZW0gPSB7XG4gICAgICB4OiBjb21wYWN0SCA/IE1hdGgubWF4KGNvbGxpZGVzV2l0aC54IC0gaXRlbVRvTW92ZS53LCAwKSA6IGl0ZW1Ub01vdmUueCxcbiAgICAgIHk6IGNvbXBhY3RWID8gTWF0aC5tYXgoY29sbGlkZXNXaXRoLnkgLSBpdGVtVG9Nb3ZlLmgsIDApIDogaXRlbVRvTW92ZS55LFxuICAgICAgdzogaXRlbVRvTW92ZS53LFxuICAgICAgaDogaXRlbVRvTW92ZS5oLFxuICAgICAgaWQ6ICctMScsXG4gICAgfTtcblxuICAgIC8vIE5vIGNvbGxpc2lvbj8gSWYgc28sIHdlIGNhbiBnbyB1cCB0aGVyZTsgb3RoZXJ3aXNlLCB3ZSdsbCBlbmQgdXAgbW92aW5nIGRvd24gYXMgbm9ybWFsXG4gICAgaWYgKCFnZXRGaXJzdENvbGxpc2lvbihsYXlvdXQsIGZha2VJdGVtKSkge1xuICAgICAgbG9nKFxuICAgICAgICBgRG9pbmcgcmV2ZXJzZSBjb2xsaXNpb24gb24gJHtpdGVtVG9Nb3ZlLmlkfSB1cCB0byBbJHtmYWtlSXRlbS54fSwke2Zha2VJdGVtLnl9XS5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBtb3ZlRWxlbWVudChcbiAgICAgICAgbGF5b3V0LFxuICAgICAgICBpdGVtVG9Nb3ZlLFxuICAgICAgICBjb21wYWN0SCA/IGZha2VJdGVtLnggOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbXBhY3RWID8gZmFrZUl0ZW0ueSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaXNVc2VyQWN0aW9uLFxuICAgICAgICBwcmV2ZW50Q29sbGlzaW9uLFxuICAgICAgICBjb21wYWN0VHlwZSxcbiAgICAgICAgY29scyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1vdmVFbGVtZW50KFxuICAgIGxheW91dCxcbiAgICBpdGVtVG9Nb3ZlLFxuICAgIGNvbXBhY3RIID8gaXRlbVRvTW92ZS54ICsgMSA6IHVuZGVmaW5lZCxcbiAgICBjb21wYWN0ViA/IGl0ZW1Ub01vdmUueSArIDEgOiB1bmRlZmluZWQsXG4gICAgaXNVc2VyQWN0aW9uLFxuICAgIHByZXZlbnRDb2xsaXNpb24sXG4gICAgY29tcGFjdFR5cGUsXG4gICAgY29scyxcbiAgKTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdG8gY29udmVydCBhIG51bWJlciB0byBhIHBlcmNlbnRhZ2Ugc3RyaW5nLlxuICpcbiAqIEBwYXJhbSAge051bWJlcn0gbnVtIEFueSBudW1iZXJcbiAqIEByZXR1cm4ge1N0cmluZ30gICAgIFRoYXQgbnVtYmVyIGFzIGEgcGVyY2VudGFnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlcmNlbnQobnVtOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gbnVtICogMTAwICsgJyUnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNmb3JtKHsgdG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0IH06IFBvc2l0aW9uKTogT2JqZWN0IHtcbiAgLy8gUmVwbGFjZSB1bml0LWxlc3MgaXRlbXMgd2l0aCBweFxuICBjb25zdCB0cmFuc2xhdGUgPSBgdHJhbnNsYXRlKCR7bGVmdH1weCwke3RvcH1weClgO1xuICByZXR1cm4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIFdlYmtpdFRyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIE1velRyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIG1zVHJhbnNmb3JtOiB0cmFuc2xhdGUsXG4gICAgT1RyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXG4gICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VG9wTGVmdCh7IHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCB9OiBQb3NpdGlvbik6IE9iamVjdCB7XG4gIHJldHVybiB7XG4gICAgdG9wOiBgJHt0b3B9cHhgLFxuICAgIGxlZnQ6IGAke2xlZnR9cHhgLFxuICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXG4gICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB9O1xufVxuXG4vKipcbiAqIEdldCBsYXlvdXQgaXRlbXMgc29ydGVkIGZyb20gdG9wIGxlZnQgdG8gcmlnaHQgYW5kIGRvd24uXG4gKlxuICogQHJldHVybiB7QXJyYXl9IEFycmF5IG9mIGxheW91dCBvYmplY3RzLlxuICogQHJldHVybiB7QXJyYXl9ICAgICAgICBMYXlvdXQsIHNvcnRlZCBzdGF0aWMgaXRlbXMgZmlyc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0TGF5b3V0SXRlbXMoXG4gIGxheW91dDogTGF5b3V0LFxuICBjb21wYWN0VHlwZTogQ29tcGFjdFR5cGUsXG4pOiBMYXlvdXQge1xuICBpZiAoY29tcGFjdFR5cGUgPT09ICdob3Jpem9udGFsJykge1xuICAgIHJldHVybiBzb3J0TGF5b3V0SXRlbXNCeUNvbFJvdyhsYXlvdXQpO1xuICB9XG4gIHJldHVybiBzb3J0TGF5b3V0SXRlbXNCeVJvd0NvbChsYXlvdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydExheW91dEl0ZW1zQnlSb3dDb2wobGF5b3V0OiBMYXlvdXQpOiBMYXlvdXQge1xuICByZXR1cm4gKFtdIGFzIGFueVtdKS5jb25jYXQobGF5b3V0KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgaWYgKGEueSA+IGIueSB8fCAoYS55ID09PSBiLnkgJiYgYS54ID4gYi54KSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGlmIChhLnkgPT09IGIueSAmJiBhLnggPT09IGIueCkge1xuICAgICAgLy8gV2l0aG91dCB0aGlzLCB3ZSBjYW4gZ2V0IGRpZmZlcmVudCBzb3J0IHJlc3VsdHMgaW4gSUUgdnMuIENocm9tZS9GRlxuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0TGF5b3V0SXRlbXNCeUNvbFJvdyhsYXlvdXQ6IExheW91dCk6IExheW91dCB7XG4gIHJldHVybiAoW10gYXMgYW55W10pLmNvbmNhdChsYXlvdXQpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICBpZiAoYS54ID4gYi54IHx8IChhLnggPT09IGIueCAmJiBhLnkgPiBiLnkpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9KTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGxheW91dC4gVGhyb3dzIGVycm9ycy5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gIGxheW91dCAgICAgICAgQXJyYXkgb2YgbGF5b3V0IGl0ZW1zLlxuICogQHBhcmFtICB7U3RyaW5nfSBbY29udGV4dE5hbWVdIENvbnRleHQgbmFtZSBmb3IgZXJyb3JzLlxuICogQHRocm93ICB7RXJyb3J9ICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxheW91dChsYXlvdXQ6IExheW91dCwgY29udGV4dE5hbWUgPSAnTGF5b3V0Jyk6IHZvaWQge1xuICBjb25zdCBzdWJQcm9wcyA9IFsneCcsICd5JywgJ3cnLCAnaCddO1xuICBpZiAoIUFycmF5LmlzQXJyYXkobGF5b3V0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoY29udGV4dE5hbWUgKyAnIG11c3QgYmUgYW4gYXJyYXkhJyk7XG4gIH1cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxheW91dC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGl0ZW0gPSBsYXlvdXRbaV07XG4gICAgZm9yIChjb25zdCBzdWJQcm9wIG9mIHN1YlByb3BzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAodHlwZW9mIGl0ZW1bc3ViUHJvcF0gIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgJ1JlYWN0R3JpZExheW91dDogJyArXG4gICAgICAgICAgICBjb250ZXh0TmFtZSArXG4gICAgICAgICAgICAnWycgK1xuICAgICAgICAgICAgaSArXG4gICAgICAgICAgICAnXS4nICtcbiAgICAgICAgICAgIHN1YlByb3AgK1xuICAgICAgICAgICAgJyBtdXN0IGJlIGEgbnVtYmVyIScsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpdGVtLmlkICYmIHR5cGVvZiBpdGVtLmlkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVhY3RHcmlkTGF5b3V0OiAnICsgY29udGV4dE5hbWUgKyAnWycgKyBpICsgJ10uaSBtdXN0IGJlIGEgc3RyaW5nIScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoaXRlbS5zdGF0aWMgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgaXRlbS5zdGF0aWMgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVhY3RHcmlkTGF5b3V0OiAnICtcbiAgICAgICAgICBjb250ZXh0TmFtZSArXG4gICAgICAgICAgJ1snICtcbiAgICAgICAgICBpICtcbiAgICAgICAgICAnXS5zdGF0aWMgbXVzdCBiZSBhIGJvb2xlYW4hJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIEZsb3cgY2FuJ3QgcmVhbGx5IGZpZ3VyZSB0aGlzIG91dCwgc28gd2UganVzdCB1c2UgT2JqZWN0XG5leHBvcnQgZnVuY3Rpb24gYXV0b0JpbmRIYW5kbGVycyhlbDogT2JqZWN0LCBmbnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgZm5zLmZvckVhY2goa2V5ID0+IChlbFtrZXldID0gZWxba2V5XS5iaW5kKGVsKSkpO1xufVxuXG5mdW5jdGlvbiBsb2coLi4uYXJnczogdW5rbm93bltdKSB7XG4gIGlmICghREVCVUcpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5sb2coLi4uYXJncyk7XG59XG4iXX0=
|
|
471
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QtZ3JpZC1sYXlvdXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvdXRpbHMvcmVhY3QtZ3JpZC1sYXlvdXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELGdEQUFnRDtBQTBGaEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBRXBCOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFjO0lBQ25DLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLElBQUksT0FBTyxDQUFDO0lBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xELE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbEIsR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYztJQUN4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBVyxDQUFDO0lBQ2xFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsa0RBQWtEO0FBQ2xELGlFQUFpRTtBQUNqRSxNQUFNLFVBQVUsZUFBZSxDQUFDLFVBQXNCO0lBQ3BELE1BQU0sZ0JBQWdCLEdBQWU7UUFDbkMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2YsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUs7UUFDekIsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTTtLQUM1QixDQUFDO0lBRUYsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLGdCQUFnQixDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLGdCQUFnQixDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFDRCxvQkFBb0I7SUFDcEIsSUFBSSxVQUFVLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekMsZ0JBQWdCLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFjLEVBQUUsRUFBYztJQUNyRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLGVBQWU7SUFDakIsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLG1CQUFtQjtJQUNyQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUMsb0JBQW9CO0lBQ3RCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLGlCQUFpQjtJQUNuQixPQUFPLElBQUksQ0FBQyxDQUFDLGdCQUFnQjtBQUMvQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsSUFBWTtJQUVaLDRFQUE0RTtJQUM1RSxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsNkNBQTZDO0lBQzdDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEQseUJBQXlCO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFbEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuQyw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLENBQUMsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTNELHVFQUF1RTtZQUN2RSxxQ0FBcUM7WUFDckMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRW5DLGtDQUFrQztRQUNsQyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxHQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsSUFBZTtJQUVmLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRSx3Q0FBd0M7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLHNCQUFzQjtRQUN0QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixTQUFTO1FBQ1gsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSwwQ0FBMEM7UUFDMUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsMEJBQTBCLENBQ3hCLE1BQU0sRUFDTixTQUFTO1lBQ1QsYUFBYTtZQUNiLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQzVCLElBQUksQ0FDTCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLFdBQW1CLEVBQ25CLENBQWEsRUFDYixXQUF3QixFQUN4QixJQUFZLEVBQ1osVUFBa0I7SUFFbEIsTUFBTSxRQUFRLEdBQUcsV0FBVyxLQUFLLFVBQVUsQ0FBQztJQUM1QyxNQUFNLFFBQVEsR0FBRyxXQUFXLEtBQUssWUFBWSxDQUFDO0lBQzlDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixtREFBbUQ7UUFDbkQsOERBQThEO1FBQzlELHlGQUF5RjtRQUN6RixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6Qyw2REFBNkQ7UUFDN0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNSLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QywrREFBK0Q7UUFDL0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNSLENBQUM7SUFDSCxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELElBQUksUUFBUSxDQUFDO0lBQ2IsT0FBTyxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYiwwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRSxDQUFDO2FBQU0sQ0FBQztZQUNOLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCx5R0FBeUc7UUFDekcsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLE1BQWMsRUFDZCxNQUF3QjtJQUV4QixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDUixDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2IsMkVBQTJFO1lBQzNFLGdFQUFnRTtZQUNoRSxPQUFPLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLE1BQWMsRUFDZCxFQUFVO0lBRVYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xELElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE1BQWMsRUFDZCxVQUFzQjtJQUV0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbEQsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxVQUFzQjtJQUV0QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWM7SUFDdkMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsTUFBYyxFQUNkLENBQWEsRUFDYixDQUE0QixFQUM1QixDQUE0QixFQUM1QixZQUF3QyxFQUN4QyxnQkFBNEMsRUFDNUMsV0FBd0IsRUFDeEIsSUFBWTtJQUVaLDZEQUE2RDtJQUM3RCxpRUFBaUU7SUFDakUsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEdBQUcsQ0FDRCxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQ2hFLENBQUMsQ0FBQyxDQUNKLEdBQUcsQ0FDSixDQUFDO0lBQ0YsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpCLHVEQUF1RDtJQUN2RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFZiwyQ0FBMkM7SUFDM0Msd0VBQXdFO0lBQ3hFLHdFQUF3RTtJQUN4RSxxQkFBcUI7SUFDckIsSUFBSSxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FDWixXQUFXLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDakQsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLFdBQVcsS0FBSyxZQUFZLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtZQUN2RCxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDWCxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUvQywrQkFBK0I7SUFDL0IsSUFBSSxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDaEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHVEQUF1RDtJQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLEdBQUcsQ0FDRCwrQkFBK0IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsU0FBUyxDQUFDLEVBQUUsUUFBUSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FDaEgsQ0FBQztRQUVGLDBDQUEwQztRQUMxQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixTQUFTO1FBQ1gsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU07WUFDdkIsQ0FBQyxDQUFDLDRCQUE0QixDQUMxQixNQUFNLEVBQ04sU0FBUyxFQUNULENBQUMsRUFDRCxZQUFZLEVBQ1osV0FBVyxFQUNYLElBQUksQ0FDTDtZQUNILENBQUMsQ0FBQyw0QkFBNEIsQ0FDMUIsTUFBTSxFQUNOLENBQUMsRUFDRCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxJQUFJLENBQ0wsQ0FBQztJQUNSLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FDMUMsTUFBYyxFQUNkLFlBQXdCLEVBQ3hCLFVBQXNCLEVBQ3RCLFlBQXdDLEVBQ3hDLFdBQXdCLEVBQ3hCLElBQVk7SUFFWixNQUFNLFFBQVEsR0FBRyxXQUFXLEtBQUssWUFBWSxDQUFDO0lBQzlDLDhDQUE4QztJQUM5QyxNQUFNLFFBQVEsR0FBRyxXQUFXLEtBQUssWUFBWSxDQUFDO0lBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGlEQUFpRDtJQUUvRixtRkFBbUY7SUFDbkYsb0ZBQW9GO0lBQ3BGLDhCQUE4QjtJQUM5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLDJFQUEyRTtRQUMzRSxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGlGQUFpRjtRQUNqRixNQUFNLFFBQVEsR0FBZTtZQUMzQixDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNmLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNmLEVBQUUsRUFBRSxJQUFJO1NBQ1QsQ0FBQztRQUVGLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekMsR0FBRyxDQUNELDhCQUE4QixVQUFVLENBQUMsRUFBRSxXQUFXLFFBQVEsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsSUFBSSxDQUNuRixDQUFDO1lBQ0YsT0FBTyxXQUFXLENBQ2hCLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ2pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUNqQyxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxJQUFJLENBQ0wsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQ2hCLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUN2QyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3ZDLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLElBQUksQ0FDTCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ2pDLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVk7SUFDakUsa0NBQWtDO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLGFBQWEsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2xELE9BQU87UUFDTCxTQUFTLEVBQUUsU0FBUztRQUNwQixlQUFlLEVBQUUsU0FBUztRQUMxQixZQUFZLEVBQUUsU0FBUztRQUN2QixXQUFXLEVBQUUsU0FBUztRQUN0QixVQUFVLEVBQUUsU0FBUztRQUNyQixLQUFLLEVBQUUsR0FBRyxLQUFLLElBQUk7UUFDbkIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJO1FBQ3JCLFFBQVEsRUFBRSxVQUFVO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWTtJQUMvRCxPQUFPO1FBQ0wsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJO1FBQ2YsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJO1FBQ2pCLEtBQUssRUFBRSxHQUFHLEtBQUssSUFBSTtRQUNuQixNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUk7UUFDckIsUUFBUSxFQUFFLFVBQVU7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLE1BQWMsRUFDZCxXQUF3QjtJQUV4QixJQUFJLFdBQVcsS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBYztJQUNwRCxPQUFRLEVBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQixzRUFBc0U7WUFDdEUsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxNQUFjO0lBQ3BELE9BQVEsRUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWMsRUFBRSxXQUFXLEdBQUcsUUFBUTtJQUNuRSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQy9CLGFBQWE7WUFDYixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLElBQUksU0FBUyxDQUNqQixtQkFBbUI7b0JBQ2pCLFdBQVc7b0JBQ1gsR0FBRztvQkFDSCxDQUFDO29CQUNELElBQUk7b0JBQ0osT0FBTztvQkFDUCxvQkFBb0IsQ0FDdkIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixHQUFHLFdBQVcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLHVCQUF1QixDQUN0RSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CO2dCQUNqQixXQUFXO2dCQUNYLEdBQUc7Z0JBQ0gsQ0FBQztnQkFDRCw2QkFBNkIsQ0FDaEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsRUFBVSxFQUFFLEdBQWE7SUFDeEQsYUFBYTtJQUNiLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFlO0lBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU87SUFDVCxDQUFDO0lBQ0Qsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29uYXIvbm8tcmVkdW5kYW50LW9wdGlvbmFsICovXG4vKiBlc2xpbnQtZGlzYWJsZSBzb25hcmpzL25vLWR1cGxpY2F0ZS1zdHJpbmcgKi9cblxuLyogZXNsaW50LWRpc2FibGUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgc29uYXJqcy9wcmVmZXItc2luZ2xlLWJvb2xlYW4tcmV0dXJuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwgKi9cblxuLy8gVGhlc2UgdXRpbHMgZm9yayBmcm9tIDogaHR0cHM6Ly9naXRodWIuY29tL1NUUk1ML3JlYWN0LWdyaWQtbGF5b3V0LlxuLy8gTk9URTogLS0tLS0tLT4gRG8gbm90IG1vZGlmeSB0aGlzIGZpbGUgZm9yIGVhc3kgbWFpbnRlbmFuY2UgISEhIDwtLS0tLS0tXG4vLyBXZSBvbmx5IGFkZCBlc2xpbnQtZGlzYWJsZS90cy1pZ25vcmUgdG8gaWdub3JlIHVubmVjZXNzYXJ5IGNoYW5nZXNcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRJdGVtIHtcbiAgdzogbnVtYmVyO1xuICBoOiBudW1iZXI7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBpZDogc3RyaW5nO1xuICBtaW5XPzogbnVtYmVyO1xuICBtaW5IPzogbnVtYmVyO1xuICBtYXhXPzogbnVtYmVyO1xuICBtYXhIPzogbnVtYmVyO1xuICBtb3ZlZD86IGJvb2xlYW47XG4gIHN0YXRpYz86IGJvb2xlYW47XG4gIGlzRHJhZ2dhYmxlPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGlzUmVzaXphYmxlPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgdHlwZSBMYXlvdXQgPSBMYXlvdXRJdGVtW107XG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgbGVmdDogbnVtYmVyO1xuICB0b3A6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0RHJhZ2dhYmxlQ2FsbGJhY2tEYXRhIHtcbiAgbm9kZTogSFRNTEVsZW1lbnQ7XG4gIHg/OiBudW1iZXI7XG4gIHk/OiBudW1iZXI7XG4gIGRlbHRhWDogbnVtYmVyO1xuICBkZWx0YVk6IG51bWJlcjtcbiAgbGFzdFg/OiBudW1iZXI7XG4gIGxhc3RZPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxQb3NpdGlvbiB7XG4gIGxlZnQ6IG51bWJlcjtcbiAgdG9wOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyb3BwaW5nUG9zaXRpb24ge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgZTogRXZlbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpemUge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZERyYWdFdmVudCB7XG4gIGU6IEV2ZW50O1xuICBub2RlOiBIVE1MRWxlbWVudDtcbiAgbmV3UG9zaXRpb246IFBhcnRpYWxQb3NpdGlvbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFJlc2l6ZUV2ZW50IHtcbiAgZTogRXZlbnQ7XG4gIG5vZGU6IEhUTUxFbGVtZW50O1xuICBzaXplOiBTaXplO1xufVxuZXhwb3J0IHR5cGUgRHJhZ092ZXJFdmVudCA9IE1vdXNlRXZlbnQgJiB7XG4gIG5hdGl2ZUV2ZW50OiB7XG4gICAgbGF5ZXJYOiBudW1iZXI7XG4gICAgbGF5ZXJZOiBudW1iZXI7XG4gICAgdGFyZ2V0OiB7XG4gICAgICBjbGFzc05hbWU6IFN0cmluZztcbiAgICB9O1xuICB9O1xufTtcblxuLy8gdHlwZSBSRWwgPSBSZWFjdEVsZW1lbnQ8YW55Pjtcbi8vIGV4cG9ydCB0eXBlIFJlYWN0Q2hpbGRyZW4gPSBSZWFjdENoaWxkcmVuQXJyYXk8UkVsPjtcblxuLy8gQWxsIGNhbGxiYWNrcyBhcmUgb2YgdGhlIHNpZ25hdHVyZSAobGF5b3V0LCBvbGRJdGVtLCBuZXdJdGVtLCBwbGFjZWhvbGRlciwgZSkuXG5leHBvcnQgdHlwZSBFdmVudENhbGxiYWNrID0gKFxuICBhcmcwOiBMYXlvdXQsXG4gIG9sZEl0ZW06IExheW91dEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBuZXdJdGVtOiBMYXlvdXRJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgcGxhY2Vob2xkZXI6IExheW91dEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBhcmc0OiBFdmVudCxcbiAgYXJnNTogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkLFxuKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgQ29tcGFjdFR5cGUgPSAoJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJykgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBERUJVRyA9IGZhbHNlO1xuXG4vKipcbiAqIFJldHVybiB0aGUgYm90dG9tIGNvb3JkaW5hdGUgb2YgdGhlIGxheW91dC5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gbGF5b3V0IExheW91dCBhcnJheS5cbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgQm90dG9tIGNvb3JkaW5hdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib3R0b20obGF5b3V0OiBMYXlvdXQpOiBudW1iZXIge1xuICBsZXQgbWF4ID0gMDtcbiAgbGV0IGJvdHRvbVk7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsYXlvdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBib3R0b21ZID0gbGF5b3V0W2ldLnkgKyBsYXlvdXRbaV0uaDtcbiAgICBpZiAoYm90dG9tWSA+IG1heCkge1xuICAgICAgbWF4ID0gYm90dG9tWTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1heDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lTGF5b3V0KGxheW91dDogTGF5b3V0KTogTGF5b3V0IHtcbiAgY29uc3QgbmV3TGF5b3V0ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogbGF5b3V0Lmxlbmd0aCB9KSBhcyBMYXlvdXQ7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsYXlvdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuZXdMYXlvdXRbaV0gPSBjbG9uZUxheW91dEl0ZW0obGF5b3V0W2ldKTtcbiAgfVxuICByZXR1cm4gbmV3TGF5b3V0O1xufVxuXG4vLyBGYXN0IHBhdGggdG8gY2xvbmluZywgc2luY2UgdGhpcyBpcyBtb25vbW9ycGhpY1xuLyoqIE5PVEU6IFRoaXMgY29kZSBoYXMgYmVlbiBtb2RpZmllZCBmcm9tIHRoZSBvcmlnaW5hbCBzb3VyY2UgKi9cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZUxheW91dEl0ZW0obGF5b3V0SXRlbTogTGF5b3V0SXRlbSk6IExheW91dEl0ZW0ge1xuICBjb25zdCBjbG9uZWRMYXlvdXRJdGVtOiBMYXlvdXRJdGVtID0ge1xuICAgIHc6IGxheW91dEl0ZW0udyxcbiAgICBoOiBsYXlvdXRJdGVtLmgsXG4gICAgeDogbGF5b3V0SXRlbS54LFxuICAgIHk6IGxheW91dEl0ZW0ueSxcbiAgICBpZDogbGF5b3V0SXRlbS5pZCxcbiAgICBtb3ZlZDogISFsYXlvdXRJdGVtLm1vdmVkLFxuICAgIHN0YXRpYzogISFsYXlvdXRJdGVtLnN0YXRpYyxcbiAgfTtcblxuICBpZiAobGF5b3V0SXRlbS5taW5XICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbG9uZWRMYXlvdXRJdGVtLm1pblcgPSBsYXlvdXRJdGVtLm1pblc7XG4gIH1cbiAgaWYgKGxheW91dEl0ZW0ubWF4VyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xvbmVkTGF5b3V0SXRlbS5tYXhXID0gbGF5b3V0SXRlbS5tYXhXO1xuICB9XG4gIGlmIChsYXlvdXRJdGVtLm1pbkggIT09IHVuZGVmaW5lZCkge1xuICAgIGNsb25lZExheW91dEl0ZW0ubWluSCA9IGxheW91dEl0ZW0ubWluSDtcbiAgfVxuICBpZiAobGF5b3V0SXRlbS5tYXhIICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbG9uZWRMYXlvdXRJdGVtLm1heEggPSBsYXlvdXRJdGVtLm1heEg7XG4gIH1cbiAgLy8gVGhlc2UgY2FuIGJlIG51bGxcbiAgaWYgKGxheW91dEl0ZW0uaXNEcmFnZ2FibGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsb25lZExheW91dEl0ZW0uaXNEcmFnZ2FibGUgPSBsYXlvdXRJdGVtLmlzRHJhZ2dhYmxlO1xuICB9XG4gIGlmIChsYXlvdXRJdGVtLmlzUmVzaXphYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbG9uZWRMYXlvdXRJdGVtLmlzUmVzaXphYmxlID0gbGF5b3V0SXRlbS5pc1Jlc2l6YWJsZTtcbiAgfVxuXG4gIHJldHVybiBjbG9uZWRMYXlvdXRJdGVtO1xufVxuXG4vKipcbiAqIEdpdmVuIHR3byBsYXlvdXQgaXRlbXMsIGNoZWNrIGlmIHRoZXkgY29sbGlkZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxpZGVzKGwxOiBMYXlvdXRJdGVtLCBsMjogTGF5b3V0SXRlbSk6IGJvb2xlYW4ge1xuICBpZiAobDEuaWQgPT09IGwyLmlkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIHNhbWUgZWxlbWVudFxuICBpZiAobDEueCArIGwxLncgPD0gbDIueCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBsMSBpcyBsZWZ0IG9mIGwyXG4gIGlmIChsMS54ID49IGwyLnggKyBsMi53KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIGwxIGlzIHJpZ2h0IG9mIGwyXG4gIGlmIChsMS55ICsgbDEuaCA8PSBsMi55KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIGwxIGlzIGFib3ZlIGwyXG4gIGlmIChsMS55ID49IGwyLnkgKyBsMi5oKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIGwxIGlzIGJlbG93IGwyXG4gIHJldHVybiB0cnVlOyAvLyBib3hlcyBvdmVybGFwXG59XG5cbi8qKlxuICogR2l2ZW4gYSBsYXlvdXQsIGNvbXBhY3QgaXQuIFRoaXMgaW52b2x2ZXMgZ29pbmcgZG93biBlYWNoIHkgY29vcmRpbmF0ZSBhbmQgcmVtb3ZpbmcgZ2Fwc1xuICogYmV0d2VlbiBpdGVtcy5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gbGF5b3V0IExheW91dC5cbiAqIEBwYXJhbSAge0Jvb2xlYW59IHZlcnRpY2FsQ29tcGFjdCBXaGV0aGVyIG9yIG5vdCB0byBjb21wYWN0IHRoZSBsYXlvdXRcbiAqICAgdmVydGljYWxseS5cbiAqIEByZXR1cm4ge0FycmF5fSAgICAgICBDb21wYWN0ZWQgTGF5b3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFjdChcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGNvbXBhY3RUeXBlOiBDb21wYWN0VHlwZSxcbiAgY29sczogbnVtYmVyLFxuKTogTGF5b3V0IHtcbiAgLy8gU3RhdGljcyBnbyBpbiB0aGUgY29tcGFyZVdpdGggYXJyYXkgcmlnaHQgYXdheSBzbyBpdGVtcyBmbG93IGFyb3VuZCB0aGVtLlxuICBjb25zdCBjb21wYXJlV2l0aCA9IGdldFN0YXRpY3MobGF5b3V0KTtcbiAgLy8gV2UgZ28gdGhyb3VnaCB0aGUgaXRlbXMgYnkgcm93IGFuZCBjb2x1bW4uXG4gIGNvbnN0IHNvcnRlZCA9IHNvcnRMYXlvdXRJdGVtcyhsYXlvdXQsIGNvbXBhY3RUeXBlKTtcbiAgLy8gSG9sZGluZyBmb3IgbmV3IGl0ZW1zLlxuICBjb25zdCBvdXQgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBsYXlvdXQubGVuZ3RoIH0pO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzb3J0ZWQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBsZXQgbCA9IGNsb25lTGF5b3V0SXRlbShzb3J0ZWRbaV0pO1xuXG4gICAgLy8gRG9uJ3QgbW92ZSBzdGF0aWMgZWxlbWVudHNcbiAgICBpZiAoIWwuc3RhdGljKSB7XG4gICAgICBsID0gY29tcGFjdEl0ZW0oY29tcGFyZVdpdGgsIGwsIGNvbXBhY3RUeXBlLCBjb2xzLCBzb3J0ZWQpO1xuXG4gICAgICAvLyBBZGQgdG8gY29tcGFyaXNvbiBhcnJheS4gV2Ugb25seSBjb2xsaWRlIHdpdGggaXRlbXMgYmVmb3JlIHRoaXMgb25lLlxuICAgICAgLy8gU3RhdGljcyBhcmUgYWxyZWFkeSBpbiB0aGlzIGFycmF5LlxuICAgICAgY29tcGFyZVdpdGgucHVzaChsKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdG8gb3V0cHV0IGFycmF5IHRvIG1ha2Ugc3VyZSB0aGV5IHN0aWxsIGNvbWUgb3V0IGluIHRoZSByaWdodCBvcmRlci5cbiAgICBvdXRbbGF5b3V0LmluZGV4T2Yoc29ydGVkW2ldKV0gPSBsO1xuXG4gICAgLy8gQ2xlYXIgbW92ZWQgZmxhZywgaWYgaXQgZXhpc3RzLlxuICAgIGwubW92ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBvdXQgYXMgTGF5b3V0O1xufVxuXG5jb25zdCBoZWlnaHRXaWR0aCA9IHsgeDogJ3cnLCB5OiAnaCcgfTtcblxuLyoqXG4gKiBCZWZvcmUgbW92aW5nIGl0ZW0gZG93biwgaXQgd2lsbCBjaGVjayBpZiB0aGUgbW92ZW1lbnQgd2lsbCBjYXVzZSBjb2xsaXNpb25zIGFuZCBtb3ZlIHRob3NlIGl0ZW1zIGRvd24gYmVmb3JlLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQ29tcGFjdGlvbkNvbGxpc2lvbihcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGl0ZW06IExheW91dEl0ZW0sXG4gIG1vdmVUb0Nvb3JkOiBudW1iZXIsXG4gIGF4aXM6ICd4JyB8ICd5Jyxcbikge1xuICBjb25zdCBzaXplUHJvcCA9IGhlaWdodFdpZHRoW2F4aXNdO1xuICBpdGVtW2F4aXNdICs9IDE7XG4gIGNvbnN0IGl0ZW1JbmRleCA9IGxheW91dC5tYXAobGF5b3V0SXRlbSA9PiBsYXlvdXRJdGVtLmlkKS5pbmRleE9mKGl0ZW0uaWQpO1xuXG4gIC8vIEdvIHRocm91Z2ggZWFjaCBpdGVtIHdlIGNvbGxpZGUgd2l0aC5cbiAgZm9yIChsZXQgaSA9IGl0ZW1JbmRleCArIDE7IGkgPCBsYXlvdXQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBvdGhlckl0ZW0gPSBsYXlvdXRbaV07XG4gICAgLy8gSWdub3JlIHN0YXRpYyBpdGVtc1xuICAgIGlmIChvdGhlckl0ZW0uc3RhdGljKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBPcHRpbWl6YXRpb246IHdlIGNhbiBicmVhayBlYXJseSBpZiB3ZSBrbm93IHdlJ3JlIHBhc3QgdGhpcyBlbFxuICAgIC8vIFdlIGNhbiBkbyB0aGlzIGIvYyBpdCdzIGEgc29ydGVkIGxheW91dFxuICAgIGlmIChvdGhlckl0ZW0ueSA+IGl0ZW0ueSArIGl0ZW0uaCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGNvbGxpZGVzKGl0ZW0sIG90aGVySXRlbSkpIHtcbiAgICAgIHJlc29sdmVDb21wYWN0aW9uQ29sbGlzaW9uKFxuICAgICAgICBsYXlvdXQsXG4gICAgICAgIG90aGVySXRlbSxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBtb3ZlVG9Db29yZCArIGl0ZW1bc2l6ZVByb3BdLFxuICAgICAgICBheGlzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpdGVtW2F4aXNdID0gbW92ZVRvQ29vcmQ7XG59XG5cbi8qKlxuICogQ29tcGFjdCBhbiBpdGVtIGluIHRoZSBsYXlvdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYWN0SXRlbShcbiAgY29tcGFyZVdpdGg6IExheW91dCxcbiAgbDogTGF5b3V0SXRlbSxcbiAgY29tcGFjdFR5cGU6IENvbXBhY3RUeXBlLFxuICBjb2xzOiBudW1iZXIsXG4gIGZ1bGxMYXlvdXQ6IExheW91dCxcbik6IExheW91dEl0ZW0ge1xuICBjb25zdCBjb21wYWN0ViA9IGNvbXBhY3RUeXBlID09PSAndmVydGljYWwnO1xuICBjb25zdCBjb21wYWN0SCA9IGNvbXBhY3RUeXBlID09PSAnaG9yaXpvbnRhbCc7XG4gIGlmIChjb21wYWN0Vikge1xuICAgIC8vIEJvdHRvbSAneScgcG9zc2libGUgaXMgdGhlIGJvdHRvbSBvZiB0aGUgbGF5b3V0LlxuICAgIC8vIFRoaXMgYWxsb3dzIHlvdSB0byBkbyBuaWNlIHN0dWZmIGxpa2Ugc3BlY2lmeSB7eTogSW5maW5pdHl9XG4gICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgdGhlIGxheW91dCBtdXN0IGJlIHNvcnRlZCBpbiBvcmRlciB0byBnZXQgdGhlIGNvcnJlY3QgYm90dG9tIGB5YC5cbiAgICBsLnkgPSBNYXRoLm1pbihib3R0b20oY29tcGFyZVdpdGgpLCBsLnkpO1xuICAgIC8vIE1vdmUgdGhlIGVsZW1lbnQgdXAgYXMgZmFyIGFzIGl0IGNhbiBnbyB3aXRob3V0IGNvbGxpZGluZy5cbiAgICB3aGlsZSAobC55ID4gMCAmJiAhZ2V0Rmlyc3RDb2xsaXNpb24oY29tcGFyZVdpdGgsIGwpKSB7XG4gICAgICBsLnktLTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29tcGFjdEgpIHtcbiAgICBsLnkgPSBNYXRoLm1pbihib3R0b20oY29tcGFyZVdpdGgpLCBsLnkpO1xuICAgIC8vIE1vdmUgdGhlIGVsZW1lbnQgbGVmdCBhcyBmYXIgYXMgaXQgY2FuIGdvIHdpdGhvdXQgY29sbGlkaW5nLlxuICAgIHdoaWxlIChsLnggPiAwICYmICFnZXRGaXJzdENvbGxpc2lvbihjb21wYXJlV2l0aCwgbCkpIHtcbiAgICAgIGwueC0tO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaXQgZG93biwgYW5kIGtlZXAgbW92aW5nIGl0IGRvd24gaWYgaXQncyBjb2xsaWRpbmcuXG4gIGxldCBjb2xsaWRlcztcbiAgd2hpbGUgKChjb2xsaWRlcyA9IGdldEZpcnN0Q29sbGlzaW9uKGNvbXBhcmVXaXRoLCBsKSkpIHtcbiAgICBpZiAoY29tcGFjdEgpIHtcbiAgICAgIHJlc29sdmVDb21wYWN0aW9uQ29sbGlzaW9uKGZ1bGxMYXlvdXQsIGwsIGNvbGxpZGVzLnggKyBjb2xsaWRlcy53LCAneCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlQ29tcGFjdGlvbkNvbGxpc2lvbihmdWxsTGF5b3V0LCBsLCBjb2xsaWRlcy55ICsgY29sbGlkZXMuaCwgJ3knKTtcbiAgICB9XG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgZ3JvdyB3aXRob3V0IGJvdW5kcyBob3Jpem9udGFsbHksIGlmIHdlJ3ZlIG92ZXJmbG93biwgbGV0J3MgbW92ZSBpdCBkb3duIGFuZCB0cnkgYWdhaW4uXG4gICAgaWYgKGNvbXBhY3RIICYmIGwueCArIGwudyA+IGNvbHMpIHtcbiAgICAgIGwueCA9IGNvbHMgLSBsLnc7XG4gICAgICBsLnkrKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGw7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBsYXlvdXQsIG1ha2Ugc3VyZSBhbGwgZWxlbWVudHMgZml0IHdpdGhpbiBpdHMgYm91bmRzLlxuICpcbiAqIEBwYXJhbSAge0FycmF5fSBsYXlvdXQgTGF5b3V0IGFycmF5LlxuICogQHBhcmFtICB7TnVtYmVyfSBib3VuZHMgTnVtYmVyIG9mIGNvbHVtbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3JyZWN0Qm91bmRzKFxuICBsYXlvdXQ6IExheW91dCxcbiAgYm91bmRzOiB7IGNvbHM6IG51bWJlciB9LFxuKTogTGF5b3V0IHtcbiAgY29uc3QgY29sbGlkZXNXaXRoID0gZ2V0U3RhdGljcyhsYXlvdXQpO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5b3V0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgbCA9IGxheW91dFtpXTtcbiAgICAvLyBPdmVyZmxvd3MgcmlnaHRcbiAgICBpZiAobC54ICsgbC53ID4gYm91bmRzLmNvbHMpIHtcbiAgICAgIGwueCA9IGJvdW5kcy5jb2xzIC0gbC53O1xuICAgIH1cbiAgICAvLyBPdmVyZmxvd3MgbGVmdFxuICAgIGlmIChsLnggPCAwKSB7XG4gICAgICBsLnggPSAwO1xuICAgICAgbC53ID0gYm91bmRzLmNvbHM7XG4gICAgfVxuICAgIGlmIChsLnN0YXRpYykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBzdGF0aWMgYW5kIGNvbGxpZGVzIHdpdGggb3RoZXIgc3RhdGljcywgd2UgbXVzdCBtb3ZlIGl0IGRvd24uXG4gICAgICAvLyBXZSBoYXZlIHRvIGRvIHNvbWV0aGluZyBuaWNlciB0aGFuIGp1c3QgbGV0dGluZyB0aGVtIG92ZXJsYXAuXG4gICAgICB3aGlsZSAoZ2V0Rmlyc3RDb2xsaXNpb24oY29sbGlkZXNXaXRoLCBsKSkge1xuICAgICAgICBsLnkrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29sbGlkZXNXaXRoLnB1c2gobCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsYXlvdXQ7XG59XG5cbi8qKlxuICogR2V0IGEgbGF5b3V0IGl0ZW0gYnkgSUQuIFVzZWQgc28gd2UgY2FuIG92ZXJyaWRlIGxhdGVyIG9uIGlmIG5lY2Vzc2FyeS5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gIGxheW91dCBMYXlvdXQgYXJyYXkuXG4gKiBAcGFyYW0gIHtTdHJpbmd9IGlkICAgICBJRFxuICogQHJldHVybiB7TGF5b3V0SXRlbX0gICAgSXRlbSBhdCBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExheW91dEl0ZW0oXG4gIGxheW91dDogTGF5b3V0LFxuICBpZDogc3RyaW5nLFxuKTogTGF5b3V0SXRlbSB8IG51bGwgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5b3V0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGxheW91dFtpXS5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiBsYXlvdXRbaV07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gdGhpcyBsYXlvdXQgY29sbGlkZXMgd2l0aC5cbiAqIEl0IGRvZXNuJ3QgYXBwZWFyIHRvIG1hdHRlciB3aGljaCBvcmRlciB3ZSBhcHByb2FjaCB0aGlzIGZyb20sIGFsdGhvdWdoXG4gKiBwZXJoYXBzIHRoYXQgaXMgdGhlIHdyb25nIHRoaW5nIHRvIGRvLlxuICpcbiAqIEBwYXJhbSAge09iamVjdH0gbGF5b3V0SXRlbSBMYXlvdXQgaXRlbS5cbiAqIEByZXR1cm4ge09iamVjdHx1bmRlZmluZWR9ICBBIGNvbGxpZGluZyBsYXlvdXQgaXRlbSwgb3IgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RDb2xsaXNpb24oXG4gIGxheW91dDogTGF5b3V0LFxuICBsYXlvdXRJdGVtOiBMYXlvdXRJdGVtLFxuKTogTGF5b3V0SXRlbSB8IG51bGwgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5b3V0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGNvbGxpZGVzKGxheW91dFtpXSwgbGF5b3V0SXRlbSkpIHtcbiAgICAgIHJldHVybiBsYXlvdXRbaV07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsQ29sbGlzaW9ucyhcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGxheW91dEl0ZW06IExheW91dEl0ZW0sXG4pOiBMYXlvdXRJdGVtW10ge1xuICByZXR1cm4gbGF5b3V0LmZpbHRlcihsID0+IGNvbGxpZGVzKGwsIGxheW91dEl0ZW0pKTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHN0YXRpYyBlbGVtZW50cy5cbiAqIEBwYXJhbSAge0FycmF5fSBsYXlvdXQgQXJyYXkgb2YgbGF5b3V0IG9iamVjdHMuXG4gKiBAcmV0dXJuIHtBcnJheX0gICAgICAgIEFycmF5IG9mIHN0YXRpYyBsYXlvdXQgaXRlbXMuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdGljcyhsYXlvdXQ6IExheW91dCk6IExheW91dEl0ZW1bXSB7XG4gIHJldHVybiBsYXlvdXQuZmlsdGVyKGwgPT4gbC5zdGF0aWMpO1xufVxuXG4vKipcbiAqIE1vdmUgYW4gZWxlbWVudC4gUmVzcG9uc2libGUgZm9yIGRvaW5nIGNhc2NhZGluZyBtb3ZlbWVudHMgb2Ygb3RoZXIgZWxlbWVudHMuXG4gKlxuICogQHBhcmFtICB7QXJyYXl9ICAgICAgbGF5b3V0ICAgICAgICAgICAgRnVsbCBsYXlvdXQgdG8gbW9kaWZ5LlxuICogQHBhcmFtICB7TGF5b3V0SXRlbX0gbCAgICAgICAgICAgICAgICAgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtICB7TnVtYmVyfSAgICAgW3hdICAgICAgICAgICAgICAgWCBwb3NpdGlvbiBpbiBncmlkIHVuaXRzLlxuICogQHBhcmFtICB7TnVtYmVyfSAgICAgW3ldICAgICAgICAgICAgICAgWSBwb3NpdGlvbiBpbiBncmlkIHVuaXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW92ZUVsZW1lbnQoXG4gIGxheW91dDogTGF5b3V0LFxuICBsOiBMYXlvdXRJdGVtLFxuICB4OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICB5OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBpc1VzZXJBY3Rpb246IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBwcmV2ZW50Q29sbGlzaW9uOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdFR5cGU6IENvbXBhY3RUeXBlLFxuICBjb2xzOiBudW1iZXIsXG4pOiBMYXlvdXQge1xuICAvLyBJZiB0aGlzIGlzIHN0YXRpYyBhbmQgbm90IGV4cGxpY2l0bHkgZW5hYmxlZCBhcyBkcmFnZ2FibGUsXG4gIC8vIG5vIG1vdmUgaXMgcG9zc2libGUsIHNvIHdlIGNhbiBzaG9ydC1jaXJjdWl0IHRoaXMgaW1tZWRpYXRlbHkuXG4gIGlmIChsLnN0YXRpYyAmJiBsLmlzRHJhZ2dhYmxlICE9PSB0cnVlKSB7XG4gICAgcmV0dXJuIGxheW91dDtcbiAgfVxuXG4gIC8vIFNob3J0LWNpcmN1aXQgaWYgbm90aGluZyB0byBkby5cbiAgaWYgKGwueSA9PT0geSAmJiBsLnggPT09IHgpIHtcbiAgICByZXR1cm4gbGF5b3V0O1xuICB9XG5cbiAgbG9nKFxuICAgIGBNb3ZpbmcgZWxlbWVudCAke2wuaWR9IHRvIFske1N0cmluZyh4KX0sJHtTdHJpbmcoeSl9XSBmcm9tIFske2wueH0sJHtcbiAgICAgIGwueVxuICAgIH1dYCxcbiAgKTtcbiAgY29uc3Qgb2xkWCA9IGwueDtcbiAgY29uc3Qgb2xkWSA9IGwueTtcblxuICAvLyBUaGlzIGlzIHF1aXRlIGEgYml0IGZhc3RlciB0aGFuIGV4dGVuZGluZyB0aGUgb2JqZWN0XG4gIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicpIHtcbiAgICBsLnggPSB4O1xuICB9XG4gIGlmICh0eXBlb2YgeSA9PT0gJ251bWJlcicpIHtcbiAgICBsLnkgPSB5O1xuICB9XG4gIGwubW92ZWQgPSB0cnVlO1xuXG4gIC8vIElmIHRoaXMgY29sbGlkZXMgd2l0aCBhbnl0aGluZywgbW92ZSBpdC5cbiAgLy8gV2hlbiBkb2luZyB0aGlzIGNvbXBhcmlzb24sIHdlIGhhdmUgdG8gc29ydCB0aGUgaXRlbXMgd2UgY29tcGFyZSB3aXRoXG4gIC8vIHRvIGVuc3VyZSwgaW4gdGhlIGNhc2Ugb2YgbXVsdGlwbGUgY29sbGlzaW9ucywgdGhhdCB3ZSdyZSBnZXR0aW5nIHRoZVxuICAvLyBuZWFyZXN0IGNvbGxpc2lvbi5cbiAgbGV0IHNvcnRlZCA9IHNvcnRMYXlvdXRJdGVtcyhsYXlvdXQsIGNvbXBhY3RUeXBlKTtcbiAgY29uc3QgbW92aW5nVXAgPVxuICAgIGNvbXBhY3RUeXBlID09PSAndmVydGljYWwnICYmIHR5cGVvZiB5ID09PSAnbnVtYmVyJ1xuICAgICAgPyBvbGRZID49IHlcbiAgICAgIDogY29tcGFjdFR5cGUgPT09ICdob3Jpem9udGFsJyAmJiB0eXBlb2YgeCA9PT0gJ251bWJlcidcbiAgICAgID8gb2xkWCA+PSB4XG4gICAgICA6IGZhbHNlO1xuICBpZiAobW92aW5nVXApIHtcbiAgICBzb3J0ZWQgPSBzb3J0ZWQucmV2ZXJzZSgpO1xuICB9XG4gIGNvbnN0IGNvbGxpc2lvbnMgPSBnZXRBbGxDb2xsaXNpb25zKHNvcnRlZCwgbCk7XG5cbiAgLy8gVGhlcmUgd2FzIGEgY29sbGlzaW9uOyBhYm9ydFxuICBpZiAocHJldmVudENvbGxpc2lvbiAmJiBjb2xsaXNpb25zLmxlbmd0aCkge1xuICAgIGxvZyhgQ29sbGlzaW9uIHByZXZlbnRlZCBvbiAke2wuaWR9LCByZXZlcnRpbmcuYCk7XG4gICAgbC54ID0gb2xkWDtcbiAgICBsLnkgPSBvbGRZO1xuICAgIGwubW92ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gbGF5b3V0O1xuICB9XG5cbiAgLy8gTW92ZSBlYWNoIGl0ZW0gdGhhdCBjb2xsaWRlcyBhd2F5IGZyb20gdGhpcyBlbGVtZW50LlxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gY29sbGlzaW9ucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGNvbGxpc2lvbiA9IGNvbGxpc2lvbnNbaV07XG4gICAgbG9nKFxuICAgICAgYFJlc29sdmluZyBjb2xsaXNpb24gYmV0d2VlbiAke2wuaWR9IGF0IFske2wueH0sJHtsLnl9XSBhbmQgJHtjb2xsaXNpb24uaWR9IGF0IFske2NvbGxpc2lvbi54fSwke2NvbGxpc2lvbi55fV1gLFxuICAgICk7XG5cbiAgICAvLyBTaG9ydCBjaXJjdWl0IHNvIHdlIGNhbid0IGluZmluaXRlIGxvb3BcbiAgICBpZiAoY29sbGlzaW9uLm1vdmVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBEb24ndCBtb3ZlIHN0YXRpYyBpdGVtcyAtIHdlIGhhdmUgdG8gbW92ZSAqdGhpcyogZWxlbWVudCBhd2F5XG4gICAgbGF5b3V0ID0gY29sbGlzaW9uLnN0YXRpY1xuICAgICAgPyBtb3ZlRWxlbWVudEF3YXlGcm9tQ29sbGlzaW9uKFxuICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICBjb2xsaXNpb24sXG4gICAgICAgICAgbCxcbiAgICAgICAgICBpc1VzZXJBY3Rpb24sXG4gICAgICAgICAgY29tcGFjdFR5cGUsXG4gICAgICAgICAgY29scyxcbiAgICAgICAgKVxuICAgICAgOiBtb3ZlRWxlbWVudEF3YXlGcm9tQ29sbGlzaW9uKFxuICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICBsLFxuICAgICAgICAgIGNvbGxpc2lvbixcbiAgICAgICAgICBpc1VzZXJBY3Rpb24sXG4gICAgICAgICAgY29tcGFjdFR5cGUsXG4gICAgICAgICAgY29scyxcbiAgICAgICAgKTtcbiAgfVxuXG4gIHJldHVybiBsYXlvdXQ7XG59XG5cbi8qKlxuICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgbmVlZHMgdG8gaGFwcGVuIC0gZ2l2ZW4gYSBjb2xsaXNpb24sIG1vdmUgYW4gZWxlbWVudCBhd2F5IGZyb20gdGhlIGNvbGxpc2lvbi5cbiAqIFdlIGF0dGVtcHQgdG8gbW92ZSBpdCB1cCBpZiB0aGVyZSdzIHJvb20sIG90aGVyd2lzZSBpdCBnb2VzIGJlbG93LlxuICpcbiAqIEBwYXJhbSAge0FycmF5fSBsYXlvdXQgICAgICAgICAgICBGdWxsIGxheW91dCB0byBtb2RpZnkuXG4gKiBAcGFyYW0gIHtMYXlvdXRJdGVtfSBjb2xsaWRlc1dpdGggTGF5b3V0IGl0ZW0gd2UncmUgY29sbGlkaW5nIHdpdGguXG4gKiBAcGFyYW0gIHtMYXlvdXRJdGVtfSBpdGVtVG9Nb3ZlICAgTGF5b3V0IGl0ZW0gd2UncmUgbW92aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW92ZUVsZW1lbnRBd2F5RnJvbUNvbGxpc2lvbihcbiAgbGF5b3V0OiBMYXlvdXQsXG4gIGNvbGxpZGVzV2l0aDogTGF5b3V0SXRlbSxcbiAgaXRlbVRvTW92ZTogTGF5b3V0SXRlbSxcbiAgaXNVc2VyQWN0aW9uOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgY29tcGFjdFR5cGU6IENvbXBhY3RUeXBlLFxuICBjb2xzOiBudW1iZXIsXG4pOiBMYXlvdXQge1xuICBjb25zdCBjb21wYWN0SCA9IGNvbXBhY3RUeXBlID09PSAnaG9yaXpvbnRhbCc7XG4gIC8vIENvbXBhY3QgdmVydGljYWxseSBpZiBub3Qgc2V0IHRvIGhvcml6b250YWxcbiAgY29uc3QgY29tcGFjdFYgPSBjb21wYWN0VHlwZSAhPT0gJ2hvcml6b250YWwnO1xuICBjb25zdCBwcmV2ZW50Q29sbGlzaW9uID0gY29sbGlkZXNXaXRoLnN0YXRpYzsgLy8gd2UncmUgYWxyZWFkeSBjb2xsaWRpbmcgKG5vdCBmb3Igc3RhdGljIGl0ZW1zKVxuXG4gIC8vIElmIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBhYm92ZSB0aGUgY29sbGlzaW9uIHRvIHB1dCB0aGlzIGVsZW1lbnQsIG1vdmUgaXQgdGhlcmUuXG4gIC8vIFdlIG9ubHkgZG8gdGhpcyBvbiB0aGUgbWFpbiBjb2xsaXNpb24gYXMgdGhpcyBjYW4gZ2V0IGZ1bmt5IGluIGNhc2NhZGVzIGFuZCBjYXVzZVxuICAvLyB1bndhbnRlZCBzd2FwcGluZyBiZWhhdmlvci5cbiAgaWYgKGlzVXNlckFjdGlvbikge1xuICAgIC8vIFJlc2V0IGlzVXNlckFjdGlvbiBmbGFnIGJlY2F1c2Ugd2UncmUgbm90IGluIHRoZSBtYWluIGNvbGxpc2lvbiBhbnltb3JlLlxuICAgIGlzVXNlckFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gTWFrZSBhIG1vY2sgaXRlbSBzbyB3ZSBkb24ndCBtb2RpZnkgdGhlIGl0ZW0gaGVyZSwgb25seSBtb2RpZnkgaW4gbW92ZUVsZW1lbnQuXG4gICAgY29uc3QgZmFrZUl0ZW06IExheW91dEl0ZW0gPSB7XG4gICAgICB4OiBjb21wYWN0SCA/IE1hdGgubWF4KGNvbGxpZGVzV2l0aC54IC0gaXRlbVRvTW92ZS53LCAwKSA6IGl0ZW1Ub01vdmUueCxcbiAgICAgIHk6IGNvbXBhY3RWID8gTWF0aC5tYXgoY29sbGlkZXNXaXRoLnkgLSBpdGVtVG9Nb3ZlLmgsIDApIDogaXRlbVRvTW92ZS55LFxuICAgICAgdzogaXRlbVRvTW92ZS53LFxuICAgICAgaDogaXRlbVRvTW92ZS5oLFxuICAgICAgaWQ6ICctMScsXG4gICAgfTtcblxuICAgIC8vIE5vIGNvbGxpc2lvbj8gSWYgc28sIHdlIGNhbiBnbyB1cCB0aGVyZTsgb3RoZXJ3aXNlLCB3ZSdsbCBlbmQgdXAgbW92aW5nIGRvd24gYXMgbm9ybWFsXG4gICAgaWYgKCFnZXRGaXJzdENvbGxpc2lvbihsYXlvdXQsIGZha2VJdGVtKSkge1xuICAgICAgbG9nKFxuICAgICAgICBgRG9pbmcgcmV2ZXJzZSBjb2xsaXNpb24gb24gJHtpdGVtVG9Nb3ZlLmlkfSB1cCB0byBbJHtmYWtlSXRlbS54fSwke2Zha2VJdGVtLnl9XS5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBtb3ZlRWxlbWVudChcbiAgICAgICAgbGF5b3V0LFxuICAgICAgICBpdGVtVG9Nb3ZlLFxuICAgICAgICBjb21wYWN0SCA/IGZha2VJdGVtLnggOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbXBhY3RWID8gZmFrZUl0ZW0ueSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaXNVc2VyQWN0aW9uLFxuICAgICAgICBwcmV2ZW50Q29sbGlzaW9uLFxuICAgICAgICBjb21wYWN0VHlwZSxcbiAgICAgICAgY29scyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1vdmVFbGVtZW50KFxuICAgIGxheW91dCxcbiAgICBpdGVtVG9Nb3ZlLFxuICAgIGNvbXBhY3RIID8gaXRlbVRvTW92ZS54ICsgMSA6IHVuZGVmaW5lZCxcbiAgICBjb21wYWN0ViA/IGl0ZW1Ub01vdmUueSArIDEgOiB1bmRlZmluZWQsXG4gICAgaXNVc2VyQWN0aW9uLFxuICAgIHByZXZlbnRDb2xsaXNpb24sXG4gICAgY29tcGFjdFR5cGUsXG4gICAgY29scyxcbiAgKTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdG8gY29udmVydCBhIG51bWJlciB0byBhIHBlcmNlbnRhZ2Ugc3RyaW5nLlxuICpcbiAqIEBwYXJhbSAge051bWJlcn0gbnVtIEFueSBudW1iZXJcbiAqIEByZXR1cm4ge1N0cmluZ30gICAgIFRoYXQgbnVtYmVyIGFzIGEgcGVyY2VudGFnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlcmNlbnQobnVtOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gbnVtICogMTAwICsgJyUnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNmb3JtKHsgdG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0IH06IFBvc2l0aW9uKTogT2JqZWN0IHtcbiAgLy8gUmVwbGFjZSB1bml0LWxlc3MgaXRlbXMgd2l0aCBweFxuICBjb25zdCB0cmFuc2xhdGUgPSBgdHJhbnNsYXRlKCR7bGVmdH1weCwke3RvcH1weClgO1xuICByZXR1cm4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIFdlYmtpdFRyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIE1velRyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIG1zVHJhbnNmb3JtOiB0cmFuc2xhdGUsXG4gICAgT1RyYW5zZm9ybTogdHJhbnNsYXRlLFxuICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXG4gICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VG9wTGVmdCh7IHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCB9OiBQb3NpdGlvbik6IE9iamVjdCB7XG4gIHJldHVybiB7XG4gICAgdG9wOiBgJHt0b3B9cHhgLFxuICAgIGxlZnQ6IGAke2xlZnR9cHhgLFxuICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXG4gICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB9O1xufVxuXG4vKipcbiAqIEdldCBsYXlvdXQgaXRlbXMgc29ydGVkIGZyb20gdG9wIGxlZnQgdG8gcmlnaHQgYW5kIGRvd24uXG4gKlxuICogQHJldHVybiB7QXJyYXl9IEFycmF5IG9mIGxheW91dCBvYmplY3RzLlxuICogQHJldHVybiB7QXJyYXl9ICAgICAgICBMYXlvdXQsIHNvcnRlZCBzdGF0aWMgaXRlbXMgZmlyc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0TGF5b3V0SXRlbXMoXG4gIGxheW91dDogTGF5b3V0LFxuICBjb21wYWN0VHlwZTogQ29tcGFjdFR5cGUsXG4pOiBMYXlvdXQge1xuICBpZiAoY29tcGFjdFR5cGUgPT09ICdob3Jpem9udGFsJykge1xuICAgIHJldHVybiBzb3J0TGF5b3V0SXRlbXNCeUNvbFJvdyhsYXlvdXQpO1xuICB9XG4gIHJldHVybiBzb3J0TGF5b3V0SXRlbXNCeVJvd0NvbChsYXlvdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydExheW91dEl0ZW1zQnlSb3dDb2wobGF5b3V0OiBMYXlvdXQpOiBMYXlvdXQge1xuICByZXR1cm4gKFtdIGFzIGFueVtdKS5jb25jYXQobGF5b3V0KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgaWYgKGEueSA+IGIueSB8fCAoYS55ID09PSBiLnkgJiYgYS54ID4gYi54KSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGlmIChhLnkgPT09IGIueSAmJiBhLnggPT09IGIueCkge1xuICAgICAgLy8gV2l0aG91dCB0aGlzLCB3ZSBjYW4gZ2V0IGRpZmZlcmVudCBzb3J0IHJlc3VsdHMgaW4gSUUgdnMuIENocm9tZS9GRlxuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0TGF5b3V0SXRlbXNCeUNvbFJvdyhsYXlvdXQ6IExheW91dCk6IExheW91dCB7XG4gIHJldHVybiAoW10gYXMgYW55W10pLmNvbmNhdChsYXlvdXQpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICBpZiAoYS54ID4gYi54IHx8IChhLnggPT09IGIueCAmJiBhLnkgPiBiLnkpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9KTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGxheW91dC4gVGhyb3dzIGVycm9ycy5cbiAqXG4gKiBAcGFyYW0gIHtBcnJheX0gIGxheW91dCAgICAgICAgQXJyYXkgb2YgbGF5b3V0IGl0ZW1zLlxuICogQHBhcmFtICB7U3RyaW5nfSBbY29udGV4dE5hbWVdIENvbnRleHQgbmFtZSBmb3IgZXJyb3JzLlxuICogQHRocm93ICB7RXJyb3J9ICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxheW91dChsYXlvdXQ6IExheW91dCwgY29udGV4dE5hbWUgPSAnTGF5b3V0Jyk6IHZvaWQge1xuICBjb25zdCBzdWJQcm9wcyA9IFsneCcsICd5JywgJ3cnLCAnaCddO1xuICBpZiAoIUFycmF5LmlzQXJyYXkobGF5b3V0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoY29udGV4dE5hbWUgKyAnIG11c3QgYmUgYW4gYXJyYXkhJyk7XG4gIH1cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxheW91dC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGl0ZW0gPSBsYXlvdXRbaV07XG4gICAgZm9yIChjb25zdCBzdWJQcm9wIG9mIHN1YlByb3BzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAodHlwZW9mIGl0ZW1bc3ViUHJvcF0gIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgJ1JlYWN0R3JpZExheW91dDogJyArXG4gICAgICAgICAgICBjb250ZXh0TmFtZSArXG4gICAgICAgICAgICAnWycgK1xuICAgICAgICAgICAgaSArXG4gICAgICAgICAgICAnXS4nICtcbiAgICAgICAgICAgIHN1YlByb3AgK1xuICAgICAgICAgICAgJyBtdXN0IGJlIGEgbnVtYmVyIScsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpdGVtLmlkICYmIHR5cGVvZiBpdGVtLmlkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVhY3RHcmlkTGF5b3V0OiAnICsgY29udGV4dE5hbWUgKyAnWycgKyBpICsgJ10uaSBtdXN0IGJlIGEgc3RyaW5nIScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoaXRlbS5zdGF0aWMgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgaXRlbS5zdGF0aWMgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVhY3RHcmlkTGF5b3V0OiAnICtcbiAgICAgICAgICBjb250ZXh0TmFtZSArXG4gICAgICAgICAgJ1snICtcbiAgICAgICAgICBpICtcbiAgICAgICAgICAnXS5zdGF0aWMgbXVzdCBiZSBhIGJvb2xlYW4hJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIEZsb3cgY2FuJ3QgcmVhbGx5IGZpZ3VyZSB0aGlzIG91dCwgc28gd2UganVzdCB1c2UgT2JqZWN0XG5leHBvcnQgZnVuY3Rpb24gYXV0b0JpbmRIYW5kbGVycyhlbDogT2JqZWN0LCBmbnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgZm5zLmZvckVhY2goa2V5ID0+IChlbFtrZXldID0gZWxba2V5XS5iaW5kKGVsKSkpO1xufVxuXG5mdW5jdGlvbiBsb2coLi4uYXJnczogdW5rbm93bltdKSB7XG4gIGlmICghREVCVUcpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5sb2coLi4uYXJncyk7XG59XG4iXX0=
|