{ "version": 3, "sources": ["../../../_sentry-release-injection-stub", "../../../node_modules/highcharts/highcharts.js", "../../../node_modules/bootstrap/js/src/util/index.js", "../../../node_modules/bootstrap/js/src/dom/event-handler.js", "../../../node_modules/bootstrap/js/src/dom/selector-engine.js", "../../../node_modules/bootstrap/js/src/dom/data.js", "../../../node_modules/bootstrap/js/src/dom/manipulator.js", "../../../node_modules/bootstrap/js/src/util/config.js", "../../../node_modules/bootstrap/js/src/base-component.js", "../../../node_modules/bootstrap/js/src/scrollspy.js", "../../../node_modules/clipboard/dist/clipboard.js", "../../../node_modules/bootstrap/js/src/util/component-functions.js", "../../../node_modules/bootstrap/js/src/toast.js", "../../../node_modules/bootstrap/js/src/util/focustrap.js", "../../../node_modules/bootstrap/js/src/util/scrollbar.js", "../../../node_modules/bootstrap/js/src/util/backdrop.js", "../../../node_modules/bootstrap/js/src/modal.js", "../../../node_modules/@stripe/stripe-js/dist/pure.js", "../../../node_modules/@stripe/stripe-js/pure/index.js", "../../javascript/application.ts", "sentry-module-metadata-stub:_sentry-module-metadata-injection-stub?sentry-module-id=9b2f7979-d6d6-4922-b337-1173cd355d28", "../../javascript/application.ts", "../../javascript/helpers/set_tz_cookie.ts", "../../../node_modules/js-cookie/dist/js.cookie.mjs", "../../javascript/helpers/sentry.ts", "../../../node_modules/@sentry/browser/build/npm/esm/index.js", "../../../node_modules/@sentry/core/build/esm/index.js", "../../../node_modules/@sentry/core/src/debug-build.ts", "../../../node_modules/@sentry/core/src/utils-hoist/worldwide.ts", "../../../node_modules/@sentry/core/src/utils-hoist/debug-build.ts", "../../../node_modules/@sentry/core/src/utils-hoist/version.ts", "../../../node_modules/@sentry/core/src/carrier.ts", "../../../node_modules/@sentry/core/src/utils-hoist/logger.ts", "../../../node_modules/@sentry/core/src/utils-hoist/stacktrace.ts", "../../../node_modules/@sentry/core/src/utils-hoist/instrument/handlers.ts", "../../../node_modules/@sentry/core/src/utils-hoist/instrument/globalError.ts", "../../../node_modules/@sentry/core/src/utils-hoist/instrument/globalUnhandledRejection.ts", "../../../node_modules/@sentry/core/src/utils-hoist/time.ts", "../../../node_modules/@sentry/core/src/utils-hoist/is.ts", "../../../node_modules/@sentry/core/src/utils-hoist/browser.ts", "../../../node_modules/@sentry/core/src/utils-hoist/string.ts", "../../../node_modules/@sentry/core/src/utils-hoist/object.ts", "../../../node_modules/@sentry/core/src/utils-hoist/misc.ts", "../../../node_modules/@sentry/core/src/utils-hoist/syncpromise.ts", "../../../node_modules/@sentry/core/src/session.ts", "../../../node_modules/@sentry/core/src/utils-hoist/propagationContext.ts", "../../../node_modules/@sentry/core/src/utils/merge.ts", "../../../node_modules/@sentry/core/src/utils/spanOnScope.ts", "../../../node_modules/@sentry/core/src/scope.ts", "../../../node_modules/@sentry/core/src/defaultScopes.ts", "../../../node_modules/@sentry/core/src/asyncContext/stackStrategy.ts", "../../../node_modules/@sentry/core/src/asyncContext/index.ts", "../../../node_modules/@sentry/core/src/currentScopes.ts", "../../../node_modules/@sentry/core/src/semanticAttributes.ts", "../../../node_modules/@sentry/core/src/tracing/utils.ts", "../../../node_modules/@sentry/core/src/utils/parseSampleRate.ts", "../../../node_modules/@sentry/core/src/utils-hoist/baggage.ts", "../../../node_modules/@sentry/core/src/utils/spanUtils.ts", "../../../node_modules/@sentry/core/src/utils/hasSpansEnabled.ts", "../../../node_modules/@sentry/core/src/constants.ts", "../../../node_modules/@sentry/core/src/tracing/dynamicSamplingContext.ts", "../../../node_modules/@sentry/core/src/utils-hoist/dsn.ts", "../../../node_modules/@sentry/core/src/utils-hoist/normalize.ts", "../../../node_modules/@sentry/core/src/utils-hoist/envelope.ts", "../../../node_modules/@sentry/core/src/envelope.ts", "../../../node_modules/@sentry/core/src/eventProcessors.ts", "../../../node_modules/@sentry/core/src/utils-hoist/debug-ids.ts", "../../../node_modules/@sentry/core/src/utils/applyScopeDataToEvent.ts", "../../../node_modules/@sentry/core/src/utils/prepareEvent.ts", "../../../node_modules/@sentry/core/src/exports.ts", "../../../node_modules/@sentry/core/src/api.ts", "../../../node_modules/@sentry/core/src/integration.ts", "../../../node_modules/@sentry/core/src/utils-hoist/clientreport.ts", "../../../node_modules/@sentry/core/src/utils/eventUtils.ts", "../../../node_modules/@sentry/core/src/utils/transactionEvent.ts", "../../../node_modules/@sentry/core/src/client.ts", "../../../node_modules/@sentry/core/src/logs/envelope.ts", "../../../node_modules/@sentry/core/src/logs/exports.ts", "../../../node_modules/@sentry/core/src/sdk.ts", "../../../node_modules/@sentry/core/src/utils-hoist/promisebuffer.ts", "../../../node_modules/@sentry/core/src/utils-hoist/ratelimit.ts", "../../../node_modules/@sentry/core/src/transports/base.ts", "../../../node_modules/@sentry/core/src/utils/ipAddress.ts", "../../../node_modules/@sentry/core/src/utils/sdkMetadata.ts", "../../../node_modules/@sentry/core/src/breadcrumbs.ts", "../../../node_modules/@sentry/core/src/integrations/functiontostring.ts", "../../../node_modules/@sentry/core/src/integrations/eventFilters.ts", "../../../node_modules/@sentry/core/src/utils-hoist/aggregate-errors.ts", "../../../node_modules/@sentry/core/src/metadata.ts", "../../../node_modules/@sentry/core/src/utils-hoist/instrument/console.ts", "../../../node_modules/@sentry/core/src/utils-hoist/severity.ts", "../../../node_modules/@sentry/core/src/integrations/dedupe.ts", "../../../node_modules/@sentry/core/src/integrations/third-party-errors-filter.ts", "../../../node_modules/@sentry/core/src/utils-hoist/url.ts", "../../../node_modules/@sentry/core/src/utils-hoist/breadcrumb-log-level.ts", "../../../node_modules/@sentry/core/src/utils-hoist/supports.ts", "../../../node_modules/@sentry/core/src/utils-hoist/instrument/fetch.ts", "../../../node_modules/@sentry/core/src/utils-hoist/env.ts", "../../../node_modules/@sentry/browser/src/helpers.ts", "../../../node_modules/@sentry/browser/src/eventbuilder.ts", "../../../node_modules/@sentry/browser/src/client.ts", "../../../node_modules/@sentry-internal/browser-utils/build/esm/index.js", "../../../node_modules/@sentry-internal/browser-utils/src/debug-build.ts", "../../../node_modules/@sentry-internal/browser-utils/src/types.ts", "../../../node_modules/@sentry-internal/browser-utils/src/instrument/dom.ts", "../../../node_modules/@sentry-internal/browser-utils/src/instrument/history.ts", "../../../node_modules/@sentry-internal/browser-utils/src/getNativeImplementation.ts", "../../../node_modules/@sentry-internal/browser-utils/src/instrument/xhr.ts", "../../../node_modules/@sentry/browser/src/transports/fetch.ts", "../../../node_modules/@sentry/browser/src/stack-parsers.ts", "../../../node_modules/@sentry/browser/src/debug-build.ts", "../../../node_modules/@sentry/browser/src/integrations/breadcrumbs.ts", "../../../node_modules/@sentry/browser/src/integrations/browserapierrors.ts", "../../../node_modules/@sentry/browser/src/integrations/browsersession.ts", "../../../node_modules/@sentry/browser/src/integrations/globalhandlers.ts", "../../../node_modules/@sentry/browser/src/integrations/httpcontext.ts", "../../../node_modules/@sentry/browser/src/integrations/linkederrors.ts", "../../../node_modules/@sentry/browser/src/sdk.ts", "../../javascript/helpers/error.ts", "../../javascript/helpers/setup_highcharts.ts", "../../../node_modules/color/index.js", "../../../node_modules/color-string/index.js", "../../../node_modules/color-name/index.js", "../../../node_modules/color-convert/index.js", "../../../node_modules/color-convert/conversions.js", "../../../node_modules/color-convert/route.js", "../../javascript/helpers/util.ts", "../../javascript/helpers/stimulus.ts", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/index.ts", "rails:/app/app/javascript/controllers/*_controller.ts", "../../javascript/controllers/application_controller.ts", "../../../node_modules/lodash-es/lodash.js", "../../../node_modules/lodash-es/isSymbol.js", "../../../node_modules/lodash-es/_baseGetTag.js", "../../../node_modules/lodash-es/_Symbol.js", "../../../node_modules/lodash-es/_root.js", "../../../node_modules/lodash-es/_freeGlobal.js", "../../../node_modules/lodash-es/_getRawTag.js", "../../../node_modules/lodash-es/_objectToString.js", "../../../node_modules/lodash-es/isObjectLike.js", "../../../node_modules/lodash-es/_baseToString.js", "../../../node_modules/lodash-es/_arrayMap.js", "../../../node_modules/lodash-es/isArray.js", "../../../node_modules/lodash-es/toNumber.js", "../../../node_modules/lodash-es/_baseTrim.js", "../../../node_modules/lodash-es/_trimmedEndIndex.js", "../../../node_modules/lodash-es/isObject.js", "../../../node_modules/lodash-es/_WeakMap.js", "../../../node_modules/lodash-es/_getNative.js", "../../../node_modules/lodash-es/_baseIsNative.js", "../../../node_modules/lodash-es/isFunction.js", "../../../node_modules/lodash-es/_isMasked.js", "../../../node_modules/lodash-es/_coreJsData.js", "../../../node_modules/lodash-es/_toSource.js", "../../../node_modules/lodash-es/_getValue.js", "../../../node_modules/lodash-es/_isIndex.js", "../../../node_modules/lodash-es/isArrayLike.js", "../../../node_modules/lodash-es/isLength.js", "../../../node_modules/lodash-es/_isPrototype.js", "../../../node_modules/lodash-es/keys.js", "../../../node_modules/lodash-es/_arrayLikeKeys.js", "../../../node_modules/lodash-es/_baseTimes.js", "../../../node_modules/lodash-es/isArguments.js", "../../../node_modules/lodash-es/_baseIsArguments.js", "../../../node_modules/lodash-es/isBuffer.js", "../../../node_modules/lodash-es/stubFalse.js", "../../../node_modules/lodash-es/isTypedArray.js", "../../../node_modules/lodash-es/_baseIsTypedArray.js", "../../../node_modules/lodash-es/_baseUnary.js", "../../../node_modules/lodash-es/_nodeUtil.js", "../../../node_modules/lodash-es/_baseKeys.js", "../../../node_modules/lodash-es/_nativeKeys.js", "../../../node_modules/lodash-es/_overArg.js", "../../../node_modules/lodash-es/_Map.js", "../../../node_modules/lodash-es/toString.js", "../../../node_modules/lodash-es/camelCase.js", "../../../node_modules/lodash-es/capitalize.js", "../../../node_modules/lodash-es/upperFirst.js", "../../../node_modules/lodash-es/_createCaseFirst.js", "../../../node_modules/lodash-es/_castSlice.js", "../../../node_modules/lodash-es/_baseSlice.js", "../../../node_modules/lodash-es/_hasUnicode.js", "../../../node_modules/lodash-es/_stringToArray.js", "../../../node_modules/lodash-es/_asciiToArray.js", "../../../node_modules/lodash-es/_unicodeToArray.js", "../../../node_modules/lodash-es/_createCompounder.js", "../../../node_modules/lodash-es/_arrayReduce.js", "../../../node_modules/lodash-es/deburr.js", "../../../node_modules/lodash-es/_deburrLetter.js", "../../../node_modules/lodash-es/_basePropertyOf.js", "../../../node_modules/lodash-es/words.js", "../../../node_modules/lodash-es/_asciiWords.js", "../../../node_modules/lodash-es/_hasUnicodeWord.js", "../../../node_modules/lodash-es/_unicodeWords.js", "../../../node_modules/lodash-es/_getTag.js", "../../../node_modules/lodash-es/_DataView.js", "../../../node_modules/lodash-es/_Promise.js", "../../../node_modules/lodash-es/_Set.js", "../../../node_modules/lodash-es/_mapToArray.js", "../../../node_modules/lodash-es/debounce.js", "../../../node_modules/lodash-es/now.js", "../../../node_modules/lodash-es/toPairs.js", "../../../node_modules/lodash-es/_createToPairs.js", "../../../node_modules/lodash-es/_baseToPairs.js", "../../../node_modules/lodash-es/_setToPairs.js", "../../../node_modules/lodash-es/fromPairs.js", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/array-values.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/inheritable-statics.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/object-properties.ts", "../../../node_modules/@vytant/stimulus-decorators/src/decorators/typed-controller.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/capitalize.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/add-class.ts", "../../../node_modules/@vytant/stimulus-decorators/src/decorators/class.ts", "../../../node_modules/@vytant/stimulus-decorators/src/constants/property-suffixes.ts", "../../../node_modules/@vytant/stimulus-decorators/src/decorators/classes.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/add-target.ts", "../../../node_modules/@vytant/stimulus-decorators/src/decorators/target.ts", "../../../node_modules/@vytant/stimulus-decorators/src/decorators/targets.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/metadata.ts", "../../../node_modules/@vytant/stimulus-decorators/src/decorators/value.ts", "../../../node_modules/@vytant/stimulus-decorators/src/utilities/add-value.ts", "../../javascript/helpers/dom.ts", "../../javascript/controllers/article_controller.ts", "../../javascript/controllers/chart_with_annotations_controller.ts", "../../javascript/controllers/highcharts_controller.ts", "../../javascript/helpers/highcharts_options/column.ts", "../../javascript/helpers/highcharts_options/lineseries.ts", "../../javascript/helpers/highcharts_options/sparkarea.ts", "../../javascript/controllers/clipboard_controller.ts", "../../javascript/controllers/toast_controller.ts", "../../javascript/controllers/combined_input_controller.ts", "../../javascript/controllers/date_picker_controller.ts", "../../../node_modules/flatpickr/dist/esm/index.js", "../../../node_modules/flatpickr/dist/esm/types/options.js", "../../../node_modules/flatpickr/dist/esm/l10n/default.js", "../../../node_modules/flatpickr/dist/esm/utils/index.js", "../../../node_modules/flatpickr/dist/esm/utils/dom.js", "../../../node_modules/flatpickr/dist/esm/utils/dates.js", "../../../node_modules/flatpickr/dist/esm/utils/formatting.js", "../../../node_modules/flatpickr/dist/esm/utils/polyfills.js", "../../../node_modules/date-fns/constructFrom.js", "../../../node_modules/date-fns/constants.js", "../../../node_modules/date-fns/toDate.js", "../../../node_modules/date-fns/getISOWeekYear.js", "../../../node_modules/date-fns/startOfISOWeek.js", "../../../node_modules/date-fns/startOfWeek.js", "../../../node_modules/date-fns/_lib/defaultOptions.js", "../../../node_modules/date-fns/differenceInCalendarDays.js", "../../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js", "../../../node_modules/date-fns/_lib/normalizeDates.js", "../../../node_modules/date-fns/startOfDay.js", "../../../node_modules/date-fns/startOfISOWeekYear.js", "../../../node_modules/date-fns/compareAsc.js", "../../../node_modules/date-fns/constructNow.js", "../../../node_modules/date-fns/isValid.js", "../../../node_modules/date-fns/isDate.js", "../../../node_modules/date-fns/differenceInCalendarMonths.js", "../../../node_modules/date-fns/_lib/getRoundingMethod.js", "../../../node_modules/date-fns/differenceInMilliseconds.js", "../../../node_modules/date-fns/differenceInMonths.js", "../../../node_modules/date-fns/isLastDayOfMonth.js", "../../../node_modules/date-fns/endOfDay.js", "../../../node_modules/date-fns/endOfMonth.js", "../../../node_modules/date-fns/differenceInSeconds.js", "../../../node_modules/date-fns/startOfYear.js", "../../../node_modules/date-fns/format.js", "../../../node_modules/date-fns/_lib/defaultLocale.js", "../../../node_modules/date-fns/locale/en-US.js", "../../../node_modules/date-fns/locale/en-US/_lib/formatDistance.js", "../../../node_modules/date-fns/locale/en-US/_lib/formatLong.js", "../../../node_modules/date-fns/locale/_lib/buildFormatLongFn.js", "../../../node_modules/date-fns/locale/en-US/_lib/formatRelative.js", "../../../node_modules/date-fns/locale/en-US/_lib/localize.js", "../../../node_modules/date-fns/locale/_lib/buildLocalizeFn.js", "../../../node_modules/date-fns/locale/en-US/_lib/match.js", "../../../node_modules/date-fns/locale/_lib/buildMatchFn.js", "../../../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js", "../../../node_modules/date-fns/_lib/format/formatters.js", "../../../node_modules/date-fns/getDayOfYear.js", "../../../node_modules/date-fns/getISOWeek.js", "../../../node_modules/date-fns/getWeek.js", "../../../node_modules/date-fns/startOfWeekYear.js", "../../../node_modules/date-fns/getWeekYear.js", "../../../node_modules/date-fns/_lib/addLeadingZeros.js", "../../../node_modules/date-fns/_lib/format/lightFormatters.js", "../../../node_modules/date-fns/_lib/format/longFormatters.js", "../../../node_modules/date-fns/_lib/protectedTokens.js", "../../../node_modules/date-fns/formatDistance.js", "../../../node_modules/date-fns/formatDistanceToNow.js", "../../../node_modules/date-fns/getDefaultOptions.js", "../../../node_modules/date-fns/parseISO.js", "../../javascript/controllers/dropdown_menu_controller.ts", "../../javascript/helpers/float.ts", "../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", "../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs", "../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", "../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../javascript/controllers/date_range_filter_controller.ts", "../../javascript/controllers/display_controller.ts", "../../javascript/controllers/dropdown_controller.ts", "../../javascript/controllers/editor_controller.ts", "../../../node_modules/@tiptap/pm/state/dist/index.js", "../../../node_modules/prosemirror-state/dist/index.js", "../../../node_modules/prosemirror-model/dist/index.js", "../../../node_modules/orderedmap/dist/index.js", "../../../node_modules/prosemirror-transform/dist/index.js", "../../../node_modules/@tiptap/pm/view/dist/index.js", "../../../node_modules/prosemirror-view/dist/index.js", "../../../node_modules/@tiptap/pm/keymap/dist/index.js", "../../../node_modules/prosemirror-keymap/dist/index.js", "../../../node_modules/w3c-keyname/index.js", "../../../node_modules/@tiptap/pm/model/dist/index.js", "../../../node_modules/@tiptap/pm/transform/dist/index.js", "../../../node_modules/@tiptap/pm/commands/dist/index.js", "../../../node_modules/prosemirror-commands/dist/index.js", "../../../node_modules/@tiptap/pm/schema-list/dist/index.js", "../../../node_modules/prosemirror-schema-list/dist/index.js", "../../../node_modules/@tiptap/core/src/helpers/createChainableState.ts", "../../../node_modules/@tiptap/core/src/CommandManager.ts", "../../../node_modules/@tiptap/core/src/EventEmitter.ts", "../../../node_modules/@tiptap/core/src/helpers/getExtensionField.ts", "../../../node_modules/@tiptap/core/src/helpers/splitExtensions.ts", "../../../node_modules/@tiptap/core/src/helpers/getAttributesFromExtensions.ts", "../../../node_modules/@tiptap/core/src/helpers/getNodeType.ts", "../../../node_modules/@tiptap/core/src/utilities/mergeAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/getRenderedAttributes.ts", "../../../node_modules/@tiptap/core/src/utilities/isFunction.ts", "../../../node_modules/@tiptap/core/src/utilities/callOrReturn.ts", "../../../node_modules/@tiptap/core/src/utilities/isEmptyObject.ts", "../../../node_modules/@tiptap/core/src/utilities/fromString.ts", "../../../node_modules/@tiptap/core/src/helpers/injectExtensionAttributesToParseRule.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchemaByResolvedExtensions.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchemaTypeByName.ts", "../../../node_modules/@tiptap/core/src/helpers/isExtensionRulesEnabled.ts", "../../../node_modules/@tiptap/core/src/helpers/getHTMLFromFragment.ts", "../../../node_modules/@tiptap/core/src/helpers/getTextContentFromNodes.ts", "../../../node_modules/@tiptap/core/src/utilities/isRegExp.ts", "../../../node_modules/@tiptap/core/src/InputRule.ts", "../../../node_modules/@tiptap/core/src/utilities/isPlainObject.ts", "../../../node_modules/@tiptap/core/src/utilities/mergeDeep.ts", "../../../node_modules/@tiptap/core/src/Mark.ts", "../../../node_modules/@tiptap/core/src/utilities/isNumber.ts", "../../../node_modules/@tiptap/core/src/PasteRule.ts", "../../../node_modules/@tiptap/core/src/utilities/findDuplicates.ts", "../../../node_modules/@tiptap/core/src/ExtensionManager.ts", "../../../node_modules/@tiptap/core/src/Extension.ts", "../../../node_modules/@tiptap/core/src/helpers/getTextBetween.ts", "../../../node_modules/@tiptap/core/src/helpers/getTextSerializersFromSchema.ts", "../../../node_modules/@tiptap/core/src/extensions/clipboardTextSerializer.ts", "../../../node_modules/@tiptap/core/src/commands/blur.ts", "../../../node_modules/@tiptap/core/src/commands/clearContent.ts", "../../../node_modules/@tiptap/core/src/commands/clearNodes.ts", "../../../node_modules/@tiptap/core/src/commands/command.ts", "../../../node_modules/@tiptap/core/src/commands/createParagraphNear.ts", "../../../node_modules/@tiptap/core/src/commands/cut.ts", "../../../node_modules/@tiptap/core/src/commands/deleteCurrentNode.ts", "../../../node_modules/@tiptap/core/src/commands/deleteNode.ts", "../../../node_modules/@tiptap/core/src/commands/deleteRange.ts", "../../../node_modules/@tiptap/core/src/commands/deleteSelection.ts", "../../../node_modules/@tiptap/core/src/commands/enter.ts", "../../../node_modules/@tiptap/core/src/commands/exitCode.ts", "../../../node_modules/@tiptap/core/src/utilities/objectIncludes.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarkRange.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarkType.ts", "../../../node_modules/@tiptap/core/src/commands/extendMarkRange.ts", "../../../node_modules/@tiptap/core/src/commands/first.ts", "../../../node_modules/@tiptap/core/src/helpers/isTextSelection.ts", "../../../node_modules/@tiptap/core/src/utilities/minMax.ts", "../../../node_modules/@tiptap/core/src/helpers/resolveFocusPosition.ts", "../../../node_modules/@tiptap/core/src/utilities/isAndroid.ts", "../../../node_modules/@tiptap/core/src/utilities/isiOS.ts", "../../../node_modules/@tiptap/core/src/commands/focus.ts", "../../../node_modules/@tiptap/core/src/commands/forEach.ts", "../../../node_modules/@tiptap/core/src/commands/insertContent.ts", "../../../node_modules/@tiptap/core/src/utilities/elementFromString.ts", "../../../node_modules/@tiptap/core/src/helpers/createNodeFromContent.ts", "../../../node_modules/@tiptap/core/src/helpers/selectionToInsertionEnd.ts", "../../../node_modules/@tiptap/core/src/commands/insertContentAt.ts", "../../../node_modules/@tiptap/core/src/commands/join.ts", "../../../node_modules/@tiptap/core/src/commands/joinItemBackward.ts", "../../../node_modules/@tiptap/core/src/commands/joinItemForward.ts", "../../../node_modules/@tiptap/core/src/commands/joinTextblockBackward.ts", "../../../node_modules/@tiptap/core/src/commands/joinTextblockForward.ts", "../../../node_modules/@tiptap/core/src/utilities/isMacOS.ts", "../../../node_modules/@tiptap/core/src/commands/keyboardShortcut.ts", "../../../node_modules/@tiptap/core/src/helpers/isNodeActive.ts", "../../../node_modules/@tiptap/core/src/commands/lift.ts", "../../../node_modules/@tiptap/core/src/commands/liftEmptyBlock.ts", "../../../node_modules/@tiptap/core/src/commands/liftListItem.ts", "../../../node_modules/@tiptap/core/src/commands/newlineInCode.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchemaTypeNameByName.ts", "../../../node_modules/@tiptap/core/src/utilities/deleteProps.ts", "../../../node_modules/@tiptap/core/src/commands/resetAttributes.ts", "../../../node_modules/@tiptap/core/src/commands/scrollIntoView.ts", "../../../node_modules/@tiptap/core/src/commands/selectAll.ts", "../../../node_modules/@tiptap/core/src/commands/selectNodeBackward.ts", "../../../node_modules/@tiptap/core/src/commands/selectNodeForward.ts", "../../../node_modules/@tiptap/core/src/commands/selectParentNode.ts", "../../../node_modules/@tiptap/core/src/commands/selectTextblockEnd.ts", "../../../node_modules/@tiptap/core/src/commands/selectTextblockStart.ts", "../../../node_modules/@tiptap/core/src/helpers/createDocument.ts", "../../../node_modules/@tiptap/core/src/commands/setContent.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarkAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/combineTransactionSteps.ts", "../../../node_modules/@tiptap/core/src/helpers/defaultBlockAt.ts", "../../../node_modules/@tiptap/core/src/helpers/findChildren.ts", "../../../node_modules/@tiptap/core/src/helpers/findChildrenInRange.ts", "../../../node_modules/@tiptap/core/src/helpers/findParentNodeClosestToPos.ts", "../../../node_modules/@tiptap/core/src/helpers/findParentNode.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchema.ts", "../../../node_modules/@tiptap/core/src/helpers/generateHTML.ts", "../../../node_modules/@tiptap/core/src/helpers/generateJSON.ts", "../../../node_modules/@tiptap/core/src/helpers/getText.ts", "../../../node_modules/@tiptap/core/src/helpers/generateText.ts", "../../../node_modules/@tiptap/core/src/helpers/getNodeAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/getAttributes.ts", "../../../node_modules/@tiptap/core/src/utilities/removeDuplicates.ts", "../../../node_modules/@tiptap/core/src/helpers/getChangedRanges.ts", "../../../node_modules/@tiptap/core/src/helpers/getDebugJSON.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarksBetween.ts", "../../../node_modules/@tiptap/core/src/helpers/getNodeAtPosition.ts", "../../../node_modules/@tiptap/core/src/helpers/getSplittedAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/isMarkActive.ts", "../../../node_modules/@tiptap/core/src/helpers/isActive.ts", "../../../node_modules/@tiptap/core/src/helpers/isAtEndOfNode.ts", "../../../node_modules/@tiptap/core/src/helpers/isAtStartOfNode.ts", "../../../node_modules/@tiptap/core/src/helpers/isList.ts", "../../../node_modules/@tiptap/core/src/helpers/isNodeEmpty.ts", "../../../node_modules/@tiptap/core/src/helpers/isNodeSelection.ts", "../../../node_modules/@tiptap/core/src/helpers/posToDOMRect.ts", "../../../node_modules/@tiptap/core/src/helpers/rewriteUnknownContent.ts", "../../../node_modules/@tiptap/core/src/commands/setMark.ts", "../../../node_modules/@tiptap/core/src/commands/setMeta.ts", "../../../node_modules/@tiptap/core/src/commands/setNode.ts", "../../../node_modules/@tiptap/core/src/commands/setNodeSelection.ts", "../../../node_modules/@tiptap/core/src/commands/setTextSelection.ts", "../../../node_modules/@tiptap/core/src/commands/sinkListItem.ts", "../../../node_modules/@tiptap/core/src/commands/splitBlock.ts", "../../../node_modules/@tiptap/core/src/commands/splitListItem.ts", "../../../node_modules/@tiptap/core/src/commands/toggleList.ts", "../../../node_modules/@tiptap/core/src/commands/toggleMark.ts", "../../../node_modules/@tiptap/core/src/commands/toggleNode.ts", "../../../node_modules/@tiptap/core/src/commands/toggleWrap.ts", "../../../node_modules/@tiptap/core/src/commands/undoInputRule.ts", "../../../node_modules/@tiptap/core/src/commands/unsetAllMarks.ts", "../../../node_modules/@tiptap/core/src/commands/unsetMark.ts", "../../../node_modules/@tiptap/core/src/commands/updateAttributes.ts", "../../../node_modules/@tiptap/core/src/commands/wrapIn.ts", "../../../node_modules/@tiptap/core/src/commands/wrapInList.ts", "../../../node_modules/@tiptap/core/src/extensions/commands.ts", "../../../node_modules/@tiptap/core/src/extensions/drop.ts", "../../../node_modules/@tiptap/core/src/extensions/editable.ts", "../../../node_modules/@tiptap/core/src/extensions/focusEvents.ts", "../../../node_modules/@tiptap/core/src/extensions/keymap.ts", "../../../node_modules/@tiptap/core/src/extensions/paste.ts", "../../../node_modules/@tiptap/core/src/extensions/tabindex.ts", "../../../node_modules/@tiptap/core/src/NodePos.ts", "../../../node_modules/@tiptap/core/src/style.ts", "../../../node_modules/@tiptap/core/src/utilities/createStyleTag.ts", "../../../node_modules/@tiptap/core/src/Editor.ts", "../../../node_modules/@tiptap/core/src/inputRules/markInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/nodeInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/textblockTypeInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/textInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/wrappingInputRule.ts", "../../../node_modules/@tiptap/core/src/Node.ts", "../../../node_modules/@tiptap/core/src/NodeView.ts", "../../../node_modules/@tiptap/core/src/pasteRules/markPasteRule.ts", "../../../node_modules/@tiptap/core/src/utilities/escapeForRegEx.ts", "../../../node_modules/@tiptap/core/src/utilities/isString.ts", "../../../node_modules/@tiptap/core/src/pasteRules/nodePasteRule.ts", "../../../node_modules/@tiptap/core/src/pasteRules/textPasteRule.ts", "../../../node_modules/@tiptap/core/src/Tracker.ts", "../../javascript/wysiwyg_extensions/regex_highlighting.ts", "../../javascript/controllers/wysiwyg_controller.ts", "../../../node_modules/@tiptap/extension-blockquote/src/blockquote.ts", "../../../node_modules/@tiptap/extension-bold/src/bold.ts", "../../../node_modules/@tiptap/extension-bullet-list/src/bullet-list.ts", "../../../node_modules/@tiptap/extension-code/src/code.ts", "../../../node_modules/@tiptap/extension-code-block/src/code-block.ts", "../../../node_modules/@tiptap/extension-document/src/document.ts", "../../../node_modules/@tiptap/extension-hard-break/src/hard-break.ts", "../../../node_modules/@tiptap/extension-heading/src/heading.ts", "../../../node_modules/@tiptap/pm/history/dist/index.js", "../../../node_modules/prosemirror-history/dist/index.js", "../../../node_modules/rope-sequence/dist/index.js", "../../../node_modules/@tiptap/extension-history/src/history.ts", "../../../node_modules/@tiptap/extension-italic/src/italic.ts", "../../../node_modules/linkifyjs/dist/linkify.es.js", "../../../node_modules/@tiptap/extension-link/src/helpers/autolink.ts", "../../../node_modules/@tiptap/extension-link/src/helpers/clickHandler.ts", "../../../node_modules/@tiptap/extension-link/src/helpers/pasteHandler.ts", "../../../node_modules/@tiptap/extension-link/src/link.ts", "../../../node_modules/@tiptap/extension-list-item/src/list-item.ts", "../../../node_modules/@tiptap/extension-ordered-list/src/ordered-list.ts", "../../../node_modules/@tiptap/extension-paragraph/src/paragraph.ts", "../../../node_modules/@tiptap/extension-placeholder/src/placeholder.ts", "../../../node_modules/@tiptap/extension-text/src/text.ts", "../../../node_modules/@tiptap/extension-underline/src/underline.ts", "../../../node_modules/@tiptap/extension-typography/src/typography.ts", "../../javascript/wysiwyg_extensions/blurred_selection.ts", "../../javascript/wysiwyg_extensions/extra_commands.ts", "../../javascript/controllers/sortable_controller.ts", "../../javascript/controllers/sortable_item_controller.ts", "../../javascript/controllers/form_controller.ts", "../../javascript/controllers/submit_controller.ts", "../../javascript/helpers/handle_error.ts", "../../javascript/controllers/frame_controller.ts", "../../../node_modules/morphdom/dist/morphdom-esm.js", "../../javascript/controllers/instant_search_controller.ts", "../../javascript/controllers/line_numbered_fields_controller.ts", "../../javascript/controllers/modal_controller.ts", "../../javascript/controllers/tooltip_controller.ts", "../../javascript/controllers/multiselect_controller.ts", "../../javascript/controllers/xhr_controller.ts", "../../javascript/controllers/recaptcha_controller.ts", "../../javascript/controllers/scope_locations_to_country_controller.ts", "../../javascript/controllers/select_box_controller.ts", "../../javascript/controllers/stripe_embedded_form_controller.ts", "../../javascript/controllers/tab_controller.ts", "../../javascript/controllers/tab_pane_controller.ts", "../../javascript/controllers/table_scroll_controller.ts", "../../javascript/controllers/tag_manager_controller.ts", "../../javascript/controllers/tag_toggle_controller.ts", "../../javascript/controllers/term_map_controller.ts", "../../javascript/controllers/time_ago_converter_controller.ts", "../../javascript/controllers/time_converter_controller.ts", "../../../node_modules/date-fns-tz/dist/esm/index.js", "../../../node_modules/date-fns-tz/dist/esm/format/index.js", "../../../node_modules/date-fns-tz/dist/esm/format/formatters/index.js", "../../../node_modules/date-fns-tz/dist/esm/_lib/tzIntlTimeZoneName/index.js", "../../../node_modules/date-fns-tz/dist/esm/_lib/tzParseTimezone/index.js", "../../../node_modules/date-fns-tz/dist/esm/_lib/tzTokenizeDate/index.js", "../../../node_modules/date-fns-tz/dist/esm/_lib/newDateUTC/index.js", "../../../node_modules/date-fns-tz/dist/esm/toDate/index.js", "../../../node_modules/date-fns-tz/dist/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../node_modules/date-fns-tz/dist/esm/_lib/tzPattern/index.js", "../../../node_modules/date-fns-tz/dist/esm/formatInTimeZone/index.js", "../../../node_modules/date-fns-tz/dist/esm/toZonedTime/index.js", "../../../node_modules/date-fns-tz/dist/esm/fromZonedTime/index.js", "../../../node_modules/date-fns-tz/dist/esm/getTimezoneOffset/index.js"], "sourcesContent": ["{\n let _global =\n typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ?\n global :\n typeof globalThis !== 'undefined' ?\n globalThis :\n typeof self !== 'undefined' ?\n self :\n {};\n\n _global.SENTRY_RELEASE={id:\"d3dd880252ef2a4dc25fbd984482aec3ba50e580\"};}", "!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):\"function\"==typeof define&&define.amd?define(\"highcharts/highcharts\",[],e):\"object\"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}(\"undefined\"==typeof window?this:window,()=>(()=>{\"use strict\";let t,e;var i,s,o,r,a,n,h,l,d,c,p,g,u,f,m,x,y,b,v={};v.d=(t,e)=>{for(var i in e)v.o(e,i)&&!v.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},v.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var k={};v.d(k,{default:()=>lE}),function(t){t.SVG_NS=\"http://www.w3.org/2000/svg\",t.product=\"Highcharts\",t.version=\"12.2.0\",t.win=\"undefined\"!=typeof window?window:{},t.doc=t.win.document,t.svg=!!t.doc?.createElementNS?.(t.SVG_NS,\"svg\")?.createSVGRect,t.pageLang=t.doc?.documentElement?.closest(\"[lang]\")?.lang,t.userAgent=t.win.navigator?.userAgent||\"\",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf(\"Firefox\"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf(\"Safari\"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf(\"AppleWebKit\"),t.deg2rad=2*Math.PI/360,t.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},\"passive\",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener(\"testPassive\",t.noop,i),t.win.removeEventListener(\"testPassive\",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(i||(i={}));let w=i,{charts:M,doc:S,win:T}=w;function C(t,e,i,s){let o=e?\"Highcharts error\":\"Highcharts warning\";32===t&&(t=`${o}: Deprecated member`);let r=D(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t=\"\";r&&(a+=\"?\"),j(s,function(e,i){t+=`\n - ${i}: ${e}`,r&&(a+=encodeURI(i)+\"=\"+encodeURI(e))}),a+=t}U(w,\"displayError\",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);T.console&&-1===C.messages.indexOf(a)&&console.warn(a)}),C.messages.push(a)}function A(t,e){return parseInt(t,e||10)}function P(t){return\"string\"==typeof t}function L(t){let e=Object.prototype.toString.call(t);return\"[object Array]\"===e||\"[object Array Iterator]\"===e}function O(t,e){return!!t&&\"object\"==typeof t&&(!e||!L(t))}function E(t){return O(t)&&\"number\"==typeof t.nodeType}function I(t){let e=t?.constructor;return!!(O(t,!0)&&!E(t)&&e?.name&&\"Object\"!==e.name)}function D(t){return\"number\"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function B(t){return null!=t}function N(t,e,i){let s,o=P(e)&&!B(i),r=(e,i)=>{B(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||\"class\"!==i||(s=t.getAttribute(i+\"Name\")):t.removeAttribute(i)};return P(e)?r(i,e):j(e,r),s}function z(t){return L(t)?t:[t]}function R(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function W(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(C||(C={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let G=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i,s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let $=function(){let e=Math.random().toString(36).substring(2,9)+\"-\",i=0;return function(){return\"highcharts-\"+(t?\"\":e)+i++}}();T.jQuery&&(T.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new w[P(t[0])?t.shift():\"Chart\"](this[0],t[0],t[1]),this):M[N(this[0],\"data-highcharts-chart\")]});let V={addEvent:function(t,e,i,s={}){let o=\"function\"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,\"hcEvents\")||(o.hcEvents={});let r=o.hcEvents;w.Point&&t instanceof w.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!w.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf(\"touch\"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:\"number\"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){Y(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=z(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r,a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,\"padding-left\",!0)||0)-(t(e,\"padding-right\",!0)||0))}if(\"height\"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,\"padding-top\",!0)||0)-(t(e,\"padding-bottom\",!0)||0));let r=T.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),W(s,\"opacity\"!==i)&&(o=A(o))),o},insertItem:function(t,e){let i,s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return X(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:j,offset:function(t){let e=S.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(T.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(T.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace(\"-\",\"\").length).join(i||\"0\")+t},pick:W,pInt:A,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:Y,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:z,stableSort:function(t,e){let i,s,o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return P(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:$,useSerialIds:function(e){return t=W(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{pageLang:Z,win:_}=w,{defined:q,error:K,extend:J,isNumber:Q,isObject:tt,isString:te,merge:ti,objectEach:ts,pad:to,splat:tr,timeUnits:ta,ucfirst:tn}=V,th=w.isSafari&&_.Intl&&!_.Intl.DateTimeFormat.prototype.formatRange,tl=t=>void 0===t.main,td=class{constructor(t,e){this.options={timezone:\"UTC\"},this.variableTimezone=!1,this.Date=_.Date,this.update(t),this.lang=e}update(t={}){this.dTLCache={},this.options=t=ti(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||_.Date||Date;let s=t.timezone;q(i)&&(s=i?\"UTC\":void 0),e&&e%60==0&&(s=\"Etc/GMT\"+(e>0?\"+\":\"\")+e/60),this.variableTimezone=\"UTC\"!==s&&s?.indexOf(\"Etc/GMT\")!==0,this.timezone=s,[\"months\",\"shortMonths\",\"weekdays\",\"shortWeekdays\"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:\"UTC\"};s[e?\"month\":\"weekday\"]=i?\"short\":\"long\",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:\"narrow\",day:\"numeric\",month:\"numeric\",year:\"numeric\",hour:\"numeric\",minute:\"numeric\",second:\"numeric\"},t,\"es\").split(/(?:, | |\\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,\"DLMXJVS\".indexOf(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale||Z){let s=JSON.stringify(t)+i;te(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(K(34),t.timeZone=\"UTC\",o=new Intl.DateTimeFormat(i,t)):K(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||\"\"}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:\"2-digit\"},M:{minute:\"numeric\"},H:{hour:\"2-digit\"},k:{hour:\"numeric\"},E:{weekday:\"narrow\"},a:{weekday:\"short\"},A:{weekday:\"long\"},d:{day:\"2-digit\"},e:{day:\"numeric\"},b:{month:\"short\"},B:{month:\"long\"},m:{month:\"2-digit\"},o:{month:\"numeric\"},y:{year:\"2-digit\"},Y:{year:\"numeric\"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&J(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if(\"UTC\"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||th||(n-=36e5)}}return n}parse(t){if(!te(t))return t??void 0;let e=(t=t.replace(/\\//g,\"-\").replace(/(GMT|UTC)/,\"\")).indexOf(\"Z\")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(t);e||i||(t+=\"Z\");let s=Date.parse(t);if(Q(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if(\"UTC\"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:\"shortOffset\"},t,\"en\").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(Q(a))return a}return 0}dateFormat(t,e,i){let s=this.lang;if(!q(e)||isNaN(e))return s?.invalidDate||\"\";if(te(t=t??\"%Y-%m-%d %H:%M:%S\")){let i,o=/%\\[([a-zA-Z]+)\\]/g;for(;i=o.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e,s?.locale))}if(te(t)&&-1!==t.indexOf(\"%\")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,u=s?.months||this.months,f=s?.shortMonths||this.shortMonths;ts(J({a:g?g[c]:p[c].substr(0,3),A:p[c],d:to(a),e:to(a,2,\" \"),w:c,v:s?.weekFrom??\"\",b:f[r],B:u[r],m:to(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:to(n),k:n,I:to(n%12||12),l:n%12||12,M:to(h),p:n<12?\"AM\":\"PM\",P:n<12?\"am\":\"pm\",S:to(l),L:to(d,3)},w.dateFormats),function(s,o){if(te(t))for(;-1!==t.indexOf(\"%\"+o);)t=t.replace(\"%\"+o,\"function\"==typeof s?s.call(i,e):s)})}else if(tt(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||\"Etc/GMT\"+(i>=0?\"+\":\"\")+i,{prefix:o=\"\",suffix:r=\"\"}=t;t=o+this.dateTimeFormat(J({timeZone:s},t),e)+r}return i?tn(t):t}resolveDTLFormat(t){return tt(t,!0)?tt(t,!0)&&tl(t)?{main:t}:t:{main:(t=tr(t))[0],from:t[1],to:t[2]}}getDateFormat(t,e,i,s){let o=this.dateFormat(\"%m-%d %H:%M:%S.%L\",e),r=\"01-01 00:00:00.000\",a={millisecond:15,second:12,minute:9,hour:6,day:3},n=\"millisecond\",h=n;for(n in ta){if(t&&t===ta.week&&+this.dateFormat(\"%w\",e)===i&&o.substr(6)===r.substr(6)){n=\"week\";break}if(t&&ta[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;\"week\"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{defined:tc,extend:tp,timeUnits:tg}=V,tu=class extends td{getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,g,u]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),tc(e)){if(f=h>=tg.second?0:n*Math.floor(f/n),h>=tg.second&&(u=h>=tg.minute?0:n*Math.floor(u/n)),h>=tg.minute&&(g=h>=tg.hour?0:n*Math.floor(g/n)),h>=tg.hour&&(p=h>=tg.day?0:n*Math.floor(p/n)),h>=tg.day&&(c=h>=tg.month?1:Math.max(1,n*Math.floor(c/n))),h>=tg.month&&(d=h>=tg.year?0:n*Math.floor(d/n)),h>=tg.year&&(l-=l%n),h===tg.week){n&&(e=o.makeTime(l,d,c,p,g,u,f));let t=this.dateTimeFormat({timeZone:this.timezone,weekday:\"narrow\"},e,\"es\"),i=\"DLMXJVS\".indexOf(t);c+=-i+s+(i4*tg.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=tg.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&\"000000000\"===o.dateFormat(\"%H%M%S%L\",t)&&(a[t]=\"day\")})}return r.info=tp(t,{higherRanks:a,totalRange:h*n}),r}},{isTouchDevice:tf}=w,{fireEvent:tm,merge:tx}=V,ty={colors:[\"#2caffe\",\"#544fc5\",\"#00e272\",\"#fe6a35\",\"#6b8abc\",\"#d568fb\",\"#2ee0ca\",\"#fa4b42\",\"#feb56a\",\"#91e8e1\"],symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{weekFrom:\"week from\",chartTitle:\"Chart title\",locale:void 0,loading:\"Loading...\",months:void 0,seriesName:\"Series {add index 1}\",shortMonths:void 0,weekdays:void 0,numericSymbols:[\"k\",\"M\",\"G\",\"T\",\"P\",\"E\"],pieSliceName:\"Slice\",resetZoom:\"Reset zoom\",yAxisTitle:\"Values\",resetZoomTitle:\"Reset zoom level 1:1\"},global:{buttonTheme:{fill:\"#f7f7f7\",padding:8,r:2,stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",fontWeight:\"normal\"},states:{hover:{fill:\"#e6e6e6\"},select:{fill:\"#e6e9ff\",style:{color:\"#000000\",fontWeight:\"bold\"}},disabled:{style:{color:\"#cccccc\"}}}}},time:{Date:void 0,timezone:\"UTC\",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:\"x\"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:\"line\",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}}},width:null,height:null,borderColor:\"#334eff\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{style:{color:\"#333333\",fontWeight:\"bold\"},text:\"Chart title\",margin:15,minScale:.67},subtitle:{style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\"},caption:{margin:15,style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},legend:{enabled:!0,align:\"center\",alignColumns:!0,className:\"highcharts-no-tooltip\",events:{},layout:\"horizontal\",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{style:{fontSize:\"0.8em\"},activeColor:\"#0022ff\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",textDecoration:\"none\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#666666\",textDecoration:\"line-through\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontSize:\"0.8em\",fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:\"%[AebHMSL]\",second:\"%[AebHMS]\",minute:\"%[AebHM]\",hour:\"%[AebHM]\",day:\"%[AebY]\",week:\"%v %[AebY]\",month:\"%[BY]\",year:\"%Y\"},footerFormat:\"\",headerShape:\"callout\",hideDelay:500,padding:8,position:{x:0,y:3},shared:!1,snap:tf?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:'\u25CF {series.name}: {point.y}
',backgroundColor:\"#ffffff\",borderWidth:void 0,stickOnContact:!1,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"0.6em\"},text:\"Highcharts.com\"}},tb=new tu(ty.time,ty.lang),tv={defaultOptions:ty,defaultTime:tb,getOptions:function(){return ty},setOptions:function(t){return tm(w,\"setOptions\",{options:t}),tx(!0,ty,t),t.time&&tb.update(ty.time),t.lang&&\"locale\"in t.lang&&tb.update({locale:t.lang.locale}),t.lang?.chartTitle&&(ty.title={...ty.title,text:t.lang.chartTitle}),ty}},{win:tk}=w,{isNumber:tw,isString:tM,merge:tS,pInt:tT,defined:tC}=V,tA=(t,e,i)=>`color-mix(in srgb,${t},${e} ${100*i}%)`,tP=t=>tM(t)&&!!t&&\"none\"!==t;class tL{static parse(t){return t?new tL(t):tL.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=w.Color;if(r&&r!==tL)return new r(t);if(\"object\"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tL(t[1]));else if(\"string\"==typeof t)for(this.input=t=tL.names[t.toLowerCase()]||t,s=tL.parsers.length;s--&&!i;)(e=(o=tL.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if(this.output)return this.output;if(\"object\"==typeof e&&void 0!==this.stops){let i=tS(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tw(i[0])?\"rgb\"!==t&&(t||1!==i[3])?\"a\"===t?`${i[3]}`:\"rgba(\"+i.join(\",\")+\")\":\"rgb(\"+i[0]+\",\"+i[1]+\",\"+i[2]+\")\":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tw(t)&&0!==t){if(tw(e[0]))for(let i=0;i<3;i++)e[i]+=tT(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else tL.useColorMix&&tP(this.input)&&(this.output=tA(this.input,t>0?\"white\":\"black\",Math.abs(t)))}return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tw(i[0])||!tw(s[0]))return tL.useColorMix&&tP(this.input)&&tP(t.input)&&e<.99?tA(this.input,t.input,e):t.input||\"none\";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?\"rgba(\":\"rgb(\")+a.join(\",\")+\")\"}}tL.names={white:\"#ffffff\",black:\"#000000\"},tL.parsers=[{regex:/rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d?(?:\\.\\d+)?)\\s*\\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tT(t[1]+t[1],16),tT(t[2]+t[2],16),tT(t[3]+t[3],16),tC(t[4])?tT(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tT(t[1],16),tT(t[2],16),tT(t[3],16),tC(t[4])?tT(t[4],16)/255:1]}}],tL.useColorMix=tk.CSS?.supports(\"color\",\"color-mix(in srgb,red,blue 9%)\"),tL.None=new tL(\"\");let{parse:tO}=tL,{win:tE}=w,{isNumber:tI,objectEach:tD}=V;class tB{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t?.[0],i=t?.[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tD(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,g=e?.slice();if(!g||h)return[r,r];function u(t,e){for(;t.length{let i=tj(t.options.animation);r=tH(e)&&tN(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tG(t,e.options.chart.animation,!0)},stop:tY},{SVG_NS:t$,win:tV}=w,{attr:tZ,createElement:t_,css:tq,error:tK,isFunction:tJ,isString:tQ,objectEach:t0,splat:t1}=V,{trustedTypes:t2}=tV,t3=t2&&tJ(t2.createPolicy)&&t2.createPolicy(\"highcharts\",{createHTML:t=>t}),t5=t3?t3.createHTML(\"\"):\"\";class t6{static filterUserAttributes(t){return t0(t,(e,i)=>{let s=!0;-1===t6.allowedAttributes.indexOf(i)&&(s=!1),-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\"].indexOf(i)&&(s=tQ(e)&&t6.allowedReferences.some(t=>0===e.indexOf(t))),s||(tK(33,!1,void 0,{\"Invalid attribute in config\":`${i}`}),delete t[i]),tQ(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(\":\").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(\":\")),t},{})}static setElementHTML(t,e){t.innerHTML=t6.emptyHTML,e&&new t6(e).addToDOM(t)}constructor(t){this.nodes=\"string\"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t1(e).forEach(function(e){let o,r=e.tagName,a=e.textContent?w.doc.createTextNode(e.textContent):void 0,n=t6.bypassHTMLFiltering;if(r){if(\"#text\"===r)o=a;else if(-1!==t6.allowedTags.indexOf(r)||n){let s=\"svg\"===r?t$:i.namespaceURI||t$,h=w.doc.createElementNS(s,r),l=e.attributes||{};t0(e,function(t,e){\"tagName\"!==e&&\"attributes\"!==e&&\"children\"!==e&&\"style\"!==e&&\"textContent\"!==e&&(l[e]=t)}),tZ(h,n?l:t6.filterUserAttributes(l)),e.style&&tq(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tK(33,!1,void 0,{\"Invalid tagName in config\":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e,i=[];t=t.trim().replace(/ style=([\"'])/g,\" data-style=$1\");try{e=new DOMParser().parseFromString(t3?t3.createHTML(t):t,\"text/html\")}catch(t){}if(!e){let i=t_(\"div\");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};\"#text\"===i&&(o.textContent=t.textContent||\"\");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{\"data-style\"===e.name?o.style=t6.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t6.allowedAttributes=[\"alt\",\"aria-controls\",\"aria-describedby\",\"aria-expanded\",\"aria-haspopup\",\"aria-hidden\",\"aria-label\",\"aria-labelledby\",\"aria-live\",\"aria-pressed\",\"aria-readonly\",\"aria-roledescription\",\"aria-selected\",\"class\",\"clip-path\",\"color\",\"colspan\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"disabled\",\"fill\",\"filterUnits\",\"flood-color\",\"flood-opacity\",\"height\",\"href\",\"id\",\"in\",\"in2\",\"markerHeight\",\"markerWidth\",\"offset\",\"opacity\",\"operator\",\"orient\",\"padding\",\"paddingLeft\",\"paddingRight\",\"patternUnits\",\"r\",\"radius\",\"refX\",\"refY\",\"role\",\"scope\",\"slope\",\"src\",\"startOffset\",\"stdDeviation\",\"stroke\",\"stroke-linecap\",\"stroke-width\",\"style\",\"tableValues\",\"result\",\"rowspan\",\"summary\",\"target\",\"tabindex\",\"text-align\",\"text-anchor\",\"textAnchor\",\"textLength\",\"title\",\"type\",\"valign\",\"width\",\"x\",\"x1\",\"x2\",\"xlink:href\",\"y\",\"y1\",\"y2\",\"zIndex\"],t6.allowedReferences=[\"https://\",\"http://\",\"mailto:\",\"/\",\"../\",\"./\",\"#\"],t6.allowedTags=[\"a\",\"abbr\",\"b\",\"br\",\"button\",\"caption\",\"circle\",\"clipPath\",\"code\",\"dd\",\"defs\",\"div\",\"dl\",\"dt\",\"em\",\"feComponentTransfer\",\"feComposite\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feMorphology\",\"feOffset\",\"feMerge\",\"feMergeNode\",\"filter\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"li\",\"linearGradient\",\"marker\",\"ol\",\"p\",\"path\",\"pattern\",\"pre\",\"rect\",\"small\",\"span\",\"stop\",\"strong\",\"style\",\"sub\",\"sup\",\"svg\",\"table\",\"text\",\"textPath\",\"thead\",\"title\",\"tbody\",\"tspan\",\"td\",\"th\",\"tr\",\"u\",\"ul\",\"#text\"],t6.emptyHTML=t5,t6.bypassHTMLFiltering=!1;let{defaultOptions:t9,defaultTime:t4}=tv,{pageLang:t8}=w,{extend:t7,getNestedProperty:et,isArray:ee,isNumber:ei,isObject:es,isString:eo,pick:er,ucfirst:ea}=V,en={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:\"\",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!ee(t)&&t.map((i,s)=>ed(e.body,t7(es(i)?i:{\"@this\":i},{\"@index\":s,\"@first\":0===s,\"@last\":s===t.length-1}))).join(\"\")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:ea,unless:t=>!t},eh={},el=t=>/^[\"'].+[\"']$/.test(t);function ed(t=\"\",e,i){let s=/\\{([a-zA-Z\\u00C0-\\u017F\\d:\\.,;\\-\\/<>\\[\\]%_@+\"'\u2019= #\\(\\)]+)\\}/g,o=/\\(([a-zA-Z\\u00C0-\\u017F\\d:\\.,;\\-\\/<>\\[\\]%_@+\"'= ]+)\\)/g,r=[],a=/f$/,n=/\\.(\\d)/,h=i?.options?.lang||t9.lang,l=i?.time||t4,d=i?.numberFormatter||ec,c=(t=\"\")=>{let i;return\"true\"===t||\"false\"!==t&&((i=Number(t)).toString()===t?i:el(t)?t.slice(1,-1):et(t,e))},p,g,u=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),g?.isBlock||(g={ctx:e,expression:p[1],find:p[0],isBlock:\"#\"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(g.isBlock?i:p)[1].split(\" \")[0].replace(\"#\",\"\");en[a]&&(g.isBlock&&a===g.fn&&u++,g.fn||(g.fn=a));let n=\"else\"===p[1];if(g.isBlock&&g.fn&&(p[1]===`/${g.fn}`||n)){if(u)!n&&u--;else{let e=g.startInner,i=t.substr(e,p.index-e);void 0===g.body?(g.body=i,g.startInner=p.index+p[0].length):g.elseBody=i,g.find+=i+p[0],n||(r.push(g),g=void 0)}}else g.isBlock||r.push(g);if(s&&!g?.isBlock)break}return r.forEach(s=>{let r,p,{body:g,elseBody:u,expression:f,fn:m}=s;if(m){let t=[s],o=[],a=f.length,n=0,h;for(p=0;p<=a;p++){let t=f.charAt(p);h||'\"'!==t&&\"'\"!==t?h===t&&(h=\"\"):h=t,h||\" \"!==t&&p!==a||(o.push(f.substr(n,p-n)),n=p+1)}for(p=en[m].length;p--;)t.unshift(c(o[p+1]));r=en[m].apply(e,t),s.isBlock&&\"boolean\"==typeof r&&(r=ed(r?g:u,e,i))}else{let t=el(f)?[f]:f.split(\":\");if(r=c(t.shift()||\"\"),t.length&&\"number\"==typeof r){let e=t.join(\":\");if(a.test(e)){let t=parseInt((e.match(n)||[\"\",\"-1\"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(\",\")>-1?h.thousandsSep:\"\"))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&eo(r)&&(r=`\"${r}\"`)}t=t.replace(s.find,er(r,\"\"))}),f?ed(t,e,i):t}function ec(t,e,i,s){e*=1;let o,r,[a,n]=(t=+t||0).toString().split(\"e\").map(Number),h=this?.options?.lang||t9.lang,l=(t.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):ei(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split(\"e\")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),ei(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),\"\"===s&&(c.useGrouping=!1);let p=s||i,g=p?\"en\":this?.locale||h.locale||t8,u=JSON.stringify(c)+g;return o=(eh[u]??(eh[u]=new Intl.NumberFormat(g,c))).format(t),p&&(o=o.replace(/([,\\.])/g,\"_$1\").replace(/_\\,/g,s??\",\").replace(\"_.\",i??\".\")),(e||0!=+o)&&(!(n<0)||d)||(o=\"0\"),n&&0!=+o&&(o+=\"e\"+(n<0?\"\":\"+\")+n),o}let ep={dateFormat:function(t,e,i){return t4.dateFormat(t,e,i)},format:ed,helpers:en,numberFormat:ec};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,w.Renderer=s)}}(s||(s={}));let eg=s,{clamp:eu,pick:ef,pushUnique:em,stableSort:ex}=V;(o||(o={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,g,u=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(ex(e,(t,e)=>(e.rank||0)-(t.rank||0)),g=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?g:h-1;g&&x>r;)f=e[c=Math.floor(p)],em(l,c)&&(x-=f.size),p+=g,y&&p>=e.length&&(g/=2,p=g);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(ex(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:ef(t.align,.5)}));u;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=eu(m-f.size*f.align,0,i-f.size);for(c=e.length,u=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),u=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),ex(o,a),o};let ey=o,{animate:eb,animObject:ev,stop:ek}=tU,{deg2rad:ew,doc:eM,svg:eS,SVG_NS:eT,win:eC,isFirefox:eA}=w,{addEvent:eP,attr:eL,createElement:eO,crisp:eE,css:eI,defined:eD,erase:eB,extend:eN,fireEvent:ez,getAlignFactor:eR,isArray:eW,isFunction:eH,isNumber:eF,isObject:eX,isString:eG,merge:ej,objectEach:eY,pick:eU,pInt:e$,pushUnique:eV,replaceNested:eZ,syncTimeout:e_,uniqueKey:eq}=V;class eK{_defaultGetter(t){let e=eU(this[t+\"Value\"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\\d\\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&\"text\"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?\"\":this.attr(\"class\")||\"\";return(t=(t||\"\").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(\" \"))!==i&&this.attr(\"class\",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let n=!i||eG(i)?i||\"renderer\":void 0;n&&(a&&eV(r,this),i=void 0);let h=eU(i,o[n],o),l=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*eR(t.align),d=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*eR(t.verticalAlign),c={\"text-align\":t?.align};return c[e?\"translateX\":\"x\"]=Math.round(l),c[e?\"translateY\":\"y\"]=Math.round(d),s&&(this[this.placed?\"animate\":\"attr\"](c),this.placed=!0),this.alignAttr=c,this}alignSetter(t){let e={left:\"start\",center:\"middle\",right:\"end\"};e[t]&&(this.alignValue=t,this.element.setAttribute(\"text-anchor\",e[t]))}animate(t,e,i){let s=ev(eU(e,this.renderer.globalAnimation,!0)),o=s.defer;return eM.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),e_(()=>{this.element&&eb(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eY(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf(\"contrast\")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.indexOf(\" \"),s=t.substring(i+1),o=t.substring(0,i);if(o&&\"none\"!==o&&w.svg){this.fakeTS=!0,o=o.replace(/(^[\\d\\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=eM.createElementNS(eT,\"tspan\");eL(t,{class:\"highcharts-text-outline\",fill:s,stroke:s,\"stroke-width\":o,\"stroke-linejoin\":\"round\"});let i=e.querySelector(\"textPath\")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&[\"fill\",\"stroke\",\"stroke-width\",\"stroke\"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll(\"text tspan\"),t=>{r+=Number(t.getAttribute(\"dy\"))});let a=eM.createElementNS(eT,\"tspan\");a.textContent=\"\u200B\",eL(a,{x:Number(e.getAttribute(\"x\")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eK.symbolCustomAttribs,a,n,h=this,l;return\"string\"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),\"string\"==typeof t?h=(this[t+\"Getter\"]||this._defaultGetter).call(this,t,o):(eY(t,function(e,i){l=!1,s||ek(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&(\"x\"===i||\"y\"===i)&&(this.doTransform=!0),l||(this[i+\"Setter\"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eq()+\"-\",i=this.renderer.createElement(\"clipPath\").attr({id:e}).add(this.renderer.defs);eN(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr(\"clip-path\",t?`url(${this.renderer.url}#${t.id})`:\"none\")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eE(i,e),n=eE(s,e);return eN(t,{x:a,y:n,width:eE(o,e)-a,height:eE(r,e)-n}),eD(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,g,u=[],f;ez(this.renderer,\"complexColor\",{args:arguments},function(){if(t.radialGradient?r=\"radialGradient\":t.linearGradient&&(r=\"linearGradient\"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eW(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:\"userSpaceOnUse\"}),\"radialGradient\"===r&&p&&!eD(a.gradientUnits)&&(n=a,a=ej(a,s.getRadialAttr(p,n),{gradientUnits:\"userSpaceOnUse\"})),eY(a,function(t,e){\"id\"!==e&&u.push(e,t)}),eY(l,function(t){u.push(t)}),h[u=u.join(\",\")])g=h[u].attr(\"id\");else{a.id=g=eq();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf(\"rgba\")?(d=(o=tL.parse(e[1])).get(\"rgb\"),c=o.get(\"a\")):(d=e[1],c=1);let i=s.createElement(\"stop\").attr({offset:e[0],\"stop-color\":d,\"stop-opacity\":c}).add(t);t.stops.push(i)})}f=\"url(\"+s.url+\"#\"+g+\")\",i.setAttribute(e,f),i.gradient=u,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eY(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eN(e,i)),null===t.width||\"auto\"===t.width?delete this.textWidth:\"text\"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=e$(t.width)),eN(this.styles,t),o&&!eS&&this.renderer.forExport&&delete t.width;let r=eA&&t.fontSize||null;r&&(eF(r)||/^\\d+$/.test(r))&&(t.fontSize+=\"px\");let a=ej(t);s.namespaceURI===this.SVG_NS&&([\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color,delete a.color)),eI(s,a)}return this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this[\"stroke-width\"];if(\"inherit\"===i&&(i=1),t){let s=(t=t.toLowerCase()).replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(e=s.length;e--;)s[e]=\"\"+e$(s[e])*eU(i,NaN);t=s.join(\",\").replace(/NaN/g,\"none\"),this.element.setAttribute(\"stroke-dasharray\",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o=\"SPAN\"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ek(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(t){t.getAttribute(\"clip-path\").indexOf(e.element.id)>-1&&t.removeAttribute(\"clip-path\")}),t.clipPath=e.destroy()}if(t.stops){for(a=0;a{(t[i]?.parentGroup===t||-1!==[\"connector\",\"foreignObject\"].indexOf(i))&&t[i]?.destroy?.(),delete t[i]})}dSetter(t,e,i){eW(t)&&(\"string\"==typeof t[0]&&(t=this.renderer.pathToSegments(t)),this.pathArray=t,t=t.reduce((t,e,i)=>e?.join?(i?t+\" \":\"\")+e.join(\" \"):(e||\"\").toString(),\"\")),/(NaN| {2}|^$)/.test(t)&&(t=\"M 0 0\"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){\"string\"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS(\"http://www.w3.org/1999/xlink\",e,t)}getBBox(t,e){let i,s,o,r,{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,g=n.namespaceURI===this.SVG_NS,u=eU(e,this.rotation,0),f=h.styledMode?n&&eK.prototype.getStyle.call(n,\"font-size\"):l.fontSize;if(eD(d)&&(-1===(r=d.toString()).indexOf(\"<\")&&(r=r.replace(/\\d/g,\"0\")),r+=[\"\",h.rootFontSize,f,u,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(\",\")),r&&!t&&(i=c[r]),!i||i.polygon){if(g||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(\".highcharts-text-outline\");e&&eI(e,{display:t})},eH(o)&&o(\"none\"),i=n.getBBox?eN({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eH(o)&&o(\"\")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,g&&(i.height=s=({\"11px,17\":14,\"13px,20\":16})[`${f||\"\"},${Math.round(s)}`]||s),u&&(i=this.getRotatedBox(i,u));let t={bBox:i};ez(this,\"afterGetBBox\",t),i=t.bBox}if(r&&(\"\"===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eR(a),c=Number(this.element.getAttribute(\"y\")||0)-(n?0:s),p=e*ew,g=(e-90)*ew,u=Math.cos(p),f=Math.sin(p),m=o*u,x=o*f,y=Math.cos(g),b=Math.sin(g),[[v,k],[w,M]]=[h,l].map(t=>[t-t*u,t*f]),S=i+d*(o-m)+v+M+c*y,T=S+m,C=T-r*y,A=C-m,P=s+c-d*x-k+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(S,T,C,A),D=Math.min(P,L,O,E),B=Math.max(S,T,C,A)-I,N=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:N,polygon:[[S,P],[T,L],[C,O],[A,E]]}}getStyle(t){return eC.getComputedStyle(this.element||this,\"\").getPropertyValue(t)}hasClass(t){return -1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(t)}hide(){return this.attr({visibility:\"hidden\"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=eT,this.element=\"span\"===e||\"body\"===e?eO(e):eM.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},ez(this,\"afterInit\")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eP(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&\"left\"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(eG(t)?RegExp(`(^| )${t}( |$)`):t,\" \").replace(/ +/g,\" \").trim())}removeTextOutline(){let t=this.element.querySelector(\"tspan.highcharts-text-outline\");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient]||void 0;return this.element.radialReference=t,e?.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=ej(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eX(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:\"none\"})}show(t=!0){return this.attr({visibility:t?\"inherit\":\"visible\"})}\"stroke-widthSetter\"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;let t=this.getStyle(\"stroke-width\"),e=0,i;return/px$/.test(t)?e=e$(t):\"\"!==t&&(eL(i=eM.createElementNS(eT,\"rect\"),{width:t,\"stroke-width\":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eK.symbolCustomAttribs.forEach(function(i){e[i]=eU(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName(\"title\")[0]||eM.createElementNS(this.SVG_NS,\"title\");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eZ(eU(t,\"\"),[/<[^>]*>/g,\"\"]).replace(/</g,\"<\").replace(/>/g,\">\")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t=\"transform\"){let{element:e,foreignObject:i,matrix:s,padding:o,rotation:r=0,rotationOriginX:a,rotationOriginY:n,scaleX:h,scaleY:l,text:d,translateX:c=0,translateY:p=0}=this,g=[\"translate(\"+c+\",\"+p+\")\"];eD(s)&&g.push(\"matrix(\"+s.join(\",\")+\")\"),r&&(g.push(\"rotate(\"+r+\" \"+(a??e.getAttribute(\"x\")??this.x??0)+\" \"+(n??e.getAttribute(\"y\")??this.y??0)+\")\"),d?.element.tagName!==\"SPAN\"||d?.foreignObject||d.attr({rotation:r,rotationOriginX:(a||0)-o,rotationOriginY:(n||0)-o})),(eD(h)||eD(l))&&g.push(\"scale(\"+eU(h,1)+\" \"+eU(l,1)+\")\"),g.length&&!(d||this).textPath&&(i?.element||e).setAttribute(t,g.join(\" \"))}visibilitySetter(t,e,i){\"inherit\"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return\"circle\"===this.element.nodeName&&(\"x\"===t?t=\"cx\":\"y\"===t&&(t=\"cy\")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,g;if(eD(t)?(r.setAttribute(\"data-z-index\",t),t*=1,this[e]===t&&(p=!1)):eD(this[e])&&r.removeAttribute(\"data-z-index\"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),g=(n=o.childNodes).length-1;g>=0&&!d;g--)c=!eD(l=(h=n[g]).getAttribute(\"data-z-index\")),h!==r&&(t<0&&c&&!a&&!g?(o.insertBefore(r,n[g]),d=!0):(e$(l)<=t||c&&(!eD(t)||t>=0))&&(o.insertBefore(r,n[g+1]),d=!0));d||(o.insertBefore(r,n[3*!!a]),d=!0)}return d}}eK.symbolCustomAttribs=[\"anchorX\",\"anchorY\",\"clockwise\",\"end\",\"height\",\"innerR\",\"r\",\"start\",\"width\",\"x\",\"y\"],eK.prototype.strokeSetter=eK.prototype.fillSetter,eK.prototype.yGetter=eK.prototype.xGetter,eK.prototype.matrixSetter=eK.prototype.rotationOriginXSetter=eK.prototype.rotationOriginYSetter=eK.prototype.rotationSetter=eK.prototype.scaleXSetter=eK.prototype.scaleYSetter=eK.prototype.translateXSetter=eK.prototype.translateYSetter=eK.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eJ=eK,{defined:eQ,extend:e0,getAlignFactor:e1,isNumber:e2,merge:e3,pick:e5,removeEvent:e6}=V;class e9 extends eJ{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,\"g\"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass(\"button\"===l?\"highcharts-no-tooltip\":\"highcharts-label\"),l&&this.addClass(\"highcharts-\"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),\"string\"==typeof o&&((d=/^url\\((.*?)\\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e9.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=e1(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&e2(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e3(t),e9.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),\"fontSize\"in e||\"fontWeight\"in e?this.updateTextPadding():(\"width\"in e||\"textOverflow\"in e)&&this.updateBoxSize()}return eJ.prototype.css.call(this,t)}destroy(){e6(this.element,\"mouseenter\"),e6(this.element,\"mouseleave\"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eJ.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=e5(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this[\"stroke-width\"]?parseInt(this[\"stroke-width\"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e5(this.textStr,\"\"),x:this.x||0,y:this.y||0}),this.box&&eQ(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){e2(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}\"stroke-widthSetter\"(t,e){t&&(this.needsBox=!0),this[\"stroke-width\"]=t,this.boxAttr(e,t)}\"text-alignSetter\"(t){this.textAlign=this[\"text-align\"]=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=(!e2(this.widthSetting)||!e2(this.heightSetting)||this.textAlign)&&eQ(e.textStr)?e.getBBox(void 0,0):e9.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass((\"button\"===this.className?\"\":\"highcharts-label-box\")+(this.className?\" highcharts-\"+this.className+\"-box\":\"\")),t.add(this)}i.x=t=this.getCrispAdjust(),i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(e0(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+e1(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr(\"y\",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=e2(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e5(this.paddingLeft,t),i=e5(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this[\"forceAnimate:x\"]=!0),this.xSetting=Math.round(t),this.attr(\"translateX\",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr(\"translateY\",this.ySetting)}}e9.emptyBBox={width:0,height:0,x:0,y:0},e9.textProps=[\"color\",\"direction\",\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontWeight\",\"lineClamp\",\"lineHeight\",\"textAlign\",\"textDecoration\",\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"];let{defined:e4,isNumber:e8,pick:e7}=V;function it(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=o.end||0,h=e7(o.r,i),l=e7(o.r,s||i),d=2e-4/(o.borderRadius?1:Math.max(h,1)),c=Math.abs(n-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,[\"L\",n-6,e],[\"L\",n,e-6],[\"L\",n+6,e],[\"L\",i-r,e]);return l},circle:function(t,e,i,s){return it(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[[\"M\",t+i/2,e],[\"L\",t+i,e+s/2],[\"L\",t+i/2,e+s],[\"L\",t,e+s/2],[\"Z\"]]},rect:ie,roundedRect:ii,square:ie,triangle:function(t,e,i,s){return[[\"M\",t+i/2,e],[\"L\",t+i,e+s],[\"L\",t,e+s],[\"Z\"]]},\"triangle-down\":function(t,e,i,s){return[[\"M\",t,e],[\"L\",t+i,e],[\"L\",t+i/2,e+s],[\"Z\"]]}},{doc:io,SVG_NS:ir,win:ia}=w,{attr:ih,extend:il,fireEvent:id,isString:ic,objectEach:ip,pick:ig}=V,iu=(t,e)=>t.substring(0,e)+\"\u2026\",im=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e?.lineHeight,this.textOutline=e?.textOutline,this.ellipsis=e?.textOverflow===\"ellipsis\",this.lineClamp=e?.lineClamp,this.noWrap=e?.whiteSpace===\"nowrap\"}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ig(t.textStr,\"\").toString(),o=-1!==s.indexOf(\"<\"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle(\"font-size\"),t.styles.lineClamp,this.width].join(\",\");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(\" \")&&(!this.noWrap||//g.test(s))){if(\"\"!==s){a&&a.appendChild(e);let i=new t6(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||\"\").indexOf(\"\u2026\")&&t.attr(\"title\",this.unescapeEntities(t.textStr||\"\",[\"<\",\">\"])),a&&a.removeChild(e)}}else e.appendChild(io.createTextNode(this.unescapeEntities(s)));ic(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=ih(e.element,\"x\");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\\s\\u200B]*$/.test(t.textContent||\" \"))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll(\"tspan.highcharts-br\"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),ih(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||\"\",a=r.replace(/([^\\^])-/g,\"$1- \").split(\" \"),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||\"\"),t.textContent=a.join(\" \").replace(/- /g,\"-\")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(\" \").replace(/- /g,\"-\")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||\"\",void 0,0,s,l,iu),t.textContent=t.textContent?.replace(\"\u2026\",\"\")+\"\u2026\");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(io.createTextNode(e),t);let s=io.createElementNS(ir,\"tspan\");s.textContent=\"\u200B\",ih(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,iu)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ia.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf(\"highcharts-br\")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ia.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if(\"b\"===n||\"strong\"===n?h?o.class=\"highcharts-strong\":a.fontWeight=\"bold\":(\"i\"===n||\"em\"===n)&&(h?o.class=\"highcharts-emphasized\":a.fontStyle=\"italic\"),a?.color&&(a.fill=a.color),\"br\"===n){o.class=\"highcharts-br\",i.textContent=\"\u200B\";let e=t[s+1];e?.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,\"\"))}else\"a\"===n&&r&&r.some(t=>\"#text\"===t.tagName)&&(i.children=[{children:r,tagName:\"tspan\"}]);\"#text\"!==n&&\"a\"!==n&&(i.tagName=\"tspan\"),il(i,{attributes:o,style:a}),r&&r.filter(t=>\"#text\"!==t.tagName).forEach(e)};t.forEach(e),id(this.svgElement,\"afterModifyTree\",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h,l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,g=(e||i||\"\").length,u=g;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=g;)u=Math.ceil((p+g)/2),i&&(n=a(i,u)),h=f(u,n&&n.length-1),p===g?p=g+1:h>o?g=u-1:p=u;0===g?t.textContent=\"\":e&&g===e.length-1||(t.textContent=n||a(e||i,u)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||\"\",void 0,0,o,r,iu)}i&&i.splice(0,u),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return ip(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,\"g\"),s))}),t}},{defaultOptions:ix}=tv,{charts:iy,deg2rad:ib,doc:iv,isFirefox:ik,isMS:iw,isWebKit:iM,noop:iS,SVG_NS:iT,symbolSizes:iC,win:iA}=w,{addEvent:iP,attr:iL,createElement:iO,crisp:iE,css:iI,defined:iD,destroyObjectProperties:iB,extend:iN,isArray:iz,isNumber:iR,isObject:iW,isString:iH,merge:iF,pick:iX,pInt:iG,replaceNested:ij,uniqueKey:iY}=V;class iU{constructor(t,e,i,s,o,r,a){let n,h;this.x=0,this.y=0;let l=this.createElement(\"svg\").attr({version:\"1.1\",class:\"highcharts-root\"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iL(t,\"dir\",\"ltr\"),-1===t.innerHTML.indexOf(\"xmlns\")&&iL(d,\"xmlns\",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement(\"desc\").add().element.appendChild(iv.createTextNode(\"Created with Highcharts 12.2.0\")),this.defs=this.createElement(\"defs\").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle(\"font-size\"),this.setSize(e,i,!1),ik&&t.getBoundingClientRect&&((n=function(){iI(t,{left:0,top:0}),h=t.getBoundingClientRect(),iI(t,{left:Math.ceil(h.left)-h.left+\"px\",top:Math.ceil(h.top)-h.top+\"px\"})})(),this.unSubPixelFix=iP(iA,\"resize\",n))}definition(t){return new t6([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ik||iM)&&iv.getElementsByTagName(\"base\").length){if(!iD(e)){let t=iY(),i=new t6([{tagName:\"svg\",attributes:{width:8,height:8},children:[{tagName:\"defs\",children:[{tagName:\"clipPath\",attributes:{id:t},children:[{tagName:\"rect\",attributes:{width:4,height:4}}]}]},{tagName:\"rect\",attributes:{id:\"hitme\",width:8,height:8,\"clip-path\":`url(#${t})`,fill:\"rgba(0,0,0,0.001)\"}}]}]).addToDOM(iv.body);iI(i,{position:\"fixed\",top:0,left:0,zIndex:9e5});let s=iv.elementFromPoint(6,6);e=s?.id===\"hitme\",iv.body.removeChild(i)}if(e)return ij(iA.location.href.split(\"#\")[0],[/<[^>]*>/g,\"\"],[/([\\('\\)])/g,\"\\\\$1\"],[/ /g,\"%20\"])}return\"\"}getStyle(t){return this.style=iN({fontFamily:'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", sans-serif',fontSize:\"1rem\"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iB(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join(\"-\").toLowerCase().replace(/[^a-z\\d\\-]/g,\"\"),i=iF({color:\"#000000\",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:\"filter\",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:\"feDropShadow\",attributes:{dx:t.offsetX,dy:t.offsetY,\"flood-color\":t.color,\"flood-opacity\":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new im(t).buildSVG()}getContrast(t){let e=tL.parse(t).rgba,i=\" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)\";if(iR(e[0])||!tL.useColorMix){let t=e.map(t=>{let e=t/255;return e<=.04?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*t[0]+.7152*t[1]+.0722*t[2];return 1.05/(i+.05)>(i+.05)/.05?\"#FFFFFF\":\"#000000\"}return\"color(from \"+t+\" srgb\"+i+i+i+\")\"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,\"button\"),c=this.styledMode,p=arguments,g=0;o=iF(ix.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o[\"stroke-width\"]);let u=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t6.filterUserAttributes(o)],x=[f];return c||[\"hover\",\"select\",\"disabled\"].forEach((t,e)=>{m.push(iF(m[0],t6.filterUserAttributes(p[e+5]||u[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),iP(d.element,iw?\"mouseover\":\"mouseenter\",function(){3!==g&&d.setState(1)}),iP(d.element,iw?\"mouseout\":\"mouseleave\",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][t]),!c){d.attr(m[t]);let e=x[t];iW(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iN({cursor:\"default\"},f)),l&&d.text.css({pointerEvents:\"none\"})),d.on(\"touchstart\",t=>t.stopPropagation()).on(\"click\",function(t){3!==g&&s?.call(d,t)})}crispLine(t,e){let[i,s]=t;return iD(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iE(i[1],e)),iD(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iE(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:\"none\"};return iz(t)?e.d=t:iW(t)&&iN(e,t),this.createElement(\"path\").attr(e)}circle(t,e,i){let s=iW(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement(\"circle\");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute(\"c\"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iW(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol(\"arc\",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iW(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement(\"rect\");return this.styledMode||(void 0!==r&&(a[\"stroke-width\"]=r,iN(a,n.crisp(a))),a.fill=\"none\"),n.rSetter=function(t,e,i){n.r=t,iL(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol(\"roundedRect\").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:\"0 0 \"+this.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:iX(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement(\"g\");return t?e.attr({class:\"highcharts-\"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:\"none\"};iR(e)&&(a.x=e),iR(i)&&(a.y=i),iR(s)&&(a.width=s),iR(o)&&(a.height=o);let n=this.createElement(\"image\").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"});let e=new iA.Image;iP(e,\"load\",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l,d=this,c=/^url\\((.*?)\\)$/,p=c.test(t),g=!p&&(this.symbols[t]?t:\"circle\"),u=g&&this.symbols[g];if(u)\"number\"==typeof e&&(n=u.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr(\"fill\",\"none\"),iN(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&iN(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iX(r?.width,iC[h]?.width),s.imgheight=iX(r?.height,iC[h]?.height),l=t=>t.attr({width:t.width,height:t.height}),[\"width\",\"height\"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l=\"width\"===e?n:h,d=1;r&&\"within\"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iL(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iD(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iD(s.imgwidth)&&iD(s.imgheight)?l(s):(s.attr({width:0,height:0}),iO(\"img\",{onload:function(){let t=iy[d.chartIndex];0===this.width&&(iI(this,{position:\"absolute\",top:\"-999em\"}),iv.body.appendChild(this)),iC[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iD(t)&&(o.text=t);let r=this.createElement(\"text\").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName(\"tspan\"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iN(iU.prototype,{Element:eJ,SVG_NS:iT,escapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},symbols:is,draw:iS}),eg.registerRendererType(\"svg\",iU,!0);let{composed:i$,isFirefox:iV}=w,{attr:iZ,css:i_,createElement:iq,defined:iK,extend:iJ,getAlignFactor:iQ,isNumber:i0,pInt:i1,pushUnique:i2}=V;function i3(t,e,i){let s=this.div?.style||i.style;eJ.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i5=(t,e)=>{if(!t.div){let i=iZ(t.element,\"class\"),s=t.css,o=iq(\"div\",i?{className:i}:void 0,{position:\"absolute\",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute(\"class\",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style[\"translateX\"===i?\"left\":\"top\"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=i3,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eJ.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i6 extends eJ{static compose(t){i2(i$,this.compose)&&(t.prototype.html=function(t,e,i){return new i6(this,\"span\").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),i6.useForeignObject?this.foreignObject=t.createElement(\"foreignObject\").attr({zIndex:2}):this.css({position:\"absolute\",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}}),this.element.style.whiteSpace=\"nowrap\"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s=\"SPAN\"===i.tagName&&t&&\"width\"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=i1(o)||void 0,e=!0),t?.textOverflow===\"ellipsis\"&&(t.overflow=\"hidden\",t.whiteSpace=\"nowrap\"),t?.lineClamp&&(t.display=\"-webkit-box\",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient=\"vertical\",t.overflow=\"hidden\"),i0(Number(t?.fontSize))&&(t.fontSize+=\"px\"),iJ(this.styles,t),i_(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,foreignObject:e,oldTextWidth:i,renderer:s,rotation:o,rotationOriginX:r,rotationOriginY:a,scaleX:n,scaleY:h,styles:{display:l=\"inline-block\",whiteSpace:d},textAlign:c=\"left\",textWidth:p,translateX:g=0,translateY:u=0,x:f=0,y:m=0}=this;if(e||i_(t,{marginLeft:`${g}px`,marginTop:`${u}px`}),\"SPAN\"===t.tagName){let g,u=[o,c,t.innerHTML,p,this.textAlign].join(\",\"),x=-(this.parentGroup?.padding*1)||0;if(p!==i){let e=this.textPxLength?this.textPxLength:(i_(t,{width:\"\",whiteSpace:d||\"nowrap\"}),t.offsetWidth),s=p||0,r=\"\"===t.style.textOverflow&&t.style.webkitLineClamp;(s>i||e>s||r)&&(/[\\-\\s\\u00AD]/.test(t.textContent||t.innerText)||\"ellipsis\"===t.style.textOverflow)&&(i_(t,{width:(o||n||e>s||r)&&i0(p)?p+\"px\":\"auto\",display:l,whiteSpace:d||\"normal\"}),this.oldTextWidth=p)}e&&(i_(t,{display:\"inline-block\",verticalAlign:\"top\"}),e.attr({width:s.width,height:s.height})),u!==this.cTT&&(g=s.fontMetrics(t).b,iK(o)&&!e&&(o!==(this.oldRotation||0)||c!==this.oldAlign)&&i_(t,{transform:`rotate(${o}deg)`,transformOrigin:`${x}% ${x}px`}),this.getSpanCorrection(!iK(o)&&!this.textWidth&&this.textPxLength||t.offsetWidth,g,iQ(c)));let{xCorr:y=0,yCorr:b=0}=this,v={left:`${f+y}px`,top:`${m+b}px`,textAlign:c,transformOrigin:`${(r??f)-y-f-x}px ${(a??m)-b-m-x}px`};(n||h)&&(v.transform=`scale(${n??1},${h??1})`),e?(super.updateTransform(),i0(f)&&i0(m)?(e.attr({x:f+y,y:m+b,width:t.offsetWidth+3,height:t.offsetHeight,\"transform-origin\":t.getAttribute(\"transform-origin\")||\"0 0\"}),i_(t,{display:l,textAlign:c})):iV&&e.attr({width:0,height:0})):i_(t,v),this.cTT=u,this.oldRotation=o,this.oldAlign=c}}add(t){let{foreignObject:e,renderer:i}=this,s=i.box.parentNode,o=[];if(e)e.add(t),super.add(i.createElement(\"body\").attr({xmlns:\"http://www.w3.org/1999/xhtml\"}).css({background:\"transparent\",margin:\"0 3px 0 0\"}).add(e));else{let e;if(this.parentGroup=t,t&&!(e=t.div)){let i=t;for(;i;)o.push(i),i=i.parentGroup;for(let t of o.reverse())e=i5(t,s)}(e||s).appendChild(this.element)}return this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t6.setElementHTML(this.element,t??\"\"),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i9=i6.prototype;i9.visibilitySetter=i9.opacitySetter=i3,i9.ySetter=i9.rotationSetter=i9.rotationOriginXSetter=i9.rotationOriginYSetter=i9.xSetter,!function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:\"%[HMSL]\",range:!1},second:{main:\"%[HMS]\",range:!1},minute:{main:\"%[HM]\",range:!1},hour:{main:\"%[HM]\",range:!1},day:{main:\"%[eb]\"},week:{main:\"%[eb]\"},month:{main:\"%[bY]\"},year:{main:\"%Y\"}},endOnTick:!1,gridLineDashStyle:\"Solid\",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:\"justify\",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\",textOverflow:\"ellipsis\"}},maxPadding:.01,minorGridLineDashStyle:\"Solid\",minorTickLength:2,minorTickPosition:\"outside\",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",useHTML:!1,x:0,y:0,style:{color:\"#666666\",fontSize:\"0.8em\"}},visible:!0,minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#333333\",lineWidth:1,gridLineColor:\"#e6e6e6\",gridLineWidth:void 0,tickColor:\"#333333\"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:\"#000000\",fontSize:\"0.7em\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0}}(r||(r={}));let i4=r,{addEvent:i8,isFunction:i7,objectEach:st,removeEvent:se}=V;(a||(a={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},st(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(se(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i7(e)&&(t.eventOptions[i]=e,i8(t,i,e,{order:0})))})};let si=a,{deg2rad:ss}=w,{clamp:so,correctFloat:sr,defined:sa,destroyObjectProperties:sn,extend:sh,fireEvent:sl,getAlignFactor:sd,isNumber:sc,merge:sp,objectEach:sg,pick:su}=V,sf=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||\"\",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sl(this,\"init\"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=su(t.options?.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,g=l.info,u=t.label,f,m,x,y=this.parameters.category||(o?su(o[n],a[n],n):n);r&&sc(y)&&(y=sr(r.lin2log(y))),e.dateTime&&(g?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&g.higherRanks[n]||g.unitName])).main:sc(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:g,value:y};sl(this,\"labelFormat\",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),ep.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),w=m?.list;w?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(f=Math.round((o-s)/Math.cos(l*ss))):(s-d*cn&&(g=n-t.x+g*d,u=-1),(g=Math.min(p,g))g||e.autoRotation&&h?.styles?.width)&&(f=g)),f&&h&&(this.shortenLabel?this.shortenLabel():h.css(sh({},{width:Math.floor(f)+\"px\",lineClamp:+!e.isRadial})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sg(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=su(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l,g=su(i,this.label?.newOpacity,1);!s.chart.polar&&(sr(p)c)&&(i=0),i??(i=1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,g,t),this.isNew=!1,sl(this,\"afterRender\")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=su(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;\"minor\"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o[\"stroke-width\"]=c||0,o.dashstyle=g),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass(\"highcharts-\"+(a?a+\"-\":\"\")+\"grid-line\").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:\"pass\",old:t,acrossPanes:!1}))&&l[t||this.isNew?\"attr\":\"animate\"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+\"Tick\":\"tick\"),n=t.x,h=t.y,l=su(s[\"minor\"!==r?\"tickWidth\":\"minorTickWidth\"],!r&&i.isXAxis?1:0),d=s[\"minor\"!==r?\"tickColor\":\"minorTickColor\"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass(\"highcharts-\"+(r?r+\"-\":\"\")+\"tick\").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,\"stroke-width\":l})),c[p?\"attr\":\"animate\"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=su(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,g=!0;n&&sc(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):g=!1,l&&s%l&&(g=!1),g&&sc(t.y)?(t.opacity=i,n[this.isNewLabel?\"attr\":\"animate\"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sm}=tU,{xAxis:sx,yAxis:sy}=i4,{defaultOptions:sb}=tv,{registerEventOptions:sv}=si,{deg2rad:sk}=w,{arrayMax:sw,arrayMin:sM,clamp:sS,correctFloat:sT,defined:sC,destroyObjectProperties:sA,erase:sP,error:sL,extend:sO,fireEvent:sE,getClosestDistance:sI,insertItem:sD,isArray:sB,isNumber:sN,isString:sz,merge:sR,normalizeTickInterval:sW,objectEach:sH,pick:sF,relativeLength:sX,removeEvent:sG,splat:sj,syncTimeout:sY}=V,sU=(t,e)=>sW(e,void 0,void 0,sF(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sO(sb,{xAxis:sx,yAxis:sR(sx,sy)});class s${constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s=\"xAxis\"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sE(this,\"init\",{userOptions:e}),this.opposite=sF(e.opposite,this.opposite),this.side=sF(e.side,this.side,o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||\"linear\"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sE(this,\"afterSetType\"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sF(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames=\"category\"===this.type||!0===r.categories,this.categories=sB(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sC(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sF(r.crosshair,sj(t.options.tooltip.crosshairs)[+!s]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sD(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sC(this.reversed)&&(this.reversed=!0),this.labelRotation=sN(a.rotation)?a.rotation:void 0,sv(this,r),sE(this,\"afterInit\")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sR(e,\"yAxis\"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},sb[this.coll],t),sE(this,\"afterSetOptions\",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sN(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sb.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n?.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,\"\")),p}getSeriesExtremes(){let t,e=this;sE(this,\"getSeriesExtremes\",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn(\"x\")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sN(a)||a instanceof Date||(o=o.filter(sN),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sF(e.dataMin,a),a),e.dataMax=Math.max(sF(e.dataMax,n),n)));else{let t=i.applyExtremes();sN(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sF(e.dataMin,a),a)),sN(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sF(e.dataMax,n),n)),sC(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sE(this,\"afterGetSeriesExtremes\")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sN(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,g=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(g=(t=t*d+c-h)/p+n,l&&(g=a.lin2val(g))):(l&&(t=a.val2lin(t)),g=d*(t-n)*p+c+d*h+(sN(r)?p*r:0),a.isRadial||(g=sT(g))),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,g,u,f,m,x;function y(t,e,i){return\"pass\"!==p&&(ti)&&(p?t=sS(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sE(this,\"getPlotLinePath\",b,function(t){g=f=(c=sS(c=sF(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,u=m=h-c-d,sN(c)?e.horiz?(u=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=f=y(g,s,s+e.width)):(g=s,f=l-e.right+(i.scrollablePixelsX||0),u=m=y(u,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([[\"M\",g,u],[\"L\",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r,a=sT(Math.floor(e/t)*t),n=sT(Math.ceil(i/t)*t),h=[];if(sT(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sT(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sF(e,\"auto\"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn(\"x\");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sN(s)&&sN(o)&&sN(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sw(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sM(l))-ot-e),t=sI([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sB(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sC(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sF(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sN(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn(\"x\").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn(\"x\",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sF(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is(\"xrange\")?!o:o;n=Math.max(n,t&&sz(l)?0:i/2),h=Math.max(h,t&&\"on\"===l?0:i)}}),l=t.ordinal?.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sE(this,\"afterSetAxisTranslation\")}minFromRange(){let{max:t,min:e}=this;return sN(t)&&sN(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sN(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,linkedTo:f,softMax:m,softMin:x}=h,y=sN(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,w=0,M,S=sN(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,T,C,A,P;if(r||e||y||this.getTickAmount(),A=sF(this.userMin,d.parse(h.min)),P=sF(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,M=y.getExtremes(),this.min=sF(M.min,M.dataMin),this.max=sF(M.max,M.dataMax),this.type!==y.type&&sL(11,!0,i)):(l&&sC(c)&&sN(s)&&sN(o)&&(o>=c?(T=c,k=0):s<=c&&(C=c,v=0)),this.min=sF(A,T,o),this.max=sF(P,C,s)),sN(this.max)&&sN(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sF(o,this.min))&&sL(10,!0,i),this.min=sT(n.log2lin(this.min),16),this.max=sT(n.log2lin(this.max),16)),this.range&&sN(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sE(this,\"foundExtremes\"),this.adjustForMinRange(),sN(this.min)&&sN(this.max)){if(!sN(this.userMin)&&sN(x)&&xthis.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(w=this.max-this.min)||(!sC(A)&&k&&(this.min-=w*k),sC(P)||!v||(this.max+=w*v)),!sN(this.userMin)&&sN(u)&&(this.min=Math.max(this.min,u)),!sN(this.userMax)&&sN(g)&&(this.max=Math.min(this.max,g)),l&&sN(o)&&sN(s)){let t=c||0;!sC(A)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sC(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sC(h.min)?this.max=this.min:sC(h.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&sN(this.min)&&sN(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sF(S,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sE(this,\"postProcessData\",{hasExtremesChanged:t})}this.setAxisTranslation(),sE(this,\"initialAxisTranslation\"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=sF(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&L&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sL(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sU(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval=\"auto\"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sN(this.min)&&sN(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is(\"heatmap\")&&\"between\"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sE(this,\"afterSetTickPositions\")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sE(this,\"trimTicks\"),!this.isLinked||!this.grid){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(\",\")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sN(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sN(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sN(this.threshold)){let t=sS((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sC(t.tickInterval)||i||!(this.lenr.push(sT(r[r.length-1]+p)),f=()=>r.unshift(sT(r[0]-p));if(sN(n)&&(g=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(g=a-1-g)),t.hasData()&&sN(s)&&sN(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sN(g)&&sN(t.threshold)){for(;r[g]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis?.isDirty||!1}),this.setAxisSize();let o=this.len!==this.old?.len;o||i||s||this.isLinked||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(e&&\"yAxis\"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&\"xAxis\"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sE(this,\"afterSetScale\")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sE(this,\"setExtremes\",o=sO(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sX(sF(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sX(sF(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sX(sF(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sX(sF(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sT(t.lin2log(this.min)):this.min,max:t?sT(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align=\"right\":e>195&&e<345&&(t.align=\"left\")}),i.align}tickSize(t){let e=this.options,i=sF(e[\"tick\"===t?\"tickWidth\":\"minorTickWidth\"],\"tick\"===t&&this.isXAxis&&!this.categories?1:0),s=e[\"tick\"===t?\"tickLength\":\"minorTickLength\"],o;i&&s&&(\"inside\"===e[t+\"Position\"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sE(this,\"afterTickSize\",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/((+!!this.categories+this.max-this.min)/s),r=t.rotation,a=sT(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sT(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sN(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sk*i))))+Math.abs(i/360))u&&(u=i)}),this.maxLabelLength=u,this.autoRotation?u>h&&u>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=u>.5*t.chartHeight?.33*t.chartHeight:u,c||(g=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e?.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&\"nowrap\"!==r.whiteSpace&&(p<(i.textPxLength||0)||\"SPAN\"===i.element.tagName)?i.css(sO(a,{width:`${p}px`,lineClamp:g})):!i.styles.width||a.width||o||i.css({width:\"auto\"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sC(this.min)&&sC(this.max)}addTitle(t){let e,i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:\"left\",middle:\"center\",high:\"right\"}:{low:o?\"right\":\"left\",middle:\"center\",high:o?\"left\":\"right\"})[r.align]),this.axisTitle=i.text(r.text||\"\",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass(\"highcharts-axis-title\"),a||this.axisTitle.css(sR(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"}),this.axisTitle[t?\"show\":\"hide\"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sf(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:\"\")+(s.className||\"\")).add(t);this.axisGroup||(this.gridGroup=r(\"grid\",\"-grid\",s.gridZIndex),this.axisGroup=r(\"axis\",\"\",s.zIndex),this.labelGroup=r(\"axis-labels\",\"-labels\",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sN(s.crossing),g=e.axisOffset,u=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,w;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:\"left\",3:\"right\"})[o]===t.labelAlign,sF(c.reserveSpace,!p&&null,\"center\"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sH(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?\"height\":\"width\"],b=sC(y=d.offset)?0:sF(d.margin,i?5:10))),t.renderLine(),t.offset=f*sF(s.offset,g[o]?g[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},w=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=w,k+=f*(i?sF(c.y,t.tickRotCorr.y+f*c.distance):sF(c.x,f*c.distance))),t.axisTitleMargin=sF(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),\"colorAxis\"!==n&&u){let e=this.tickSize(\"tick\");g[o]=Math.max(g[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a?.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;u[h]=Math.max(u[h],i)}sE(this,\"afterGetOffset\")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([[\"M\",o?this.left:r,o?a:this.top],[\"L\",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,g={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],u=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?g+l:u+(n?this.width:0)+h+l,y:e?u+d-(n?this.height:0)+h:g+d};return sE(this,\"afterGetTitlePosition\",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sf(this,t,\"minor\")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(o[t]||(o[t]=new sf(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.stackLabels,u=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sm(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sH(t,function(t){t.isActive=!1})}),sN(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sN(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sf(i,-1,null,!0)),d[-1].render(-1))),u&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c,p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sQ(t=s0(\"auto\"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(h||(h={}));let s1=h,{erase:s2,extend:s3,isNumber:s5}=V;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,\"plotBands\")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,\"plotLines\")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s5(this.min)||!s5(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s6.compose(oa,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){oi(this,\"render\");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),g=e.borderWidth,u=e.label,{label:f,svgElem:m}=this,x=[],y,b=s7(c)&&s7(d),v=s7(p),k=!m,w={class:\"highcharts-plot-\"+(b?\"band \":\"line \")+(e.className||\"\")},M=b?\"bands\":\"lines\";if(!t.chart.styledMode&&(v?(w.stroke=o||\"#999999\",w[\"stroke-width\"]=or(e.width,1),e.dashStyle&&(w.dashstyle=e.dashStyle)):b&&(w.fill=o||\"#e6e9ff\",g&&(w.stroke=e.borderColor,w[\"stroke-width\"]=g))),l.zIndex=a,M+=\"-\"+a,(y=t.plotLinesAndBandsGroups[M])||(t.plotLinesAndBandsGroups[M]=y=n.g(\"plot-\"+M).attr(l).add()),m||(this.svgElem=m=n.path().attr(w).add(y)),s7(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s7(c)&&s7(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(oo(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),u&&(s7(u.text)||s7(u.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(u=os({align:i&&b?\"center\":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?\"middle\":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},u),this.renderLabel(u,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:\"highcharts-plot-\"+(i?\"band\":\"line\")+\"-label \"+(t.className||\"\"),zIndex:s}),o.chart.styledMode||n.css(os({fontSize:\"0.8em\",textOverflow:i&&!a?\"\":\"ellipsis\"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s8(h),c=s8(l),p=s4(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:s4(l)-c}),n.alignAttr.y-=r.fontMetrics(n).b,(!n.alignValue||\"left\"===n.alignValue||s7(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+\"px\"}),n.show(!0)}getLabelText(t){return s7(t.formatter)?t.formatter.call(this):t.text}destroy(){oe(this.axis.plotLinesAndBands,this),delete this.axis,ot(this)}}let{animObject:on}=tU,{format:oh}=ep,{composed:ol,dateFormats:od,doc:oc,isSafari:op}=w,{distribute:og}=ey,{addEvent:ou,clamp:of,css:om,discardElement:ox,extend:oy,fireEvent:ob,getAlignFactor:ov,isArray:ok,isNumber:ow,isObject:oM,isString:oS,merge:oT,pick:oC,pushUnique:oA,splat:oP,syncTimeout:oL}=V;class oO{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||\"point\";return(e[i+\"Formatter\"]||t.tooltipFormatter).call(t,e[i+\"Format\"]||\"\")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e?.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e,i=this.points||oP(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),ox(this.container)),V.clearTimeout(this.hideTimer)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=oP(t),t[0].series?.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,\"highcharts-label\",i&&\"highcharts-tooltip-header\",e?\"highcharts-tooltip-box\":\"highcharts-tooltip\",!i&&\"highcharts-color-\"+oC(t.colorIndex,o.colorIndex),r?.className].filter(oS).join(\" \")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass(\"highcharts-label\");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=eg.getRendererType();this.container=a=w.doc.createElement(\"div\"),a.className=\"highcharts-tooltip-container \"+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\\s?/gm)||\"\"),om(a,{position:\"absolute\",top:\"1px\",pointerEvents:\"none\",zIndex:Math.max(this.options.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g(\"tooltip\"):(this.label=n.label(\"\",t,e,o.shape||\"callout\",void 0,void 0,o.useHTML,void 0,\"tooltip\").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,\"stroke-width\":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?\"auto\":\"none\")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?\"ySetter\":\"xSetter\"]=o=>{e.call(t,i.distance),t[s?\"y\":\"x\"]=o,a&&(a.style[s?\"top\":\"left\"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow??!o.fixed).add()}return a&&!a.parentElement&&w.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=oc,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,g={},u=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a=\"x\"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v(\"y\"),w=v(\"x\"),M,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&oC(i.ttBelow,!d&&!n===S),C=function(t,e,i,o,a,n,h){let l=r?\"y\"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+u)}},A=function(t,e,i,o,r){if(re-s)return!1;re-o/2?g[t]=e-o-2:g[t]=r-i/2},P=function(t){[k,w]=[w,k],M=t},L=()=>{!1!==C.apply(0,k)?!1!==A.apply(0,w)||M||(P(!0),L()):M?g.x=g.y=0:(P(!0),L())};return(n&&!d||this.len>1)&&P(),L(),g}getFixedPosition(t,e,i){let s=i.series,{chart:o,options:r,split:a}=this,n=r.position,h=n.relativeTo,l=r.shared||s?.yAxis?.isRadial&&(\"pane\"===h||!h)?\"plotBox\":h,d=\"chart\"===l?o.renderer:o[l]||o.getClipBox(s,!0);return{x:d.x+(d.width-t)*ov(n.align)+n.x,y:d.y+(d.height-e)*ov(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;V.clearTimeout(this.hideTimer),t=oC(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oL(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=oC(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,\"highcharts-tooltip\")))}move(t,e,i,s){let{followPointer:o,options:r}=this,a=on(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,h={x:t,y:e};n?h.anchorX=h.anchorY=NaN:(h.anchorX=i,h.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(h,a)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=oP(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;V.clearTimeout(this.hideTimer),this.allowShared=!(!ok(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),g=p[0],u=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState(\"hover\")),n.points=a),this.len=a.length;let f=oS(h)?oh(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=oC(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=g,r=u;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+\"px\"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(\"\"):f}),this.outside&&t.attr({x:of(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||\"#666666\"}),this.updatePosition({plotX:g,plotY:u,negative:n.negative,ttBelow:n.ttBelow,series:m,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ob(this,\"refresh\")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:g,options:{fixed:u,position:f,positioner:m},pointer:x}=i,{scrollLeft:y=0,scrollTop:b=0}=s.scrollablePlotArea?.scrollingContainer||{},v=i.outside&&\"number\"!=typeof d?oc.documentElement.getBoundingClientRect():{left:y,right:y+o,top:b,bottom:b+r},k=i.getLabel(),w=this.renderer||s.renderer,M=!!s.xAxis[0]?.opposite,{left:S,top:T}=x.getChartPosition(),C=m||u,A=h+b,P=0,L=a-l,O=function(t,e,s,o=[0,0],r=!0){let a,n;if(s.isHeader)n=M?0:L,a=of(o[0]-t/2,v.left,v.right-t-(i.outside?S:0));else if(u&&s){let o=i.getFixedPosition(t,e,s);a=o.x,n=o.y-A}else n=o[1]-A,a=of(a=r?o[0]-t-p:o[0]+p,r?a:v.left,v.right);return{x:a,y:n}};oS(t)&&(t=[!1,t]);let E=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&\"\"!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e,n=a.tooltipOptions||g;if(!o){let t={padding:n.padding,r:n.borderRadius};c||(t.fill=n.backgroundColor,t[\"stroke-width\"]=n.borderWidth??(u&&!r?0:1)),o=w.label(\"\",0,0,n[r?\"headerShape\":\"shape\"]||(u&&!r?\"rect\":\"callout\"),void 0,void 0,n.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(k)}return o.isActive=!0,o.attr({text:s}),c||o.css(n.style).attr({stroke:n.borderColor||e.color||a.color||\"#333333\"}),o}(d.tt,r,s.toString()),x=f.getBBox(),y=x.width+f.strokeWidth();l&&(P=x.height,L+=P,M&&(A-=P));let{anchorX:b,anchorY:S}=function(t){let e,i,{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+of(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=of(e,v.left-p,v.right+p),anchorY:i}}(r);if(\"number\"==typeof S){let e=x.height+1,s=(m||O).call(i,y,e,r,[b,S]);t.push({align:C?0:void 0,anchorX:b,anchorY:S,boxWidth:y,point:r,rank:oC(s.rank,+!!l),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!C&&E.some(t=>{let{outside:e}=i,s=(e?S:0)+t.anchorX;return ss})&&(E=E.map(t=>{let{x:e,y:i}=O.call(this,t.boxWidth,t.size,t.point,[t.anchorX,t.anchorY],!1);return oy(t,{target:i,x:e})})),i.cleanSplit(),og(E,L);let I={left:S,right:S};E.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&S+eI.right&&(I.right=S+e))}),E.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?\"hidden\":\"inherit\",x:e,y:(r||0)+A+(u&&f.y||0),anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(I.right-I.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:D,outside:B,renderer:N}=i;if(B&&D&&N){let{width:t,height:e,x:i,y:s}=k.getBBox();N.setSize(t+i,e+s,!1),D.style.left=I.left+\"px\",D.style.top=T+\"px\"}op&&k.attr({opacity:1===k.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass(\"highcharts-tracker\").add(e),t.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}styledModeFormat(t){return t.replace('style=\"font-size: 0.8em\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}\"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||\"\",h=s[e?\"footerFormat\":\"headerFormat\"];return ob(this,\"headerFormatter\",a,function(e){if(r&&!n&&ow(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(oM(n)){let t=n;od[0]=e=>i.chart.time.dateFormat(t,e),n=\"%0\"}(t.tooltipDateKeys||[\"key\"]).forEach(t=>{h=h.replace(RegExp(\"point\\\\.\"+t+\"([ \\\\)}])\"),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=oh(h,t,this.chart)}),a.text||\"\"}update(t){this.destroy(),this.init(this.chart,oT(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{fixed:l,positioner:d}=o,{left:c,top:p,scaleX:g,scaleY:u}=r.getChartPosition(),f=(d||l&&this.getFixedPosition||this.getPosition).call(this,h,n,t),m=w.doc,x=(t.plotX||0)+e.plotLeft,y=(t.plotY||0)+e.plotTop,b;if(a&&i){if(d||l){let{scrollLeft:t=0,scrollTop:i=0}=e.scrollablePlotArea?.scrollingContainer||{};f.x+=t+c-s,f.y+=i+p-s}b=(o.borderWidth||0)+2*s+2,a.setSize(of(h+b,0,m.documentElement.clientWidth)-1,n+b,!1),(1!==g||1!==u)&&(om(i,{transform:`scale(${g}, ${u})`}),x*=g,y*=u),x+=c-f.x,y+=p-f.y}this.move(Math.round(f.x),Math.round(f.y||0),x,y)}}!function(t){t.compose=function(e){oA(ol,\"Core.Tooltip\")&&ou(e,\"afterInit\",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oO||(oO={}));let oE=oO,{animObject:oI}=tU,{defaultOptions:oD}=tv,{format:oB}=ep,{addEvent:oN,crisp:oz,erase:oR,extend:oW,fireEvent:oH,getNestedProperty:oF,isArray:oX,isFunction:oG,isNumber:oj,isObject:oY,merge:oU,pick:o$,syncTimeout:oV,removeEvent:oZ,uniqueKey:o_}=V;class oq{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate(\"dataLabel\"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oW({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oW(this,t=oq.prototype.optionsToObject.call(this,t)),this.options=this.options?oW(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oq.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state=\"select\"),\"name\"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oj(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):\"string\"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oj(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?\"null\":\"point\",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oI(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oZ(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oR(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s?.enabled?(this.animateBeforeDestroy(),oV(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t?.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),\"click\"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oH(s,t,e,i)}getClassName(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+(void 0!==this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone?.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")}getGraphicalProps(t){let e,i,s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push(\"graphic\",\"connector\"),t.dataLabel&&o.push(\"dataLabel\",\"dataLabelPath\",\"dataLabelUpper\"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return[\"graphic\",\"dataLabel\"].forEach(function(e){let i=e+\"s\";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf(\"custom.\")?oF(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||\"y\",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s?.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix=\"point\",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=o_()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,oH(this,\"afterInit\")}isValid(){return(oj(this.x)||this.x instanceof Date)&&oj(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||[\"y\"],o=s.length,r={},a,n=0,h=0;if(oj(t)||null===t)r[s[0]]=t;else if(oX(t))for(!i&&t.length>o&&(\"string\"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:\"number\"===a&&(r.x=t[0]),n++);h0?oq.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else\"object\"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oj(i)&&oj(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=o$(this.options.colorIndex,a),this.color=o$(this.options.color,s)}setNestedProperty(t,e,i){return i.split(\".\").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oY(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=[\"y\"],tooltipOptions:s}=this.series,{valueDecimals:o=\"\",valuePrefix:r=\"\",valueSuffix:a=\"\"}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e=\"{point.\"+e,(r||a)&&(t=t.replace(RegExp(e+\"}\",\"g\"),r+e+\"}\"+a)),t=t.replace(RegExp(e+\"}\",\"g\"),e+\":,.\"+o+\"f}\")}),oB(t,this,e)}update(t,e,i,s){let o,r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oY(t,!0)&&(n?.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oY(l.data[o],!0)||oY(t,!0)?r.options:o$(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),\"point\"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=o$(e,!0),!1===s?d():r.firePointEvent(\"update\",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=o$(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?\"select\":\"unselect\",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&\"select\"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?\"inactive\":\"\"),t.firePointEvent(\"unselect\"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent(\"mouseOut\"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oU(this.series.options.point,this.options),i=e.events?.[t];oG(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oN(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oZ(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||\"normal\"]||{},r=oD.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r?.states?.[t||\"normal\"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,g,u,f,m=i.stateMarkerGraphic,x;if((t=t||\"\")===this.state&&!e||this.selected&&\"select\"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(g=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass(\"highcharts-point-\"+s),t&&this.graphic.addClass(\"highcharts-point-\"+t),!d.styledMode){u=i.pointAttribs(this,t),f=o$(d.options.chart.animation,o.animation);let e=u.opacity;i.options.inactiveOtherPoints&&oj(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass(\"highcharts-data-label-hidden\")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(u,f)}g&&this.graphic.animate(g,o$(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),g&&(m?m[e?\"animate\":\"attr\"]({x:g.x,y:g.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,g.x,g.y,g.width,g.height,oU(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&\"inactive\"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?\"show\":\"hide\"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b?.visibility||\"inherit\";y?.size&&b&&\"hidden\"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?\"animate\":\"attr\"]({d:this.haloPath(y.size)}),p.attr({class:\"highcharts-halo highcharts-color-\"+o$(this.colorIndex,i.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oW({fill:this.color||i.color,\"fill-opacity\":y.opacity},t6.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oH(this,\"afterSetState\",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oz(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oK=oq,{parse:oJ}=tL,{charts:oQ,composed:o0,isTouchDevice:o1}=w,{addEvent:o2,attr:o3,css:o5,extend:o6,find:o9,fireEvent:o4,isNumber:o8,isObject:o7,objectEach:rt,offset:re,pick:ri,pushUnique:rs,splat:ro}=V;class rr{applyInactiveState(t=[]){let e=[];t.forEach(t=>{let i=t.series;e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&e.push.apply(e,i.linkedSeries),i.navigatorSeries&&e.push(i.navigatorSeries),i.boosted&&i.markerGroup&&e.push.apply(e,this.chart.series.filter(t=>t.markerGroup===i.markerGroup))}),this.chart.series.forEach(t=>{-1===e.indexOf(t)?t.setState(\"inactive\",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState(\"inactive\")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!w.chartCount&&(rr.unbindDocumentMouseUp.forEach(t=>t.unbind()),rr.unbindDocumentMouseUp.length=0,rr.unbindDocumentTouchEnd&&(rr.unbindDocumentTouchEnd=rr.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),rt(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:\"rect\"};return o4(this,\"getSelectionMarkerAttrs\",i,i=>{let s,{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(l.width=Math.max(1,Math.abs(s=t-n)),l.x=(s>0?0:s)+n),a&&(l.height=Math.max(1,Math.abs(s=e-h)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o7(o)?o.enabled:o,p=r&&t[`${r}Key`],g=t.chartX,u=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(gn+l&&(g=n+l),uh+d&&(u=h+d),this.hasDragged=Math.sqrt(Math.pow(i-g,2)+Math.pow(s-u,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(g,u);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:\"highcharts-selection-marker\",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oJ(\"#334eff\").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o4(this,\"getSelectionBox\",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(\"xAxis\"===t.coll&&this.zoomX||\"yAxis\"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o8(i.index)&&(this.selectionMarker=s.destroy())}i&&o8(i.index)&&(o5(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf(\"y\"),r=t.searchPoint(i,o);o7(r,!0)&&r.series&&(!o7(s,!0)||function(t,i){let s,o=t.distX-i.distX,r=t.dist-i.dist,a=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==o&&e?o:0!==r?r:0!==a?a:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&o8(o.x)&&o8(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o?.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=re(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?\"xAxis\":\"yAxis\"].push({axis:i,value:i.toValue(t[i.horiz?\"chartX\":\"chartY\"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&ri(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o4(this,\"beforeGetHoverData\",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c?.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=t.options?.nullInteraction,i=o9(t.points,function(t){return t.x===c.x&&(!t.isNull||!!e)});o7(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))}):a.push(c)),o4(this,\"afterGetHoverData\",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,\"highcharts-tooltip\")||this.inClass(i,\"highcharts-series-\"+s.index)&&this.inClass(i,\"highcharts-tracker\")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=o3(i,\"class\")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf(\"highcharts-container\"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o4(this,\"afterInit\")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):ri(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o6(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,\"highcharts-tracker\")?(o4(i.series,\"click\",o6(s,{point:i})),e.hoverPoint&&i.firePointEvent(\"click\",s)):(o6(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o4(e,\"click\",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),w.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oQ[ri(rr.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,\"highcharts-tooltip\")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),(\"mousedown\"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,\"highcharts-tracker\")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!i?.shouldStickOnContact(s)&&(this.inClass(s.target,\"highcharts-no-tooltip\")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i?.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,\"highcharts-tracker\")||this.reset()}onDocumentMouseUp(t){oQ[ri(rr.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,\"highcharts-tracker\")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&ri(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),\"touchstart\"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o4(i,\"touchpan\",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a?.shared?r:o;t&&n&&ro(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&ro(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n?.series||s.hoverSeries,l=(!t||\"touchmove\"!==t.type)&&(!!e||h?.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h?.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState(\"hover\")}),s.hoverPoint&&s.hoverPoint.firePointEvent(\"mouseOut\"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent(\"mouseOver\",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=o2(s.container.ownerDocument,\"mousemove\",t=>oQ[rr.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i,o=e.crosshair?.snap??!0;!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o9(c,t=>t.series?.[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(o2(t,\"mouseenter\",this.onContainerMouseEnter.bind(this)),o2(t,\"mouseleave\",this.onContainerMouseLeave.bind(this))),rr.unbindDocumentMouseUp.some(t=>t.doc===e)||rr.unbindDocumentMouseUp.push({doc:e,unbind:o2(e,\"mouseup\",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&\"BODY\"!==i.tagName;)this.eventsToUnbind.push(o2(i,\"scroll\",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(o2(t,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1}),o2(t,\"touchmove\",this.onContainerTouchMove.bind(this),{passive:!1})),rr.unbindDocumentTouchEnd||(rr.unbindDocumentTouchEnd=o2(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),o2(this.chart,\"redraw\",this.setPointerCapture.bind(this))}setPointerCapture(){if(!o1)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=ri(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf(\"y\")>-1);!this.hasPointerCapture&&s?(t.push(o2(i,\"pointerdown\",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),o2(i,\"pointermove\",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o5(i,{\"touch-action\":\"none\"}),i.className+=\" highcharts-no-touch-action\",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o5(i,{\"touch-action\":ri(e.options.chart.style?.[\"touch-action\"],\"manipulation\")}),i.className=i.className.replace(\" highcharts-no-touch-action\",\"\"),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=w.charts[ri(rr.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&Object.assign({},t,s),i.pointer?.onContainerMouseLeave(t||s)}i?.mouseIsDown||(rr.hoverChartIndex=e.index)}touch(t,e){let i,{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),\"touchmove\"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),ri(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||\"\",o,r;/touch/.test(t.type)&&(s=ri(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}rr.unbindDocumentMouseUp=[],function(t){t.compose=function(e){rs(o0,\"Core.Pointer\")&&o2(e,\"beforeRender\",function(){this.pointer=new t(this,this.options)})}}(rr||(rr={}));let ra=rr;!function(t){t.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?\"subarray\":\"slice\"](0,e)},t.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,a=t[s?\"subarray\":\"slice\"](e,e+i),n=new r(t.length-i+o.length);return n.set(t.subarray(0,e),0),n.set(o,e),n.set(t.subarray(e+i),e+o.length),{removed:a,array:n}}}(d||(d={}));let{setLength:rn,splice:rh}=d,{fireEvent:rl,objectEach:rd,uniqueKey:rc}=V,rp=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||rc(),this.modified=this,this.rowCount=0,this.versionTag=rc();let e=0;rd(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rd(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=rn(e,t))})}deleteRows(t,e=1){if(e>0&&t{this.columns[o]=rh(s,t,e).array,i=s.length}),this.rowCount=i}rl(this,\"afterDeleteRows\",{rowIndex:t,rowCount:e}),this.versionTag=rc()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rd(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(rl(this,\"afterSetColumns\"),this.versionTag=rc())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rd(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n=rh(n,e,0,!0,[t]).array:n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(rl(this,\"afterSetRows\"),this.versionTag=rc())}},{extend:rg,merge:ru,pick:rf}=V;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||\"circle\",d=h/2,c=o.renderer,p=s.group,g=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),u={},f,m=r.marker,x=0;if(o.styledMode||(u[\"stroke-width\"]=Math.min(r.lineWidth||0,24),r.dashStyle?u.dashstyle=r.dashStyle:\"square\"===r.linecap||(u[\"stroke-linecap\"]=\"round\")),s.line=c.path().addClass(\"highcharts-graph\").attr(u).add(p),i&&(s.area=c.path().addClass(\"highcharts-area\").add(p)),u[\"stroke-linecap\"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[[\"M\",x,g],[\"L\",n-x,g]];s.line.attr({d:t}),s.area?.attr({d:[...t,[\"L\",n-x,a],[\"L\",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(rf(m.radius,d),d);0===l.indexOf(\"url\")&&(m=ru(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,rg({context:\"legend\"},m)).addClass(\"highcharts-point\").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rf(t.options.symbolRadius,o/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(i.group)}}(c||(c={}));let rm=c,{defaultOptions:rx}=tv,{extend:ry,extendClass:rb,merge:rv}=V;!function(t){function e(e,i){let s=rx.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oK),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=w.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rx.plotOptions||{};if(s=s||\"\",n[i]=rv(n[s],o),delete t.seriesTypes[i],e(i,rb(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oK{}ry(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let rk=p,{animObject:rw,setAnimation:rM}=tU,{defaultOptions:rS}=tv,{registerEventOptions:rT}=si,{svg:rC,win:rA}=w,{seriesTypes:rP}=rk,{format:rL}=ep,{arrayMax:rO,arrayMin:rE,clamp:rI,correctFloat:rD,crisp:rB,defined:rN,destroyObjectProperties:rz,diffObjects:rR,erase:rW,error:rH,extend:rF,find:rX,fireEvent:rG,getClosestDistance:rj,getNestedProperty:rY,insertItem:rU,isArray:r$,isNumber:rV,isString:rZ,merge:r_,objectEach:rq,pick:rK,removeEvent:rJ,syncTimeout:rQ}=V;class r0{constructor(){this.zoneAxis=\"y\"}init(t,e){let i;rG(this,\"init\",{options:e}),this.dataTable??(this.dataTable=new rp);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rF(this,{name:o.name,state:\"\",visible:r,selected:!0===o.selected}),rT(this,o);let a=o.events;(a?.click||o.point?.events?.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rK(i?._i,-1)+1,this.opacity=this.options.opacity,t.orderItems(\"series\",rU(this,s)),o.dataSorting?.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rG(this,\"afterInit\")}is(t){return rP[t]&&this instanceof rP[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;rG(this,\"bindAxes\",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rK(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rU(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rH(18,!0,s)})}),rG(this,\"afterBindAxes\")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rK(this.pointInterval,i.pointInterval,1),o&&rV(t)&&(e*=t),s){let t=r.toParts(a);\"day\"===s?t[2]+=e:\"month\"===s?t[1]+=e:\"year\"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rV(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rF(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rN(t.pointRange)||(t.pointRange=1)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=r_(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rG(this,\"setOptions\",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rS.plotOptions[this.type]||{},p=l[this.type]||{};h.dataLabels=this.mergeArrays(c.dataLabels,h.dataLabels),this.userOptions=n.userOptions;let g=r_(h,s.series,p,r);this.tooltipOptions=r_(rS.tooltip,rS.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rK(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zoneAxis=g.zoneAxis||\"y\";let u=this.zones=(g.zones||[]).map(t=>({...t}));return(g.negativeColor||g.negativeFillColor)&&!g.zones&&(e={value:g[this.zoneAxis+\"Threshold\"]||g.threshold||0,className:\"highcharts-negative\"},a||(e.color=g.negativeColor,e.fillColor=g.negativeFillColor),u.push(e)),u.length&&rN(u[u.length-1].value)&&u.push(a?{}:{color:this.color,fillColor:this.fillColor}),rG(this,\"afterSetOptions\",{options:g}),g}getName(){return this.options.name??rL(this.chart.options.lang.seriesName,this,this.chart)}getCyclic(t,e,i){let s,o,r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rN(o=rK(\"color\"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic(\"color\"):this.options.colorByPoint?this.color=\"#cccccc\":this.getCyclic(\"color\",this.options.color||rS.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic(\"symbol\",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o,{id:r,x:a}=t,n=this.points,h=this.options.dataSorting,l=this.cropStart||0;if(r){let t=this.chart.get(r);t instanceof oK&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h?.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rX(n,e)))return}return i&&void 0!==(o=i?.index)&&(s=!0),void 0===o&&rV(a)&&(o=this.getColumn(\"x\").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=l?o-l:o),!s&&rV(o)&&n[o]?.touched&&(o=void 0),o}updateData(t,e){let{options:i,requireSorting:s}=this,o=i.dataSorting,r=this.points,a=[],n=t.length===r.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach((t,e)=>{let l,d=rN(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},{id:p,x:g}=d;p||rV(g)?(-1===(l=this.findPointIndex(d,c))||void 0===l?a.push(t):r[l]&&t!==i.data?.[l]?(r[l].update(t,!1,void 0,!1),r[l].touched=!0,s&&(c=l+1)):r[l]&&(r[l].touched=!0),(!n||e!==l||o?.enabled||this.hasDerivedData)&&(h=!0)):a.push(t)},this),h)for(l=r.length;l--;)(d=r[l])&&!d.touched&&d.remove?.(!1,e);else n&&!o?.enabled?(t.forEach((t,e)=>{t===r[e].y||r[e].destroyed||r[e].update(t,!1,void 0,!1)}),a.length=0):p=!1;if(r.forEach(t=>{t&&(t.touched=!1)}),!p)return!1;a.forEach(t=>{this.addPoint(t,!1,void 0,void 0,!1)},this);let g=this.getColumn(\"x\");return null===this.xIncrement&&g.length&&(this.xIncrement=rO(g),this.autoIncrement()),!0}dataColumnKeys(){return[\"x\",...this.pointArrayMap||[\"y\"]]}setData(t,e=!0,i,s){let o=this.points,r=o?.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),g=this.pointValKey||\"y\",u=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=r_(!0,t));let k=(t=v||t||[]).length;if(h?.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(r$(t)&&(f||rV(t[0])));if(rV(i)&&rV(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[g]:i})}else if(o(i)&&o(s)){if(u){let e=+(i.length===u),s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=u;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf(\"x\"),b=f.indexOf(\"y\"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[g]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rY(i,t),o=rY(i,e);return os)}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;!i.dataSorting?.enabled&&o&&(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,g,u,f,m=e.getColumn(\"x\"),x=i,y=!1;return r&&(u=(g=r.getExtremes()).min,f=g.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new rp:e.getColumn(e.pointValKey||\"y\").length&&(m[0]f)&&(x=(d=this.cropData(i,u,f)).modified,p=d.start,c=!0))),m=x.getColumn(\"x\")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rj([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rH(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rG(this,\"afterProcessData\")}cropData(t,e,i){let s=t.getColumn(\"x\",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rp({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn(\"x\",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping?.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||[\"y\"],g=this.dataColumnKeys(),u,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn(\"x\",!0),d=[],c=this.requireSorting&&!this.is(\"column\")?1:0,p=!!s&&s.positiveValuesOnly,g=o||this.cropped||!i,u,f,m,x=0,y=0;for(i&&(x=(u=i.getExtremes()).min,y=u.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rV(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rE(d),dataMax:rO(d)};return rG(this,\"afterGetExtremes\",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),\"width\"===e.prop&&h?.element&&h.attr(o?\"height\":\"width\",t+99)}),n.addClass(\"highcharts-animating\").animate(t,r)}}afterAnimate(){this.setClip(),rq(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path=\"url(#${t.id})\"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rG(this,\"afterAnimate\")}drawPoints(t=this.points){let e,i,s,o,r,a,n,h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,g=c.nullInteraction,u=this[this.specialGroup||\"markerGroup\"],f=this.xAxis,m=rK(p.enabled,!f||!!f.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o=\"animate\")),s&&\"animate\"===o&&s[e?\"show\":\"hide\"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:\"select\");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rK(o.radius,s?.radius);e&&(n=s.states[e],h=o.states&&o.states[e],l=rK(h?.radius,n?.radius,l&&l+(n?.radiusPlus||0))),t.hasImage=r&&0===r.indexOf(\"url\"),t.hasImage&&(l=0);let d=t.pos();return rV(l)&&d&&(i.crisp&&(d[0]=rB(d[0],t.hasImage?0:\"rect\"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options,s=i.marker,o=t?.options,r=o?.marker||{},a=o?.color,n=t?.color,h=t?.zone?.color,l,d,c=this.color,p,g,u=rK(r.lineWidth,s.lineWidth),f=t?.isNull&&i.nullInteraction?0:1;return c=a||h||n||c,p=r.fillColor||s.fillColor||c,g=r.lineColor||s.lineColor||c,e=e||\"normal\",l=s.states[e]||{},u=rK((d=r.states&&r.states[e]||{}).lineWidth,l.lineWidth,u+rK(d.lineWidthPlus,l.lineWidthPlus,0)),p=d.fillColor||l.fillColor||p,g=d.lineColor||l.lineColor||g,{stroke:g,\"stroke-width\":u,fill:p,opacity:f=rK(d.opacity,l.opacity,f)}}destroy(t){let e,i,s=this,o=s.chart,r=/AppleWebKit\\/533/.test(rA.navigator.userAgent),a=s.data||[];for(rG(s,\"destroy\",{keepEventsForUpdate:t}),this.removeEvents(t),(s.axisTypes||[]).forEach(function(t){i=s[t],i?.series&&(rW(i.series,s),i.isDirty=i.forceRedraw=!0)}),s.legendItem&&s.chart.legend.destroyItem(s),e=a.length;e--;)a[e]?.destroy?.();for(let t of s.zones)rz(t,void 0,!0);V.clearTimeout(s.animationTimeout),rq(s,function(t,e){t instanceof eJ&&!t.survive&&t[r&&\"group\"===e?\"hide\":\"destroy\"]()}),o.hoverSeries===s&&(o.hoverSeries=void 0),rW(o.series,s),o.orderItems(\"series\"),rq(s,function(e,i){t&&\"hcEvents\"===i||delete s[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:g=0}=d||{},u=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push([\"L\",e,Math.abs(r){t.forEach((e,i)=>{(\"M\"===e[0]||\"L\"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rI(d.toPixels(rK(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),\"y\"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,g=0,f=r.len,y=a.len;c?(p=o,f=x):(g=o,y=x);let b=[[\"M\",p,g],[\"L\",f,g],[\"L\",f,y],[\"L\",p,y],[\"Z\"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(u(v),t&&u(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rN(this.opacity)&&!this.chart.styledMode&&\"inactive\"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass(\"highcharts-\"+e+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(rN(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(r.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0),r.attr(n)[a?\"attr\":\"animate\"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&\"series\"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:90*!!o,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rJ(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rw(i.animation),r=t.visible?\"inherit\":\"hidden\",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rG(this,\"render\"),t.plotGroup(\"group\",\"series\",r,a,n),t.markerGroup=t.plotGroup(\"markerGroup\",\"markers\",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rQ(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rG(t,\"afterRender\")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options,s=i.findNearestPointBy.indexOf(\"y\")>-1?2:1;delete e.kdTree,rQ(function(){e.kdTree=function t(i,s,o){let r,a,n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch,i?.nullInteraction),s,s),e.buildingKdTree=!1},i.kdNow||t?.type===\"touchstart\"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?\"distX\":\"dist\",l=(r.options.findNearestPointBy||\"\").indexOf(\"y\")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>{let s=t[i]||0,o=e[i]||0;return[s===o&&t.index>e.index||st=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l=\"rgba(192,192,192,\"+(rC?1e-4:.002)+\")\",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?\"inherit\":\"hidden\",zIndex:2}).addClass(i?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(t.group),o.styledMode||d.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:l,fill:i?l:\"none\",\"stroke-width\":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass(\"highcharts-tracker\").on(\"mouseover\",h).on(\"mouseout\",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on(\"touchstart\",h))})),rG(this,\"afterDrawTracker\")}addPoint(t,e,i,s,o){let r,a,n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c?.hasNames&&c.names,g=n.data,u=this.getColumn(\"x\");e=rK(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=u.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),g?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),\"point\"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,g].filter(rN).forEach(t=>{t.shift()}),d.deleteRows(0))),!1!==o&&rG(this,\"addPoint\",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data].filter(rN).forEach(e=>{e.splice(t,1)}),n.deleteRows(t),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rM(i,o),e=rK(e,!0),h?h.firePointEvent(\"remove\",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rK(t,!0)&&r.redraw(e)}!1!==i?rG(o,\"remove\",null,a):a()}update(t,e){rG(this,\"update\",{options:t=rR(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rP[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=r0.keepProps.slice(),g=t.type||o.type||s.options.chart.type,u=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||[\"dataGrouping\",\"pointStart\",\"pointInterval\",\"pointIntervalUnit\",\"keys\"].some(t=>i.hasOptionChanged(t)));g=g||r,u?(p.push.apply(p,r0.keepPropsForPoints),!1!==t.visible&&p.push(\"area\",\"graph\"),i.parallelArrays.forEach(function(t){p.push(t+\"Data\")}),t.data&&(t.dataSorting&&rF(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=r_(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn(\"x\")[0]},!u&&{data:i.options.data},t,h),u&&t.data&&(t.data=i.options.data),(p=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rP[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rP[g].prototype);else{let t=Object.hasOwnProperty.call(i,\"hcEvents\")&&i.hcEvents;for(c in n)i[c]=void 0;rF(i,rP[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rH(17,!0,s,{missingModuleFor:g});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),u&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t?.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rG(this,\"afterUpdate\"),rK(e,!0)&&s.redraw(!!u&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rK(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rN(r)?i!==o:i!==rK(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rG(this,\"mouseOver\"),this.setState(\"hover\"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rG(this,\"mouseOut\"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState(\"\",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rK(a[t||\"normal\"]&&a[t||\"normal\"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||\"\",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass(\"highcharts-series-\"+i.state),t&&e.addClass(\"highcharts-series-\"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rK(a[t].opacity,l)),o&&!o.dashstyle&&rV(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({\"stroke-width\":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rG(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rG(this,t?\"select\":\"unselect\")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rm[this.options.legendSymbol||\"rectangle\"]?.call(this,t,e)}}r0.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:\"center\",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return\"number\"!=typeof this.y?\"\":t(this.y,-1)},padding:5,style:{fontSize:\"0.7em\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:\"x\"},r0.types=rk.seriesTypes,r0.registerType=rk.registerSeriesType,r0.keepProps=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],r0.keepPropsForPoints=[\"data\",\"isDirtyData\",\"isDirtyCanvas\",\"points\",\"dataTable\",\"processedData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"hasDataLabels\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\",\"transformGroups\"],rF(r0.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:oK,requireSorting:!0,sorted:!0}),rk.series=r0;let r1=r0,{animObject:r2,setAnimation:r3}=tU,{registerEventOptions:r5}=si,{composed:r6,marginNames:r9}=w,{distribute:r4}=ey,{format:r8}=ep,{addEvent:r7,createElement:at,css:ae,defined:ai,discardElement:as,find:ao,fireEvent:ar,isNumber:aa,merge:an,pick:ah,pushUnique:al,relativeLength:ad,stableSort:ac,syncTimeout:ap}=V;class ag{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),r5(this,e),r7(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()})),r7(this.chart,\"render\",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=ah(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=an(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ah(t.symbolWidth,16),this.pages=[],this.proximate=\"proximate\"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(an(!0,this.options,t)),\"events\"in this.options&&r5(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ah(e,!0)&&i.redraw(),ar(this,\"afterUpdate\",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof r1||t instanceof oK)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(an(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,\"fill-opacity\":h?1:l??.75}))}t.color=i,ar(this,\"afterColorizeItem\",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e?.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[ai(e.translateY)?\"animate\":\"attr\"](o,void 0,()=>{ar(this,\"afterPositionItem\",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of[\"group\",\"label\",\"line\",\"symbol\"])i[t]&&(i[t]=i[t].destroy());e&&as(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of[\"clipRect\",\"up\",\"down\",\"pager\",\"nav\",\"box\",\"title\",\"group\"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t,e=this.group?.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r,a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,ae(a,{left:e.translateX+o.checkboxOffset+a.x-20+\"px\",top:r+\"px\",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s=\"horizontal\"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?ah(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e?.options;e&&ah(i.showInLegend,!ai(i.linkedTo)&&void 0,!0)&&(t=t.concat(e.legendItem?.labels||(\"point\"===i.legendType?e.data:e)))}),ar(this,\"afterGetAllItems\",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+\"tv\":t.floating?\"\":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!ai(t[a])&&(i[r9[a]]=Math.max(i[r9[a]],i.legend[(a+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][a]*s[a%2?\"x\":\"y\"]+ah(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t,e=this.chart,i=[],s=\"left\"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=ao(a?t.points:t.points.slice(0).reverse(),function(t){return aa(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r4(i,e.plotHeight)))t=o.item.legendItem||{},aa(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ad(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g(\"legend\").addClass(i.className||\"\").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),ac(o,(t,e)=>(t.options?.legendIndex||0)-(e.options?.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass(\"highcharts-legend-box\").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,\"stroke-width\":i.borderWidth||0,fill:i.backgroundColor||\"none\"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?\"animate\":\"attr\"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?\"show\":\"hide\"](),t.styledMode&&\"none\"===h.getStyle(\"display\")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),ar(this,\"afterRender\")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=an(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(an(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a=\"top\"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=ah(l.animation,!0),c=l.arrowSize||12,p=this.pages,g=this.allItems,u=function(t){\"number\"==typeof t?w.attr({height:t}):w&&(e.clipRect=w.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?\"rect(\"+n+\"px,9999px,\"+(n+t)+\"px,0)\":\"auto\")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(k),i.styledMode||e[t].attr(\"fill\",\"rgba(0,0,0,0.0001)\"),e[t]},m,x,y,b,v=i.spacingBox.height+(a?-r:r)-n,k=this.nav,w=this.clipRect;return\"horizontal\"!==o.layout||\"middle\"===o.verticalAlign||o.floating||(v/=2),h&&(v=Math.min(v,h)),p.length=0,t&&v>0&&t>v&&!1!==l.enabled?(this.clipHeight=m=Math.max(v-20-this.titleHeight-n,0),this.currentPage=ah(this.currentPage,1),this.fullHeight=t,g.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&b&&(b.pageIx=o-1),e===g.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i),b=y}),w||(w=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(w)),u(m),k||(this.nav=k=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol(\"triangle\",0,0,c,c).add(k),f(\"upTracker\").on(\"click\",function(){e.scroll(-1,d)}),this.pager=s.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(k),this.down=s.symbol(\"triangle-down\",0,0,c,c).add(k),f(\"downTracker\").on(\"click\",function(){e.scroll(1,d)})),e.scroll(0),t=v):k&&(u(),this.nav=k.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&r3(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:\"inherit\"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),n.attr({text:l+\"/\"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?\"default\":\"pointer\"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?\"default\":\"pointer\"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),ap(()=>{ar(this,\"afterScroll\",{currentPage:l})},r2(ah(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oK,n=t instanceof r1,h=\"highcharts-legend-\"+(a?\"point\":\"series\")+\"-active\",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on(\"mouseover\",function(){t.visible&&c(\"inactive\"),t.setState(\"hover\"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on(\"mouseout\",function(){s.chart.styledMode||e.css(an(t.visible?s.itemStyle:s.itemHiddenStyle)),c(\"\"),r.removeClass(h),t.setState()}).on(\"click\",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?\"inactive\":\"\")};r.removeClass(h),ar(s,\"itemClick\",{browserEvent:e,legendItem:t},i),a?t.firePointEvent(\"legendItemClick\",{browserEvent:e}):n&&ar(t,\"legendItemClick\",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=at(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r7(t.checkbox,\"click\",function(e){let i=e.target;ar(t.series||t,\"checkboxClick\",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){al(r6,\"Core.Legend\")&&r7(e,\"beforeMargins\",function(){this.legend=new t(this,this.options.legend)})}}(ag||(ag={}));let au=ag,{animate:af,animObject:am,setAnimation:ax}=tU,{defaultOptions:ay}=tv,{numberFormat:ab}=ep,{registerEventOptions:av}=si,{charts:ak,doc:aw,marginNames:aM,svg:aS,win:aT}=w,{seriesTypes:aC}=rk,{addEvent:aA,attr:aP,createElement:aL,css:aO,defined:aE,diffObjects:aI,discardElement:aD,erase:aB,error:aN,extend:az,find:aR,fireEvent:aW,getAlignFactor:aH,getStyle:aF,isArray:aX,isNumber:aG,isObject:aj,isString:aY,merge:aU,objectEach:a$,pick:aV,pInt:aZ,relativeLength:a_,removeEvent:aq,splat:aK,syncTimeout:aJ,uniqueKey:aQ}=V;class a0{static chart(t,e,i){return new a0(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aY(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aV(t.zoomType,e.type),key:aV(t.zoomKey,e.key),pinchType:aV(t.pinchType,e.pinchType),singleTouch:aV(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aU(e.resetButton,t.resetZoomButton)}}init(t,e){aW(this,\"init\",{args:arguments},function(){let i=aU(ay,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=az({},t),(this.renderTo=aY(o)?aw.getElementById(o):o)||aN(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest(\"[lang]\")?.lang,this.time=new tu(az(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ab).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ak.length,ak.push(this),w.chartCount++,av(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aW(this,\"afterInit\"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=aC[i];s||aN(17,!0,this,{missingModuleFor:i});let o=new s;return\"function\"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aK(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aK(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(u.isInsidePlot=!1)}if(!i.ignoreY&&u.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+g:a+g;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(u.isInsidePlot=!1)}return aW(this,\"afterIsInsidePlot\",u),u.isInsidePlot}redraw(t){aW(this,\"beforeRedraw\");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,g=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle(\"font-size\"),this.setResponsive&&this.setResponsive(!1),ax(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&(\"point\"===t.options.legendType?(\"function\"==typeof t.updateTotals&&t.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&(g=!0)),t.isDirtyData&&aW(t,\"updatedData\")}),g&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+\",\"+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aW(t,\"afterSetExtremes\",az(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aW(this,\"predraw\"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aW(this,\"redraw\"),aW(this,\"render\"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aR(this.axes,i)||aR(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aV(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription(\"title\",t),this.applyDescription(\"subtitle\",e),this.applyDescription(\"caption\",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aU(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:\"highcharts-\"+t,zIndex:s.zIndex||4}).css({textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(az(\"title\"===t?{fontSize:this.options.isStock?\"1em\":\"1.2em\"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;[\"title\",\"subtitle\",\"caption\"].forEach(t=>{let i=this[t],r=this.options[t],a=aU(o),n=i?.textPxLength||0;if(i&&r){aW(this,\"layOutTitle\",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||\"top\",c=\"top\"===d,p=c&&r.minScale||1,g=\"title\"===t?c?-3:0:c?e[0]+2:0,u=Math.min(a.width/n,1),f=Math.max(p,u),m=aU({y:\"bottom\"===d?h:g+h},{align:\"title\"===t?up?this.chartWidth:a.width)/f)+\"px\";i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:x}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,\"transform-origin\":`${a.x+n*f*aH(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);\"top\"===d?e[0]=Math.ceil(e[0]+t):\"bottom\"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&\"top\"===(i.title?.verticalAlign||\"top\")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign===\"bottom\"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(\",\")!==e.join(\",\");this.titleOffset=e,aW(this,\"afterLayOutTitles\"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display=\"none\",[t,e]}}),e={width:aF(this.renderTo,\"width\",!0)||0,height:aF(this.renderTo,\"height\",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&\"100%\"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,a_(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(aO(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(aw.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(aw.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,aw.body.appendChild(e)),(\"none\"===aF(e,\"display\",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:\"block\",overflow:\"hidden\"},e!==this.renderTo&&(i.height=0),aO(e,i),e.offsetWidth||e.style.setProperty(\"display\",\"block\",\"important\")),(e=e.parentNode)!==aw.body););}setClassName(t){this.container.className=\"highcharts-container \"+(t||\"\")}getContainer(){let t,e=this.options,i=e.chart,s=\"data-highcharts-chart\",o=aQ(),r=this.renderTo,a=aZ(aP(r,s));aG(a)&&ak[a]&&ak[a].hasRendered&&ak[a].destroy(),aP(r,s,this.index),r.innerHTML=t6.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;aO(r,{overflow:\"hidden\"}),this.styledMode||(t=az({position:\"relative\",overflow:\"hidden\",width:h+\"px\",height:n+\"px\",textAlign:\"left\",lineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\",userSelect:\"none\",\"touch-action\":\"manipulation\",outline:\"none\",padding:\"0px\"},i.style||{}));let l=aL(\"div\",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||aO(l,{width:aV(i.style?.width,h+\"px\")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!aS?eg.getRendererType(i.renderer):iU;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode),ax(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aW(this,\"afterGetContainer\")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!aE(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!aE(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),aW(this,\"getMargins\"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i?.length&&o(i),aM.forEach(function(i,o){aE(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return aI(this.userOptions,ay)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(V.clearTimeout(e.reflowTimeout),e.reflowTimeout=aJ(function(){e.container&&e.setSize(void 0,void 0,!1)},100*!!t)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if(\"function\"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=aA(aT,\"resize\",e);aA(this,\"destroy\",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ax(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?af:aO)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aW(s,\"resize\"),setTimeout(()=>{s&&aW(s,\"endResize\")},am(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?\"floor\":\"round\"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-(this.marginRight??0))),this.plotHeight=o=Math.max(0,Math.round(r-i-(this.marginBottom??0))),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aW(this,\"afterSetChartSize\",{skipAxes:t})}resetMargins(){aW(this,\"resetMargins\");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=Math.round(i)/2;[\"margin\",\"spacing\"].forEach(function(i){let s=e[i],o=aj(s)?s:[s,s,s,s];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(s,r){t[i][r]=aV(e[i+s],o[r])})}),aM.forEach(function(e,i){t[e]=aV(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,g=this.plotBox,u=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,w=\"animate\";m||(this.chartBackground=m=e.rect().addClass(\"highcharts-background\").add(),w=\"attr\"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+8*!!t.shadow,k={fill:a||\"none\"},(b||m[\"stroke-width\"])&&(k.stroke=t.borderColor,k[\"stroke-width\"]=b),m.attr(k).shadow(t.shadow)),m[w]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),w=\"animate\",x||(w=\"attr\",this.plotBackground=x=e.rect().addClass(\"highcharts-plot-background\").add()),x[w](g),!o&&(x.attr({fill:n||\"none\"}).shadow(t.plotShadow),h&&(r?(h!==r.attr(\"href\")&&r.attr(\"href\",h),r.animate(g)):this.plotBGImage=e.image(h,l,d,c,p).add())),u?u.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),w=\"animate\",y||(w=\"attr\",this.plotBorder=y=e.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,\"stroke-width\":t.plotBorderWidth||0,fill:\"none\"}),y[w](y.crisp(g,-y.strokeWidth())),this.isDirtyBox=!1,aW(this,\"afterDrawChartBox\")}propFromSeries(){let t,e,i,s=this,o=s.options.chart,r=s.options.series;[\"inverted\",\"angular\",\"polar\"].forEach(function(a){for(e=aC[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=aC[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aY(i)){let s;(s=\":previous\"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aV(t.options.visible,s.options.visible,t.visible))}}),aW(this,\"afterLinkSeries\",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aW(this,\"beforeMargins\"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&\"colorAxis\"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sf(e,0,\"\",!0),o=s.createLabel(\"x\",i);if(s.destroy(),o&&aV(i.reserveSpace,!aG(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e?.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g(\"series-group\").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aU(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){i.href&&(aT.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t,e=this,i=e.axes,s=e.series,o=e.container,r=o?.parentNode;for(aW(e,\"destroy\"),e.renderer.forExport?aB(ak,e):ak[e.index]=void 0,w.chartCount--,e.renderTo.removeAttribute(\"data-highcharts-chart\"),aq(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller?.destroy?.(),t=s.length;t--;)s[t]=s[t].destroy();[\"title\",\"subtitle\",\"chartBackground\",\"plotBackground\",\"plotBGImage\",\"plotBorder\",\"seriesGroup\",\"clipRect\",\"credits\",\"pointer\",\"rangeSelector\",\"legend\",\"resetZoomButton\",\"tooltip\",\"renderer\"].forEach(t=>{e[t]=e[t]?.destroy?.()}),o&&(o.innerHTML=t6.emptyHTML,aq(o),r&&aD(o)),a$(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aX(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aW(t,\"beforeRender\"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aW(this,\"load\"),aW(this,\"render\"),aE(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:\"img\",\"aria-label\":(e?.element.textContent||\"\").replace(/this.transform({reset:!0,trigger:\"zoom\"}))}pan(t,e){let i=this,s=\"object\"==typeof e?e:{enabled:e,type:\"x\"},o=s.type,r=o&&i[({x:\"xAxis\",xy:\"axes\",y:\"yAxis\"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aW(this,\"pan\",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:\"pan\"}),aO(i.container,{cursor:\"move\"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:g,minPointOffset:u=0,options:f,reversed:m}=t,x=e?\"width\":\"height\",y=e?\"x\":\"y\",b=aV(a[x],t.len),v=aV(s[x],t.len),k=10>Math.abs(b)?1:b/v,w=(s[y]||0)+v/2-t.pos,M=w-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(w<0||w>t.len))continue;let T=t.toValue(M,!0)+(r||t.isOrdinal?0:u*S),C=t.toValue(M+g/k,!0)-(r||t.isOrdinal?0:u*S||0),A=t.allExtremes;if(T>C&&([T,C]=[C,T]),1===k&&!o&&\"yAxis\"===t.coll&&!A){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn(\"y\")||[],!0);A??(A={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aG(t.dataMin)&&aG(t.dataMax)&&(A.dataMin=Math.min(t.dataMin,A.dataMin),A.dataMax=Math.max(t.dataMax,A.dataMax))}t.allExtremes=A}let{dataMin:P,dataMax:L,min:O,max:E}=az(t.getExtremes(),A||{}),I=l.parse(f.min),D=l.parse(f.max),B=P??I,N=L??D,z=C-T,R=t.categories?0:Math.min(z,N-B),W=B-R*(aE(I)?0:f.minPadding),H=N+R*(aE(D)?0:f.maxPadding),F=t.allowZoomOutside||1===k||\"zoom\"!==n&&k>1,X=Math.min(I??W,W,F?O:W),G=Math.max(D??H,H,F?E:H);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(T=1&&(C=T+z)),C>G&&(C=G,k>=1&&(T=C-z)),(o||t.series.length&&(T!==O||C!==E)&&T>=X&&C<=G)&&(r?r[t.coll].push({axis:t,min:T,max:C}):(t.isPanning=\"zoom\"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:T,o?void 0:C,!1,!1,{move:M,trigger:n,scale:k}),!o&&(T>X||C{delete t.selection,t.trigger=\"zoom\",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(\"zoom\"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}az(a0.prototype,{callbacks:[],collectionsWithInit:{xAxis:[a0.prototype.addAxis,[!0]],yAxis:[a0.prototype.addAxis,[!1]],series:[a0.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:[\"backgroundColor\",\"borderColor\",\"borderWidth\",\"borderRadius\",\"plotBackgroundColor\",\"plotBackgroundImage\",\"plotBorderColor\",\"plotBorderWidth\",\"plotShadow\",\"shadow\"],propsRequireReflow:[\"margin\",\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\",\"spacing\",\"spacingTop\",\"spacingRight\",\"spacingBottom\",\"spacingLeft\"],propsRequireUpdateSeries:[\"chart.inverted\",\"chart.polar\",\"chart.ignoreHiddenSeries\",\"chart.type\",\"colors\",\"plotOptions\",\"time\",\"tooltip\"]});let{stop:a1}=tU,{composed:a2}=w,{addEvent:a3,createElement:a5,css:a6,defined:a9,erase:a4,merge:a8,pushUnique:a7}=V;function nt(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new ni(this)),t?.applyFixed()}function ne(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class ni{static compose(t,e,i){a7(a2,this.compose)&&(a3(t,\"afterInit\",ne),a3(e,\"afterSetChartSize\",t=>this.afterSetSize(t.target,t)),a3(e,\"render\",nt),a3(i,\"show\",ne))}static afterSetSize(t,e){let i,s,o,{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=a8(t.plotBox),h.width=t.plotWidth+=i,n[l?\"height\":\"width\"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),a9(s)&&(t.scrollablePlotBox=a8(t.plotBox),h.height=t.plotHeight+=s,n[l?\"width\":\"height\"]+=s,o=!1)),a9(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&\"yAxis\"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e,i=t.options.chart,s=eg.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};t.scrollablePixelsX&&(a.overflowX=\"auto\"),t.scrollablePixelsY&&(a.overflowY=\"auto\"),this.chart=t;let n=this.parentDiv=a5(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},t.renderTo),h=this.scrollingContainer=a5(\"div\",{className:\"highcharts-scrolling\"},a,n),l=this.innerContainer=a5(\"div\",{className:\"highcharts-inner-container\"},void 0,h),d=this.fixedDiv=a5(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||\"#fff\",\"fill-opacity\":o.opacity??.85,zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),h.parentNode.insertBefore(d,h),a6(t.renderTo,{overflow:\"visible\"}),a3(t,\"afterShowResetZoom\",r),a3(t,\"afterApplyDrilldown\",r),a3(t,\"afterLayOutTitles\",r),a3(h,\"scroll\",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:g=0}=t,{scrollPositionX:u=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+g;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),a1(t.container),a6(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(\" \")}),t.chartBackground?.attr({width:m,height:x}),a6(s,{width:`${r}px`,height:`${a}px`}),a9(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,w=l+c-p,M=d+h-g,S=[[\"M\",0,0]];p?S=[[\"M\",0,y],[\"L\",l-1,y],[\"L\",l-1,v],[\"L\",0,v],[\"Z\"],[\"M\",w,y],[\"L\",r,y],[\"L\",r,v],[\"L\",w,v],[\"Z\"]]:g&&(S=[[\"M\",b,0],[\"L\",b,d-1],[\"L\",k,d-1],[\"L\",k,0],[\"Z\"],[\"M\",b,M],[\"L\",b,a],[\"L\",k,a],[\"L\",k,M],[\"Z\"]]),\"adjustHeight\"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=ni.fixedSelectors;if(s&&!i?t=\".highcharts-yaxis\":s&&i?t=\".highcharts-xaxis\":o&&!i?t=\".highcharts-xaxis\":o&&i&&(t=\".highcharts-yaxis\"),t&&!(this.chart.hasParallelCoordinates&&\".highcharts-yaxis\"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a7(a,e);else for(let t of[\".highcharts-xaxis\",\".highcharts-yaxis\"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a4(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents=\"auto\"})}}ni.fixedSelectors=[\".highcharts-breadcrumbs-group\",\".highcharts-contextbutton\",\".highcharts-caption\",\".highcharts-credits\",\".highcharts-drillup-button\",\".highcharts-legend\",\".highcharts-legend-checkbox\",\".highcharts-navigator-series\",\".highcharts-navigator-xaxis\",\".highcharts-navigator-yaxis\",\".highcharts-navigator\",\".highcharts-range-selector-group\",\".highcharts-reset-zoom\",\".highcharts-scrollbar\",\".highcharts-subtitle\",\".highcharts-title\"];let{format:ns}=ep,{series:no}=rk,{destroyObjectProperties:nr,fireEvent:na,getAlignFactor:nn,isNumber:nh,pick:nl}=V,nd=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?\"left\":\"right\":\"center\"),verticalAlign:e.verticalAlign||(r?\"middle\":n?\"bottom\":\"top\"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?\"right\":\"left\":\"center\")}destroy(){nr(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?ns(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:\"hidden\"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,\"stack-labels\");let s={r:i.borderRadius||0,text:o,padding:nl(i.padding,5),visibility:\"hidden\"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s[\"stroke-width\"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,na(this,\"afterRender\")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:g}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i=\"justify\"===nl(l.overflow,\"justify\"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&no.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*nn(l.textAlign||\"center\"),rotationOriginY:t.height/2}),nl(!i&&l.crop,!0)&&(s=nh(h.x)&&nh(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?\"show\":\"hide\"]()}na(this,\"afterSetOffset\",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*nn(i)-1),y:t.height/2*2*(1-nn(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:nl(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=nl(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||nh(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),g=i.inverted,u=this.isNegative;return g?{x:(u?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(u?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:nc}=tU,{series:{prototype:np}}=rk,{addEvent:ng,correctFloat:nu,defined:nf,destroyObjectProperties:nm,fireEvent:nx,isNumber:ny,objectEach:nb,pick:nv}=V;function nk(){let t=this.inverted;this.axes.forEach(t=>{t.stacking?.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis?.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nv(e.options.stack,\"\"),t?i.top:i.left,t?i.height:i.width].join(\",\"))})}function nw(){let t=this.stacking;if(t){let e=t.stacks;nb(e,(t,i)=>{nm(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nM(){this.stacking||(this.stacking=new nL(this))}function nS(t,e,i,s){return!nf(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(\",\"),t}function nT(){let t,e=this,i=e.yAxis,s=e.stackKey||\"\",o=i.stacking.stacks,r=e.getColumn(\"x\",!0),a=e.options.stacking,n=e[a+\"Stacker\"];n&&[s,\"-\"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||\"\"])&&n.call(e,l,h,s)})}function nC(t,e,i){let s=e.total?100/e.total:0;t[0]=nu(t[0]*s),t[1]=nu(t[1]*s),this.stackedYData[i]=t[1]}function nA(t){(this.is(\"column\")||this.is(\"columnrange\"))&&(this.options.centerInCategory&&this.chart.series.length>1?np.setStackedPoints.call(this,t,\"group\"):t.stacking.resetStacks())}function nP(t,e){let i,s,o,r,a,n,h,l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:\"xAxis\"})[l]||\"yAxis\")!==t.coll)return;let d=this.getColumn(\"x\",!0),c=this.getColumn(this.pointValKey||\"y\",!0),p=[],g=c.length,u=this.options,f=u.threshold||0,m=u.startFromThreshold?f:0,x=u.stack,y=e?`${this.type},${l}`:this.stackKey||\"\",b=\"-\"+y,v=this.negStacks,k=t.stacking,w=k.stacks,M=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+\",\"+e+\",0\"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;\"percent\"===l?(r=s?y:b,S=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,S)+Math.abs(u):nu(S+Math.abs(u))):\"group\"===l?ny(g)&&S++:S=nu(S+u),\"group\"===l?o.cumulative=(S||1)-1:o.cumulative=nu(nv(o.cumulative,m)+u),o.total=S,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}\"percent\"===l&&(k.usePercentage=!0),\"group\"!==l&&(this.stackedYData=p),k.oldStacks={}}class nL{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e,i=this.axis,s=i.series,o=\"xAxis\"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{nb(t,t=>{t.cumulative=t.total})}))}resetStacks(){nb(this.stacks,t=>{nb(t,(e,i)=>{ny(e.touched)&&e.touched{nb(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(g||(g={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(ng(t,\"init\",nM),ng(t,\"destroy\",nw),s.getStacks=nk,o.getStackIndicator=nS,o.modifyStacks=nT,o.percentStacker=nC,o.setGroupedPoints=nA,o.setStackedPoints=nP)};let nO=g,{defined:nE,merge:nI,isObject:nD}=V;class nB extends r1{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?\"animate\":\"attr\",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass(\"highcharts-graph\"+(o?` highcharts-zone-graph-${o-1} `:\" \")+(o&&s.className||\"\")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||\"#cccccc\",\"stroke-width\":t.lineWidth||0,fill:this.fillGraph&&this.color||\"none\"},h?r.dashstyle=h:\"square\"!==t.linecap&&(r[\"stroke-linecap\"]=r[\"stroke-linejoin\"]=\"round\"),a[n](r).shadow(t.shadow&&nI({filterUnits:\"userSpaceOnUse\"},nD(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,o.nullInteraction||!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c,p=l.plotX,g=l.plotY,u=t[d-1],f=l.isNull||\"number\"!=typeof g;(l.leftCliff||u?.rightCliff)&&!i&&(n=!0),f&&!nE(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[[\"M\",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[[\"L\",u.plotX,g]]:2===h?[[\"L\",(u.plotX+p)/2,u.plotY],[\"L\",(u.plotX+p)/2,g]]:[[\"L\",p,u.plotY]]).push([\"L\",p,g]):c=[[\"L\",p,g]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nB.defaultOptions=nI(r1.defaultOptions,{legendSymbol:\"lineMarker\"}),rk.registerSeriesType(\"line\",nB);let{seriesTypes:{line:nN}}=rk,{extend:nz,merge:nR,objectEach:nW,pick:nH}=V;class nF extends nN{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?\"animate\":\"attr\";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass(\"highcharts-area\"+(s?` highcharts-zone-area-${s-1} `:\" \")+(s&&i.className||\"\")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o[\"fill-opacity\"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?\"none\":\"auto\"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s,o=nN.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,g=Math.round(n.getThreshold(r.threshold)),u=nH(r.connectNulls,\"percent\"===a),f=function(i,s,o){let r=t[i],u=a&&c[r.x].points[d],f=r[o+\"Null\"]||0,m=r[o+\"Cliff\"]||0,x,y,b=!0;m||f?(x=(f?u[0]:u[1])+m,y=u[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?g:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?g:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,g){let u=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?\"rightNull\":\"leftNull\",r=a[s[g+i]],u=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n7(this.xAxis.stacking?.stacks,t=>{let e=\"number\"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&n6(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(\",\")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(n2(s)){if(n9(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=n8(i.borderWidth,+!s),r=t.xAxis,a=t.yAxis,n=i.threshold,h=n8(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,g=t.dataMax,u=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),r1.prototype.translate.apply(t),t.points.forEach(function(s){let o=n8(s.yBottom,u),m=999+Math.abs(o),x=s.plotX||0,y=n0(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,w=d,M=x+c,S=f;h&&Math.abs(k)h?o-h:u-(b?h:0)),n2(s.options.pointWidth)&&(M-=Math.round(((w=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(M=t.adjustForMissingColumns(M,w,s,l)),s.barX=M,s.pointWidth=w,s.tooltipPos=e.inverted?[n0(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-M-S/2,k]:[r.left-e.plotLeft+M+S/2,n0(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||\"roundedRect\",s.shapeArgs=t.crispCol(M,v,S,s.isNull?0:k)}),n5(this,\"afterColumnTranslate\")}drawGraph(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||\"borderColor\",r=s[\"stroke-width\"]||\"borderWidth\",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,g=t?.isNull&&i.nullInteraction?0:t?.opacity??i.opacity??1;t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=n4(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nJ(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=n8(a.opacity,g));let u={fill:l,stroke:d,\"stroke-width\":p,opacity:g};return c&&(u.dashstyle=c),u}drawPoints(t=this.points){let e,i=this,s=this.chart,o=i.options,r=o.nullInteraction,a=s.renderer,n=o.animationLimit||250;t.forEach(function(t){let h=t.plotY,l=t.graphic,d=!!l,c=l&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=ho(h)&&ho(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&\"justify\"===hp(i.overflow,a?\"none\":\"justify\"),g=this.visible&&!1!==t.visible&&ho(h)&&(t.series.forceDL||a&&!p||c||hp(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),u=t.pos();if(g&&u){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=hr({x:u[0],y:Math.round(u[1]),width:0,height:0},s||{}),\"plotEdges\"===i.alignTo&&this.isCartesian&&(s[n?\"x\":\"y\"]=0,s[n?\"width\":\"height\"]=this.yAxis?.len||0),hr(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(hd(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=hn(i.align)*(l.width-h.width),e.alignAttr.y+=hn(i.verticalAlign)*(l.height-h.height),e[e.placed?\"animate\":\"attr\"]({\"text-align\":e.alignAttr[\"text-align\"]||\"center\",x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(hp(i.crop,!0)){let{x:t,y:i}=e.alignAttr;g=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?\"attr\":\"animate\"]({anchorX:u[0],anchorY:u[1]})}o&&a&&(e.placed=!1),g||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup(\"dataLabelsGroup\",\"data-labels\",this.hasRendered?\"inherit\":\"hidden\",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(hl(l)&&l||hl(a)&&a||\"#000000\"),c=h(i),{animation:p,defer:g}=c[0],u=g?hi(s,p,i):{defer:0,duration:0};ha(this,\"drawDataLabels\"),i.hasDataLabels?.()&&(e=this.initDataLabels(u),t.forEach(t=>{let a=t.dataLabels||[],h=t.color||i.color;hu(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,l)=>{let c=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return\">\"===e&&s>o||\"<\"===e&&s=\"===e&&s>=o||\"<=\"===e&&s<=o||\"==\"===e&&s==o||\"===\"===e&&s===o||\"!=\"===e&&s!=o||\"!==\"===e&&s!==o||!1}return!0}(t,n),{backgroundColor:p,borderColor:g,distance:u,style:f={}}=n,m,x,y,b={},v=a[l],k=!v,w;c&&(x=ho(m=hp(n[t.formatPrefix+\"Format\"],n.format))?hs(m,t,s):(n[t.formatPrefix+\"Formatter\"]||n.formatter).call(t,n),y=n.rotation,!s.styledMode&&(f.color=hp(n.color,f.color,hl(i.color)?i.color:void 0,\"#000000\"),\"contrast\"===f.color?(\"none\"!==p&&(w=p),t.contrastColor=r.getContrast(\"auto\"!==w&&hl(w)&&w||(hl(h)?h:\"\")),f.color=w||!ho(u)&&n.inside||0>hg(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(f.cursor=o.cursor)),b={r:n.borderRadius||0,rotation:y,padding:n.padding,zIndex:1},s.styledMode||(b.fill=\"auto\"===p?t.color:p,b.stroke=\"auto\"===g?t.color:g,b[\"stroke-width\"]=n.borderWidth),hc(b,(t,e)=>{void 0===t&&delete b[e]})),!v||c&&ho(x)&&!!(v.div||v.text?.foreignObject)==!!n.useHTML&&(v.rotation&&n.rotation||v.rotation===n.rotation)||(v=void 0,k=!0),c&&ho(x)&&(v?b.text=x:(v=r.label(x,0,0,n.shape,void 0,void 0,n.useHTML,void 0,\"data-label\")).addClass(\" highcharts-data-label-color-\"+t.colorIndex+\" \"+(n.className||\"\")+(n.useHTML?\" highcharts-tracker\":\"\")),v&&(v.options=n,v.attr(b),s.styledMode?f.width&&v.css({width:f.width,textOverflow:f.textOverflow,whiteSpace:f.whiteSpace}):v.css(f).shadow(n.shadow),ha(v,\"beforeAddingDataLabel\",{labelOptions:n,point:t}),v.added||v.add(e),i.alignDataLabel(t,v,n,void 0,k),v.isActive=!0,a[l]&&a[l]!==v&&a[l].destroy(),a[l]=v))});let l=a.length;for(;l--;)a[l]?.isActive?a[l].isActive=!1:(a[l]?.destroy(),a.splice(l,1));t.dataLabel=a[0],t.dataLabels=a})),ha(this,\"afterDrawDataLabels\")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,g=p?p.top-a.plotTop:0,{x:u=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&(\"right\"===n&&u>=0?(e.align=\"left\",e.inside=!0):u-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&(\"left\"===n&&u<=0?(e.align=\"right\",e.inside=!0):u+=a.plotWidth-m,x=!0),(m=i.y+l+g)<0&&(\"bottom\"===h&&f>=0?(e.verticalAlign=\"top\",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+g)>a.plotHeight&&(\"top\"===h&&f<=0?(e.verticalAlign=\"bottom\",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=u,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(hh(t)&&!hh(e))i=t.map(function(t){return hd(t,e)});else if(hh(e)&&!hh(t))i=e.map(function(e){return hd(t,e)});else if(hh(t)||hh(e)){if(hh(t)&&hh(e))for(s=Math.max(t.length,e.length);s--;)i[s]=hd(t[s],e[s])}else i=hd(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hu(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?\"hidden\"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let h=t.prototype;h.initDataLabels||(h.initDataLabels=o,h.initDataLabelsGroup=s,h.alignDataLabel=i,h.drawDataLabels=r,h.justifyDataLabel=a,h.mergeArrays=n,h.setDataLabelStartPos=l,h.hasDataLabels=e)}}(u||(u={}));let hf=u,{composed:hm}=w,{series:hx}=rk,{merge:hy,pushUnique:hb}=V;!function(t){function e(t,e,i,s,o){let{chart:r,options:a}=this,n=r.inverted,h=this.xAxis?.len||r.plotSizeX||0,l=this.yAxis?.len||r.plotSizeY||0,d=t.dlBox||t.shapeArgs,c=t.below??(t.plotY||0)>(this.translatedThreshold??l),p=i.inside??!!a.stacking;if(d){if(s=hy(d),\"allow\"!==i.overflow||!1!==i.crop||!1!==a.clip){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-l;t>0&&t\u25CF {series.name}
',pointFormat:\"x: {point.x}
y: {point.y}
\"}}),hA(hL.prototype,{drawTracker:hS.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"]}),hC(hL,\"afterTranslate\",function(){this.applyJitter()}),rk.registerSeriesType(\"scatter\",hL);let{deg2rad:hO}=w,{fireEvent:hE,isNumber:hI,pick:hD,relativeLength:hB}=V;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;\"string\"==typeof l&&(l=parseFloat(l)),\"string\"==typeof d&&(d=parseFloat(d));let g=[hD(r?.[0],\"50%\"),hD(r?.[1],\"50%\"),hD(l&&l<0?void 0:t.size,\"100%\"),hD(d&&d<0?void 0:t.innerSize||0,\"0%\")];for(!e.angular||this instanceof r1||(g[3]=0),c=0;c<4;++c)p=g[c],h=c<2||2===c&&/%$/.test(p),g[c]=hB(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),hI(n)&&2*n0&&(g[3]=g[2]-2*n),hE(this,\"afterGetCenter\",{positions:g}),g},t.getStartAndEndRadians=function(t,e){let i=hI(t)?t:0,s=hI(e)&&e>i&&e-i<360?e:i+360;return{start:hO*(i+-90),end:hO*(s+-90)}}}(m||(m={}));let hN=m,{setAnimation:hz}=tU,{addEvent:hR,defined:hW,extend:hH,isNumber:hF,pick:hX,relativeLength:hG}=V;class hj extends oK{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=t.chart.options.lang.pieSliceName);let s=t=>{this.slice(\"select\"===t.type)};hR(this,\"select\",s),hR(this,\"unselect\",s)}isValid(){return hF(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hz(i,s.chart),e=hX(e,!0),this.sliced=this.options.sliced=t=hW(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hH(hj.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?[\"C\",t.x+(\"left\"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:[\"L\",s.x,s.y];return[[\"M\",t.x,t.y],r,[\"L\",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[[\"M\",t.x,t.y],[\"L\",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,g=\"left\"===t.alignment,{x:u,y:f}=t,m=o.x;if(i.crookDistance){let t=hG(i.crookDistance,1);m=g?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[[\"M\",u,f]];return(g?m<=u&&m>=o.x:m>=u&&m<=o.x)&&x.push([\"L\",m,f]),x.push([\"L\",o.x,o.y],[\"L\",r.x,r.y]),x}}});let{getStartAndEndRadians:hY}=hN,{noop:hU}=w,{clamp:h$,extend:hV,fireEvent:hZ,merge:h_,pick:hq}=V;class hK extends r1{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hq(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e,i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass(\"highcharts-empty-series\").add(this.group)),this.graph.attr({d:is.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({\"stroke-width\":o.borderWidth,fill:o.fillColor||\"none\",stroke:o.color||\"#cccccc\"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(h$((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s,o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&\"select\")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({\"stroke-linejoin\":\"round\"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||h_(!0,n,i),h_(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?\"inherit\":\"hidden\"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hZ(this,\"translate\"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hY(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,g,u,f,m=0;for(t||(this.center=t=this.getCenter()),u=0;u1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*g],f.half=+(c<-Math.PI/2||c>Math.PI/2),f.angle=c}hZ(this,\"afterTranslate\")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hK.defaultOptions=h_(r1.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:\"crookedLine\",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hV(hK.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:he.prototype.drawTracker,getCenter:hN.getCenter,getSymbol:hU,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:he.prototype.pointAttribs,pointClass:hj,requireSorting:!1,searchPoint:hU,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),rk.registerSeriesType(\"pie\",hK);let{composed:hJ,noop:hQ}=w,{distribute:h0}=ey,{series:h1}=rk,{arrayMax:h2,clamp:h3,defined:h5,pick:h6,pushUnique:h9,relativeLength:h4}=V;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,g=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?\"center\":t.half?\"right\":\"left\",connectorPosition:{angle:r,breakAt:{x:c+l*g,y:p+d*g},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,g,u,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),t.shortened=!1)})}),h1.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=h4(o?.distance||0,s);0===i&&d[t.half].push(t),!h5(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+\"px\"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},g.push(t.distributeBox))})}),h0(g,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,w=0,M=y,S=\"inherit\";if(x){if(g&&h5(m)&&x.distance>0&&(void 0===m.pos?S=\"hidden\":(f=m.size,M=p.radialDistributionY(i,l))),d.justify)w=p.justify(i,l,h,n);else switch(d.alignTo){case\"connectors\":w=p.alignToConnectors(e,a,s,r);break;case\"plotEdges\":w=p.alignToPlotEdges(l,a,s,r);break;default:w=p.radialDistributionX(t,i,M-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:M+(d.y||0)-v/2},x.computed.x=w,x.computed.y=M-k,h6(d.crop,!0)){let t;w-(u=l.getBBox().width)s-b&&0===a&&(t=Math.round(w+u-s+b),c[1]=Math.max(t,c[1])),M-f/2<0?c[0]=Math.max(Math.round(-M+f/2),c[0]):M+f/2>o&&(c[2]=Math.max(Math.round(M+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===h2(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;g=s.connector,a&&a.distance>0?(n=!g,g||(s.connector=g=i.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\"+e.colorIndex+(e.className?\" \"+e.className:\"\")).add(t.dataLabelsGroup)),i.styledMode||g.attr({\"stroke-width\":r,stroke:o||e.color||\"#666666\"}),g[n?\"attr\":\"animate\"]({d:e.getConnectorPath(s)}),g.attr({visibility:a.attribs?.visibility})):g&&(s.connector=g.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+\"px\",textOverflow:t.options?.style?.textOverflow||\"ellipsis\"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?\"animate\":\"attr\"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=h3(r,o,e[2]-Math.max(t[0],t[2])):(r=h3(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(y||(y={}));let{pointInPolygon:h7}=y,{addEvent:lt,getAlignFactor:le,fireEvent:li,objectEach:ls,pick:lo}=V;function lr(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(h7({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{ls(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=lo(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,la(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let lh={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=lr,lt(t,\"render\",ln))}},{defaultOptions:ll}=tv,{noop:ld}=w,{addEvent:lc,extend:lp,isObject:lg,merge:lu,relativeLength:lf}=V,lm={radius:0,scope:\"stack\",where:void 0},lx=ld,ly=ld;function lb(t,e,i,s,o={}){let r=lx(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(lf(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),g=Math.min(p,d/Math.PI*2*a),u=r.length-1;for(;u--;)!function(t,e,i){let s,o,r,a=t[e],n=t[e+1];if(\"Z\"===n[0]&&(n=t[0]),(\"M\"===a[0]||\"L\"===a[0])&&\"A\"===n[0]?(s=a,o=n,r=!0):\"A\"===a[0]&&(\"M\"===n[0]||\"L\"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,g=n?a-i:a+i,u=g?Math.asin(i/g):0,f=n?u:-u,m=Math.cos(u)*g;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?g:p);return r}function lv(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i=\"percent\"===t.stacking,s=ll.plotOptions?.[this.type]?.borderRadius,o=lk(t.borderRadius,lg(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if(\"roundedRect\"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if(\"stack\"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,g=o.where;!g&&this.is(\"waterfall\")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(g=\"all\"),g||(g=\"end\");let u=Math.min(lf(o.radius,n),n/2,\"all\"===g?h/2:1/0)||0;\"end\"===g&&(p&&(d-=u),c+=u),lp(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function lk(t,e){return lg(t)||(t={radius:t||0}),lu(lm,e,t)}function lw(){let t=lk(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lf(t.radius,(i.r||0)-(i.innerR||0)))}}function lM(t,e,i,s,o={}){let r=ly(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,g=Math.max(c&&l,0),u=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],w=[t,e+c],M=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(g){let t=M(c,c-g);f[0]-=t,m[0]+=t,x[1]=w[1]=e+c-g}if(s=lP(i.minWidth,0)&&this.chartHeight>=lP(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lL()),this.matchResponsiveRule(t,o)},this);let a=lA(...o.map(t=>lC(i?.rules||[],e=>e._id===t)).map(t=>t?.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s?.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lS(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lT(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let lO=b;w.AST=t6,w.Axis=s$,w.Chart=a0,w.Color=tL,w.DataLabel=hf,w.DataTableCore=rp,w.Fx=tB,w.HTMLElement=i6,w.Legend=au,w.LegendSymbol=rm,w.OverlappingDataLabels=w.OverlappingDataLabels||lh,w.PlotLineOrBand=oa,w.Point=oK,w.Pointer=ra,w.RendererRegistry=eg,w.Series=r1,w.SeriesRegistry=rk,w.StackItem=nd,w.SVGElement=eJ,w.SVGRenderer=iU,w.Templating=ep,w.Tick=sf,w.Time=tu,w.Tooltip=oE,w.animate=tU.animate,w.animObject=tU.animObject,w.chart=a0.chart,w.color=tL.parse,w.dateFormat=ep.dateFormat,w.defaultOptions=tv.defaultOptions,w.distribute=ey.distribute,w.format=ep.format,w.getDeferredAnimation=tU.getDeferredAnimation,w.getOptions=tv.getOptions,w.numberFormat=ep.numberFormat,w.seriesType=rk.seriesType,w.setAnimation=tU.setAnimation,w.setOptions=tv.setOptions,w.stop=tU.stop,w.time=tv.defaultTime,w.timers=tB.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes(\"borderRadius\")){let o=i.prototype.symbols;lc(t,\"afterColumnTranslate\",lv,{order:9}),lc(s,\"afterTranslate\",lw),e.symbolCustomAttribs.push(\"borderRadius\",\"brBoxHeight\",\"brBoxY\"),lx=o.arc,ly=o.roundedRect,o.arc=lb,o.roundedRect=lM}},optionsToObject:lk}).compose(w.Series,w.SVGElement,w.SVGRenderer),hv.compose(w.Series.types.column),hf.compose(w.Series),sK.compose(w.Axis),i6.compose(w.SVGRenderer),au.compose(w.Chart),s1.compose(w.Axis),lh.compose(w.Chart),h8.compose(w.Series.types.pie),oa.compose(w.Chart,w.Axis),ra.compose(w.Chart),lO.compose(w.Chart),ni.compose(w.Axis,w.Chart,w.Series),nO.compose(w.Axis,w.Chart,w.Series),oE.compose(w.Pointer),V.extend(w,V);let lE=w;return k.default})());", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(object)\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getElementFromSelector,\n getjQuery,\n getNextActiveElement,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n reflow,\n triggerTransitionEnd,\n toType\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // todo: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n let evt = new Event(event, { bubbles, cancelable: true })\n evt = hydrateObj(evt, args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\n/**\n * Constants\n */\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n }\n}\n\nexport default SelectorEngine\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isElement, toType } from './index'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport { executeAfterTransition, getElement } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Config from './util/config'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.2.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(anchor.hash, this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(anchor.hash, anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both