{"version":3,"file":"ip.func.bundle.js","mappings":"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","sources":["webpack://industrienspension/./IP.Mockup/js/charts/index.js","webpack://industrienspension/./IP.Mockup/js/charts/pension-forecast-graph.js","webpack://industrienspension/./IP.Mockup/js/core.func.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.flowguide.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.format.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.ipvalidationAuto.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.util.js","webpack://industrienspension/./IP.Mockup/js/func/globals/accordion.js","webpack://industrienspension/./IP.Mockup/js/func/globals/contactme.js","webpack://industrienspension/./IP.Mockup/js/func/globals/dialog.js","webpack://industrienspension/./IP.Mockup/js/func/globals/environment.js","webpack://industrienspension/./IP.Mockup/js/func/globals/feedback.js","webpack://industrienspension/./IP.Mockup/js/func/globals/fileuploader.js","webpack://industrienspension/./IP.Mockup/js/func/globals/format.js","webpack://industrienspension/./IP.Mockup/js/func/globals/guide.leave.js","webpack://industrienspension/./IP.Mockup/js/func/globals/index.js","webpack://industrienspension/./IP.Mockup/js/func/globals/lightbox.js","webpack://industrienspension/./IP.Mockup/js/func/globals/newsletter.signup.js","webpack://industrienspension/./IP.Mockup/js/func/globals/slider.range.js","webpack://industrienspension/./IP.Mockup/js/func/globals/slider.step.js","webpack://industrienspension/./IP.Mockup/js/func/globals/table.expander.js","webpack://industrienspension/./IP.Mockup/js/func/globals/table.paged.js","webpack://industrienspension/./IP.Mockup/js/func/globals/table.sorter.js","webpack://industrienspension/./IP.Mockup/js/func/globals/tabs.js","webpack://industrienspension/./IP.Mockup/js/func/globals/toast.js","webpack://industrienspension/./IP.Mockup/js/func/pollyfil/es6.nodelist.foreach.js","webpack://industrienspension/./IP.Mockup/js/func/pollyfil/index.js","webpack://industrienspension/./IP.Mockup/js/func/pollyfil/node.classList.js","webpack://industrienspension/./IP.Mockup/js/func/search/index.js","webpack://industrienspension/./IP.Mockup/js/ip.func.js","webpack://industrienspension/./node_modules/aos/dist/aos.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/base-component.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/collapse.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/data.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/event-handler.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/manipulator.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/selector-engine.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/tab.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/util/config.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/util/index.js","webpack://industrienspension/./node_modules/core-js/es/promise/index.js","webpack://industrienspension/./node_modules/core-js/internals/a-callable.js","webpack://industrienspension/./node_modules/core-js/internals/a-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/a-possible-prototype.js","webpack://industrienspension/./node_modules/core-js/internals/add-to-unscopables.js","webpack://industrienspension/./node_modules/core-js/internals/an-instance.js","webpack://industrienspension/./node_modules/core-js/internals/an-object.js","webpack://industrienspension/./node_modules/core-js/internals/array-includes.js","webpack://industrienspension/./node_modules/core-js/internals/array-slice.js","webpack://industrienspension/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://industrienspension/./node_modules/core-js/internals/classof-raw.js","webpack://industrienspension/./node_modules/core-js/internals/classof.js","webpack://industrienspension/./node_modules/core-js/internals/clear-error-stack.js","webpack://industrienspension/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://industrienspension/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://industrienspension/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://industrienspension/./node_modules/core-js/internals/create-property-descriptor.js","webpack://industrienspension/./node_modules/core-js/internals/define-built-in.js","webpack://industrienspension/./node_modules/core-js/internals/define-global-property.js","webpack://industrienspension/./node_modules/core-js/internals/define-iterator.js","webpack://industrienspension/./node_modules/core-js/internals/descriptors.js","webpack://industrienspension/./node_modules/core-js/internals/document-create-element.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-browser.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-deno.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-ios.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-node.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://industrienspension/./node_modules/core-js/internals/engine-user-agent.js","webpack://industrienspension/./node_modules/core-js/internals/engine-v8-version.js","webpack://industrienspension/./node_modules/core-js/internals/enum-bug-keys.js","webpack://industrienspension/./node_modules/core-js/internals/error-stack-installable.js","webpack://industrienspension/./node_modules/core-js/internals/export.js","webpack://industrienspension/./node_modules/core-js/internals/fails.js","webpack://industrienspension/./node_modules/core-js/internals/function-apply.js","webpack://industrienspension/./node_modules/core-js/internals/function-bind-context.js","webpack://industrienspension/./node_modules/core-js/internals/function-bind-native.js","webpack://industrienspension/./node_modules/core-js/internals/function-call.js","webpack://industrienspension/./node_modules/core-js/internals/function-name.js","webpack://industrienspension/./node_modules/core-js/internals/function-uncurry-this.js","webpack://industrienspension/./node_modules/core-js/internals/get-built-in.js","webpack://industrienspension/./node_modules/core-js/internals/get-iterator-method.js","webpack://industrienspension/./node_modules/core-js/internals/get-iterator.js","webpack://industrienspension/./node_modules/core-js/internals/get-method.js","webpack://industrienspension/./node_modules/core-js/internals/global.js","webpack://industrienspension/./node_modules/core-js/internals/has-own-property.js","webpack://industrienspension/./node_modules/core-js/internals/hidden-keys.js","webpack://industrienspension/./node_modules/core-js/internals/host-report-errors.js","webpack://industrienspension/./node_modules/core-js/internals/html.js","webpack://industrienspension/./node_modules/core-js/internals/ie8-dom-define.js","webpack://industrienspension/./node_modules/core-js/internals/indexed-object.js","webpack://industrienspension/./node_modules/core-js/internals/inspect-source.js","webpack://industrienspension/./node_modules/core-js/internals/install-error-cause.js","webpack://industrienspension/./node_modules/core-js/internals/internal-state.js","webpack://industrienspension/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://industrienspension/./node_modules/core-js/internals/is-callable.js","webpack://industrienspension/./node_modules/core-js/internals/is-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/is-forced.js","webpack://industrienspension/./node_modules/core-js/internals/is-object.js","webpack://industrienspension/./node_modules/core-js/internals/is-pure.js","webpack://industrienspension/./node_modules/core-js/internals/is-symbol.js","webpack://industrienspension/./node_modules/core-js/internals/iterate.js","webpack://industrienspension/./node_modules/core-js/internals/iterator-close.js","webpack://industrienspension/./node_modules/core-js/internals/iterators-core.js","webpack://industrienspension/./node_modules/core-js/internals/iterators.js","webpack://industrienspension/./node_modules/core-js/internals/length-of-array-like.js","webpack://industrienspension/./node_modules/core-js/internals/make-built-in.js","webpack://industrienspension/./node_modules/core-js/internals/math-trunc.js","webpack://industrienspension/./node_modules/core-js/internals/microtask.js","webpack://industrienspension/./node_modules/core-js/internals/native-symbol.js","webpack://industrienspension/./node_modules/core-js/internals/native-weak-map.js","webpack://industrienspension/./node_modules/core-js/internals/new-promise-capability.js","webpack://industrienspension/./node_modules/core-js/internals/normalize-string-argument.js","webpack://industrienspension/./node_modules/core-js/internals/object-create.js","webpack://industrienspension/./node_modules/core-js/internals/object-define-properties.js","webpack://industrienspension/./node_modules/core-js/internals/object-define-property.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://industrienspension/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://industrienspension/./node_modules/core-js/internals/object-keys-internal.js","webpack://industrienspension/./node_modules/core-js/internals/object-keys.js","webpack://industrienspension/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://industrienspension/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://industrienspension/./node_modules/core-js/internals/object-to-string.js","webpack://industrienspension/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://industrienspension/./node_modules/core-js/internals/own-keys.js","webpack://industrienspension/./node_modules/core-js/internals/path.js","webpack://industrienspension/./node_modules/core-js/internals/perform.js","webpack://industrienspension/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://industrienspension/./node_modules/core-js/internals/promise-native-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/promise-resolve.js","webpack://industrienspension/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://industrienspension/./node_modules/core-js/internals/queue.js","webpack://industrienspension/./node_modules/core-js/internals/require-object-coercible.js","webpack://industrienspension/./node_modules/core-js/internals/set-species.js","webpack://industrienspension/./node_modules/core-js/internals/set-to-string-tag.js","webpack://industrienspension/./node_modules/core-js/internals/shared-key.js","webpack://industrienspension/./node_modules/core-js/internals/shared-store.js","webpack://industrienspension/./node_modules/core-js/internals/shared.js","webpack://industrienspension/./node_modules/core-js/internals/species-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/string-multibyte.js","webpack://industrienspension/./node_modules/core-js/internals/task.js","webpack://industrienspension/./node_modules/core-js/internals/to-absolute-index.js","webpack://industrienspension/./node_modules/core-js/internals/to-indexed-object.js","webpack://industrienspension/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://industrienspension/./node_modules/core-js/internals/to-length.js","webpack://industrienspension/./node_modules/core-js/internals/to-object.js","webpack://industrienspension/./node_modules/core-js/internals/to-primitive.js","webpack://industrienspension/./node_modules/core-js/internals/to-property-key.js","webpack://industrienspension/./node_modules/core-js/internals/to-string-tag-support.js","webpack://industrienspension/./node_modules/core-js/internals/to-string.js","webpack://industrienspension/./node_modules/core-js/internals/try-to-string.js","webpack://industrienspension/./node_modules/core-js/internals/uid.js","webpack://industrienspension/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://industrienspension/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://industrienspension/./node_modules/core-js/internals/validate-arguments-length.js","webpack://industrienspension/./node_modules/core-js/internals/well-known-symbol.js","webpack://industrienspension/./node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://industrienspension/./node_modules/core-js/modules/es.aggregate-error.js","webpack://industrienspension/./node_modules/core-js/modules/es.array.includes.js","webpack://industrienspension/./node_modules/core-js/modules/es.array.iterator.js","webpack://industrienspension/./node_modules/core-js/modules/es.object.to-string.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.all.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.any.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.catch.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.constructor.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.finally.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.race.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.reject.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.resolve.js","webpack://industrienspension/./node_modules/core-js/modules/es.string.iterator.js","webpack://industrienspension/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://industrienspension/./node_modules/highcharts/highcharts.js","webpack://industrienspension/./node_modules/highcharts/modules/data.js","webpack://industrienspension/./node_modules/highcharts/modules/drilldown.js","webpack://industrienspension/./node_modules/jquery/dist/jquery.js","webpack://industrienspension/./node_modules/process/browser.js","webpack://industrienspension/./node_modules/svg4everybody/dist/svg4everybody.js","webpack://industrienspension/./node_modules/tslib/tslib.es6.js","webpack://industrienspension/./node_modules/whatwg-fetch/fetch.js","webpack://industrienspension/./node_modules/jquery/dist/jquery-exposed.js","webpack://industrienspension/./node_modules/highcharts/highcharts-exposed.js","webpack://industrienspension/./IP.Mockup/js/func/globals/modal.ts","webpack://industrienspension/webpack/bootstrap","webpack://industrienspension/webpack/runtime/chunk loaded","webpack://industrienspension/webpack/runtime/load script","webpack://industrienspension/webpack/runtime/compat get default export","webpack://industrienspension/webpack/runtime/define property getters","webpack://industrienspension/webpack/runtime/ensure chunk","webpack://industrienspension/webpack/runtime/get javascript chunk filename","webpack://industrienspension/webpack/runtime/global","webpack://industrienspension/webpack/runtime/hasOwnProperty shorthand","webpack://industrienspension/webpack/runtime/make namespace object","webpack://industrienspension/webpack/runtime/publicPath","webpack://industrienspension/webpack/runtime/jsonp chunk loading","webpack://industrienspension/webpack/startup"],"sourcesContent":["import Highcharts from 'highcharts';\nimport Data from 'highcharts/modules/data';\nimport Drilldown from 'highcharts/modules/drilldown';\nimport pensionForecastGraph from './pension-forecast-graph';\nimport { App } from '../func/globals/App';\n\nData(Highcharts);\nDrilldown(Highcharts);\n\nApp.pensionForecastGraph = pensionForecastGraph;\n","import $ from 'jquery';\r\n\r\nconst defaults = {\r\n credits: {\r\n enabled: false\r\n },\r\n drilldown: false,\r\n chart: {\r\n style: {\r\n fontFamily: 'proximanova-regular'\r\n },\r\n height: window.innerWidth <= 767 ? 220 : null,\r\n marginTop: 40,\r\n marginRight: 30,\r\n backgroundColor: 'transparent',\r\n events: {\r\n redraw: function () {\r\n var chart = this;\r\n var offset = chart.series[0].pointXOffset;\r\n var $startPoint = $(chart.container).parents('.highcharts-container').find('.highcharts-startpoint');\r\n\r\n $startPoint.css({\r\n top: chart.yAxis[0].toPixels(0),\r\n left: chart.xAxis[0].toPixels(1) + offset\r\n });\r\n\r\n if (chartRanges.length) {\r\n ranges(chart, chartRanges);\r\n }\r\n }\r\n }\r\n },\r\n title: {\r\n text: null\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n enabled: true,\r\n shared: true,\r\n backgroundColor: null,\r\n borderWidth: 0,\r\n shadow: false,\r\n useHTML: true,\r\n positioner: function (boxWidth, boxHeight, point) {\r\n return { x: point.plotX - boxWidth / 2 + 70, y: -1000000 };\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n cursor: 'pointer',\r\n stacking: 'normal',\r\n pointPadding: -0.1,\r\n pointRange: 1,\r\n events: {\r\n click: plotClick\r\n },\r\n states: {\r\n hover: {\r\n cursor: 'pointer'\r\n },\r\n select: {\r\n color: null,\r\n borderColor: null\r\n }\r\n }\r\n },\r\n line: {\r\n enableMouseTracking: false,\r\n marker: {\r\n enabled: false\r\n },\r\n dashStyle: 'ShortDot'\r\n }\r\n },\r\n dataStartIndex: 0,\r\n xAxis: {\r\n title: {\r\n text: 'År',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n x: 20,\r\n y: 7,\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333333',\r\n fontSize: '11px',\r\n overflow: 'visible'\r\n }\r\n },\r\n categories: [],\r\n lineColor: '#ececec',\r\n labels: {\r\n enabled: true,\r\n useHTML: true,\r\n autoRotation: false,\r\n style: {\r\n overflow: 'visible'\r\n }\r\n },\r\n tickColor: 'transparent'\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'kr.',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -18,\r\n x: -15,\r\n useHTML: true,\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333333',\r\n fontSize: '14px',\r\n width: '20px',\r\n overflow: 'hidden'\r\n }\r\n },\r\n labels: {\r\n formatter: function () {\r\n return ('' + this.value).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, function ($1) {\r\n return $1 + '.';\r\n });\r\n },\r\n style: {\r\n fontWeight: 'bold',\r\n fontSize: '10px'\r\n }\r\n },\r\n gridLineColor: '#ececec',\r\n lineWidth: 1,\r\n lineColor: '#ececec'\r\n },\r\n series: [\r\n {\r\n id: 'Payout',\r\n type: 'column',\r\n name: 'Udbetaling',\r\n color: '#D0E5CD',\r\n data: []\r\n },\r\n {\r\n id: 'AoLoebende',\r\n type: 'column',\r\n name: 'AlLoebende',\r\n color: '#A0CB9B',\r\n data: []\r\n },\r\n {\r\n id: 'Loebende',\r\n type: 'column',\r\n name: 'Ekstra udbetaling',\r\n color: '#72B269',\r\n data: []\r\n },\r\n {\r\n id: 'Low',\r\n type: 'line',\r\n name: 'Lavere end forventet',\r\n color: '#eb5656',\r\n data: []\r\n },\r\n {\r\n id: 'High',\r\n type: 'line',\r\n name: 'Højere end forventet',\r\n color: '#1877a3',\r\n data: []\r\n }\r\n ],\r\n responsive: {\r\n rules: [\r\n {\r\n condition: {\r\n maxWidth: 500\r\n },\r\n chartOptions: {\r\n chart: {\r\n width: 650\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n};\r\n\r\nlet scope = null;\r\nlet $tooltip = null;\r\n\r\nfunction onChartLoad(scope, chart) {\r\n $(scope).removeClass('loading');\r\n}\r\n\r\nfunction init(chartScope, chartData = {}) {\r\n var options = $.extend(true, chartData, defaults);\r\n scope = chartScope;\r\n\r\n const chartHeight = $(scope).attr('data-chart-height');\r\n if (chartHeight) {\r\n options.chart.height = chartHeight;\r\n }\r\n\r\n $(scope)\r\n .find('.highcharts-container-graph')\r\n .highcharts(options, (chart) => {\r\n onChartLoad(scope, chart);\r\n\r\n setTimeout(function () {\r\n $(window).trigger('resize');\r\n }, 1);\r\n\r\n customTooltips(chartScope, chart);\r\n\r\n $(window).resize(function () {\r\n chart.redraw();\r\n });\r\n\r\n $tooltip = $(scope).find('.highcharts-tooltip');\r\n $(window, document).on('click.tooltip', function () {\r\n $tooltip = $(scope).find('.highcharts-tooltip');\r\n $tooltip.addClass('hide');\r\n\r\n $('.highcharts-point-click').removeClass('highcharts-point-click');\r\n $(chart.container).removeClass('highchart-plotclick');\r\n });\r\n });\r\n}\r\n\r\nconst API = (scope) => $(scope).find('.highcharts-container-graph').highcharts();\r\nconst destroy = (scope) => API(scope).destroy();\r\n\r\nfunction plotClick(event) {\r\n if (event.point.x === 1) {\r\n $('.highcharts-series-0').find('.highcharts-point:first-child').addClass('highcharts-point-click');\r\n $('.highcharts-series-1').find('.highcharts-point:first-child').addClass('highcharts-point-click');\r\n } else {\r\n $(event.point.graphic.element).addClass('highcharts-point-click');\r\n }\r\n\r\n $tooltip = $('.highcharts-tooltip.tooltip-id' + event.point.x);\r\n\r\n $(this.chart.container).addClass('highchart-plotclick');\r\n const tooltipWidth = parseInt($tooltip.css('maxWidth'), 10);\r\n const airInPx = 5;\r\n const chartPlotBox = this.chart.plotBox;\r\n\r\n let x = event.point.shapeArgs.x + chartPlotBox.x;\r\n if (event.point.index <= event.point.series.data.length / 2) {\r\n x = x + event.point.shapeArgs.width + airInPx;\r\n } else {\r\n x = x - tooltipWidth - airInPx;\r\n }\r\n\r\n event.stopPropagation();\r\n if (window.innerWidth <= 767) {\r\n $tooltip.removeClass('hide').css({\r\n width: '100%',\r\n maxWidth: '100%',\r\n top: 135,\r\n left: 0\r\n });\r\n } else {\r\n $tooltip.removeClass('hide');\r\n\r\n let top = event.point.shapeArgs.y + chartPlotBox.y - $tooltip.outerHeight() / 2;\r\n\r\n if (window.innerWidth <= 768) {\r\n top = top + 115;\r\n }\r\n\r\n $tooltip.css({\r\n top: top,\r\n left: x\r\n });\r\n }\r\n}\r\n\r\nlet customLabels = [];\r\nlet chartRanges = [];\r\n\r\nfunction resetCustomLabels(labels) {\r\n if (labels.length) {\r\n labels.forEach((path) => path.destroy());\r\n }\r\n\r\n customLabels = [];\r\n}\r\n\r\nfunction update(series) {\r\n $.each(series, (id, data) => {\r\n API(scope).get(id).setData(data, false);\r\n });\r\n\r\n if (chartRanges) {\r\n chartRanges = [];\r\n resetCustomLabels(customLabels);\r\n }\r\n\r\n API(scope).redraw();\r\n}\r\n\r\nfunction ranges(chart, data) {\r\n $(chart.container).find('.highcharts-axis-labels.highcharts-xaxis-labels').addClass('hide');\r\n\r\n resetCustomLabels(customLabels);\r\n chartRanges = data;\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const beforeafterspace = 0.4;\r\n const dashlength = 25;\r\n const rangeSpacer = 5;\r\n const spaceFromChart = 5;\r\n const Y = chart.chartHeight - 38 + spaceFromChart;\r\n let line;\r\n let dots;\r\n let text;\r\n let rangeFrom = undefined;\r\n let rangeTo = undefined;\r\n let color = '#333';\r\n\r\n if (data[i].length === 3) {\r\n rangeFrom = data[i][0];\r\n rangeTo = data[i][1];\r\n text = data[i][2];\r\n } else {\r\n rangeFrom = data[i][0];\r\n rangeTo = data[i][0];\r\n text = data[i][1];\r\n color = 'transparent';\r\n }\r\n\r\n const startX = Highcharts.charts[0].xAxis[0].toPixels(rangeFrom - beforeafterspace);\r\n const endX = Highcharts.charts[0].xAxis[0].toPixels(rangeTo + beforeafterspace);\r\n\r\n if (!text.endsWith('og frem')) {\r\n line = chart.renderer\r\n .path(['M', startX, Y, 'L', startX, Y + rangeSpacer, 'L', endX, Y + rangeSpacer, 'L', endX, Y])\r\n .attr({ 'stroke-width': 1, stroke: color })\r\n .add();\r\n\r\n customLabels.push(line);\r\n } else {\r\n line = chart.renderer\r\n .path(['M', startX, Y, 'L', startX, Y + rangeSpacer, 'L', endX - dashlength, Y + rangeSpacer])\r\n .attr({ 'stroke-width': 1, stroke: color })\r\n .add();\r\n dots = chart.renderer\r\n .path(['M', endX - dashlength, Y + rangeSpacer, 'L', endX, Y + rangeSpacer])\r\n .attr({ 'stroke-width': 1, stroke: color, dashstyle: 'Dot' })\r\n .add();\r\n\r\n customLabels.push(line);\r\n customLabels.push(dots);\r\n }\r\n\r\n const lines = line.getBBox();\r\n const rangeText = chart.renderer\r\n .text('' + text + '', 0, 0, true)\r\n .attr({\r\n color: 'black',\r\n fill: '#FFFFEF'\r\n })\r\n .add();\r\n\r\n const txt = rangeText.getBBox();\r\n rangeText.attr({ x: lines.x + lines.width / 2 - txt.width / 2, y: Y + spaceFromChart + txt.height / 2 });\r\n customLabels.push(rangeText);\r\n }\r\n}\r\n\r\nfunction customTooltips(scope, chart) {\r\n var tips = $(scope).find('.prognose-tip');\r\n var active = 1;\r\n var counter = 1;\r\n\r\n if (!tips.length) {\r\n return;\r\n } else {\r\n tips.each(function () {\r\n $(this).data('tipOrder', counter);\r\n counter++;\r\n });\r\n }\r\n\r\n $(scope).find('.btn.prognose-tips:not(.has-no-tip)').show();\r\n\r\n tips.on('click', '.js-prognose-tip-close', function (e) {\r\n e.preventDefault();\r\n\r\n $(scope).find('.btn.prognose-tips:not(.has-no-tip)').show();\r\n tips.each(function () {\r\n $(this).fadeOut();\r\n });\r\n });\r\n\r\n tips.on('click', '.js-prognose-tip-next', function (e) {\r\n e.preventDefault();\r\n\r\n hide(active, tips);\r\n active++;\r\n show(active, tips);\r\n });\r\n\r\n $(scope)\r\n .find('.btn.prognose-tips:not(.has-no-tip)')\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n\r\n $(this).hide();\r\n active = 1;\r\n show(active, tips);\r\n });\r\n\r\n function show(tip, tips) {\r\n var tipElem = tips.filter(function () {\r\n return $(this).data('tipOrder') == tip;\r\n });\r\n\r\n if (tipElem.data('tipinactive') != null) {\r\n if (tips.length > tip) {\r\n tip++;\r\n show(tip, tips);\r\n } else {\r\n $('.js-prognose-tip-close').trigger('click'); // close\r\n }\r\n } else {\r\n tipElem.fadeIn();\r\n if (tipElem.data('columnserienr') !== '' && tipElem.data('columnserienr') !== undefined) {\r\n const serieNr = parseInt(tipElem.data('columnserienr'), 10);\r\n const data = chart.series[serieNr].data;\r\n const tipHeight = tipElem.find('.prognose-tip-content').outerHeight() + 5;\r\n const leftSub = 25;\r\n let tipIndex = tipElem.data('columnnr');\r\n\r\n if (tipIndex < 0 || tipIndex > data.length) {\r\n return;\r\n } else if (tipIndex >= data.length) {\r\n tipIndex = data.length - 1;\r\n }\r\n\r\n let yPoints = data[tipIndex].stackY;\r\n const xPoints = data[tipIndex].x;\r\n\r\n if (serieNr > 1) {\r\n yPoints = data[tipIndex].y;\r\n }\r\n\r\n if (tipIndex >= 0) {\r\n tipElem.find('.prognose-tip-content').css({\r\n top: chart.yAxis[0].toPixels(yPoints) - (tipHeight + 7) + 'px',\r\n left: chart.xAxis[0].toPixels(xPoints) - leftSub + 'px'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n function hide(tip, tips) {\r\n tips.filter(function () {\r\n return $(this).data('tipOrder') == tip;\r\n }).fadeOut();\r\n }\r\n}\r\n\r\nconst pensionForecastGraph = {\r\n defaults,\r\n init,\r\n API,\r\n destroy,\r\n update,\r\n ranges,\r\n customTooltips\r\n};\r\n\r\npensionForecastGraph.init('.box-prognose-new');\r\n\r\nexport default pensionForecastGraph;\r\n","import '@mockup/func/pollyfil';\nimport '@mockup/func/globals';\n\nimport $ from 'jquery';\nimport svg4everybody from 'svg4everybody';\nimport aos from 'aos';\n\nimport { App } from '@mockup/func/globals/App';\nimport '@mockup/func/globals/App.format';\nimport '@mockup/func/globals/App.flowguide';\nimport '@mockup/func/globals/App.ipvalidationAuto';\n\nimport Collapse from 'bootstrap/js/dist/collapse';\nimport Tab from 'bootstrap/js/dist/tab';\n\nimport env from '@mockup/func/globals/environment';\nimport tableSorter from '@mockup/func/globals/table.sorter';\nimport tableExpander from '@mockup/func/globals/table.expander';\nimport newsletterSignup from './func/globals/newsletter.signup';\nimport contactme from './func/globals/contactme';\nimport feedback from './func/globals/feedback';\nimport pagedtable from './func/globals/table.paged';\nimport accordion from './func/globals/accordion';\nimport lightbox from './func/globals/lightbox';\nimport leaveGuide from './func/globals/guide.leave';\nimport tabs from './func/globals/tabs';\nimport rangeSlider from './func/globals/slider.range';\nimport format from './func/globals/format'; // used!\nimport fileUploader from './func/globals/fileuploader';\nimport siteSearch from './func/search';\nimport Dialog from './func/globals/dialog';\nimport Modal from './func/globals/modal';\nimport Toast from './func/globals/toast';\n\nglobal.bootstrap = window.bootstrap = { Collapse, Tab };\nwindow.alertify = window.dialog = new Dialog({\n labels: {\n OK: 'Ok',\n CANCEL: 'Annuller'\n }\n});\nwindow.modal = new Modal();\nwindow.toast = new Toast();\n\nif (env.isDevelopment) {\n // eslint-disable-next-line no-console\n console.log(\n `%cRunning%c${env.NODE_ENV}`,\n 'font-size:1.1rem;background:#000;color:#fff;border-radius:3px 0 0 3px;padding:0 8px;text-transform:uppercase;',\n 'font-size:1.1rem;background:#de3000;color:#fff;border-radius:0 3px 3px 0;padding:0 8px;text-transform:uppercase;'\n ); // eslint-disable-line no-console\n}\n\n// change className of html from .noJS to .hasJS.\n(function (el) {\n el.className = el.className.replace('no-js', 'has-js');\n})(document.documentElement);\n\nexport const core = {\n // App.common.init runs on all pages\n init: function () {\n svg4everybody();\n\n aos.init({\n once: true,\n offset: 200,\n duration: 500\n });\n\n App.format.init();\n\n lightbox.init();\n tabs.init();\n accordion.init();\n feedback.init();\n newsletterSignup.init();\n contactme.init();\n leaveGuide.init();\n tableExpander.init();\n pagedtable.init();\n fileUploader.init();\n tableSorter.init();\n siteSearch.init();\n\n rangeSlider.init();\n\n // Sitecore forms\n if (document.querySelector('.ip-sitecore-forms')){\n import('@mockup/func/sitecoreForms/index').then((module) => new module.default());\n }\n // Header\n if (document.querySelector('.site-header')){\n import('@mockup/func/header/index').then((module) => new module.default());\n }\n\n if (document.querySelector('.js-contact-banner')){\n import('@mockup/func/contact-banner/index').then((module) => new module.default());\n }\n\n // viemoVideo\n if (document.getElementById('hero-video')) {\n window.addEventListener('CookiebotOnAccept', function (_) {\n if (Cookiebot.consent.marketing) {\n import('@mockup/func/viemoVideo/index').then((module) => new module.default());\n }\n });\n }\n\n $(window)\n .on('hashchange', function () {\n // Timeout hack, to insure that the code i running last at que pipeline\n //\n setTimeout(function () {\n var hashTabVal = hash.get('tab');\n if (!$('.tabs .tabs-list-item a').eq(hashTabVal).hasClass('active')) {\n $('.tabs .tabs-list-item a').eq(hashTabVal).trigger('click');\n }\n\n var hashAccordionVal = hash.get('accordion');\n if (\n !$('.accordion .accordion-header > a[href=\"#' + hashAccordionVal + '\"]')\n .parents('.accordion')\n .hasClass('open')\n ) {\n $('.accordion .accordion-header > a[href=\"#' + hashAccordionVal + '\"]').trigger('click');\n }\n }, 1);\n })\n .on('click', function (e) {\n if (\n !$(e.target).hasClass('table-flex-elm--filter-header') &&\n !$(e.target).parents('.table-flex-elm--filter-header ').length\n ) {\n $('.table-flex-elm--filter-sorting ').removeClass('show');\n }\n });\n\n // Scrolls first input-item into view, with validation error, when a button is clicked\n for (const btn of [...document.getElementsByClassName('btn')]) {\n // eslint-disable-next-line no-loop-func\n btn.addEventListener('click', () => {\n // eslint-disable-next-line no-unused-expressions\n const firstError = [...document.getElementsByTagName('input')].find((i) =>\n i.closest('.fu')?.classList.contains('error')\n );\n if (firstError) {\n $('html, body').animate({ scrollTop: $(firstError).offset().top - 20 }, 800);\n }\n });\n }\n }\n};\n","import { App } from './App';\n\nclass FlowGuid {\n constructor() {\n this._guideFlowForm = '';\n this._targetUrl = '';\n this._preNextCallBackOk = true;\n this._preNextCallBackCount = 0;\n this._preNextExecuteFormStarted = false;\n this._guideFlowFormSettings = {};\n // init auto postback functionalitet\n this._guideFlowForm = document.querySelector('form.jsGuideFlowForm');\n\n // is Auto-flow-post form \"jsGuideFlowForm\"\n if (this._guideFlowForm) {\n const s = this._guideFlowForm.dataset.guideflowsetting;\n this.InitGuideFlowFormSettings(s);\n window.onPageLeaveExecute = window.onPageLeaveExecute || new Array();\n window.onPageLeaveExecute.push(this.PostGuideFlowForm);\n }\n }\n\n PreNextCallBack(step, ok, response, sender) {\n const itSelf = App.flowGuide;\n itSelf._preNextCallBackCount--;\n\n if (!ok) itSelf._preNextCallBackOk = false;\n if (itSelf._preNextCallBackCount < 1) {\n if (itSelf._preNextCallBackOk) {\n window.location.href = itSelf._targetUrl;\n return;\n }\n itSelf.SpinnerDisabler();\n }\n }\n\n // called from pre/next buttons\n preNextExecuteForm(step, url) {\n const itSelf = App.flowGuide;\n itSelf._targetUrl = url;\n\n var infobox = document.getElementById('guidePreNextErrInfoBox');\n infobox.classList.add('hide');\n\n itSelf.SpinnerEnabler(step);\n\n var o = window.onPageLeaveExecute;\n if (!o || typeof o == 'undefined' || o.length < 1) {\n itSelf.PreNextCallBack(step, true, {}, 'PreNextExecuteForm no onPageLeaveExecute');\n return;\n }\n itSelf._preNextCallBackCount = o.length;\n itSelf._preNextCallBackOk = true;\n o.forEach(function (f) { f(step, itSelf.PreNextCallBack); });\n }\n\n // Auto-flow-post - post form (called from PostGuideFlowForm)\n PostFormData(data, url, okCallback, errorCallback) {\n fetch(url, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: data\n }).then(response => response.json()).then(json => {\n if (json.ok) {\n okCallback('ok', json);\n } else {\n errorCallback(json.message, json);\n }\n }).catch(error => {\n errorCallback(error.Message);\n return;\n });\n }\n\n SpinnerEnabler(step) {\n const aa = step == 1 ? 'is-loading' : 'fade';\n const bb = step == -1 ? 'is-loading' : 'fade';\n const a = document.getElementById('guide-next-button');\n if (a) a.classList.add(aa);\n const b = document.getElementById('guide-prev-button');\n if (b) b.classList.add(bb);\n }\n\n SpinnerDisabler(step) {\n const a = document.getElementById('guide-next-button');\n if (a) {\n a.classList.remove('is-loading');\n a.classList.remove('fade');\n }\n const b = document.getElementById('guide-prev-button');\n if (b) {\n b.classList.remove('is-loading');\n b.classList.remove('fade');\n }\n }\n\n // Auto-flow-post execute on next/pre and executes prePostScript and PostFormData (if existes)\n PostGuideFlowForm(step, callback) {\n const itSelf = App.flowGuide;\n const url = itSelf._guideFlowFormSettings.url;\n\n if (step == -1 && itSelf._guideFlowFormSettings.doPostOnPrev == false) {\n App.flowGuide.PostGuideFlowFormCallback(callback, -1, true, 'ok');\n return;\n }\n\n if (itSelf._guideFlowFormSettings.prePostScript) {\n const r = eval(itSelf._guideFlowFormSettings.prePostScript); // eslint-disable-line\n if (!r) {\n callback(step, false, '', 'PostGuideFlowForm !r');\n return;\n }\n }\n\n var data = $(itSelf._guideFlowForm).serialize();\n itSelf.PostFormData(data, url, (t) => App.flowGuide.PostGuideFlowFormCallback(callback, step, true, 'ok'), (t) => App.flowGuide.PostGuideFlowFormCallback(callback, step, false, t));\n }\n\n // Auto-flow-post post back function. Called from PostFormData\n PostGuideFlowFormCallback(callback, step, ok, msg, json) {\n if (!ok) {\n var infobox = document.getElementById('guidePreNextErrInfoBox');\n var infoboxText = document.getElementById('guidePreNextErrText');\n infoboxText.innerText = msg || '';\n infobox.classList.remove('hide');\n }\n callback(step, ok, msg);\n }\n\n InitGuideFlowFormSettings(stringJson) {\n const j = JSON.parse(stringJson);\n const t = this._guideFlowFormSettings;\n\n t.url = j.url || '';\n t.prePostScript = j.prePostScript || '';\n t.doPostOnPrev = j.doPostOnPrev || false;\n }\n}\n\nApp.flowGuide = new FlowGuid();\n","import { App } from './App';\n\nApp.format = {\n init() {\n if (document.querySelectorAll('.input-calendar:not(.input-calendar-no-format)').length) App.format.date();\n if (document.querySelectorAll('.input-currency').length) App.format.currency();\n if (document.querySelectorAll('.input-currenct-no-decimal').length) App.format.currencyWithoutDecimal();\n if (document.querySelectorAll('.input-number').length) App.format.number();\n },\n date() {\n document.querySelectorAll('.input-calendar:not(.input-calendar-no-format)').forEach(input => {\n input.cleave = new Cleave(input, {\n date: true,\n datePattern: ['d', 'm', 'Y'],\n delimiter: '.'\n });\n });\n },\n currency() {\n document.querySelectorAll('.input-currency').forEach(input => {\n input.cleave = new Cleave(input, {\n numeral: true,\n numeralDecimalMark: ',',\n delimiter: '.'\n });\n });\n },\n currencyWithoutDecimal() {\n document.querySelectorAll('.input-currenct-no-decimal').forEach(input => {\n input.cleave = new Cleave(input, {\n numeral: true,\n numeralDecimalMark: ',',\n delimiter: '.',\n numeralDecimalScale: 0\n });\n });\n },\n number() {\n document.querySelectorAll('.input-number').forEach(input => {\n input.cleave = new Cleave(input, {\n numeral: true,\n numeralDecimalMark: ',',\n delimiter: ''\n });\n });\n }\n};\n","import { App } from './App';\n\n// ipvalidationAuto how to use:\n// add the class \"ipvalidateenabled\" to your html input tag\n// add attributes like required, min=\"\", max=22\n// add attribute ipvalidate=\"[json]\" for more options\n// call App.ipvalidationAuto.Init\n// Done\nApp.ipvalidationAuto = new function () {\n var self = this;\n\n this.Setting = {};\n this.init = function (ipvalidationAutoSettings) {\n $('.ipvalidateenabled').on('blur', function (evnt) {\n if (self.IPValidate(this)) {\n self.IPValidateFormat(this);\n }\n }).on('focus', function (evnt) {\n setValidationOk(this);\n }).on('input', function (evnt) {\n self.IPValidateKeypress(evnt, this);\n });\n };\n\n this.isHidden = elm => (elm.offsetParent === null);\n\n this.IPValidateElements = function (selectorString) {\n let ok = true;\n $(selectorString).each(function (index) {\n var me = $(this);\n if (!self.IPValidate(this, true)) {\n ok = false;\n }\n });\n\n return ok;\n };\n\n\n this.IPValidateElementsScrollToErr = function (selectorString) {\n let ok = true;\n let frst = null;\n $(selectorString).each(function (index) {\n if (!self.IPValidate(this, true)) {\n if (ok) frst = this;\n ok = false;\n }\n });\n\n if (!ok) {\n self.scrollToElm(frst);\n }\n\n return ok;\n };\n\n this.scrollToElm = function(elm) {\n $('html, body').animate({ scrollTop: $(elm).offset().top - 20 }, 800);\n };\n\n this.IPValidateEnter = (evnt, ths) => setValidationOk(ths);\n\n this.IPValidateKeypress = function (evnt, ths) {\n var ipValidateObj = getIPValidateObj(ths);\n var prvnt = false;\n\n if (ipValidateObj.type == 'integer') prvnt = (evnt.which < 48 || evnt.which > 57);\n if (this.type == 'number' || ipValidateObj.type == 'number') prvnt = ((evnt.which < 48 || evnt.which > 57) && evnt.key != ',' && evnt.key != '.');\n if (prvnt) evnt.preventDefault();\n };\n\n this.IPValidateFormat = function (element) {\n var ipValidateObj = getIPValidateObj(element);\n if (ipValidateObj.type == 'integer') {\n var v = getInputNumber(element).toLocaleString('da');\n element.value = v;\n }\n };\n\n this.IPValidate = function (element, doNotUseDefault) {\n var jelem = $(element);\n var value = element.value;\n var ipValidateObj = getIPValidateObj(element);\n if (!value) {\n if (ipValidateObj.whenBlankDefaultTo && !doNotUseDefault) {\n value = element.value = ipValidateObj.whenBlankDefaultTo;\n } else {\n return ipValidateObj.required ? setValidationError(element, '', true) : setValidationOk(element);\n }\n }\n\n if (ipValidateObj.type) {\n if (ipValidateObj.type === 'isbn') return validateIBAN(element);\n if (ipValidateObj.type === 'swift') return validateSwift(element);\n if (ipValidateObj.type === 'kontonr') return validateKontoNr(element);\n if (ipValidateObj.type === 'onlyletters') return validateOnlyLetters(element);\n if (ipValidateObj.type === 'onlylettersdk') return validateOnlyDkLetters(element);\n if (ipValidateObj.type === 'onlylettersdkwhitespaceallowed') return validateOnlyDkLettersOneWhiteSpaceAllowed(element);\n if (ipValidateObj.type === 'cpr11') return modulus11Cpr(element);\n if (ipValidateObj.type === 'cpr') return validateCpr(element);\n if (ipValidateObj.type === 'cprPensionsplan2022') return validateCprPensionsplan2022(element);\n if (ipValidateObj.type === 'cvr') return validateCvr(element);\n }\n\n if (element.type === 'email' || ipValidateObj.type === 'email') {\n return ipValidateObj.required ? validateEmailRequired(element) : validateEmail(element);\n }\n if (element.type === 'phone' || ipValidateObj.type === 'phone') {\n return ipValidateObj.required ? validateTelefonRequired(element) : validateTelefon(element);\n }\n\n if (element.type === 'date' || ipValidateObj.type === 'date') {\n return ipValidateObj.required ? validateDateRequired(element, ipValidateObj.min, ipValidateObj.max) : validateDate(element, ipValidateObj.min, ipValidateObj.max);\n }\n\n if (element.type === 'number' || ipValidateObj.type === 'integer' || ipValidateObj.type === 'number' || ipValidateObj.fixedFraction) {\n var num = getInputNumber(element);\n if (isNaN(num)) {\n return setValidationError(element);\n }\n\n if (!isNaN(ipValidateObj.min) && num < ipValidateObj.min) {\n if (ipValidateObj.onOutOfRange == 'useMinMax') {\n element.value = ipValidateObj.min;\n } else {\n return setValidationError(element);\n }\n }\n if (!isNaN(ipValidateObj.max) && num > ipValidateObj.max) {\n if (ipValidateObj.onOutOfRange == 'useMinMax') {\n element.value = ipValidateObj.max;\n } else {\n return setValidationError(element);\n }\n }\n }\n if (element.type === 'radio' || ipValidateObj.type === 'radio') {\n const name = element.name;\n const radioElms = [...document.querySelectorAll(`[name=${name}]`)];\n const hasCheckedVal = radioElms.some(radioElm => radioElm.checked);\n if (!hasCheckedVal) {\n return setValidationError(element);\n }\n }\n // fixedFraction should be a number indicating the amount of decimals.\n // Set this to 0 to not allow decimals at all.\n if (ipValidateObj.fixedFraction !== undefined) {\n var v = getInputNumber(element);\n element.value = v.toFixed(ipValidateObj.fixedFraction).replace(',', '').replace('.', ',');\n if (element.value == '') element.value = v.toFixed(ipValidateObj.fixedFraction);\n }\n\n setValidationOk(element);\n return true;\n };\n\n function getInputNumber(elm) {\n var u = elm.value.replace(/\\./g, '').replace(/,/g, '.');\n var v = (elm.valueAsNumber && !isNaN(elm.valueAsNumber)) ? elm.valueAsNumber : Number(u);\n var b = (elm.valueAsNumber) ? true : false;\n return v;\n }\n\n // replacing PlaceHolders in tmplString wiht matchng values form keyvalues\n function PhReplace(tmplStr, keyvalues) {\n if (!tmplStr) return tmplStr;\n return tmplStr.replace(/(\\{(\\w+)\\})/g, function (k1, k2, k3) { return (keyvalues[k3] != null) ? keyvalues[k3] : k1; });\n }\n\n // Getting the data-ipvalidate from the element - supposed to be in json format!\n function getIPValidateObj(element) {\n var jelem = $(element);\n var ipvalidateText = jelem.data('ipvalidate');\n var ipValidateObj = ipvalidateText || {};\n\n if (typeof (ipValidateObj) == 'string' && ipvalidateText) ipValidateObj = JSON.parse(ipvalidateText);\n if (jelem[0].hasAttribute('max')) ipValidateObj.min = parseInt(jelem.attr('min'), 10);\n if (jelem[0].hasAttribute('max')) ipValidateObj.max = parseInt(jelem.attr('max'), 10);\n ipValidateObj.required = ipValidateObj.required || (jelem && jelem.attr('required'));\n\n return ipValidateObj;\n }\n\n // !!! overriding setValidationError in IP.Validation.js (adding setValidationErrorPre(..))\n function setValidationError(element, txt, useRequiredtext) {\n if (!(element instanceof jQuery)) element = $(element);\n\n setValidationErrorPre(element, txt, useRequiredtext);\n element.closest('div.fu').find('div.error').show();\n element.closest('div.fu').addClass('error');\n }\n\n // Will manage texts for the error message\n function setValidationErrorPre(elem, txt, useRequiredtext) {\n if (!(elem instanceof jQuery)) {\n elem = $(elem);\n }\n\n const fuElm = elem.closest('div.fu');\n const msgElms = fuElm\n .find('div.msg')\n .filter((idx, msgElm) => $(msgElm).closest('div.fu').get(0).isSameNode(fuElm.get(0)));\n\n const msgdiv = msgElms.first();\n var defaultText = msgdiv.data('defaulttext');\n var txtInner = msgdiv.text();\n if (!defaultText && txtInner) {\n msgdiv.data('defaulttext', txtInner);\n defaultText = txtInner;\n }\n var tmpl = useRequiredtext ? elem.data('requirederrtmpl') : elem.data('formaterrtmpl');\n if (txt) {\n const textField = msgdiv.children().length ? msgdiv.children().get(0) : msgdiv;\n textField.text = txt;\n } else if (tmpl) {\n var ipValidateObj = getIPValidateObj(elem[0]);\n var t = function () {\n return PhReplace(tmpl, ipValidateObj);\n };\n msgdiv.text(t);\n } else if (defaultText) {\n const textField = msgdiv.children().length ? msgdiv.children().get(0) : msgdiv;\n textField.text = defaultText;\n }\n }\n};\n","export const App = window.App || {};\n","import { App } from './App';\n\nApp.Util = {};\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const accordion = {\n init: function (scope) {\n scope = scope ? scope + ' ' : '';\n\n $(scope + '.accordion .accordion-header > a').on('click', function () {\n var self = $(this);\n var parent = self.parents('.accordion');\n\n $('.accordion').not(parent).removeClass('open');\n $('.accordion').not(parent).find('.accordion-content').slideUp();\n\n parent.toggleClass('open');\n parent.find('.accordion-content').slideToggle(function () {\n\n if ($(parent).parent().hasClass('lightbox-with-accordion')) {\n return;\n }\n\n hash.add({ 'accordion': self.attr('href').replace('#', '') });\n\n if (isMobileDevice) {\n $('html, body').animate({ scrollTop: (parent.offset().top - self.outerHeight()) + 'px' }, 500);\n } else {\n $('html, body').animate({ scrollTop: (parent.offset().top - self.outerHeight()) + 'px' }, 600);\n }\n });\n\n for (var i = 0; i < window.Highcharts.charts.length; i++) {\n window.Highcharts.charts[i].reflow();\n }\n\n return false;\n });\n\n var hashAccordionVal = hash.get('accordion');\n $(scope + '.accordion .accordion-header > a[href=\"#' + hashAccordionVal + '\"]').trigger('click');\n }\n};\n\nexport default accordion;\n\nApp.Util.accordion = accordion;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const contactme = {\n init: function () {\n $('.contact-me-days-tags').on('click', 'li', function () {\n $('.contact-me-days-tags li').removeClass('active');\n\n $(this).addClass('active');\n var id = $(this).data('time-id');\n $('.contact-me-time').slideUp();\n\n if ($('.contact-me-days-tags li.active').length) {\n $('.contact-me-time#' + id).slideDown();\n } else {\n $('.contact-me-time').slideUp();\n }\n\n var reservationDate = $('input[id=reservationDate]').first();\n reservationDate.val('1');\n $('.contact-me-time-tags li').removeClass('active');\n var reservationTime = $('input[id=reservationTime]').first();\n reservationTime.val('');\n });\n\n $('.contact-me-time-tags').on('click', 'li', function () {\n $('.contact-me-time-tags li').removeClass('active');\n\n var reservationTime = $('input[id=reservationTime]').first();\n reservationTime.val($(this).data('from-value'));\n\n $(this).addClass('active');\n });\n\n function validateCallMe($form, submitButtonValue) {\n var valid = true;\n var name = $form.find('input[id=name]').first();\n var cpr = $form.find('input[id=cpr]').first();\n var email = $form.find('input[id=email]').first();\n var phone = $form.find('input[id=phone]').first();\n var details = $form.find('textarea[id=details]').first();\n\n valid = validateCallMeName(name);\n valid = validateRequiredField(details) && valid;\n valid = validateCallMePhone(phone) && valid;\n valid = validateCallMeCprAndCvr(cpr) && valid;\n valid = validateCallMeEmail(email, submitButtonValue) && valid;\n\n var dateValid = validateRequiredField($form.find('input[name=reservationDate]').first());\n valid = dateValid && valid;\n if (dateValid) {\n valid = validateRequiredField($form.find('input[name=reservationTime]').first()) && valid;\n }\n return valid;\n }\n\n $('form[data-callme-ajax=\"true\"] input[id=name]').on('blur', function (event) { validateCallMeName($(event.target)); });\n $('form[data-callme-ajax=\"true\"] input[id=cpr]').on('blur', function (event) { validateCallMeCprAndCvr($(event.target)); });\n $('form[data-callme-ajax=\"true\"] input[id=phone]').on('blur', function (event) { validateCallMePhone($(event.target)); });\n $('form[data-callme-ajax=\"true\"] input[id=email]').on('blur', function (event) { validateCallMeEmail($(event.target)); });\n $('form[data-callme-ajax=\"true\"] textarea[id=details]').on('blur', function (event) { validateRequiredField($(event.target)); });\n\n function validateCallMeName(name) {\n return validateRequiredCallMe(name) && validateName(name);\n }\n\n function validateCallMePhone(phone) {\n return validateRequiredCallMe(phone) && validateTelefon(phone);\n }\n\n function validateRequiredCallMe(elem) {\n var errorElem = elem.nextAll('div .msg');\n errorElem.hide();\n var reqErrorElem = errorElem.filter('div[data-required=\"true\"]');\n\n if (reqErrorElem.length > 0 && !required(elem)) {\n reqErrorElem.show();\n return false;\n } else if (reqErrorElem.length > 0) {\n reqErrorElem.hide();\n }\n return true;\n }\n\n function validateCallMeCprAndCvr(cpr) {\n var validCpr = modulus11Cpr(cpr);\n var validCvr = validateCvr(cpr);\n if (validCpr.cpr || validCvr) {\n setValidationOk(cpr);\n if (validCpr.cpr && !validCpr.modulus11) {\n setValidationInfo(cpr);\n }\n return true;\n }\n return false;\n }\n\n function validateCallMeEmail(email, submitButtonValue) {\n if (submitButtonValue != undefined && submitButtonValue === 'online') {\n return validateRequiredCallMe(email) && validateEmail(email);\n } else {\n return validateEmail(email);\n }\n }\n\n $('form[data-callme-ajax=\"true\"]').submit(function () {\n return false;\n });\n $('#uiBtnTlf, #uiBtnOnline').click(function (event) {\n\n var $form = $('#callMe');\n var submitButtonValue = $(this).attr('value');\n var valid = validateCallMe($form, submitButtonValue);\n var buttonVal = '&submitButtonName=' + submitButtonValue;\n var formdata = $form.serialize() + buttonVal;\n if (valid) {\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: formdata\n }).done(function (data) {\n if (data.success) {\n $form.trigger('reset');\n var header = $form.data('success-header');\n var content = $form.data('success-content');\n alertify.alert('

' + header + '

' + content + '

');\n $('.contact-me-time').slideUp();\n $('.contact-me-time-tags li').removeClass('active');\n $('.contact-me-days-tags li').removeClass('active');\n $('#divContact').slideUp();\n } else {\n alertify.alert(`

${$form.data('error-header')}

${$form.data('error-content')}

`);\n }\n });\n }\n\n return false;\n });\n }\n};\n\nexport default contactme;\n\nApp.Util.contactme = contactme;\n\n\n","/* eslint-disable no-dupe-class-members, no-unused-expressions */\nfunction collectFormData(formData) {\n const object = {};\n formData.forEach((value, key) => {\n if (!Reflect.has(object, key)) {\n object[key] = value;\n return;\n }\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n });\n return object;\n}\n\nfunction getFocusable(dialog) {\n return [\n ...dialog.querySelectorAll(\n 'button,[href],select,textarea,input:not([type=\"hidden\"]),[tabindex]:not([tabindex=\"-1\"])'\n )\n ];\n}\n\nfunction getElements(dialog, elementRef) {\n return dialog.querySelectorAll(`[data-ref=${elementRef}]`);\n}\n\nfunction getElement(dialog, elementRef) {\n return getElements(dialog, elementRef)[0];\n}\n\nclass Dialog {\n dialogs = [];\n dialogSupported = typeof HTMLDialogElement === 'function';\n\n constructor(settings = {}) {\n this.#init(settings);\n }\n\n #init(settings) {\n this.SETTINGS = {\n id: 'dialog',\n labels: {\n OK: 'Ok',\n CANCEL: 'Cancel'\n },\n ...settings\n };\n }\n\n #createDialogElement(settings, globalSettings) {\n const defaults = {\n ...globalSettings,\n ...settings\n };\n\n if (this.dialogs.find((dialog) => dialog.id === defaults.id)) {\n defaults.id = `${defaults.id}-${this.dialogs.length}`;\n }\n\n const dialog = document.createElement('dialog');\n dialog.classList.add(\n ...[\n globalSettings.id,\n `${globalSettings.id}-${defaults.type ?? 'default'}`,\n defaults.className ?? null\n ].filter((token) => token !== null)\n );\n dialog.setAttribute('id', defaults.id);\n dialog.setAttribute('role', 'dialog');\n dialog.dataset.component = this.dialogSupported ? 'dialog' : 'no-dialog';\n\n dialog.innerHTML = `\n
\n
\n
\n
\n
\n \n \n ${defaults.type === 'confirm' || defaults.type === 'prompt' ? '' : ''}\n \n
\n `;\n\n this.dialogs.push(dialog);\n document.body.appendChild(dialog);\n\n return dialog;\n }\n\n #cleanDialog(dialog) {\n this.dialogs = this.dialogs.filter((item) => item !== dialog);\n dialog.remove();\n }\n\n #setupEvents(dialog, blockUI) {\n dialog.addEventListener(\n 'close',\n (event) => {\n dialog.dispatchEvent(new Event('cancel'));\n this.#cleanDialog(event.target);\n },\n { once: true }\n );\n\n dialog.addEventListener(\n 'keydown',\n (event) => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n dialog.dispatchEvent(new Event('cancel'));\n }\n },\n { once: true }\n );\n\n dialog.addEventListener('cancel', (event) => {\n if (blockUI) {\n event.preventDefault();\n }\n });\n\n getElements(dialog, 'cancel').forEach((cancelBtn) =>\n cancelBtn.addEventListener(\n 'click',\n () => {\n dialog.dispatchEvent(new Event('cancel'));\n },\n { once: true }\n )\n );\n }\n\n #waitForUser(dialog, hasForm, blockUI) {\n return new Promise((resolve) => {\n dialog.addEventListener(\n 'close',\n (e) => {\n resolve(false);\n },\n { once: true }\n );\n\n getElements(dialog, 'accept').forEach((acceptBtn) =>\n acceptBtn.addEventListener(\n 'click',\n () => {\n const value = hasForm ? collectFormData(new FormData(getElement(dialog, 'form'))) : true;\n resolve(value);\n },\n { once: true }\n )\n );\n });\n }\n\n open(settings = {}) {\n const dialog = this.#createDialogElement(settings, this.SETTINGS);\n const blockUI = settings.blockUI ? true : false;\n\n const dialogMessage = getElement(dialog, 'message');\n if (settings.message) {\n dialogMessage.innerHTML = settings.message;\n } else if (settings.actions === false || settings.actions === null || settings.actions === '') {\n dialogMessage.remove();\n }\n\n if (settings.template) {\n getElement(dialog, 'template').innerHTML = settings.template;\n }\n\n const dialogActions = getElement(dialog, 'actions');\n\n if (settings.actions) {\n dialogActions.innerHTML = settings.actions;\n } else if (settings.actions === false || settings.actions === null || settings.actions === '') {\n dialogActions.remove();\n }\n\n this.#setupEvents(dialog, blockUI);\n\n dialog.showModal();\n\n const focusable = getFocusable(dialog);\n const inputElements = [].slice.call(getElement(dialog, 'fieldset').elements).find((elm) => elm.select);\n\n if (inputElements) {\n inputElements?.select();\n }\n\n focusable[0]?.focus();\n\n return this.#waitForUser(dialog, inputElements, blockUI);\n }\n\n alert(message, config = {}) {\n return this.open({\n type: 'alert',\n message,\n ...config\n });\n }\n\n error(message, config = {}) {\n return this.open({\n type: 'error',\n message,\n ...config\n });\n }\n\n confirm(message, config = {}) {\n return this.open({\n type: 'confirm',\n message,\n ...config\n });\n }\n\n prompt(message, defaultValue, config = {}) {\n const template = `\n `;\n\n return this.open({\n type: 'prompt',\n message,\n template,\n ...config\n });\n }\n\n spinner(message, defaultValue, config = {}) {\n const template = `\n
\n
Loading...
\n
${message ?? ''}
\n
`;\n\n return this.open({\n type: 'spinner',\n id: 'spinner',\n message: '',\n blockUI: true,\n actions: false,\n template,\n ...config\n });\n }\n\n spinnerOld(message, config = {}) {\n const template = `\n
\n Loading...\n
${message ?? ''}
\n
`;\n\n return this.open({\n type: 'spinner',\n id: 'spinner',\n message: '',\n blockUI: true,\n actions: false,\n template,\n ...config\n });\n }\n\n custom(message, config = {}) {\n return this.open({\n type: 'custom',\n message,\n blockUI: true,\n actions: false,\n template: false,\n ...config\n });\n }\n\n closeAll() {\n this.dialogs.forEach((dialog) => {\n dialog.close();\n });\n }\n\n close(id) {\n this.dialogs.find((dialog) => dialog.id === id)?.close();\n }\n}\n\nexport default Dialog;\n","export const NODE_ENV = process.env.NODE_ENV;\nexport const isDevelopment = NODE_ENV === 'development';\nexport const isProduction = NODE_ENV === 'production';\nexport const isMockup = isDevelopment && window.location.host.includes('localhost');\n\nexport default {\n NODE_ENV,\n isDevelopment,\n isProduction,\n isMockup\n};\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const feedback = {\n init: function () {\n $('.feedback-module .feedback-module-caller').on('click', function () {\n $('.feedback-module .feedback-module-respond').stop().slideUp();\n\n var refUri = $('form[data-feedback-ajax=\"true\"]').find('input[name = \"RefererUri\"]').val();\n\n if ($(this).hasClass('feedback-module-caller-approve')) {\n $('.feedback-module-respond-approve').stop().slideToggle();\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Positiv_' + refUri);\n }\n } else {\n $('.feedback-module-respond-reject').stop().slideToggle();\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Negativ_' + refUri);\n }\n }\n });\n\n $('form[data-feedback-ajax=\"true\"]').submit(function () {\n var $form = $(this);\n\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: $form.serialize()\n }).done(function () {\n var target = $form.attr('data-feedback-target');\n $(target).stop().slideToggle();\n $form.find('input[type=text], textarea, input[type=email]').val('');\n $('#divFeedback').slideUp();\n $('#divThanks').slideDown();\n var refererUri = $form.find('input[name = \"RefererUri\"]').val();\n var thumbsUp = $form.find('input[name = \"Thumbsup\"]').val();\n if (thumbsUp === 'true') {\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Positiv_Fritekst_Indsendt_' + refererUri);\n }\n } else {\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Negativ_Fritekst_Indsendt_' + refererUri);\n }\n }\n\n });\n return false;\n\n });\n }\n};\n\nexport default feedback;\n\nApp.Util.feedback = feedback;\n","import '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const fileUploader = {\n init: function () {\n if (document.querySelector('.js-file-upload')) import('@mockup/func/fileupload/index').then(module => module.default.init());\n }\n};\n\nexport default fileUploader;\n\nApp.Util.fileUploader = fileUploader;\n","import '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const format = function (comma, period) {\n comma = comma || ',';\n period = period || '.';\n var split = this.toString().split('.');\n var numeric = split[0];\n var decimal = split.length > 1 ? period + split[1] : '';\n var reg = /(\\d+)(\\d{3})/;\n while (reg.test(numeric)) {\n numeric = numeric.replace(reg, '$1' + comma + '$2');\n }\n return numeric + decimal;\n};\n\nexport default format;\n\nApp.Util.format = format;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\nimport lightbox from './lightbox';\n\nexport const leaveGuide = {\n init: function () {\n $('.ligtbox-feedback').each(function () {\n var elm = $(this);\n var lightboxContent = $(elm.attr('href'));\n\n elm.fancybox(lightbox.options(elm.data(), {\n padding: 0,\n type: 'inline',\n width: 'auto',\n title: false,\n minHeight: 0,\n beforeLoad: function () {\n var url = this.href;\n if (!url) {\n url = $(this).data('href');\n }\n\n var hash = url.substring(url.indexOf('#'));\n this.href = hash;\n }\n }));\n\n lightboxContent.find('#btnBlivIGuide').on('click', function (e) {\n e.stopImmediatePropagation();\n $.fancybox.close();\n });\n\n lightboxContent.find('input[type=radio]').on('change', function () {\n if (lightboxContent.find('.feedback-other-reason-radio input').is(':checked')) {\n lightboxContent.find('.feedback-other-reason-explanation').removeClass('hide');\n lightboxContent.find('.feedback-other-reason-explanation textarea').focus();\n } else {\n lightboxContent.find('.feedback-other-reason-explanation').addClass('hide');\n }\n\n $.fancybox.reposition();\n });\n\n $('form[data-leaveguide-ajax=\"true\"]').submit(function () {\n $('#btnFarvelFraGuide').toggleClass('is-loading').prop('disabled', true);\n\n var $form = $(this);\n var rUri = $form.find('input[name = \"RefererUri\"]').val();\n var question = $form.find('input[type=radio][name=beskrivelse]:checked').attr('id');\n var description = $form.find('textarea[name=\"tilfojelse\"]').val();\n\n if (typeof window.ga === 'function') {\n if (question !== undefined) {\n if (question === 'Guide_Question_4') {\n if (description.length > 0) {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_' + question + '_Med_Fritekst_' + rUri);\n } else {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_' + question + '_Uden_Fritekst_' + rUri);\n }\n } else {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_' + question + '_' + rUri);\n }\n } else {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_Ikke_Svaret_' + rUri);\n }\n }\n\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: $form.serialize()\n }).done(function (data) {\n if (data.ok) {\n if (data.redirectLink) {\n $('#btnFarvelFraGuide').prop('disabled', false);\n $('.btnrow.size-l').slideUp();\n $('#lblLeaveGuideKvittering').slideDown();\n $.fancybox.update();\n setTimeout(function () {\n $.fancybox.close();\n var url = top.location.protocol + '//' + top.location.hostname + data.redirectLink;\n top.location.assign(url);\n }, 2000);\n }\n }\n });\n\n return false;\n });\n });\n }\n};\n\nexport default leaveGuide;\n\nApp.Util.leaveGuide = leaveGuide;\n","import $ from 'jquery';\nimport { App } from './App.js';\n\nimport '@mockup/plugins/jquery.fancybox';\nimport '@mockup/plugins/jquery.rangeslider';\nimport '@mockup/plugins/z.7.cleaver';\nimport '@mockup/plugins/z.8.bootstrap-datepicker';\nimport '@mockup/plugins/z.9.bootstrap-datepicker-range';\nimport '@mockup/plugins/IP.Validation';\nimport '@mockup/plugins/jquery.hash';\n\nimport '@mockup/charts';\n\n// Add an alias to the App, if we need to call App from the outside:\nglobal.$ = global.jQuery = window.$ = window.jQuery = $;\nglobal.App = window.App = App;\n\nwindow.GoogleAnalyticsEvent = (kategori, action, label, value) => window.ga('send', 'event', kategori, action, label, value);\nwindow.GoogleAnalyticsEvent = (kategori, action, label) => window.ga('send', 'event', kategori, action, label);\n\nwindow.isMobileDevice = false;\n\n$.fn.filterByData = function (prop, val) {\n return this.filter(function () {\n return $(this).data(prop) == val;\n });\n};\n","import $ from 'jquery';\nimport { isDevelopment } from '@mockup/func/globals/environment';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\nimport { emit } from 'process';\n\nexport const lightbox = {\n init: function () {\n $(document).on('click', 'a.video', function () {\n if (isDevelopment) {\n var Cookiebot = {\n consent: {\n marketing: true\n }\n };\n }\n\n if (!(window.Cookiebot && window.Cookiebot.consent.marketing)) {\n window.Cookiebot.renew();\n return false;\n }\n\n if (navigator.userAgent.match(/iPhone/)) {\n $(this).append('');\n }\n // GOOGLE ANALYTIS CUSTOM EVENET\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'video', 'play', $(this).attr('href'));\n }\n\n if (navigator.userAgent.match(/iPhone/)) {\n return false;\n } else if (window.Cookiebot && window.Cookiebot.consent.marketing) {\n $.fancybox({\n 'padding': 0,\n 'width': 1280,\n 'height': 720,\n 'href': $(this).attr('href'),\n 'type': 'iframe',\n iframe: {\n preload: false\n }\n });\n return false;\n }\n });\n\n $(document).on('click', '.lightbox', function () {\n const opt = opt;\n $.fancybox.open($(this), lightbox.options(opt, {\n padding: 10\n }));\n });\n\n $(document).on('click', '.lightbox-iframe', function () {\n const opt = $(this).data();\n $.fancybox.open($(this), lightbox.options(opt, {\n width: '75%',\n height: '75%',\n padding: 10,\n type: 'iframe',\n iframe: {\n scrolling: 'auto',\n preload: true\n },\n autoSize: false\n }));\n });\n\n $(document).on('click', '.lightbox-video', function () {\n\n const opt = $(this).data();\n $.fancybox.open($(this), lightbox.options(opt, {\n width: '75%',\n height: '50vh',\n padding: 0,\n type: 'iframe',\n iframe: {\n scrolling: 'auto',\n preload: true\n },\n autoSize: true\n }));\n });\n\n $(document).on('click', '.lightbox-ajax', function () {\n const opt = $(this).data();\n $.fancybox.open($(this), lightbox.options(opt, {\n width: 500,\n height: 500,\n padding: 10,\n type: 'ajax',\n autoSize: false\n }));\n });\n\n $(document).on('click', '.lightbox-inline', function () {\n const opt = $(this).data();\n if ($(this).attr('disabled') !== 'disabled') {\n $.fancybox.open($(this), lightbox.options(opt, {\n padding: 20,\n type: 'inline',\n title: false,\n minHeight: 0,\n beforeLoad: function () {\n var url = this.href;\n if (!url) {\n url = $(this).data('href');\n }\n\n var hash = url.substring(url.indexOf('#'));\n this.href = hash;\n },\n afterClose: function() {\n document.dispatchEvent(new Event('lightbox-inline-close'));\n }\n }));\n\n App.format.init();\n }\n });\n\n $(document).on('click', '.fancy-modal-close', function () {\n $.fancybox.close();\n });\n },\n options: function (dataOpt, defaults) {\n var data = $.extend({}, defaults, dataOpt);\n return $.extend({}, defaults, dataOpt);\n }\n};\n\nexport default lightbox;\n\nApp.Util.lightbox = lightbox;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const newsletterSignup = {\n init: function () {\n $('form[data-signup-ajax=\"true\"]')\n .submit(function () {\n var $form = $(this);\n var error = false;\n var name = $form.find('input[id=name]')[0];\n var email = $form.find('input[id=email]')[0];\n var bekraeftEmail = $form.find('input[id=bekraeftEmail]')[0];\n var newsletters = $form.find('input[type=checkbox]');\n\n if (newsletters.not(':checked').length === newsletters.length) {\n newsletters.closest('div.fu').find('div.error').show();\n newsletters.closest('div.fu').addClass('error');\n error = true;\n } else {\n setValidationOk(newsletters);\n newsletters.closest('div.fu').find('div.error').hide();\n }\n if (!validateEmailRequired(email)) {\n setValidationError(email);\n error = true;\n } else {\n setValidationOk(email);\n }\n if (!validerBekraeftEmail(bekraeftEmail)) {\n setValidationError(bekraeftEmail);\n error = true;\n } else {\n setValidationOk(bekraeftEmail);\n }\n error = !validateName(name) || error;\n\n if (!error) {\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: $form.serialize()\n }).done(function (data) {\n if (data.ok) {\n $form.trigger('reset');\n var header = $form.data('success-header');\n var content = $form.data('success-content');\n alertify.alert('

' + header + '

' + content + '

');\n } else {\n var headerFejlDomaene = $form.data('fejldomaene-header');\n var contentFejlDomaene = $form.data('fejldomaene-content');\n alertify.alert('

' + headerFejlDomaene + '

' + contentFejlDomaene + '

');\n }\n });\n }\n\n return false;\n });\n }\n};\n\nexport default newsletterSignup;\n\nApp.Util.newsletterSignup = newsletterSignup;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const rangeSlider = function (scope) {\n scope = scope ? scope + ' ' : '';\n\n $(scope + '.js-rangeslider').each(function () {\n var $this = $(this);\n var $val = $($this.data('output'));\n\n $val.on('change', function (e) {\n // remove everying that is not at digit\n var formattedValue = e.target.value.replace(/\\D/g, '');\n // update the rangeslider value\n $this.val(formattedValue).change();\n });\n\n $this.rangeslider({\n polyfill: false,\n onInit: function () {},\n onSlide: function (position, value) {\n if ($val.length) {\n if ($val.get(0).tagName === 'INPUT') {\n $val.val(value);\n } else {\n $val.text(value);\n }\n }\n\n if ($this.data('slide-callback')) {\n const fn = window[$this.data('slide-callback')];\n if (typeof fn === 'function') {\n fn.apply(this, [position, value]);\n }\n }\n\n // Also dispatch event that can be listened for.\n var event = new Event('slide');\n $this.get(0).dispatchEvent(event);\n },\n onSlideEnd: function (position, value) {\n if ($this.data('slide-end-callback')) {\n const fn = window[$this.data('slide-end-callback')];\n if (typeof fn === 'function') {\n fn.apply(this, [position, value]);\n }\n }\n\n // Also dispatch event that can be listened for.\n var event = new Event('slide-end');\n $this.get(0).dispatchEvent(event);\n }\n });\n\n });\n // Listen for when a slider is made visible (from display: none to visible).\n // When made visible, update the slider size.\n const sliders = document.querySelectorAll(scope + '.js-rangeslider');\n sliders.forEach((slider) => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const isVisible = entry.contentRect.width !== 0;\n if (isVisible) {\n $(slider).rangeslider();\n }\n }\n });\n resizeObserver.observe(slider);\n });\n};\n\nexport default {\n init: rangeSlider\n};\n\nApp.Util.rangeSlider = rangeSlider;\n","import $ from 'jquery';\n\nexport const stepSlider = function (opts) {\n var selector = typeof opts === 'object' ? opts.selector : opts;\n if (!selector) throw new Error('Stepslider jQuery selector needs to be provided.');\n\n $(selector).rangeslider({\n polyfill: false,\n rangeClass: 'stepslider',\n disabledClass: 'stepslider--disabled',\n horizontalClass: 'stepslider--horizontal',\n fillClass: 'stepslider__fill',\n handleClass: 'stepslider__handle',\n onInit: function () {\n // get range labels\n var stepslider = this;\n var labelsAttr = this.$element.attr('data-labels');\n var lablesHtml = getRulerRange(this.min, this.max, this.step, labelsAttr);\n this.$wrapper = this.$range.parents('.stepslider__wrapper');\n this.$wrapper.attr('id', this.identifier + '-wrapper');\n\n // Select events\n this.$wrapper.find('select').on('change', function () {\n stepslider.$element.val(this.value).change();\n stepslider.onSlideEnd.call(stepslider, null, this.value);\n });\n\n // add labels\n this.$range.append('
');\n this.$range.find('.stepslider__labels').append(lablesHtml);\n\n if (opts.onInit && typeof opts.onInit === 'function') {\n opts.onInit.call(this);\n }\n },\n onSlide: function (position, value) {\n var CssSelector = '#' + this.identifier + ' .stepslider__labels__label:nth-child(-n+' + (1 + value) + ')::after { background-color: currentColor}';\n\n this.$wrapper.find('style').text(CssSelector);\n\n if (opts.onSlide && typeof opts.onSlide === 'function') {\n opts.onSlide.apply(this, [position, value]);\n }\n },\n onSlideEnd: function (position, value) {\n this.$wrapper.find('.stepslider__tip-arrow').css('left', position + 'px');\n this.$wrapper.find('select').val(value);\n\n if (opts.onSlideEnd && typeof opts.onSlideEnd === 'function') {\n opts.onSlideEnd.apply(this, [position, value]);\n }\n }\n });\n\n function getRulerRange(min, max, step, highlights) {\n var range = '';\n var i = min;\n var val;\n\n while (i <= max) {\n if (highlights) {\n val = highlights.split(',').indexOf(i + '') !== -1 ? i : '';\n } else {\n val = i;\n }\n\n range += '' + val + '';\n i = i + step;\n }\n return range;\n }\n};\n\nexport default stepSlider;\n","import '@mockup/func/globals/App.util';\n\nexport const tableExpander = {\n init: function () {\n $('table.table').each(function () {\n var _ = $(this);\n if (!_.find('.expander').length) {\n return;\n }\n\n _.find('.expander').on('click', function () {\n $(this).toggleClass('open');\n var id = '.' + $(this).data('expanderElementsId');\n _.find(id).toggleClass('is-open');\n });\n\n _.find('tbody tr:visible').each((index, elm) => {\n $(elm).addClass((index + 1) % 2 === 0 ? 'is-even' : 'is-odd');\n });\n });\n }\n};\n\nApp.Util.tableExpander = tableExpander;\n\nexport default tableExpander;\n\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const pagedtable = {\n init: function () {\n $.ajaxSetup({ cache: false });\n this.events('.js-paged-table-component');\n },\n events: function (elm) {\n $(elm).on('click.pagedtable', '.pagedList a[href]:not(.pagedtable-company-letter):not(.pagedtable-company-payment):not(.pagedtable-company):not(.pagedtable-member):not(.pagedtable-member-payment)', function () {\n var $a = $(this);\n $.ajax({\n url: $a.attr('href'),\n type: 'get'\n }).done(function (data) {\n var target = $a.closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).replaceWith(data);\n pagedtable.offEvents('.js-paged-table-component');\n pagedtable.events('.js-paged-table-component');\n\n $(document).trigger('pagedtable.ajax.done');\n });\n\n return false;\n });\n\n $(elm).on('change.pagedtable', '.pageListDropdown', function () {\n var $l = $(this);\n\n $.ajax({\n url: $l.find(':selected').val(),\n type: 'get'\n }).done(function (data) {\n var target = $l.closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).replaceWith(data);\n pagedtable.offEvents('.js-paged-table-component');\n pagedtable.events('.js-paged-table-component');\n\n $(document).trigger('pagedtable.ajax.done');\n });\n\n return false;\n });\n\n if ($(elm).find('.pagedtable-member').length) {\n $(elm).on('click.pagedtable-member', '.pagedtable-member', function (e) {\n if ($(this).hasClass('lightbox-iframe')) {\n e.stopImmediatePropagation();\n return false;\n }\n\n return true;\n });\n }\n\n if ($(elm).find('.pagedtable-member-payment').length) {\n $(elm).on('click.pagedtable-member-payment', '.pagedtable-member-payment', function (e) {\n\n e.stopImmediatePropagation();\n const elm = $(this);\n const referenceId = $(elm).parent().data('referenceid');\n const produktnavn = $(elm).parent().data('produktnavn');\n window.StartNetaxeptTransaction(referenceId, '', null);\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n ga('send', 'event', 'Login', 'Betalinger_Medlem', 'betaling_knap');\n\n return false;\n\n });\n }\n\n if ($(elm).find('.link.pagedtable-company').length) {\n $(elm).on('click.pagedtable-company', '.link.pagedtable-company', function (e) {\n if ($(this).hasClass('lightbox-iframe')) {\n e.stopImmediatePropagation();\n return false;\n }\n\n return true;\n });\n }\n\n if ($(elm).find('.link.pagedtable-company-payment').length) {\n $(elm).on('click.pagedtable-company-payment', '.link.pagedtable-company-payment', function (e) {\n\n e.stopImmediatePropagation();\n pagedtable.setUpFancyBox($(this));\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).find('#uiDiv_PTDibsCom').trigger('click');\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'Login', 'Betalinger_Virksomhed', 'betaling_knap');\n }\n\n return false;\n });\n }\n\n if ($(elm).find('.pagedtable-company-letter').length) {\n $(elm).on('click.pagedtable-company-letter', '.pagedtable-company-letter', function (e) {\n $(this).find('strong').contents().unwrap();\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'Login', 'VoresBreve_Virksomhed', 'dokument_link_clicked');\n }\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11\\./)) {\n e.stopImmediatePropagation();\n window.open($(this).parent().data('dibsurl'));\n return true;\n }\n e.stopImmediatePropagation();\n pagedtable.setUpFancyBoxForLetter($(this));\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).find('#uiDiv_PTDibsCom').trigger('click');\n return false;\n });\n $(elm).on('click.js-pagedtable-company-letter-attachment', '.js-pagedtable-company-letter-attachment', function (e) {\n\n $(this).find('strong').contents().unwrap();\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'Login', 'VoresBreve_Virksomhed', 'attachment_link_clicked');\n }\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11\\./)) {\n e.stopImmediatePropagation();\n window.open($(this).parent().data('dibsurl'));\n return true;\n }\n e.stopImmediatePropagation();\n pagedtable.setUpFancyBoxForLetterAttachment($(this));\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).find('#uiDiv_PTDibsCom').trigger('click');\n return false;\n });\n }\n },\n setUpFancyBox: function (elm) {\n var scrol = isMobileDevice ? 'auto' : 'no';\n var referenceId = $(elm).parent().data('referenceid');\n var dibsUrl = $(elm).parent().data('dibsurl');\n var produktnavn = $(elm).parent().data('produktnavn');\n\n $.fancybox.open({\n type: 'ajax',\n href: dibsUrl,\n ajax: {\n type: 'POST',\n data: {\n encrytptedReferenceId: referenceId,\n produktnavn: produktnavn\n }\n },\n scrolling: scrol,\n padding: 15,\n margin: 20\n });\n },\n setUpFancyBoxForLetter: function (elm) {\n var referenceId = $(elm).parent().data('referenceid');\n var dibsUrl = $(elm).parent().data('dibsurl');\n var produktnavn = $(elm).parent().data('produktnavn');\n\n $.fancybox.open({\n type: 'iframe',\n href: dibsUrl,\n ajax: {\n type: 'POST',\n data: {\n encrytptedReferenceId: referenceId,\n produktnavn: produktnavn\n }\n },\n frame: {\n scrolling: 'auto',\n preload: true\n },\n width: '75%',\n height: '95%',\n padding: 10,\n autoSize: false\n });\n },\n setUpFancyBoxForLetterAttachment: function (elm) {\n var attachmentUrl = $(elm).data('attachmenturl');\n\n $.fancybox.open({\n type: 'iframe',\n href: attachmentUrl,\n ajax: {\n type: 'POST'\n },\n frame: {\n scrolling: 'auto',\n preload: true\n },\n width: '75%',\n height: '95%',\n padding: 10,\n autoSize: false\n });\n },\n offEvents: function (elm) {\n $(elm).off('click.pagedtable');\n $(elm).off('change.pagedtable');\n $(elm).off('click.pagedtable-member');\n $(elm).off('click.pagedtable-company');\n $(elm).off('click.pagedtable-company-payment');\n $(elm).off('click.pagedtable-company-letter');\n $(elm).off('click.pagedtable-member-payment');\n }\n};\n\nexport default pagedtable;\n\nApp.Util.pagedtable = pagedtable;\n","const downClass = ' dir-d ';\nconst upClass = ' dir-u ';\nconst regexDir = / dir-(u|d) /;\nconst regexTable = /\\bjs-sortable-table\\b/;\n\nfunction init() {\n document.addEventListener('click', function (e) {\n const element = e.target;\n\n function reClassify(element, dir) {\n element.className = element.className.replace(regexDir, '') + dir;\n }\n\n function getValue(element) {\n // If you aren't using data-sort and want to make it just the tiniest bit smaller/faster\n // comment this line and uncomment the next one\n return element.getAttribute('data-sort') || element.innerText;\n // return element.innerText\n }\n\n if (element.nodeName === 'TH') {\n try {\n const tr = element.parentNode;\n // const table = element.offsetParent; // Fails with positioned table elements\n // this is the only way to make really, really sure. A few more bytes though... 😡\n const table = tr.parentNode.parentNode;\n if (regexTable.test(table.className)) {\n let columnIndex;\n const nodes = tr.cells;\n\n // reset thead cells and get column index\n for (let i = 0; i < nodes.length; i++) {\n // eslint-disable-next-line max-depth\n if (nodes[i] === element) {\n columnIndex = i;\n } else {\n reClassify(nodes[i], '');\n }\n }\n\n let dir = downClass;\n\n // check if we're sorting up or down, and update the css accordingly\n if (element.className.indexOf(downClass) !== -1) {\n dir = upClass;\n }\n\n reClassify(element, dir);\n\n // extract all table rows, so the sorting can start.\n const orgTbody = table.tBodies[0];\n\n // get the array rows in an array, so we can sort them...\n const rows = [].slice.call(orgTbody.rows, 0);\n\n const reverse = dir === upClass;\n\n // sort them using custom built in array sort.\n rows.sort(function (a, b) {\n const x = getValue((reverse ? a : b).cells[columnIndex]);\n const y = getValue((reverse ? b : a).cells[columnIndex]);\n // const y = (reverse ? b : a).cells[columnIndex].innerText\n // const x = (reverse ? a : b).cells[columnIndex].innerText\n return isNaN(x - y) ? x.localeCompare(y) : x - y;\n });\n\n // Make a clone without content\n const cloneTbody = orgTbody.cloneNode();\n\n // Build a sorted table body and replace the old one.\n while (rows.length) {\n cloneTbody.appendChild(rows.splice(0, 1)[0]);\n }\n\n // And finally insert the end result\n table.replaceChild(cloneTbody, orgTbody);\n }\n } catch (error) {\n // console.log(error)\n }\n }\n });\n}\n\nexport default {\n init\n};\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const tabs = {\n init: function () {\n this.normal();\n this.payment();\n },\n normal: function (scope, initialIndex = 0) {\n scope = scope ? scope + ' ' : '';\n\n var hashTabIndex = hash.get('tab');\n if (!initialIndex) {\n initialIndex = hashTabIndex ? hashTabIndex : 0;\n }\n\n $(scope + '.tabs').each(function () {\n var self = $(this);\n self.find('.tabs-list-item a').on('click', function () {\n var index = self.find('.tabs-list-item a').index($(this));\n\n self.find('.tabs-list-item a').removeClass('active');\n $(this).addClass('active');\n\n self.find('.tabs-item').hide();\n self.find($(this).attr('href')).show();\n\n changeState(index);\n\n return false;\n });\n\n if (self.find('.tabs-list-item a').length) {\n self.find('.tabs-list-item a').eq(initialIndex).click();\n }\n });\n\n function changeState(index) {\n if (index) {\n hash.add({ 'tab': index });\n } else if (hash.get('tab')) {\n hash.remove('tab');\n }\n\n if (typeof window.ga === 'function') {\n var locationHash = window.location.hash;\n\n if (locationHash === '#!') {\n locationHash = '';\n }\n\n var location = window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.search + locationHash;\n\n if (typeof window.ga === 'function') {\n window.ga('send', {\n 'hitType': 'pageview',\n 'page': location\n });\n }\n }\n }\n\n },\n payment: function (scope) {\n scope = scope ? scope + ' ' : '';\n $(scope + '.tabs-payment li').on('click', function () {\n $(scope + '.tabs-payment li').removeClass('current');\n $(this).addClass('current');\n\n var cIndex = $(this).index();\n\n $(scope + '.table-payout table:first td').removeClass('current');\n $(scope + '.table-payout table:first tr:visible').each(function () {\n $(this).find('td.invisible').eq(cIndex).addClass('current');\n });\n\n $(scope + '.tip:visible').trigger('click');\n\n return false;\n });\n }\n};\n\nexport default tabs;\n\nApp.Util.tabs = tabs;\n","/* eslint-disable no-dupe-class-members, no-unused-expressions */\nfunction getElements(toast, elementRef){\n return toast.querySelectorAll(`[data-ref=${elementRef}]`);\n}\n\nfunction getElement(toast, elementRef){\n return getElements(toast, elementRef)[0];\n}\n\nclass Toast {\n toasts = [];\n dialogSupported = typeof HTMLDialogElement === 'function';\n #toastContainer = null;\n\n constructor(settings = {}) {\n this.#init(settings);\n }\n\n #init(settings) {\n this.SETTINGS = {\n id: 'toast',\n duration: 2000,\n reverseOrder: false,\n ...settings\n };\n\n const toastContainerElm = document.createElement('div');\n toastContainerElm.classList.add(this.SETTINGS.id + '-container');\n this.#toastContainer = document.body.appendChild(toastContainerElm);\n }\n\n #createToastElement(defaults) {\n const toast = document.createElement('dialog');\n toast.classList.add(...[\n defaults.id,\n `${defaults.id}-${defaults.type ?? 'default'}`,\n defaults.className ?? null,\n ...(defaults.classList ? defaults.classList : [null]),\n 'align-items-center',\n 'border-0',\n 'p-0'\n ].filter((token) => token !== null));\n\n if (this.toasts.find((toast) => toast.id === defaults.id)) {\n defaults.id = `${defaults.id}-${this.toasts.length}`;\n }\n\n toast.setAttribute('id', defaults.id);\n toast.setAttribute('role', 'alert');\n toast.dataset.component = 'toast';\n\n toast.innerHTML = `\n
\n
\n ${defaults.autoHide ? '' : ''}\n
\n `;\n\n this.toasts.push(toast);\n this.#toastContainer[defaults.reverseOrder ? 'prepend' : 'appendChild'](toast);\n\n return toast;\n }\n\n #cleanToast(toast) {\n this.toasts = this.toasts.filter((item) => item !== toast);\n toast.remove();\n }\n\n #setupEvents(toast, settings) {\n toast.addEventListener('close', (event) => {\n toast.dispatchEvent(new Event('cancel'));\n this.#cleanToast(event.target);\n }, { once: true });\n\n if (settings.autoHide) {\n toast.addEventListener('animationend', () => {\n toast.style.animationDelay = `${settings.duration}ms`;\n toast.classList.add('is-closing');\n toast.addEventListener('animationend', () => {\n toast.classList.add('d-none');\n toast.close();\n }, { once: true });\n }, { once: true });\n }\n }\n\n show(settings = {}) {\n const defaults = {\n autoHide: true,\n dismissible: false,\n ...this.SETTINGS,\n ...settings\n };\n\n const toast = this.#createToastElement(defaults);\n\n const toastMessage = getElement(toast, 'message');\n if (settings.message) {\n toastMessage.innerHTML = settings.message;\n } else if (settings.actions === false || settings.actions === null || settings.actions === '') {\n toastMessage.remove();\n }\n\n this.#setupEvents(toast, defaults);\n\n toast.show();\n\n return toast;\n }\n\n success(message, config = {}) {\n return this.show({\n type: 'success',\n classList: ['text-white', 'bg-success'],\n message,\n ...config\n });\n }\n\n error(message, config = {}) {\n return this.show({\n type: 'error',\n classList: ['text-white', 'bg-danger'],\n message,\n ...config\n });\n }\n\n warning(message, config = {}) {\n return this.show({\n type: 'warning',\n classList: ['bg-warning'],\n message,\n ...config\n });\n }\n\n info(message, config = {}) {\n return this.show({\n type: 'info',\n classList: ['bg-info'],\n message,\n ...config\n });\n }\n\n log(message, config = {}) {\n return this.show({\n type: 'log',\n message,\n ...config\n });\n }\n\n closeAll() {\n this.toasts.forEach((toast) => {\n toast.close('close');\n });\n }\n\n close(id) {\n this.toasts.find((toast) => toast.id === id)?.close('close');\n }\n}\n\nexport default Toast;\n","if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\n","import 'whatwg-fetch';\nimport './es6.nodelist.foreach';\nimport './node.classList';\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*\n *global self, document, DOMException\n */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif ('document' in window.self) {\n\n // Full polyfill for browsers with no classList support\n // Including IE < Edge missing SVGElement.classList\n if (!('classList' in document.createElement('_'))\n || document.createElementNS && !('classList' in document.createElementNS('http://www.w3.org/2000/svg', 'g'))) {\n\n (function (view) {\n\n 'use strict';\n\n if (!('Element' in view)) return;\n\n var classListProp = 'classList';\n var protoProp = 'prototype';\n var elemCtrProto = view.Element[protoProp];\n var objCtr = Object;\n var strTrim = String[protoProp].trim || function () {\n return this.replace(/^\\s+|\\s+$/g, '');\n };\n var arrIndexOf = Array[protoProp].indexOf || function (item) {\n var i = 0;\n var len = this.length;\n for (; i < len; i++) {\n if (i in this && this[i] === item) {\n return i;\n }\n }\n return -1;\n };\n // Vendors: please allow content code to instantiate DOMExceptions\n var DOMEx = function (type, message) {\n this.name = type;\n this.code = DOMException[type];\n this.message = message;\n };\n var checkTokenAndGetIndex = function (classList, token) {\n if (token === '') {\n throw new DOMEx(\n 'SYNTAX_ERR',\n 'An invalid or illegal string was specified'\n );\n }\n if (/\\s/.test(token)) {\n throw new DOMEx(\n 'INVALID_CHARACTER_ERR',\n 'String contains an invalid character'\n );\n }\n return arrIndexOf.call(classList, token);\n };\n var ClassList = function (elem) {\n var trimmedClasses = strTrim.call(elem.getAttribute('class') || '');\n var classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : [];\n var i = 0;\n var len = classes.length;\n for (; i < len; i++) {\n this.push(classes[i]);\n }\n this._updateClassName = function () {\n elem.setAttribute('class', this.toString());\n };\n };\n var classListProto = ClassList[protoProp] = [];\n var classListGetter = function () {\n return new ClassList(this);\n };\n // Most DOMException implementations don't allow calling DOMException's toString()\n // on non-DOMExceptions. Error's toString() is sufficient here.\n DOMEx[protoProp] = Error[protoProp];\n classListProto.item = function (i) {\n return this[i] || null;\n };\n classListProto.contains = function (token) {\n token += '';\n return checkTokenAndGetIndex(this, token) !== -1;\n };\n classListProto.add = function () {\n var tokens = arguments;\n var i = 0;\n var l = tokens.length;\n var token;\n var updated = false;\n do {\n token = tokens[i] + '';\n if (checkTokenAndGetIndex(this, token) === -1) {\n this.push(token);\n updated = true;\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n\n classListProto.remove = function () {\n var tokens = arguments;\n var i = 0;\n var l = tokens.length;\n var token;\n var updated = false;\n var index;\n do {\n token = tokens[i] + '';\n index = checkTokenAndGetIndex(this, token);\n while (index !== -1) {\n this.splice(index, 1);\n updated = true;\n index = checkTokenAndGetIndex(this, token);\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n classListProto.toggle = function (token, force) {\n token += '';\n\n var result = this.contains(token);\n var method = result ?\n force !== true && 'remove'\n :\n force !== false && 'add';\n\n if (method) {\n this[method](token);\n }\n\n if (force === true || force === false) {\n return force;\n } else {\n return !result;\n }\n };\n classListProto.toString = function () {\n return this.join(' ');\n };\n\n if (objCtr.defineProperty) {\n var classListPropDesc = {\n get: classListGetter,\n enumerable: true,\n configurable: true\n };\n try {\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n } catch (ex) { // IE 8 doesn't support enumerable:true\n // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n if (ex.number === undefined || ex.number === -0x7FF5EC54) {\n classListPropDesc.enumerable = false;\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n }\n }\n } else if (objCtr[protoProp].__defineGetter__) {\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\n }\n\n }(window.self));\n }\n\n // There is full or partial native classList support, so just check if we need\n // to normalize the add/remove and toggle APIs.\n\n (function () {\n 'use strict';\n\n var testElement = document.createElement('_');\n\n testElement.classList.add('c1', 'c2');\n\n // Polyfill for IE 10/11 and Firefox <26, where classList.add and\n // classList.remove exist but support only one argument at a time.\n if (!testElement.classList.contains('c2')) {\n var createMethod = function (method) {\n var original = DOMTokenList.prototype[method];\n\n DOMTokenList.prototype[method] = function (token) {\n var i;\n var len = arguments.length;\n\n for (i = 0; i < len; i++) {\n token = arguments[i];\n original.call(this, token);\n }\n };\n };\n createMethod('add');\n createMethod('remove');\n }\n\n testElement.classList.toggle('c3', false);\n\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n // support the second argument.\n if (testElement.classList.contains('c3')) {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function (token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n\n }\n\n testElement = null;\n }());\n}\n","import $ from 'jquery';\n\nconst siteSearch = {\n init() {\n const list = $('.search-results');\n const totalListItems = list.find('> li').length;\n const hashKey = 'list-result-items';\n const showMoreBtn = $('.search-results-more');\n\n if (window.location.hash.includes(hashKey)) {\n showMore(window.location.hash.split('=')[1], '> li');\n }\n\n showMoreBtn.on('click', function () {\n showMoreBtn.addClass('is-loading');\n\n setTimeout(() => {\n showMoreBtn.removeClass('is-loading');\n showMore(showMoreBtn.data('pagination'), '> li.d-none');\n }, 300);\n\n return false;\n });\n\n function showMore(pagination, select) {\n list.find(select).slice(0, pagination).removeClass('d-none');\n\n var visibleListItems = list.find('> li:not(.d-none)').length;\n\n window.location.hash = `${hashKey}=${visibleListItems}`;\n\n if (totalListItems === visibleListItems) {\n showMoreBtn.hide();\n }\n }\n }\n};\n\nexport default siteSearch;\n","import { core } from '@mockup/core.func';\r\nimport stepSlider from './func/globals/slider.step';\r\n\r\nimport '@mockup/func/globals/App.util';\r\n\r\nconst showOverloebWarning = function () {\r\n if ($('input[name=rbtnpensionsberegner1]').is(':checked')) {\r\n $('#uiDiv_Warning')\r\n .children()\r\n .each(function () {\r\n $(this).addClass('hide');\r\n });\r\n\r\n $('#uiDiv_Warning').removeClass('hide');\r\n var udb = $('input[name=rbtnpensionsberegner1]:checked').attr('id');\r\n // ekstraaldersforsikring, ekstrapension, livslangekstrapension\r\n if (udb == 'ekstraaldersforsikring') {\r\n $('#uiP_Note_Aldersforsikring').removeClass('hide');\r\n } else if (udb == 'ekstrapension') {\r\n $('#uiP_Note_Ekstrapension').removeClass('hide');\r\n } else if (udb == 'livslangekstrapension') {\r\n $('#uiP_Note_Livslang').removeClass('hide');\r\n }\r\n } else {\r\n resetWarning();\r\n }\r\n};\r\n\r\nconst resetWarning = function () {\r\n $('#uiDiv_Warning').addClass('hide');\r\n};\r\n\r\nconst tilpasSliderFoerSliderchange = function () {\r\n var api = $('#rsEkstra').data('plugin_rangeslider');\r\n var typed = $('#ipEkstra').val();\r\n\r\n if (typed.indexOf('.') >= 0) {\r\n typed = $('#ipEkstra')\r\n .val()\r\n .replace(/(\\d+).(?=\\d{3}(\\D|$))/g, '$1'); // Hvis input IKKE er et int felt, kan tusindetalssepratorer forekomme (1.000)\r\n }\r\n\r\n typed = typed.replace(/,/g, '.'); // erstatter , med . (bliver fjernet igen ved math.floor())\r\n\r\n var min = api.min;\r\n var max = api.max;\r\n var parent = $('#ipEkstra').parent();\r\n\r\n if ($.isNumeric(typed) === false) {\r\n typed = min;\r\n parent.addClass('error');\r\n parent.next('.msg.error').show();\r\n } else {\r\n typed = Math.floor(typed);\r\n parent.removeClass('error');\r\n parent.next('.msg.error').hide();\r\n }\r\n\r\n api.setPosition(api.getPositionFromValue(typed));\r\n\r\n if (typed > max) {\r\n $('#ipEkstra').val(max);\r\n api.setPosition(api.getPositionFromValue(max));\r\n showOverloebWarning();\r\n } else if (typed < min) {\r\n $('#ipEkstra').val(min);\r\n api.setPosition(api.getPositionFromValue(min));\r\n } else if (typed >= min && typed <= max) {\r\n $('#ipEkstra').val(typed);\r\n api.setPosition(api.getPositionFromValue(typed));\r\n }\r\n var x = api.$element[0];\r\n return x;\r\n};\r\n\r\nconst SliderChange = function (selector) {\r\n const element = selector.id; // rsCurrentAge, rsPensionYear\r\n let currentAge = $('#rsCurrentAge').val();\r\n const pensionYear = $('#rsPensionYear').val();\r\n\r\n currentAge++;\r\n if (currentAge > pensionYear) {\r\n // CurrentAge flyttes\r\n if (element == 'rsCurrentAge') {\r\n $('#ipPensionYear').val(currentAge);\r\n var api1 = $('#rsPensionYear').data('plugin_rangeslider');\r\n if (api1 != null) {\r\n api1.setPosition(api1.getPositionFromValue(currentAge));\r\n }\r\n } else if (element == 'rsPensionYear') {\r\n // PensionYear flyttes\r\n $('#ipCurrentAge').val(pensionYear - 1);\r\n var api2 = $('#rsCurrentAge').data('plugin_rangeslider');\r\n if (api2 != null) {\r\n var x = api2.getPositionFromValue(pensionYear - 1);\r\n api2.setPosition(x);\r\n }\r\n }\r\n }\r\n\r\n};\r\n\r\nconst aldersopsparing = {\r\n init: function () {\r\n $('.lightbox-aldersopsparing').each(function () {\r\n var elm = $(this);\r\n $(this).fancybox(\r\n App.Util.lightbox.options(elm.data(), {\r\n ajax: { type: 'post' },\r\n padding: 20,\r\n type: 'ajax',\r\n width: 'auto',\r\n title: false,\r\n minHeight: 0,\r\n afterShow: function (instance, current) {\r\n $('.accordion .accordion-header > a').on('click', function () {\r\n var self = $(this);\r\n var parent = self.parents('.accordion');\r\n $('.accordion').not(parent).removeClass('open');\r\n $('.accordion').not(parent).find('.accordion-content').slideUp();\r\n parent.toggleClass('open');\r\n parent.find('.accordion-content').slideToggle();\r\n return false;\r\n });\r\n\r\n $('#btnToggle').on('click', function () {\r\n $('#articleToggle').slideToggle();\r\n $(this).text(function (i, text) {\r\n return text === '+ Vis oversigt' ? '- Skjul' : '+ Vis oversigt';\r\n });\r\n });\r\n }\r\n })\r\n );\r\n });\r\n\r\n $('#btnNaesteStatus').removeClass('is-loading').prop('disabled', false);\r\n $('#btnNaesteStatus').on('click', function () {\r\n setTimeout(function () {\r\n $('#btnNaesteStatus').toggleClass('is-loading').prop('disabled', true);\r\n }, 1);\r\n });\r\n\r\n $('#btnNaesteTilpas').on('click', function (e) {\r\n if (!$('input:radio[name=\"ValgtOpsparing\"]').is(':checked')) {\r\n $('#DivTilpasAldersopsparingValidator').removeClass('hide');\r\n e.preventDefault();\r\n return false;\r\n } else {\r\n $('#DivTilpasAldersopsparingValidator').addClass('hide');\r\n return true;\r\n }\r\n });\r\n\r\n $('input:radio[name=\"ValgtOpsparing\"]').on('click', function () {\r\n $('#DivTilpasAldersopsparingValidator').addClass('hide');\r\n });\r\n }\r\n};\r\n\r\nconst seniorfridage = {\r\n init() {\r\n stepSlider({\r\n selector: '.js-sf-stepslider',\r\n onInit: function () {\r\n var SFBFormSubmit = function () {\r\n var $form = $(this);\r\n\r\n $.ajax({\r\n url: $form.attr('action'),\r\n type: $form.attr('method'),\r\n data: $form.serialize()\r\n }).done(function (data) {\r\n $('#resultSection').html(data);\r\n\r\n $('.table > tbody tr').each(function () {\r\n if ($(this).find('td:eq(1)').html() != $(this).find('td:eq(2)').html()) {\r\n $(this).attr('style', 'font-weight:bold');\r\n }\r\n });\r\n\r\n var $tip = $('.stepslider__tip');\r\n var showSliderTip = $('#showSliderTip').val();\r\n $tip.toggleClass('is-shown', showSliderTip > 0);\r\n });\r\n\r\n return false;\r\n };\r\n\r\n this.$form = $('form#sfbform');\r\n this.$form.on('submit', SFBFormSubmit);\r\n },\r\n onSlideEnd: this.onSlideEnd\r\n });\r\n },\r\n onSlideEnd(position, value) {\r\n $('.js-sf-stepslider').attr('name', value);\r\n if ($('#resultSection:not(:visible)')) {\r\n $('#resultSection').show(1000);\r\n }\r\n\r\n this.$form.trigger('submit');\r\n }\r\n};\r\n\r\nconst kontaktOplysningerFraVirksomheder = {\r\n antiForgeryToken: '',\r\n init: function () {\r\n if ($('.js-kontaktoplysninger-fra-virksomheder').length) {\r\n $('.fancy-modal-trigger').fancybox({\r\n beforeShow: kontaktOplysningerFraVirksomheder.beforeShow,\r\n afterClose: kontaktOplysningerFraVirksomheder.afterClose\r\n });\r\n kontaktOplysningerFraVirksomheder.eventListener();\r\n kontaktOplysningerFraVirksomheder.antiForgeryToken = $(\r\n \".rykker-table-replace input[name='__RequestVerificationToken']\"\r\n ).attr('value');\r\n }\r\n },\r\n error: function () {\r\n if (typeof window.ga === 'function') {\r\n window.ga('send', 'event', 'login', 'medlem', 'validerEmailDomaene_uventetfejl');\r\n }\r\n },\r\n eventListener: function () {\r\n $('.js-kontaktoplysninger-fra-virksomheder').on('click', '.pagedList a[href]', function (e) {\r\n $.ajax({ url: $(this).attr('href'), type: 'GET' }).done(function (data) {\r\n $('.rykker-table-replace').replaceWith(data);\r\n });\r\n\r\n return false;\r\n });\r\n\r\n var modalId = $('.js-kontaktoplysninger-fra-virksomheder').attr('data-modal-id');\r\n var modal = $('.js-kontaktoplysninger-fra-virksomheder').find('#' + modalId);\r\n var fields = kontaktOplysningerFraVirksomheder.getModalFields(modal);\r\n fields.email.on('focus', function () {\r\n visBekraeftEmailFelt(true);\r\n });\r\n fields.phone.on('blur', function () {\r\n kontaktOplysningerFraVirksomheder.validate(fields);\r\n });\r\n fields.email.on('blur', function () {\r\n if (!validateEmailLengthMax50(fields.email)) {\r\n setValidationError(fields.email, 'E-mail må maksimalt indeholde 50 karakterer');\r\n } else if (kontaktOplysningerFraVirksomheder.validate(fields)) {\r\n harAendretKontaktoplysninger = true;\r\n setValidationOk(email);\r\n validateEmailDomainName(email);\r\n }\r\n });\r\n\r\n fields.tin.on('blur', function () {\r\n kontaktOplysningerFraVirksomheder.validate(fields);\r\n });\r\n },\r\n validate: function (fields) {\r\n var valid = true;\r\n const emailPresent = fields.email.val().length && !fields.email.attr('disabled');\r\n const phonePresent = fields.phone.val().length;\r\n\r\n // Clear validation\r\n setValidationOk(fields.email);\r\n setValidationOk(fields.phone);\r\n\r\n if (emailPresent) {\r\n valid = validateEmail(fields.email) && valid;\r\n valid = validateMobile(fields.phone) && valid;\r\n } else {\r\n valid = validateMobileRequired(fields.phone) && valid;\r\n }\r\n\r\n const phoneFormatErrorTexts = fields.phone.siblings('.error').children('[data-validation-format=\"true\"]');\r\n const phoneOrEmailRequiredErrorTexts = fields.phone\r\n .siblings('.error')\r\n .children('[data-validation-required-both=\"true\"]');\r\n const phoneRequiredErrorTexts = fields.phone.siblings('.error').children('[data-validation-required=\"true\"]');\r\n\r\n if (!phonePresent && !emailPresent) {\r\n phoneOrEmailRequiredErrorTexts.show();\r\n phoneFormatErrorTexts.hide();\r\n phoneRequiredErrorTexts.hide();\r\n } else {\r\n phoneOrEmailRequiredErrorTexts.hide();\r\n phoneRequiredErrorTexts.hide();\r\n phoneFormatErrorTexts.show();\r\n }\r\n\r\n if (fields.email.attr('disabled') && !phonePresent) {\r\n phoneOrEmailRequiredErrorTexts.hide();\r\n phoneRequiredErrorTexts.show();\r\n phoneFormatErrorTexts.hide();\r\n }\r\n\r\n if (fields.tin[0] && !fields.tin.attr('disabled')) {\r\n const tinRequiredErrorTexts = fields.tin.siblings('.error').children('[data-validation-required=\"true\"]');\r\n const tinFormatErrorTexts = fields.tin.siblings('.error').children('[data-validation-format=\"true\"]');\r\n\r\n if (!fields.tin.val().length) {\r\n // tinRequiredErrorTexts.show();\r\n tinFormatErrorTexts.hide();\r\n } else {\r\n tinRequiredErrorTexts.hide();\r\n tinFormatErrorTexts.show();\r\n }\r\n const validateTinFieldLength = (elm, min, max) => {\r\n const len = elm.value?.length();\r\n if (!len) {\r\n return true;\r\n }\r\n\r\n return len > min && len < max;\r\n };\r\n\r\n const lengthValid = validateTinFieldLength(fields.tin, -1, 21);\r\n\r\n if (lengthValid === false) {\r\n setValidationError(fields.tin);\r\n } else {\r\n setValidationOk(fields.tin);\r\n }\r\n\r\n valid = lengthValid && valid;\r\n }\r\n\r\n return valid;\r\n },\r\n beforeShow: function () {\r\n var modal = this.content[0];\r\n var btn = this.element[0];\r\n\r\n if (!modal || !btn) {\r\n return;\r\n }\r\n\r\n const modalFields = kontaktOplysningerFraVirksomheder.getModalFields(this.content);\r\n this.content.find('.fancy-modal-close').on('click', () => $.fancybox.close());\r\n\r\n const saveBtn = this.content.find('.fancy-modal-save');\r\n saveBtn.on('click', () =>\r\n kontaktOplysningerFraVirksomheder.save(\r\n saveBtn,\r\n btn.getAttribute('data-postback-url'),\r\n modalFields,\r\n btn.getAttribute('data-cpr')\r\n )\r\n );\r\n saveBtn.addClass('btn-dark');\r\n\r\n const name = btn.getAttribute('data-name');\r\n const cpr = btn.getAttribute('data-cpr');\r\n const email = btn.getAttribute('data-email');\r\n const phone = btn.getAttribute('data-phone');\r\n const tinPresent = btn.getAttribute('data-tin-present');\r\n const tinRelavant = btn.getAttribute('data-tin-relavant');\r\n const hasDataText = btn.getAttribute('data-has-data-text');\r\n const notRelavantText = btn.getAttribute('data-not-relavant-text');\r\n\r\n modalFields.name.html(name);\r\n modalFields.cpr.html(cpr);\r\n\r\n if (btn.getAttribute('data-email-required')) {\r\n modalFields.email.val(email);\r\n } else {\r\n modalFields.email.val(hasDataText);\r\n modalFields.email.attr('disabled', true);\r\n }\r\n\r\n modalFields.phone.val(phone);\r\n modalFields.tin.attr('disabled', !(!tinPresent && tinRelavant));\r\n\r\n if (!tinRelavant) {\r\n modalFields.tin.val(notRelavantText);\r\n } else if (tinPresent) {\r\n modalFields.tin.val(hasDataText);\r\n }\r\n },\r\n afterClose: function () {\r\n var modalFields = kontaktOplysningerFraVirksomheder.getModalFields(this.content);\r\n this.content.find('.fancy-modal-close').unbind();\r\n this.content.find('.fancy-modal-save').unbind();\r\n modalFields.email.val('');\r\n modalFields.email.attr('disabled', false);\r\n setValidationOk(modalFields.email);\r\n setValidationOk(modalFields.phone);\r\n modalFields.tin.val('');\r\n modalFields.tin.attr('disabled', false);\r\n setValidationOk(modalFields.tin);\r\n modalFields.name.val('');\r\n modalFields.cpr.val('');\r\n },\r\n save: function (btn, postBackUrl, fields, cpr) {\r\n if (!kontaktOplysningerFraVirksomheder.validate(fields)) return false;\r\n\r\n var model = {\r\n __RequestVerificationToken: kontaktOplysningerFraVirksomheder.antiForgeryToken,\r\n cpr: cpr,\r\n // eslint-disable-next-line no-extra-boolean-cast\r\n email: !!fields.email.attr('disabled') ? null : fields.email.val(),\r\n phone: fields.phone.val(),\r\n // eslint-disable-next-line no-extra-boolean-cast\r\n tin: !!fields.tin.attr('disabled') ? null : fields.tin.val()\r\n };\r\n\r\n btn.toggleClass('btn-dark').toggleClass('is-loading').prop('disabled', true);\r\n\r\n $.post(postBackUrl, model)\r\n .done((data) => {\r\n btn.toggleClass('is-loading').toggleClass('btn-dark').prop('disabled', false);\r\n\r\n if (data.success) {\r\n location.reload();\r\n return;\r\n }\r\n\r\n alertify.alert('

' + data.reason + '

');\r\n })\r\n .fail(() => {\r\n const errorLabel = btn.attr('data-general-submit-error');\r\n alertify.alert('

' + errorLabel + '

');\r\n btn.toggleClass('is-loading').toggleClass('btn-dark').prop('disabled', false);\r\n });\r\n },\r\n getModalFields: function (modal) {\r\n return {\r\n name: modal.find('#name'),\r\n cpr: modal.find('#cpr'),\r\n email: modal.find('#email'),\r\n bekraeftEmail: modal.find('#bekraeftEmail'),\r\n phone: modal.find('#phone'),\r\n tin: modal.find('#tin')\r\n };\r\n }\r\n};\r\n\r\nconst indbertningStart = {\r\n init() {\r\n if (!$('#flow-indberetning-ny-kladde').length) return;\r\n\r\n $('input[name=\"udgangspunkt\"]').on('change', function () {\r\n const $this = $(this);\r\n\r\n $('#option-udgangspunkt-seneste').toggle($this.attr('id') === 'radio-udgangspunkt-senest');\r\n $('#option-udgangspunkt-file').toggle($this.attr('id') === 'radio-udgangspunkt-file');\r\n });\r\n\r\n $('#select-peride').on('change', function () {\r\n $('#selected-udgangspunkt-seneste').toggle($(this).val() === 'valgfri');\r\n });\r\n\r\n var minDate = $('.range-picker').data('min-date');\r\n var maxDate = $('.range-picker').data('max-date');\r\n\r\n $('.range-picker')\r\n .on('click', function () {\r\n $(this).find('.range-picker-overlay').show();\r\n })\r\n .datepickerrange({\r\n startDate: minDate,\r\n endDate: maxDate,\r\n endPick: function (selected) {\r\n $('.range-picker')\r\n .find('.input.input-calendar')\r\n .val(selected.fromDateText + ' - ' + selected.toDateText);\r\n }\r\n });\r\n\r\n $(window)\r\n .on('click', function (e) {\r\n if (!$(e.target).hasClass('range-picker') && !$(e.target).parents('.range-picker').length) {\r\n checkDatePicker();\r\n }\r\n })\r\n .on('keydown', function (e) {\r\n if (e.keyCode === 9 && $(e.target).hasClass('to')) {\r\n checkDatePicker();\r\n }\r\n });\r\n\r\n function checkDatePicker() {\r\n setTimeout(function () {\r\n $('.range-picker-overlay').each(function () {\r\n if ($(this).css('display') === 'block') {\r\n var parent = $(this).parents('.range-picker');\r\n if (parent.find('.to').val() !== '' && parent.find('.from').val() !== '') {\r\n $(this).hide();\r\n } else {\r\n parent.find('.range-error').removeClass('hide');\r\n parent.find('.range-picker input:first').focus();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n};\r\n\r\nconst voresSide = {\r\n init() {\r\n $('[data-read-more-id]').on('click', function () {\r\n $('#' + $(this).data('readMoreId')).toggleClass('show');\r\n $(this).toggleClass('show');\r\n });\r\n\r\n if ($('#important-modal').length) {\r\n $.fancybox.open({\r\n href: '#important-modal',\r\n type: 'inline'\r\n });\r\n\r\n $('.important-modal-close').on('click', function () {\r\n $.fancybox.close();\r\n });\r\n }\r\n }\r\n};\r\n\r\nconst nyIndberetning = {\r\n init: function () {\r\n var form = $('#ny-indberetning');\r\n if (form.length > 0) form.submit(nyIndberetning.submitForm);\r\n },\r\n submitForm: function () {\r\n var checked = $('input[name=udgangspunkt]:checked').val();\r\n if (checked === 'File') {\r\n const dropzoneInstance = 'VIRK_NYINDBERETNING';\r\n var arr = window.IPFileUploader[dropzoneInstance];\r\n var verified = arr.getVerifiedFiles();\r\n var notVerified = arr.getNotVerifiedFiles();\r\n if (notVerified.length > 0 || verified.length === 0) {\r\n return false;\r\n }\r\n }\r\n var $form = $(this);\r\n if (!nyIndberetning.validate($form)) {\r\n return false;\r\n }\r\n\r\n function handleError(errorType, debugmessage, errorline, errorfield) {\r\n const badFormat = $form.find('#file-error-bad-format');\r\n const badData = $form.find('#file-error-bad-data');\r\n const unparsableFormat = $form.find('#file-error-unparsable-file');\r\n const generalError = $form.find('#file-error-general-error');\r\n badFormat.hide();\r\n badData.hide();\r\n unparsableFormat.hide();\r\n generalError.hide();\r\n\r\n switch (errorType) {\r\n case 'badFormat':\r\n badFormat.show();\r\n break;\r\n case 'unparsableFile':\r\n unparsableFormat.show();\r\n if (debugmessage != undefined) {\r\n unparsableFormat.append('
' + debugmessage + '');\r\n }\r\n if (errorline > 0) {\r\n unparsableFormat.append('
I linie: ' + errorline + '.');\r\n }\r\n break;\r\n case 'badData':\r\n badData.show();\r\n if (debugmessage != undefined) {\r\n badData.append('
' + debugmessage + '');\r\n }\r\n if (errorline > 0) {\r\n badData.append('
I linie: ' + errorline + '');\r\n }\r\n if (errorfield > 0) {\r\n badData.append('
, felt: ' + errorfield + '');\r\n }\r\n break;\r\n default:\r\n generalError.show();\r\n if (debugmessage != undefined) {\r\n generalError.append('
' + debugmessage + '');\r\n }\r\n break;\r\n }\r\n }\r\n\r\n const button = $form.find('button[type=\"submit\"]');\r\n button.addClass('is-loading');\r\n\r\n $.ajax({\r\n url: $form.attr('action'),\r\n type: $form.attr('method'),\r\n data: $form.serialize()\r\n })\r\n .done(function (data) {\r\n button.removeClass('is-loading');\r\n\r\n if (!data.success) {\r\n handleError(data.fileError, data.debugMessage, data.errorLine, data.errorField);\r\n return;\r\n }\r\n\r\n if (data.redirectUrl) {\r\n location.replace(data.redirectUrl);\r\n return;\r\n }\r\n })\r\n .fail(() => {\r\n button.removeClass('is-loading');\r\n handleError();\r\n });\r\n return false;\r\n },\r\n validate: function (form) {\r\n var valid = validateRequiredRadioBtn('udgangspunkt');\r\n\r\n if (form.find('input[name=\"udgangspunkt\"][value=\"File\"]').is(':checked')) {\r\n valid = validateRequiredRadioBtn('filformat') && valid;\r\n valid = validateRequiredRadioBtn('filtype') && valid;\r\n }\r\n\r\n return valid;\r\n }\r\n};\r\n\r\n// --------------------------- Exposed to App.Util\r\nconst pensionsberegner = {\r\n // prognose feltet skal skjules da der ikke er en prognose at vise\r\n init: function () {\r\n $('.collectionbox').hide();\r\n $('.loadingdiv').hide();\r\n // initialisering af sliders\r\n this.setupAlderRangeSlider('#rsCurrentAge', '#ipCurrentAge');\r\n this.setupAlderRangeSlider('#rsPensionYear', '#ipPensionYear');\r\n this.setupRangeSlider('#rsEkstra', 0, 28100, 200, 0, '#ipEkstra');\r\n\r\n $('#ipCurrentAge').on('change', function (e) {\r\n // remove everying that is not at digit\r\n var formattedValue = e.target.value.replace(/\\D/g, '');\r\n // update the rangeslider value\r\n $('#rsCurrentAge').val(formattedValue).change();\r\n });\r\n\r\n $('input[name^=rbtnpensionsberegner]').on('click', () => {\r\n resetWarning(); // Defineret på cshtml -\r\n this.setupRanges();\r\n\r\n });\r\n $('#rsEkstra-btn').on('click', () => {\r\n $('#rsEkstra-btn').prop('disabled', true);\r\n this.beregnEkstraPension();\r\n });\r\n },\r\n calculate: function () {\r\n var pensionsType = $('input[name=rbtnpensionsberegner1]:checked').attr('id');\r\n var indbetalingsMaade = $('input[name=rbtnpensionsberegner2]:checked').attr('id');\r\n var indbetaling = $('#ipEkstra').val();\r\n var alder = $('#ipCurrentAge').val();\r\n var pensionsAlder = $('#ipPensionYear').val();\r\n // Function must be on cshtml view - because of ajax call\r\n\r\n doPrognose(alder, pensionsAlder, pensionsType, indbetalingsMaade, indbetaling);\r\n // annimation\r\n var speed = 1000;\r\n $('.collectionbox').slideUp(speed, function () {\r\n $('.loadingdiv').slideDown(speed);\r\n });\r\n },\r\n calculateDone: function () {\r\n // When result ready:\r\n var speed = 1000;\r\n $('.loadingdiv').slideUp(speed, function () {\r\n $('.collectionbox').slideDown(speed);\r\n });\r\n },\r\n isReadyToCalculate: function () {\r\n // er alt udfyldt rigtigt?\r\n var udbetalingAfPension = $('input[name=rbtnpensionsberegner1]').is(':checked');\r\n var indbetaling = $('#ipEkstra').val() != 0;\r\n return udbetalingAfPension && indbetaling;\r\n },\r\n // eslint-disable-next-line max-params\r\n setupRangeSlider: function (selector, min, max, step, value, inputSelector) {\r\n $(selector)\r\n .rangeslider('destroy')\r\n .attr({ min: min, max: max, step: step })\r\n .val(value)\r\n .rangeslider({\r\n polyfill: false,\r\n onSlide: function (left, value) {\r\n $(inputSelector).val(value);\r\n },\r\n onSlideEnd: function (selector, value) {\r\n // skjul evt. fejlbesked - finder sliderens input's parent(div)\r\n const inpVal = this.$element.parents('.fu').find('.sliderOut').parent();\r\n inpVal.removeClass('error');\r\n inpVal.next('.msg.error').hide();\r\n\r\n resetWarning(); // Defineret på cshtml -\r\n\r\n $(inputSelector).val(value);\r\n\r\n const currentAmount = $('#rsEkstra').val();\r\n\r\n if (currentAmount >= max) {\r\n showOverloebWarning();\r\n } else {\r\n resetWarning();\r\n }\r\n\r\n }\r\n })\r\n .change();\r\n },\r\n setupAlderRangeSlider: function (selector, inputSelector) {\r\n $(selector)\r\n .rangeslider('destroy')\r\n .rangeslider({\r\n polyfill: false,\r\n onSlide: function (left, value) {\r\n $(inputSelector).val(value);\r\n }\r\n })\r\n .change();\r\n\r\n $(inputSelector).on('change', function (e) {\r\n // remove everying that is not at digit\r\n var formattedValue = e.target.value.replace(/\\D/g, '');\r\n // update the rangeslider value\r\n $(selector).val(formattedValue).change();\r\n });\r\n\r\n $(selector).on('change', function (e) {\r\n const value = e.target.value;\r\n const element = e.target.id; // rsCurrentAge, rsPensionYear\r\n let currentAge = $('#rsCurrentAge').val();\r\n const pensionYear = $('#rsPensionYear').val();\r\n $(inputSelector).val(value);\r\n\r\n currentAge++;\r\n if (currentAge > pensionYear) {\r\n // CurrentAge flyttes\r\n if (element == 'rsCurrentAge') {\r\n $('#ipPensionYear').val(currentAge);\r\n const api1 = $('#rsPensionYear').data('plugin_rangeslider');\r\n if (api1 != null) {\r\n api1.setPosition(api1.getPositionFromValue(currentAge));\r\n }\r\n } else if (element == 'rsPensionYear') {\r\n // PensionYear flyttes\r\n $('#ipCurrentAge').val(pensionYear);\r\n const api2 = $('#rsCurrentAge').data('plugin_rangeslider');\r\n if (api2 != null) {\r\n const x = api2.getPositionFromValue(pensionYear - 1);\r\n api2.setPosition(x);\r\n }\r\n }\r\n }\r\n // skjul evt. fejlbesked - finder sliderens input's parent(div)\r\n const inpVal = $(e.target).parents('.fu').find('.sliderOut').parent();\r\n inpVal.removeClass('error');\r\n inpVal.next('.msg.error').hide();\r\n\r\n });\r\n\r\n },\r\n loadSliderValues: function (spanSelector) {\r\n var values = $(spanSelector).html().split(',');\r\n var min = parseInt(values[0], 10);\r\n var max = parseInt(values[1], 10);\r\n var step = parseInt(values[2], 10);\r\n\r\n pensionsberegner.setupRangeSlider('#rsEkstra', min, max, step, 0, '#ipEkstra');\r\n },\r\n setupRanges: function () {\r\n var udbetalingAfPension = $('input[name=rbtnpensionsberegner1]').is(':checked');\r\n var ekstraPension = $('input[name=rbtnpensionsberegner2]').is(':checked');\r\n\r\n // er udbetaling ikke valgt bruges første valg (aldersopsparing) som default\r\n if (udbetalingAfPension == false && ekstraPension == true) {\r\n pensionsberegner.loadSliderValues('#uiSp_AlderFast');\r\n }\r\n if (udbetalingAfPension && ekstraPension) {\r\n var udbetalingAfPensionSelected = $('input[name=rbtnpensionsberegner1]:checked').attr('id');\r\n var ekstraPensionSelected = $('input[name=rbtnpensionsberegner2]:checked').attr('id');\r\n\r\n if (\r\n udbetalingAfPensionSelected == 'ekstraaldersforsikring' &&\r\n ekstraPensionSelected == 'fastmaanedligtbeloeb'\r\n ) {\r\n pensionsberegner.loadSliderValues('#uiSp_AlderFast');\r\n } else if (\r\n udbetalingAfPensionSelected == 'ekstraaldersforsikring' &&\r\n ekstraPensionSelected == 'engangsbeloeb'\r\n ) {\r\n pensionsberegner.loadSliderValues('#uiSp_AlderEngangs');\r\n } else if (\r\n udbetalingAfPensionSelected == 'ekstrapension' &&\r\n ekstraPensionSelected == 'fastmaanedligtbeloeb'\r\n ) {\r\n pensionsberegner.loadSliderValues('#uiSp_EPFast');\r\n } else if (udbetalingAfPensionSelected == 'ekstrapension' && ekstraPensionSelected == 'engangsbeloeb') {\r\n pensionsberegner.loadSliderValues('#uiSp_EPEngangs');\r\n } else if (\r\n udbetalingAfPensionSelected == 'livslangekstrapension' &&\r\n ekstraPensionSelected == 'fastmaanedligtbeloeb'\r\n ) {\r\n pensionsberegner.loadSliderValues('#uiSp_LivslangFast');\r\n } else if (\r\n udbetalingAfPensionSelected == 'livslangekstrapension' &&\r\n ekstraPensionSelected == 'engangsbeloeb'\r\n ) {\r\n pensionsberegner.loadSliderValues('#uiSp_LivslangEngangs');\r\n }\r\n }\r\n },\r\n beregnEkstraPension: function() {\r\n if (this.isReadyToCalculate()) {\r\n this.calculate();\r\n }\r\n }\r\n};\r\n// TODO: isolate module\r\nApp.Util.pensionsberegner = pensionsberegner;\r\n\r\nApp.Util.common ??= {};\r\nApp.Util.common.showOverloebWarning = showOverloebWarning;\r\nApp.Util.common.tilpasSliderFoerSliderchange = tilpasSliderFoerSliderchange;\r\nApp.Util.common.SliderChange = SliderChange;\r\n\r\n\r\nconst afkastoginvesteringer = {\r\n init: function () {\r\n $('.VisSkjulAfkastPrMaaned').on('click', function (event) {\r\n event.preventDefault();\r\n\r\n if ($('.VisSkjulAfkastPrMaaned').text().indexOf('Se afkast pr. måned') >= 0) {\r\n $('.VisSkjulAfkastPrMaaned').text('Skjul afkast pr. måned');\r\n $('.afkast').slideDown();\r\n } else {\r\n $('.VisSkjulAfkastPrMaaned').text('Se afkast pr. måned');\r\n $('.afkast').slideUp();\r\n }\r\n });\r\n }\r\n};\r\n\r\n// TODO: isolate module\r\nApp.afkastoginvesteringer = afkastoginvesteringer;\r\n\r\nconst livstruendesygdomme = {\r\n helper: {\r\n toggleErrorClass(elems, bool) {\r\n elems.each(function () {\r\n $(this).parents('.fu').find('.msg').toggleClass('error', bool);\r\n $(this).parents('.fu').toggleClass('error', bool);\r\n });\r\n },\r\n setButtonsLoading() {\r\n $('#guide-next-button').addClass('is-loading');\r\n $('#guide-prev-button').addClass('is-loading');\r\n },\r\n removeButtonsLoading() {\r\n $('#guide-next-button').removeClass('is-loading');\r\n $('#guide-prev-button').removeClass('is-loading');\r\n }\r\n },\r\n vaelgUdbetaling(url, step, callback) {\r\n const _ = this;\r\n _.helper.setButtonsLoading();\r\n\r\n const ths = $('#lts-step1-form');\r\n const formIsValid = () => {\r\n // Validate the checkbox choice(s)\r\n const pensionCheckboxes = $('#checkbox-for-livtrunedesygedom');\r\n const hasUserChosenPensions = !(pensionCheckboxes.find('input:checked').length === 0) || false;\r\n _.helper.toggleErrorClass(pensionCheckboxes.find('input'), !hasUserChosenPensions);\r\n\r\n // Validate the radio button choice\r\n const blanketSource = $('input[name=BlanketSource]');\r\n const hasUserChosenABlanketType = blanketSource.is(':checked') || false;\r\n _.helper.toggleErrorClass(blanketSource, !hasUserChosenABlanketType);\r\n\r\n // Validate file upload\r\n const blanketUpload = $('#blanket-for-livtrunedesygedom');\r\n const dropzoneInstance = 'LIVSTRUENDESYGDOM_VALGAFUDBETALING';\r\n var arr = window.IPFileUploader[dropzoneInstance];\r\n var verified = arr.getVerifiedFiles();\r\n var notVerified = arr.getNotVerifiedFiles();\r\n var hasUserVerified = true;\r\n if (notVerified.length > 0 || verified.length === 0) {\r\n hasUserVerified = false;\r\n }\r\n _.helper.toggleErrorClass(blanketUpload.find('input'), !hasUserVerified);\r\n\r\n // Validate if the user has accepted terms and conditions\r\n const termsAndConditionsCheckbox = $('#TermsAndConditionsInput');\r\n const hasUserAcceptedTermsAndConditions = termsAndConditionsCheckbox.is(':checked') || false;\r\n _.helper.toggleErrorClass(termsAndConditionsCheckbox, !hasUserAcceptedTermsAndConditions);\r\n\r\n return (\r\n hasUserChosenPensions &&\r\n hasUserChosenABlanketType &&\r\n hasUserVerified &&\r\n hasUserAcceptedTermsAndConditions\r\n );\r\n };\r\n\r\n if (!formIsValid()) {\r\n _.helper.removeButtonsLoading();\r\n return false;\r\n }\r\n\r\n const data = ths.serialize();\r\n\r\n $.ajax({\r\n url: url,\r\n data: data,\r\n method: 'POST'\r\n })\r\n .done(function (response, request) {\r\n if (!response.Success) {\r\n _.helper.setButtonsLoading();\r\n $('#errorOverlay').show();\r\n $('#errorBackendMessage').text(response.Message);\r\n return;\r\n }\r\n\r\n callback(step, true, response, '');\r\n })\r\n .fail(function (response, request) {\r\n _.helper.removeButtonsLoading();\r\n callback(step, false, response);\r\n });\r\n },\r\n godkend(url, step, callback) {\r\n const _ = this;\r\n _.helper.setButtonsLoading();\r\n\r\n let godkendCheck = false;\r\n if (step != 1) {\r\n godkendCheck = false;\r\n } else {\r\n godkendCheck = true;\r\n }\r\n\r\n const form = $('
');\r\n const data = form.serialize();\r\n\r\n $.ajax({\r\n url: url,\r\n data: data,\r\n method: 'POST'\r\n })\r\n .done(function (response, request) {\r\n if (!response.Success) {\r\n _.helper.removeButtonsLoading();\r\n\r\n alertify.alert('

Der er sket en fejl

' + response.Message + '

');\r\n\r\n return;\r\n }\r\n\r\n callback(step, true, response);\r\n })\r\n .fail(function (response, request) {\r\n _.helper.removeButtonsLoading();\r\n callback(step, false, response);\r\n });\r\n }\r\n};\r\n\r\n// TODO: isolate module\r\nApp.livstruendesygdomme = livstruendesygdomme;\r\n\r\nconst bankoplysninger2018 = {\r\n helper: {\r\n toggleErrorClass(elems, bool) {\r\n elems.each(function () {\r\n $(this).parents('.fu').find('.msg').toggleClass('error', bool);\r\n $(this).parents('.fu').toggleClass('error', bool);\r\n });\r\n }\r\n },\r\n validateBankoplysningerAndSaveToSession(url, step, callback, formName) {\r\n const _ = this;\r\n const ths = $(formName);\r\n const formIsValid = () => {\r\n // Validate the radio button choice - use has to choose something\r\n const kontoValg = $('input[name=Kontovalg]');\r\n const hasUserChosenABankOption = kontoValg.is(':checked') || false;\r\n _.helper.toggleErrorClass(kontoValg, !hasUserChosenABankOption);\r\n\r\n // Validate file upload - simply proceed of NemKonto is chosen.\r\n let hasUserUploadedBankoplysninger = true;\r\n\r\n if (!$('#nemKonto').is(':checked')) {\r\n const dropzoneInstance = 'BANKOPLYSNINGER';\r\n var arr = window.IPFileUploader[dropzoneInstance];\r\n var verified = arr.getVerifiedFiles();\r\n var notVerified = arr.getNotVerifiedFiles();\r\n if (notVerified.length > 0 || verified.length === 0) {\r\n hasUserUploadedBankoplysninger = false;\r\n const bankoplysningerUpload = $('#collapseOne');\r\n _.helper.toggleErrorClass(bankoplysningerUpload, !hasUserUploadedBankoplysninger);\r\n } else {\r\n hasUserUploadedBankoplysninger = true;\r\n }\r\n }\r\n return hasUserChosenABankOption && hasUserUploadedBankoplysninger;\r\n };\r\n\r\n if (step == -1) {\r\n callback(step, true, '', 'Back');\r\n return;\r\n }\r\n\r\n if (!formIsValid()) {\r\n callback(step, false, 'Form ikke udfyldt', 'Form ikke udfyldt');\r\n return false;\r\n }\r\n\r\n const data = ths.serialize();\r\n\r\n $.ajax({\r\n url: url,\r\n data: data,\r\n method: 'POST'\r\n })\r\n .done(function (response, request) {\r\n if (!response.Success) {\r\n $('#errorBackendMessage').text(response.Message);\r\n return;\r\n }\r\n\r\n callback(step, true, response, 'validateBankoplysningerAndSaveToSession ok');\r\n })\r\n .fail(function (response, request) {\r\n event.preventDefault();\r\n callback(step, false, response, 'Kunne ikke gemme oplysninger');\r\n });\r\n }\r\n};\r\n\r\n// TODO: isolate module\r\nApp.bankoplysninger2018 = bankoplysninger2018;\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n core.init();\r\n\r\n if (document.querySelector('.js-min-side')) {\r\n import('@mockup/func/min-side/index').then((module) => new module.default());\r\n }\r\n\r\n if (document.querySelector('.js-baeredygtigt-afkast')) {\r\n import('@mockup/func/baeredygtigt-afkast/index').then(\r\n (module) => new module.default('.js-baeredygtigt-afkast')\r\n );\r\n }\r\n if (document.querySelector('[id^=ks-]')) import('@mockup/func/ks/index').then((module) => new module.default());\r\n if (document.querySelector('[id^=hy-]')) import('@mockup/func/hy/index').then((module) => new module.default());\r\n if (document.querySelector('[id^=senior-analyse-]')) {\r\n import('@mockup/func/seniorAnalyse/index').then((module) => new module.default());\r\n }\r\n if (document.querySelector('[id^=fritvalg-]')) {\r\n import('@mockup/func/fritvalg/index').then((module) => new module.default());\r\n }\r\n if (document.querySelector('.js-rykker')) {\r\n import('@mockup/func/rykker/index').then((module) => new module.default());\r\n }\r\n if (document.querySelector('.js-pensionsplan')) {\r\n import('@mockup/func/pensionsplan/index').then((module) => new module.default());\r\n }\r\n if (document.querySelector('.js-udbetaling-efterladte')) {\r\n import('@mockup/func/udbetaling-efterladte/index').then((module) => new module.default());\r\n }\r\n\r\n if (document.querySelector('.js-pensionstjek')) {\r\n import('@mockup/func/pensionstjek/index').then((module) => new module.default());\r\n }\r\n\r\n if (document.querySelector('.js-ekstra-indbetaling')) {\r\n import('@mockup/func/ekstra-indbetaling/index').then((module) => new module.default());\r\n }\r\n\r\n if (document.querySelector('.js-employer-branding')) {\r\n import('@mockup/func/employer-branding/index').then((module) => new module.default());\r\n }\r\n\r\n if (document.querySelector('.js-overfoer-pension')) {\r\n import('@mockup/func/overfoerPension/index').then((module) => new module.default());\r\n }\r\n\r\n aldersopsparing.init();\r\n seniorfridage.init();\r\n kontaktOplysningerFraVirksomheder.init();\r\n indbertningStart.init();\r\n voresSide.init();\r\n nyIndberetning.init();\r\n pensionsberegner.init();\r\n});\r\n","!function (e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : e.AOS = t();\n}(this, function () {\n \"use strict\";\n\n var e = \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {},\n t = \"Expected a function\",\n n = NaN,\n o = \"[object Symbol]\",\n i = /^\\s+|\\s+$/g,\n a = /^[-+]0x[0-9a-f]+$/i,\n r = /^0b[01]+$/i,\n c = /^0o[0-7]+$/i,\n s = parseInt,\n u = \"object\" == typeof e && e && e.Object === Object && e,\n d = \"object\" == typeof self && self && self.Object === Object && self,\n l = u || d || Function(\"return this\")(),\n f = Object.prototype.toString,\n m = Math.max,\n p = Math.min,\n b = function () {\n return l.Date.now();\n };\n\n function v(e, n, o) {\n var i,\n a,\n r,\n c,\n s,\n u,\n d = 0,\n l = !1,\n f = !1,\n v = !0;\n if (\"function\" != typeof e) throw new TypeError(t);\n\n function y(t) {\n var n = i,\n o = a;\n return i = a = void 0, d = t, c = e.apply(o, n);\n }\n\n function h(e) {\n var t = e - u;\n return void 0 === u || t >= n || t < 0 || f && e - d >= r;\n }\n\n function k() {\n var e = b();\n if (h(e)) return x(e);\n s = setTimeout(k, function (e) {\n var t = n - (e - u);\n return f ? p(t, r - (e - d)) : t;\n }(e));\n }\n\n function x(e) {\n return s = void 0, v && i ? y(e) : (i = a = void 0, c);\n }\n\n function O() {\n var e = b(),\n t = h(e);\n\n if (i = arguments, a = this, u = e, t) {\n if (void 0 === s) return function (e) {\n return d = e, s = setTimeout(k, n), l ? y(e) : c;\n }(u);\n if (f) return s = setTimeout(k, n), y(u);\n }\n\n return void 0 === s && (s = setTimeout(k, n)), c;\n }\n\n return n = w(n) || 0, g(o) && (l = !!o.leading, r = (f = \"maxWait\" in o) ? m(w(o.maxWait) || 0, n) : r, v = \"trailing\" in o ? !!o.trailing : v), O.cancel = function () {\n void 0 !== s && clearTimeout(s), d = 0, i = u = a = s = void 0;\n }, O.flush = function () {\n return void 0 === s ? c : x(b());\n }, O;\n }\n\n function g(e) {\n var t = typeof e;\n return !!e && (\"object\" == t || \"function\" == t);\n }\n\n function w(e) {\n if (\"number\" == typeof e) return e;\n if (function (e) {\n return \"symbol\" == typeof e || function (e) {\n return !!e && \"object\" == typeof e;\n }(e) && f.call(e) == o;\n }(e)) return n;\n\n if (g(e)) {\n var t = \"function\" == typeof e.valueOf ? e.valueOf() : e;\n e = g(t) ? t + \"\" : t;\n }\n\n if (\"string\" != typeof e) return 0 === e ? e : +e;\n e = e.replace(i, \"\");\n var u = r.test(e);\n return u || c.test(e) ? s(e.slice(2), u ? 2 : 8) : a.test(e) ? n : +e;\n }\n\n var y = function (e, n, o) {\n var i = !0,\n a = !0;\n if (\"function\" != typeof e) throw new TypeError(t);\n return g(o) && (i = \"leading\" in o ? !!o.leading : i, a = \"trailing\" in o ? !!o.trailing : a), v(e, n, {\n leading: i,\n maxWait: n,\n trailing: a\n });\n },\n h = \"Expected a function\",\n k = NaN,\n x = \"[object Symbol]\",\n O = /^\\s+|\\s+$/g,\n j = /^[-+]0x[0-9a-f]+$/i,\n E = /^0b[01]+$/i,\n N = /^0o[0-7]+$/i,\n z = parseInt,\n C = \"object\" == typeof e && e && e.Object === Object && e,\n A = \"object\" == typeof self && self && self.Object === Object && self,\n q = C || A || Function(\"return this\")(),\n L = Object.prototype.toString,\n T = Math.max,\n M = Math.min,\n S = function () {\n return q.Date.now();\n };\n\n function D(e) {\n var t = typeof e;\n return !!e && (\"object\" == t || \"function\" == t);\n }\n\n function H(e) {\n if (\"number\" == typeof e) return e;\n if (function (e) {\n return \"symbol\" == typeof e || function (e) {\n return !!e && \"object\" == typeof e;\n }(e) && L.call(e) == x;\n }(e)) return k;\n\n if (D(e)) {\n var t = \"function\" == typeof e.valueOf ? e.valueOf() : e;\n e = D(t) ? t + \"\" : t;\n }\n\n if (\"string\" != typeof e) return 0 === e ? e : +e;\n e = e.replace(O, \"\");\n var n = E.test(e);\n return n || N.test(e) ? z(e.slice(2), n ? 2 : 8) : j.test(e) ? k : +e;\n }\n\n var $ = function (e, t, n) {\n var o,\n i,\n a,\n r,\n c,\n s,\n u = 0,\n d = !1,\n l = !1,\n f = !0;\n if (\"function\" != typeof e) throw new TypeError(h);\n\n function m(t) {\n var n = o,\n a = i;\n return o = i = void 0, u = t, r = e.apply(a, n);\n }\n\n function p(e) {\n var n = e - s;\n return void 0 === s || n >= t || n < 0 || l && e - u >= a;\n }\n\n function b() {\n var e = S();\n if (p(e)) return v(e);\n c = setTimeout(b, function (e) {\n var n = t - (e - s);\n return l ? M(n, a - (e - u)) : n;\n }(e));\n }\n\n function v(e) {\n return c = void 0, f && o ? m(e) : (o = i = void 0, r);\n }\n\n function g() {\n var e = S(),\n n = p(e);\n\n if (o = arguments, i = this, s = e, n) {\n if (void 0 === c) return function (e) {\n return u = e, c = setTimeout(b, t), d ? m(e) : r;\n }(s);\n if (l) return c = setTimeout(b, t), m(s);\n }\n\n return void 0 === c && (c = setTimeout(b, t)), r;\n }\n\n return t = H(t) || 0, D(n) && (d = !!n.leading, a = (l = \"maxWait\" in n) ? T(H(n.maxWait) || 0, t) : a, f = \"trailing\" in n ? !!n.trailing : f), g.cancel = function () {\n void 0 !== c && clearTimeout(c), u = 0, o = s = i = c = void 0;\n }, g.flush = function () {\n return void 0 === c ? r : v(S());\n }, g;\n },\n W = function () {};\n\n function P(e) {\n e && e.forEach(function (e) {\n var t = Array.prototype.slice.call(e.addedNodes),\n n = Array.prototype.slice.call(e.removedNodes);\n if (function e(t) {\n var n = void 0,\n o = void 0;\n\n for (n = 0; n < t.length; n += 1) {\n if ((o = t[n]).dataset && o.dataset.aos) return !0;\n if (o.children && e(o.children)) return !0;\n }\n\n return !1;\n }(t.concat(n))) return W();\n });\n }\n\n function Y() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n }\n\n var _ = {\n isSupported: function () {\n return !!Y();\n },\n ready: function (e, t) {\n var n = window.document,\n o = new (Y())(P);\n W = t, o.observe(n.documentElement, {\n childList: !0,\n subtree: !0,\n removedNodes: !0\n });\n }\n },\n B = function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n },\n F = function () {\n function e(e, t) {\n for (var n = 0; n < t.length; n++) {\n var o = t[n];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n }\n }\n\n return function (t, n, o) {\n return n && e(t.prototype, n), o && e(t, o), t;\n };\n }(),\n I = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);\n }\n\n return e;\n },\n K = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n G = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n J = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,\n Q = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i;\n\n function R() {\n return navigator.userAgent || navigator.vendor || window.opera || \"\";\n }\n\n var U = new (function () {\n function e() {\n B(this, e);\n }\n\n return F(e, [{\n key: \"phone\",\n value: function () {\n var e = R();\n return !(!K.test(e) && !G.test(e.substr(0, 4)));\n }\n }, {\n key: \"mobile\",\n value: function () {\n var e = R();\n return !(!J.test(e) && !Q.test(e.substr(0, 4)));\n }\n }, {\n key: \"tablet\",\n value: function () {\n return this.mobile() && !this.phone();\n }\n }, {\n key: \"ie11\",\n value: function () {\n return \"-ms-scroll-limit\" in document.documentElement.style && \"-ms-ime-align\" in document.documentElement.style;\n }\n }]), e;\n }())(),\n V = function (e, t) {\n var n = void 0;\n return U.ie11() ? (n = document.createEvent(\"CustomEvent\")).initCustomEvent(e, !0, !0, {\n detail: t\n }) : n = new CustomEvent(e, {\n detail: t\n }), document.dispatchEvent(n);\n },\n X = function (e) {\n return e.forEach(function (e, t) {\n return function (e, t) {\n var n = e.options,\n o = e.position,\n i = e.node,\n a = (e.data, function () {\n e.animated && (function (e, t) {\n t && t.forEach(function (t) {\n return e.classList.remove(t);\n });\n }(i, n.animatedClassNames), V(\"aos:out\", i), e.options.id && V(\"aos:in:\" + e.options.id, i), e.animated = !1);\n });\n n.mirror && t >= o.out && !n.once ? a() : t >= o.in ? e.animated || (function (e, t) {\n t && t.forEach(function (t) {\n return e.classList.add(t);\n });\n }(i, n.animatedClassNames), V(\"aos:in\", i), e.options.id && V(\"aos:in:\" + e.options.id, i), e.animated = !0) : e.animated && !n.once && a();\n }(e, window.pageYOffset);\n });\n },\n Z = function (e) {\n for (var t = 0, n = 0; e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop);) t += e.offsetLeft - (\"BODY\" != e.tagName ? e.scrollLeft : 0), n += e.offsetTop - (\"BODY\" != e.tagName ? e.scrollTop : 0), e = e.offsetParent;\n\n return {\n top: n,\n left: t\n };\n },\n ee = function (e, t, n) {\n var o = e.getAttribute(\"data-aos-\" + t);\n\n if (void 0 !== o) {\n if (\"true\" === o) return !0;\n if (\"false\" === o) return !1;\n }\n\n return o || n;\n },\n te = function (e, t) {\n return e.forEach(function (e, n) {\n var o = ee(e.node, \"mirror\", t.mirror),\n i = ee(e.node, \"once\", t.once),\n a = ee(e.node, \"id\"),\n r = t.useClassNames && e.node.getAttribute(\"data-aos\"),\n c = [t.animatedClassName].concat(r ? r.split(\" \") : []).filter(function (e) {\n return \"string\" == typeof e;\n });\n t.initClassName && e.node.classList.add(t.initClassName), e.position = {\n in: function (e, t, n) {\n var o = window.innerHeight,\n i = ee(e, \"anchor\"),\n a = ee(e, \"anchor-placement\"),\n r = Number(ee(e, \"offset\", a ? 0 : t)),\n c = a || n,\n s = e;\n i && document.querySelectorAll(i) && (s = document.querySelectorAll(i)[0]);\n var u = Z(s).top - o;\n\n switch (c) {\n case \"top-bottom\":\n break;\n\n case \"center-bottom\":\n u += s.offsetHeight / 2;\n break;\n\n case \"bottom-bottom\":\n u += s.offsetHeight;\n break;\n\n case \"top-center\":\n u += o / 2;\n break;\n\n case \"center-center\":\n u += o / 2 + s.offsetHeight / 2;\n break;\n\n case \"bottom-center\":\n u += o / 2 + s.offsetHeight;\n break;\n\n case \"top-top\":\n u += o;\n break;\n\n case \"bottom-top\":\n u += o + s.offsetHeight;\n break;\n\n case \"center-top\":\n u += o + s.offsetHeight / 2;\n }\n\n return u + r;\n }(e.node, t.offset, t.anchorPlacement),\n out: o && function (e, t) {\n window.innerHeight;\n var n = ee(e, \"anchor\"),\n o = ee(e, \"offset\", t),\n i = e;\n return n && document.querySelectorAll(n) && (i = document.querySelectorAll(n)[0]), Z(i).top + i.offsetHeight - o;\n }(e.node, t.offset)\n }, e.options = {\n once: i,\n mirror: o,\n animatedClassNames: c,\n id: a\n };\n }), e;\n },\n ne = function () {\n var e = document.querySelectorAll(\"[data-aos]\");\n return Array.prototype.map.call(e, function (e) {\n return {\n node: e\n };\n });\n },\n oe = [],\n ie = !1,\n ae = {\n offset: 120,\n delay: 0,\n easing: \"ease\",\n duration: 400,\n disable: !1,\n once: !1,\n mirror: !1,\n anchorPlacement: \"top-bottom\",\n startEvent: \"DOMContentLoaded\",\n animatedClassName: \"aos-animate\",\n initClassName: \"aos-init\",\n useClassNames: !1,\n disableMutationObserver: !1,\n throttleDelay: 99,\n debounceDelay: 50\n },\n re = function () {\n return document.all && !window.atob;\n },\n ce = function () {\n arguments.length > 0 && void 0 !== arguments[0] && arguments[0] && (ie = !0), ie && (oe = te(oe, ae), X(oe), window.addEventListener(\"scroll\", y(function () {\n X(oe, ae.once);\n }, ae.throttleDelay)));\n },\n se = function () {\n if (oe = ne(), de(ae.disable) || re()) return ue();\n ce();\n },\n ue = function () {\n oe.forEach(function (e, t) {\n e.node.removeAttribute(\"data-aos\"), e.node.removeAttribute(\"data-aos-easing\"), e.node.removeAttribute(\"data-aos-duration\"), e.node.removeAttribute(\"data-aos-delay\"), ae.initClassName && e.node.classList.remove(ae.initClassName), ae.animatedClassName && e.node.classList.remove(ae.animatedClassName);\n });\n },\n de = function (e) {\n return !0 === e || \"mobile\" === e && U.mobile() || \"phone\" === e && U.phone() || \"tablet\" === e && U.tablet() || \"function\" == typeof e && !0 === e();\n };\n\n return {\n init: function (e) {\n return ae = I(ae, e), oe = ne(), ae.disableMutationObserver || _.isSupported() || (console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '), ae.disableMutationObserver = !0), ae.disableMutationObserver || _.ready(\"[data-aos]\", se), de(ae.disable) || re() ? ue() : (document.querySelector(\"body\").setAttribute(\"data-aos-easing\", ae.easing), document.querySelector(\"body\").setAttribute(\"data-aos-duration\", ae.duration), document.querySelector(\"body\").setAttribute(\"data-aos-delay\", ae.delay), -1 === [\"DOMContentLoaded\", \"load\"].indexOf(ae.startEvent) ? document.addEventListener(ae.startEvent, function () {\n ce(!0);\n }) : window.addEventListener(\"load\", function () {\n ce(!0);\n }), \"DOMContentLoaded\" === ae.startEvent && [\"complete\", \"interactive\"].indexOf(document.readyState) > -1 && ce(!0), window.addEventListener(\"resize\", $(ce, ae.debounceDelay, !0)), window.addEventListener(\"orientationchange\", $(ce, ae.debounceDelay, !0)), oe);\n },\n refresh: ce,\n refreshHard: se\n };\n});","/*!\n * Bootstrap base-component.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data'), require('./util/index'), require('./dom/event-handler'), require('./util/config')) : typeof define === 'function' && define.amd ? define(['./dom/data', './util/index', './dom/event-handler', './util/config'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BaseComponent = factory(global.Data, global.Index, global.EventHandler, global.Config));\n})(this, function (Data, index, EventHandler, Config) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n\n const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n\n const VERSION = '5.2.0';\n /**\n * Class definition\n */\n\n class BaseComponent extends Config__default.default {\n constructor(element, config) {\n super();\n element = index.getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n this._config = this._getConfig(config);\n Data__default.default.set(this._element, this.constructor.DATA_KEY, this);\n } // Public\n\n\n dispose() {\n Data__default.default.remove(this._element, this.constructor.DATA_KEY);\n EventHandler__default.default.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 index.executeAfterTransition(callback, element, isAnimated);\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n } // Static\n\n\n static getInstance(element) {\n return Data__default.default.get(index.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 }\n\n return BaseComponent;\n});","/*!\n * Bootstrap collapse.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) : typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));\n})(this, function (index, EventHandler, SelectorEngine, BaseComponent) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n\n const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n\n const NAME = 'collapse';\n const DATA_KEY = 'bs.collapse';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\n const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n const WIDTH = 'width';\n const HEIGHT = 'height';\n const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n const Default = {\n parent: null,\n toggle: true\n };\n const DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n };\n /**\n * Class definition\n */\n\n class Collapse extends BaseComponent__default.default {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);\n\n for (const elem of toggleList) {\n const selector = index.getSelectorFromElement(elem);\n const filterElement = SelectorEngine__default.default.find(selector).filter(foundElement => foundElement === this._element);\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\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 } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let activeChildren = []; // find active children\n\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n\n const startEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n this._element.style[dimension] = '';\n EventHandler__default.default.trigger(this._element, EVENT_SHOWN);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n index.reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n for (const trigger of this._triggerArray) {\n const element = index.getElementFromSelector(trigger);\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW);\n } // Private\n\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = index.getElement(config.parent);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\n\n for (const element of children) {\n const selected = index.getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n return SelectorEngine__default.default.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n }\n /**\n * Data API implementation\n */\n\n\n EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = index.getSelectorFromElement(this);\n const selectorElements = SelectorEngine__default.default.find(selector);\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n });\n /**\n * jQuery\n */\n\n index.defineJQueryPlugin(Collapse);\n return Collapse;\n});","/*!\n * Bootstrap data.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const elementMap = new Map();\n const data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // 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\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 instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n };\n return data;\n});","/*!\n * Bootstrap event-handler.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index')) : typeof define === 'function' && define.amd ? define(['../util/index'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Index));\n})(this, function (index) {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\n const stripNameRegex = /\\..*/;\n const stripUidRegex = /::\\d+$/;\n const eventRegistry = {}; // Events storage\n\n let uidEvent = 1;\n const customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n /**\n * Private methods\n */\n\n function makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n }\n\n function getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n }\n\n function bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n }\n\n function bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n\n hydrateObj(event, {\n delegateTarget: target\n });\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\n function findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n }\n\n function normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\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\n function 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); // 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\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 return;\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n }\n\n function 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\n function 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\n function 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\n const 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 $ = index.getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\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 $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n let evt = new Event(event, {\n bubbles,\n cancelable: true\n });\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 };\n\n function hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n\n get() {\n return value;\n }\n\n });\n }\n }\n\n return obj;\n }\n\n return EventHandler;\n});","/*!\n * Bootstrap manipulator.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n function 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 (_unused) {\n return value;\n }\n }\n\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n }\n\n const 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 };\n return Manipulator;\n});","/*!\n * Bootstrap selector-engine.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index')) : typeof define === 'function' && define.amd ? define(['../util/index'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory(global.Index));\n})(this, function (index) {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const 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\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 = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !index.isDisabled(el) && index.isVisible(el));\n }\n\n };\n return SelectorEngine;\n});","/*!\n * Bootstrap tab.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) : typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));\n})(this, function (index, EventHandler, SelectorEngine, BaseComponent) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n\n const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n\n const NAME = 'tab';\n const DATA_KEY = 'bs.tab';\n const EVENT_KEY = `.${DATA_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}`;\n const EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\n const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`;\n const ARROW_LEFT_KEY = 'ArrowLeft';\n const ARROW_RIGHT_KEY = 'ArrowRight';\n const ARROW_UP_KEY = 'ArrowUp';\n const ARROW_DOWN_KEY = 'ArrowDown';\n const CLASS_NAME_ACTIVE = 'active';\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_SHOW = 'show';\n const CLASS_DROPDOWN = 'dropdown';\n const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';\n const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';\n const SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\n const SELECTOR_OUTER = '.nav-item, .list-group-item';\n const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // todo:v6: could be only `tab`\n\n const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`;\n /**\n * Class definition\n */\n\n class Tab extends BaseComponent__default.default {\n constructor(element) {\n super(element);\n this._parent = this._element.closest(SELECTOR_TAB_PANEL);\n\n if (!this._parent) {\n return; // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n } // Set up initial aria attributes\n\n\n this._setInitialAttributes(this._parent, this._getChildren());\n\n EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n } // Getters\n\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n show() {\n // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element;\n\n if (this._elemIsActive(innerElem)) {\n return;\n } // Search for active tab on same parent to deactivate it\n\n\n const active = this._getActiveElem();\n\n const hideEvent = active ? EventHandler__default.default.trigger(active, EVENT_HIDE, {\n relatedTarget: innerElem\n }) : null;\n const showEvent = EventHandler__default.default.trigger(innerElem, EVENT_SHOW, {\n relatedTarget: active\n });\n\n if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n return;\n }\n\n this._deactivate(active, innerElem);\n\n this._activate(innerElem, active);\n } // Private\n\n\n _activate(element, relatedElem) {\n if (!element) {\n return;\n }\n\n element.classList.add(CLASS_NAME_ACTIVE);\n\n this._activate(index.getElementFromSelector(element)); // Search and activate/show the proper section\n\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW);\n return;\n }\n\n element.focus();\n element.removeAttribute('tabindex');\n element.setAttribute('aria-selected', true);\n\n this._toggleDropDown(element, true);\n\n EventHandler__default.default.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n });\n };\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return;\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE);\n element.blur();\n\n this._deactivate(index.getElementFromSelector(element)); // Search and deactivate the shown section too\n\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW);\n return;\n }\n\n element.setAttribute('aria-selected', false);\n element.setAttribute('tabindex', '-1');\n\n this._toggleDropDown(element, false);\n\n EventHandler__default.default.trigger(element, EVENT_HIDDEN, {\n relatedTarget: relatedElem\n });\n };\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n\n _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {\n return;\n }\n\n event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n\n event.preventDefault();\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n const nextActiveElement = index.getNextActiveElement(this._getChildren().filter(element => !index.isDisabled(element)), event.target, isNext, true);\n\n if (nextActiveElement) {\n Tab.getOrCreateInstance(nextActiveElement).show();\n }\n }\n\n _getChildren() {\n // collection of inner elements\n return SelectorEngine__default.default.find(SELECTOR_INNER_ELEM, this._parent);\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null;\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist');\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child);\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child);\n\n const isActive = this._elemIsActive(child);\n\n const outerElem = this._getOuterElement(child);\n\n child.setAttribute('aria-selected', isActive);\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1');\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too\n\n\n this._setInitialAttributesOnTargetPanel(child);\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = index.getElementFromSelector(child);\n\n if (!target) {\n return;\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`);\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element);\n\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return;\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine__default.default.findOne(selector, outerElem);\n\n if (element) {\n element.classList.toggle(className, open);\n }\n };\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW);\n toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);\n outerElem.setAttribute('aria-expanded', open);\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value);\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE);\n } // Try to get the inner element (usually the .nav-link)\n\n\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine__default.default.findOne(SELECTOR_INNER_ELEM, elem);\n } // Try to get the outer element (usually the .nav-item)\n\n\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n }\n /**\n * Data API implementation\n */\n\n\n EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (index.isDisabled(this)) {\n return;\n }\n\n Tab.getOrCreateInstance(this).show();\n });\n /**\n * Initialize on focus\n */\n\n EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element);\n }\n });\n /**\n * jQuery\n */\n\n index.defineJQueryPlugin(Tab);\n return Tab;\n});","/*!\n * Bootstrap config.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./index'), require('../dom/manipulator')) : typeof define === 'function' && define.amd ? define(['./index', '../dom/manipulator'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Config = factory(global.Index, global.Manipulator));\n})(this, function (index, Manipulator) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Class definition\n */\n\n\n class 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\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n return config;\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = index.isElement(element) ? Manipulator__default.default.getDataAttribute(element, 'config') : {}; // try to parse\n\n return { ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(index.isElement(element) ? Manipulator__default.default.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 = index.isElement(value) ? 'element' : index.toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n\n }\n\n return Config;\n});","/*!\n * Bootstrap index.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Index = {}));\n})(this, function (exports) {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n const MAX_UID = 1000000;\n const MILLISECONDS_MULTIPLIER = 1000;\n const TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\n const 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 * Public Util API\n */\n\n\n const getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href'); // 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\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\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\n const 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\n const getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n const getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n const triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n const 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\n const 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\n const isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\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\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\n const 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\n const findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\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 } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n };\n\n const noop = () => {};\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 */\n\n\n const reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n };\n\n const getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n\n return null;\n };\n\n const DOMContentLoadedCallbacks = [];\n\n const 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\n const isRTL = () => document.documentElement.dir === 'rtl';\n\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\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\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n const execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n const 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 let called = false;\n\n const handler = ({\n target\n }) => {\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 * 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 */\n\n\n const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n\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\n exports.defineJQueryPlugin = defineJQueryPlugin;\n exports.execute = execute;\n exports.executeAfterTransition = executeAfterTransition;\n exports.findShadowRoot = findShadowRoot;\n exports.getElement = getElement;\n exports.getElementFromSelector = getElementFromSelector;\n exports.getNextActiveElement = getNextActiveElement;\n exports.getSelectorFromElement = getSelectorFromElement;\n exports.getTransitionDurationFromElement = getTransitionDurationFromElement;\n exports.getUID = getUID;\n exports.getjQuery = getjQuery;\n exports.isDisabled = isDisabled;\n exports.isElement = isElement;\n exports.isRTL = isRTL;\n exports.isVisible = isVisible;\n exports.noop = noop;\n exports.onDOMContentLoaded = onDOMContentLoaded;\n exports.reflow = reflow;\n exports.toType = toType;\n exports.triggerTransitionEnd = triggerTransitionEnd;\n Object.defineProperties(exports, {\n __esModule: {\n value: true\n },\n [Symbol.toStringTag]: {\n value: 'Module'\n }\n });\n});","require('../../modules/es.aggregate-error');\n\nrequire('../../modules/es.array.iterator');\n\nrequire('../../modules/es.object.to-string');\n\nrequire('../../modules/es.promise');\n\nrequire('../../modules/es.promise.all-settled');\n\nrequire('../../modules/es.promise.any');\n\nrequire('../../modules/es.promise.finally');\n\nrequire('../../modules/es.string.iterator');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;","var isCallable = require('../internals/is-callable');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError; // `Assert: IsCallable(argument) is true`\n\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};","var isConstructor = require('../internals/is-constructor');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError; // `Assert: IsConstructor(argument) is true`\n\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar create = require('../internals/object-create');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n} // add a key to Array.prototype[@@unscopables]\n\n\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError; // `Assert: Type(argument) is Object`\n\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};","var toIndexedObject = require('../internals/to-indexed-object');\n\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar lengthOfArrayLike = require('../internals/length-of-array-like'); // `Array.prototype.{ indexOf, includes }` methods implementation\n\n\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check\n\n if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return {\n done: !!called++\n };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n }; // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n\n\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n} catch (error) {\n /* empty */\n}\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n\n try {\n var object = {};\n\n object[ITERATOR] = function () {\n return {\n next: function () {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n\n exec(object);\n } catch (error) {\n /* empty */\n }\n\n return ITERATION_SUPPORT;\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar isCallable = require('../internals/is-callable');\n\nvar classofRaw = require('../internals/classof-raw');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object; // ES3 wrong here\n\nvar CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n}()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) {\n /* empty */\n }\n}; // getting tag from ES6+ `Object.prototype.toString`\n\n\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = function (arg) {\n return String($Error(arg).stack);\n}('zxcasd');\n\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n }\n\n return stack;\n};","var hasOwn = require('../internals/has-own-property');\n\nvar ownKeys = require('../internals/own-keys');\n\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() {\n /* empty */\n }\n\n F.prototype.constructor = null; // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});","'use strict';\n\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar create = require('../internals/object-create');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () {\n return this;\n};\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, {\n next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next)\n });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};","var isCallable = require('../internals/is-callable');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n\n if (options.global) {\n if (simple) O[key] = value;else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];else if (O[key]) simple = true;\n } catch (error) {\n /* empty */\n }\n\n if (simple) O[key] = value;else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n }\n\n return O;\n};","var global = require('../internals/global'); // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\n\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, {\n value: value,\n configurable: true,\n writable: true\n });\n } catch (error) {\n global[key] = value;\n }\n\n return value;\n};","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar FunctionName = require('../internals/function-name');\n\nvar isCallable = require('../internals/is-callable');\n\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Iterators = require('../internals/iterators');\n\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () {\n return this;\n};\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n\n return function () {\n return new IteratorConstructor(this);\n };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY; // fix native\n\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n } // Set @@toStringTag to native iterators\n\n\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n\n\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n\n defaultIterator = function values() {\n return call(nativeIterator, this);\n };\n }\n } // export additional methods\n\n\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n } // define iterator\n\n\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, {\n name: DEFAULT\n });\n }\n\n Iterators[NAME] = defaultIterator;\n return methods;\n};","var fails = require('../internals/fails'); // Detect IE8's incomplete defineProperty implementation\n\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, {\n get: function () {\n return 7;\n }\n })[1] != 7;\n});","var global = require('../internals/global');\n\nvar isObject = require('../internals/is-object');\n\nvar document = global.document; // typeof document.createElement is 'object' in old IE\n\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};","module.exports = typeof window == 'object' && typeof Deno != 'object';","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';","var userAgent = require('../internals/engine-user-agent');\n\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);","var classof = require('../internals/classof-raw');\n\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';","var global = require('../internals/global');\n\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.'); // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n} // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\n\n\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;","// IE8- don't enum bug keys\nmodule.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];","var fails = require('../internals/fails');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});","var global = require('../internals/global');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar isForced = require('../internals/is-forced');\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\n\n\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n\n if (target) for (key in source) {\n sourceProperty = source[key];\n\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target\n\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n } // add a flag to not completely full polyfills\n\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call; // eslint-disable-next-line es-x/no-reflect -- safe\n\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar aCallable = require('../internals/a-callable');\n\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind); // optional / simple context binding\n\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function\n /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n};","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = function () {\n /* empty */\n }.bind(); // eslint-disable-next-line no-prototype-builtins -- safe\n\n\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names\n\nvar PROPER = EXISTS && function something() {\n /* empty */\n}.name === 'something';\n\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};","var global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};","var classof = require('../internals/classof');\n\nvar getMethod = require('../internals/get-method');\n\nvar Iterators = require('../internals/iterators');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];\n};","var call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar anObject = require('../internals/an-object');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};","var aCallable = require('../internals/a-callable'); // `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\n\n\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};","var check = function (it) {\n return it && it.Math == Math && it;\n}; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\n\nmodule.exports = // eslint-disable-next-line es-x/no-global-this -- safe\ncheck(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe\ncheck(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback\nfunction () {\n return this;\n}() || Function('return this')();","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};","module.exports = {};","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');","var DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails');\n\nvar createElement = require('../internals/document-create-element'); // Thanks to IE8 for its funny defineProperty\n\n\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () {\n return 7;\n }\n }).a != 7;\n});","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar fails = require('../internals/fails');\n\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings\n\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar isCallable = require('../internals/is-callable');\n\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\n\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;","var isObject = require('../internals/is-object');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); // `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\n\n\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar global = require('../internals/global');\n\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar isObject = require('../internals/is-object');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar shared = require('../internals/shared-store');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n\n get = function (it) {\n return wmget(store, it) || {};\n };\n\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype; // check on default Array iterator\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar classof = require('../internals/classof');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () {\n /* empty */\n};\n\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n return false;\n }\n\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true; // `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\n\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;","var fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nmodule.exports = isForced;","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};","module.exports = false;","var getBuiltIn = require('../internals/get-built-in');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};","var bind = require('../internals/function-bind-context');\n\nvar call = require('../internals/function-call');\n\nvar anObject = require('../internals/an-object');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\n\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar getIterator = require('../internals/get-iterator');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n }\n\n return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators\n\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n }\n\n return new Result(false);\n }\n\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n }\n\n return new Result(false);\n};","var call = require('../internals/function-call');\n\nvar anObject = require('../internals/an-object');\n\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n\n try {\n innerResult = getMethod(iterator, 'return');\n\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};","'use strict';\n\nvar fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar create = require('../internals/object-create');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false; // `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\n\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\n\nif ([].keys) {\n arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next`\n\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {}; // FF44- legacy iterators case\n\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); // `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\n\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};","module.exports = {};","var toLength = require('../internals/to-length'); // `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\n\n\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};","var fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\nvar defineProperty = Object.defineProperty;\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () {\n /* empty */\n }, 'length', {\n value: 8\n }).length !== 8;\n});\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n\n if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n if (DESCRIPTORS) defineProperty(value, 'name', {\n value: name,\n configurable: true\n });else value.name = name;\n }\n\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', {\n value: options.arity\n });\n }\n\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', {\n writable: false\n }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) {\n /* empty */\n }\n\n var state = enforceInternalState(value);\n\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n\n return value;\n}; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\n\n\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');","var ceil = Math.ceil;\nvar floor = Math.floor; // `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\n\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};","var global = require('../internals/global');\n\nvar bind = require('../internals/function-bind-context');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar macrotask = require('../internals/task').set;\n\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\n\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\n\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar flush, head, last, notify, toggle, node, promise, then; // modern engines have queueMicrotask method\n\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n\n while (head) {\n fn = head.fn;\n head = head.next;\n\n try {\n fn();\n } catch (error) {\n if (head) notify();else last = undefined;\n throw error;\n }\n }\n\n last = undefined;\n if (parent) parent.enter();\n }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n\n\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, {\n characterData: true\n });\n\n notify = function () {\n node.data = toggle = !toggle;\n }; // environments with maybe non-completely correct, but existent Promise\n\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug\n\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n\n notify = function () {\n then(flush);\n }; // Node.js without promises\n\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n }; // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n\n if (!head) {\n head = task;\n notify();\n }\n\n last = task;\n};","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar fails = require('../internals/fails'); // eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\n\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});","var global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));","'use strict';\n\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n}; // `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\n\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\n\nvar definePropertiesModule = require('../internals/object-define-properties');\n\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar html = require('../internals/html');\n\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () {\n /* empty */\n};\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n}; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n\n\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n\n return temp;\n}; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\n\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475\n\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n}; // Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\n\n\nvar activeXDocument;\n\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n /* ignore */\n }\n\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH\n\n var length = enumBugKeys.length;\n\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true; // `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar anObject = require('../internals/an-object');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar objectKeys = require('../internals/object-keys'); // `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\n\n\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n\n return O;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\n\nvar anObject = require('../internals/an-object');\n\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\nvar $defineProperty = Object.defineProperty; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable'; // `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n }\n\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {\n /* empty */\n }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar call = require('../internals/function-call');\n\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\n\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {\n /* empty */\n }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};","var internalObjectKeys = require('../internals/object-keys-internal');\n\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;","var hasOwn = require('../internals/has-own-property');\n\nvar isCallable = require('../internals/is-callable');\n\nvar toObject = require('../internals/to-object');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype; // `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\n\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n }\n\n return object instanceof $Object ? ObjectPrototype : null;\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar indexOf = require('../internals/array-includes').indexOf;\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); // Don't enum bug & hidden keys\n\n\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n\n return result;\n};","var internalObjectKeys = require('../internals/object-keys-internal');\n\nvar enumBugKeys = require('../internals/enum-bug-keys'); // `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\n\n\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};","'use strict';\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug\n\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({\n 1: 2\n}, 1); // `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar anObject = require('../internals/an-object');\n\nvar aPossiblePrototype = require('../internals/a-possible-prototype'); // `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\n\n\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n /* empty */\n }\n\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);else O.__proto__ = proto;\n return O;\n };\n}() : undefined);","'use strict';\n\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar classof = require('../internals/classof'); // `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\n\n\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};","var call = require('../internals/function-call');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError; // `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\n\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};","var getBuiltIn = require('../internals/get-built-in');\n\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\n\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\n\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat); // all object keys, includes non-enumerable and symbols\n\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};","var global = require('../internals/global');\n\nmodule.exports = global;","module.exports = function (exec) {\n try {\n return {\n error: false,\n value: exec()\n };\n } catch (error) {\n return {\n error: true,\n value: error\n };\n }\n};","var global = require('../internals/global');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isForced = require('../internals/is-forced');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_BROWSER = require('../internals/engine-is-browser');\n\nvar IS_DENO = require('../internals/engine-is-deno');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n\n if (V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) {\n resolve(1);\n });\n\n var FakePromise = function (exec) {\n exec(function () {\n /* empty */\n }, function () {\n /* empty */\n });\n };\n\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () {\n /* empty */\n }) instanceof FakePromise;\n if (!SUBCLASSING) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n }\n\n return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};","var global = require('../internals/global');\n\nmodule.exports = global.Promise;","var anObject = require('../internals/an-object');\n\nvar isObject = require('../internals/is-object');\n\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};","var NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () {\n /* empty */\n });\n});","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = {\n item: item,\n next: null\n };\n if (this.head) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\nmodule.exports = Queue;","var $TypeError = TypeError; // `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\n\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};","'use strict';\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () {\n return this;\n }\n });\n }\n};","var defineProperty = require('../internals/object-define-property').f;\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n};","var shared = require('../internals/shared');\n\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};","var global = require('../internals/global');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\nmodule.exports = store;","var IS_PURE = require('../internals/is-pure');\n\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});","var anObject = require('../internals/an-object');\n\nvar aConstructor = require('../internals/a-constructor');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\n\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar toString = require('../internals/to-string');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt(S, position) : first : CONVERT_TO_STRING ? stringSlice(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};","var global = require('../internals/global');\n\nvar apply = require('../internals/function-apply');\n\nvar bind = require('../internals/function-bind-context');\n\nvar isCallable = require('../internals/is-callable');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar fails = require('../internals/fails');\n\nvar html = require('../internals/html');\n\nvar arraySlice = require('../internals/array-slice');\n\nvar createElement = require('../internals/document-create-element');\n\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) {\n /* empty */\n}\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise:\n\n\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n\n defer(counter);\n return counter;\n };\n\n clear = function clearImmediate(id) {\n delete queue[id];\n }; // Node.js 0.8-\n\n\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n }; // Sphere (JS game engine) Dispatch API\n\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n }; // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port); // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && isCallable(global.postMessage) && !global.importScripts && location && location.protocol !== 'file:' && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false); // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n }; // Rest old browsers\n\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min; // Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\n\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};","var trunc = require('../internals/math-trunc'); // `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\n\n\nmodule.exports = function (argument) {\n var number = +argument; // eslint-disable-next-line no-self-compare -- NaN check\n\n return number !== number || number === 0 ? 0 : trunc(number);\n};","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min; // `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\n\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object; // `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\n\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};","var call = require('../internals/function-call');\n\nvar isObject = require('../internals/is-object');\n\nvar isSymbol = require('../internals/is-symbol');\n\nvar getMethod = require('../internals/get-method');\n\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};","var toPrimitive = require('../internals/to-primitive');\n\nvar isSymbol = require('../internals/is-symbol'); // `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\n\n\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';","var DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails'); // V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\n\n\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () {\n /* empty */\n }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};","var global = require('../internals/global');\n\nvar shared = require('../internals/shared');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar uid = require('../internals/uid');\n\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n }\n\n return WellKnownSymbolsStore[name];\n};","'use strict';\n\nvar $ = require('../internals/export');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar create = require('../internals/object-create');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar clearErrorStack = require('../internals/clear-error-stack');\n\nvar installErrorCause = require('../internals/install-error-cause');\n\nvar iterate = require('../internals/iterate');\n\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message\n/* , options */\n) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, {\n that: errorsArray\n });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);else copyConstructorProperties($AggregateError, $Error, {\n name: true\n});\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n}); // `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n\n$({\n global: true,\n constructor: true,\n arity: 2\n}, {\n AggregateError: $AggregateError\n});","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');","'use strict';\n\nvar $ = require('../internals/export');\n\nvar $includes = require('../internals/array-includes').includes;\n\nvar fails = require('../internals/fails');\n\nvar addToUnscopables = require('../internals/add-to-unscopables'); // FF99+ bug\n\n\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n}); // `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n\n$({\n target: 'Array',\n proto: true,\n forced: BROKEN_ON_SPARSE\n}, {\n includes: function includes(el\n /* , fromIndex = 0 */\n ) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n}); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\naddToUnscopables('includes');","'use strict';\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar Iterators = require('../internals/iterators');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\n\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated),\n // target\n index: 0,\n // next index\n kind: kind // kind\n\n }); // `%ArrayIteratorPrototype%.next` method\n // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n\n if (!target || index >= target.length) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n\n if (kind == 'keys') return {\n value: index,\n done: false\n };\n if (kind == 'values') return {\n value: target[index],\n done: false\n };\n return {\n value: [index, target[index]],\n done: false\n };\n}, 'values'); // argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\n\nvar values = Iterators.Arguments = Iterators.Array; // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries'); // V8 ~ Chrome 45- bug\n\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', {\n value: 'values'\n });\n} catch (error) {\n /* empty */\n}","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar toString = require('../internals/object-to-string'); // `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\n\n\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, {\n unsafe: true\n });\n}","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate'); // `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n\n\n$({\n target: 'Promise',\n stat: true\n}, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = {\n status: 'fulfilled',\n value: value\n };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = {\n status: 'rejected',\n reason: error\n };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration'); // `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n\n\n$({\n target: 'Promise',\n stat: true,\n forced: PROMISE_STATICS_INCORRECT_ITERATION\n}, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved'; // `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n\n$({\n target: 'Promise',\n stat: true\n}, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar isCallable = require('../internals/is-callable');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; // `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n\n$({\n target: 'Promise',\n proto: true,\n forced: FORCED_PROMISE_CONSTRUCTOR,\n real: true\n}, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n}); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, {\n unsafe: true\n });\n }\n}","'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar global = require('../internals/global');\n\nvar call = require('../internals/function-call');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar setSpecies = require('../internals/set-species');\n\nvar aCallable = require('../internals/a-callable');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isObject = require('../internals/is-object');\n\nvar anInstance = require('../internals/an-instance');\n\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar task = require('../internals/task').set;\n\nvar microtask = require('../internals/microtask');\n\nvar hostReportErrors = require('../internals/host-report-errors');\n\nvar perform = require('../internals/perform');\n\nvar Queue = require('../internals/queue');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; // helpers\n\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = {\n promise: promise,\n reason: reason\n };\n\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n\n if (then) {\n microtask(function () {\n var wrapper = {\n done: false\n };\n\n try {\n call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state));\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({\n done: false\n }, error, state);\n }\n}; // constructor polyfill\n\n\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype; // eslint-disable-next-line no-unused-vars -- required for `.length`\n\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n }; // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n\n\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640\n }, {\n unsafe: true\n });\n } // make `.constructor === Promise` work for native promise-based APIs\n\n\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) {\n /* empty */\n } // make `instanceof Promise` work for native promise-based APIs\n\n\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({\n global: true,\n constructor: true,\n wrap: true,\n forced: FORCED_PROMISE_CONSTRUCTOR\n}, {\n Promise: PromiseConstructor\n});\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);","'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar fails = require('../internals/fails');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar isCallable = require('../internals/is-callable');\n\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\n\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({\n then: function () {\n /* empty */\n }\n }, function () {\n /* empty */\n });\n}); // `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n\n$({\n target: 'Promise',\n proto: true,\n real: true,\n forced: NON_GENERIC\n}, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n}); // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\n\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, {\n unsafe: true\n });\n }\n}","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\n\nrequire('../modules/es.promise.all');\n\nrequire('../modules/es.promise.catch');\n\nrequire('../modules/es.promise.race');\n\nrequire('../modules/es.promise.reject');\n\nrequire('../modules/es.promise.resolve');","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration'); // `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n\n\n$({\n target: 'Promise',\n stat: true,\n forced: PROMISE_STATICS_INCORRECT_ITERATION\n}, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR; // `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n\n\n$({\n target: 'Promise',\n stat: true,\n forced: FORCED_PROMISE_CONSTRUCTOR\n}, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; // `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n\n$({\n target: 'Promise',\n stat: true,\n forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR\n}, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});","'use strict';\n\nvar charAt = require('../internals/string-multibyte').charAt;\n\nvar toString = require('../internals/to-string');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\n\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n }); // `%StringIteratorPrototype%.next` method\n // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n});","\"use strict\"; // eslint-disable-next-line func-names\n\nmodule.exports = function () {\n if (typeof globalThis === \"object\") {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") {\n return window;\n } // This works if the self reference is available\n\n\n if (typeof self === \"object\") {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n }\n\n return g;\n}();","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function (Y, K) {\n \"object\" === typeof module && module.exports ? (K[\"default\"] = K, module.exports = Y.document ? K(Y) : K) : \"function\" === typeof define && define.amd ? define(\"highcharts/highcharts\", function () {\n return K(Y);\n }) : (Y.Highcharts && Y.Highcharts.error(16, !0), Y.Highcharts = K(Y));\n})(\"undefined\" !== typeof window ? window : this, function (Y) {\n function K(f, e, l, C) {\n f.hasOwnProperty(e) || (f[e] = C.apply(null, l), \"function\" === typeof CustomEvent && Y.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: e,\n module: f[e]\n }\n })));\n }\n\n var l = {};\n K(l, \"Core/Globals.js\", [], function () {\n var f;\n\n (function (e) {\n e.SVG_NS = \"http://www.w3.org/2000/svg\";\n e.product = \"Highcharts\";\n e.version = \"10.2.0\";\n e.win = \"undefined\" !== typeof Y ? Y : {};\n e.doc = e.win.document;\n e.svg = e.doc && e.doc.createElementNS && !!e.doc.createElementNS(e.SVG_NS, \"svg\").createSVGRect;\n e.userAgent = e.win.navigator && e.win.navigator.userAgent || \"\";\n e.isChrome = -1 !== e.userAgent.indexOf(\"Chrome\");\n e.isFirefox = -1 !== e.userAgent.indexOf(\"Firefox\");\n e.isMS = /(edge|msie|trident)/i.test(e.userAgent) && !e.win.opera;\n e.isSafari = !e.isChrome && -1 !== e.userAgent.indexOf(\"Safari\");\n e.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(e.userAgent);\n e.isWebKit = -1 !== e.userAgent.indexOf(\"AppleWebKit\");\n e.deg2rad = 2 * Math.PI / 360;\n e.hasBidiBug = e.isFirefox && 4 > parseInt(e.userAgent.split(\"Firefox/\")[1], 10);\n e.hasTouch = !!e.win.TouchEvent;\n e.marginNames = [\"plotTop\", \"marginRight\", \"marginBottom\", \"plotLeft\"];\n\n e.noop = function () {};\n\n e.supportsPassiveEvents = function () {\n var f = !1;\n\n if (!e.isMS) {\n var l = Object.defineProperty({}, \"passive\", {\n get: function () {\n f = !0;\n }\n });\n e.win.addEventListener && e.win.removeEventListener && (e.win.addEventListener(\"testPassive\", e.noop, l), e.win.removeEventListener(\"testPassive\", e.noop, l));\n }\n\n return f;\n }();\n\n e.charts = [];\n e.dateFormats = {};\n e.seriesTypes = {};\n e.symbolSizes = {};\n e.chartCount = 0;\n })(f || (f = {}));\n\n \"\";\n return f;\n });\n K(l, \"Core/Utilities.js\", [l[\"Core/Globals.js\"]], function (f) {\n function e(c, u, g, k) {\n var A = u ? \"Highcharts error\" : \"Highcharts warning\";\n 32 === c && (c = \"\" + A + \": Deprecated member\");\n var m = t(c),\n n = m ? \"\" + A + \" #\" + c + \": www.highcharts.com/errors/\" + c + \"/\" : c.toString();\n\n if (\"undefined\" !== typeof k) {\n var b = \"\";\n m && (n += \"?\");\n w(k, function (a, c) {\n b += \"\\n - \".concat(c, \": \").concat(a);\n m && (n += encodeURI(c) + \"=\" + encodeURI(a));\n });\n n += b;\n }\n\n x(f, \"displayError\", {\n chart: g,\n code: c,\n message: n,\n params: k\n }, function () {\n if (u) throw Error(n);\n a.console && -1 === e.messages.indexOf(n) && console.warn(n);\n });\n e.messages.push(n);\n }\n\n function l(a, c) {\n var A = {};\n w(a, function (u, g) {\n if (G(a[g], !0) && !a.nodeType && c[g]) u = l(a[g], c[g]), Object.keys(u).length && (A[g] = u);else if (G(a[g]) || a[g] !== c[g] || g in a && !(g in c)) A[g] = a[g];\n });\n return A;\n }\n\n function C(a, c) {\n return parseInt(a, c || 10);\n }\n\n function v(a) {\n return \"string\" === typeof a;\n }\n\n function E(a) {\n a = Object.prototype.toString.call(a);\n return \"[object Array]\" === a || \"[object Array Iterator]\" === a;\n }\n\n function G(a, c) {\n return !!a && \"object\" === typeof a && (!c || !E(a));\n }\n\n function B(a) {\n return G(a) && \"number\" === typeof a.nodeType;\n }\n\n function y(a) {\n var c = a && a.constructor;\n return !(!G(a, !0) || B(a) || !c || !c.name || \"Object\" === c.name);\n }\n\n function t(a) {\n return \"number\" === typeof a && !isNaN(a) && Infinity > a && -Infinity < a;\n }\n\n function h(a) {\n return \"undefined\" !== typeof a && null !== a;\n }\n\n function d(a, c, g) {\n var A = v(c) && !h(g),\n u,\n k = function (c, g) {\n h(c) ? a.setAttribute(g, c) : A ? (u = a.getAttribute(g)) || \"class\" !== g || (u = a.getAttribute(g + \"Name\")) : a.removeAttribute(g);\n };\n\n v(c) ? k(g, c) : w(c, k);\n return u;\n }\n\n function b(a, c) {\n var A;\n a || (a = {});\n\n for (A in c) a[A] = c[A];\n\n return a;\n }\n\n function p() {\n for (var a = arguments, c = a.length, g = 0; g < c; g++) {\n var k = a[g];\n if (\"undefined\" !== typeof k && null !== k) return k;\n }\n }\n\n function q(a, c) {\n f.isMS && !f.svg && c && h(c.opacity) && (c.filter = \"alpha(opacity=\".concat(100 * c.opacity, \")\"));\n b(a.style, c);\n }\n\n function r(a) {\n return Math.pow(10, Math.floor(Math.log(a) / Math.LN10));\n }\n\n function n(a, c) {\n return 1E14 < a ? a : parseFloat(a.toPrecision(c || 14));\n }\n\n function J(c, u, g) {\n var A = f.getStyle || J;\n if (\"width\" === u) return u = Math.min(c.offsetWidth, c.scrollWidth), g = c.getBoundingClientRect && c.getBoundingClientRect().width, g < u && g >= u - 1 && (u = Math.floor(g)), Math.max(0, u - (A(c, \"padding-left\", !0) || 0) - (A(c, \"padding-right\", !0) || 0));\n if (\"height\" === u) return Math.max(0, Math.min(c.offsetHeight, c.scrollHeight) - (A(c, \"padding-top\", !0) || 0) - (A(c, \"padding-bottom\", !0) || 0));\n a.getComputedStyle || e(27, !0);\n\n if (c = a.getComputedStyle(c, void 0)) {\n var k = c.getPropertyValue(u);\n p(g, \"opacity\" !== u) && (k = C(k));\n }\n\n return k;\n }\n\n function w(a, c, g) {\n for (var A in a) Object.hasOwnProperty.call(a, A) && c.call(g || a[A], a[A], A, a);\n }\n\n function z(a, c, g) {\n function A(c, I) {\n var A = a.removeEventListener || f.removeEventListenerPolyfill;\n A && A.call(a, c, I, !1);\n }\n\n function u(u) {\n var I;\n\n if (a.nodeName) {\n if (c) {\n var H = {};\n H[c] = !0;\n } else H = u;\n\n w(H, function (a, c) {\n if (u[c]) for (I = u[c].length; I--;) A(c, u[c][I].fn);\n });\n }\n }\n\n var k = \"function\" === typeof a && a.prototype || a;\n\n if (Object.hasOwnProperty.call(k, \"hcEvents\")) {\n var m = k.hcEvents;\n c ? (k = m[c] || [], g ? (m[c] = k.filter(function (a) {\n return g !== a.fn;\n }), A(c, g)) : (u(m), m[c] = [])) : (u(m), delete k.hcEvents);\n }\n }\n\n function x(a, c, g, m) {\n g = g || {};\n\n if (k.createEvent && (a.dispatchEvent || a.fireEvent && a !== f)) {\n var A = k.createEvent(\"Events\");\n A.initEvent(c, !0, !0);\n g = b(A, g);\n a.dispatchEvent ? a.dispatchEvent(g) : a.fireEvent(c, g);\n } else if (a.hcEvents) {\n g.target || b(g, {\n preventDefault: function () {\n g.defaultPrevented = !0;\n },\n target: a,\n type: c\n });\n A = [];\n\n for (var u = a, n = !1; u.hcEvents;) Object.hasOwnProperty.call(u, \"hcEvents\") && u.hcEvents[c] && (A.length && (n = !0), A.unshift.apply(A, u.hcEvents[c])), u = Object.getPrototypeOf(u);\n\n n && A.sort(function (a, c) {\n return a.order - c.order;\n });\n A.forEach(function (c) {\n !1 === c.fn.call(a, g) && g.preventDefault();\n });\n }\n\n m && !g.defaultPrevented && m.call(a, g);\n }\n\n var m = f.charts,\n k = f.doc,\n a = f.win;\n (e || (e = {})).messages = [];\n\n Math.easeInOutSine = function (a) {\n return -.5 * (Math.cos(Math.PI * a) - 1);\n };\n\n var g = Array.prototype.find ? function (a, c) {\n return a.find(c);\n } : function (a, c) {\n var A,\n u = a.length;\n\n for (A = 0; A < u; A++) if (c(a[A], A)) return a[A];\n };\n w({\n map: \"map\",\n each: \"forEach\",\n grep: \"filter\",\n reduce: \"reduce\",\n some: \"some\"\n }, function (a, c) {\n f[c] = function (A) {\n var u;\n e(32, !1, void 0, (u = {}, u[\"Highcharts.\".concat(c)] = \"use Array.\".concat(a), u));\n return Array.prototype[a].apply(A, [].slice.call(arguments, 1));\n };\n });\n\n var c,\n D = function () {\n var a = Math.random().toString(36).substring(2, 9) + \"-\",\n u = 0;\n return function () {\n return \"highcharts-\" + (c ? \"\" : a) + u++;\n };\n }();\n\n a.jQuery && (a.jQuery.fn.highcharts = function () {\n var a = [].slice.call(arguments);\n if (this[0]) return a[0] ? (new f[v(a[0]) ? a.shift() : \"Chart\"](this[0], a[0], a[1]), this) : m[d(this[0], \"data-highcharts-chart\")];\n });\n g = {\n addEvent: function (a, c, g, k) {\n void 0 === k && (k = {});\n var u = \"function\" === typeof a && a.prototype || a;\n Object.hasOwnProperty.call(u, \"hcEvents\") || (u.hcEvents = {});\n u = u.hcEvents;\n f.Point && a instanceof f.Point && a.series && a.series.chart && (a.series.chart.runTrackerClick = !0);\n var A = a.addEventListener || f.addEventListenerPolyfill;\n A && A.call(a, c, g, f.supportsPassiveEvents ? {\n passive: void 0 === k.passive ? -1 !== c.indexOf(\"touch\") : k.passive,\n capture: !1\n } : !1);\n u[c] || (u[c] = []);\n u[c].push({\n fn: g,\n order: \"number\" === typeof k.order ? k.order : Infinity\n });\n u[c].sort(function (a, c) {\n return a.order - c.order;\n });\n return function () {\n z(a, c, g);\n };\n },\n arrayMax: function (a) {\n for (var c = a.length, g = a[0]; c--;) a[c] > g && (g = a[c]);\n\n return g;\n },\n arrayMin: function (a) {\n for (var c = a.length, g = a[0]; c--;) a[c] < g && (g = a[c]);\n\n return g;\n },\n attr: d,\n clamp: function (a, c, g) {\n return a > c ? a < g ? a : g : c;\n },\n cleanRecursively: l,\n clearTimeout: function (a) {\n h(a) && clearTimeout(a);\n },\n correctFloat: n,\n createElement: function (a, c, g, m, n) {\n a = k.createElement(a);\n c && b(a, c);\n n && q(a, {\n padding: \"0\",\n border: \"none\",\n margin: \"0\"\n });\n g && q(a, g);\n m && m.appendChild(a);\n return a;\n },\n css: q,\n defined: h,\n destroyObjectProperties: function (a, c) {\n w(a, function (g, u) {\n g && g !== c && g.destroy && g.destroy();\n delete a[u];\n });\n },\n discardElement: function (a) {\n a && a.parentElement && a.parentElement.removeChild(a);\n },\n erase: function (a, c) {\n for (var g = a.length; g--;) if (a[g] === c) {\n a.splice(g, 1);\n break;\n }\n },\n error: e,\n extend: b,\n extendClass: function (a, c) {\n var g = function () {};\n\n g.prototype = new a();\n b(g.prototype, c);\n return g;\n },\n find: g,\n fireEvent: x,\n getMagnitude: r,\n getNestedProperty: function (c, g) {\n for (c = c.split(\".\"); c.length && h(g);) {\n var u = c.shift();\n if (\"undefined\" === typeof u || \"__proto__\" === u) return;\n g = g[u];\n if (!h(g) || \"function\" === typeof g || \"number\" === typeof g.nodeType || g === a) return;\n }\n\n return g;\n },\n getStyle: J,\n inArray: function (a, c, g) {\n e(32, !1, void 0, {\n \"Highcharts.inArray\": \"use Array.indexOf\"\n });\n return c.indexOf(a, g);\n },\n isArray: E,\n isClass: y,\n isDOMElement: B,\n isFunction: function (a) {\n return \"function\" === typeof a;\n },\n isNumber: t,\n isObject: G,\n isString: v,\n keys: function (a) {\n e(32, !1, void 0, {\n \"Highcharts.keys\": \"use Object.keys\"\n });\n return Object.keys(a);\n },\n merge: function () {\n var a,\n c = arguments,\n g = {},\n k = function (a, c) {\n \"object\" !== typeof a && (a = {});\n w(c, function (g, I) {\n \"__proto__\" !== I && \"constructor\" !== I && (!G(g, !0) || y(g) || B(g) ? a[I] = c[I] : a[I] = k(a[I] || {}, g));\n });\n return a;\n };\n\n !0 === c[0] && (g = c[1], c = Array.prototype.slice.call(c, 2));\n var m = c.length;\n\n for (a = 0; a < m; a++) g = k(g, c[a]);\n\n return g;\n },\n normalizeTickInterval: function (a, c, g, k, m) {\n var u = a;\n g = p(g, r(a));\n var A = a / g;\n c || (c = m ? [1, 1.2, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10] : [1, 2, 2.5, 5, 10], !1 === k && (1 === g ? c = c.filter(function (a) {\n return 0 === a % 1;\n }) : .1 >= g && (c = [1 / g])));\n\n for (k = 0; k < c.length && !(u = c[k], m && u * g >= a || !m && A <= (c[k] + (c[k + 1] || c[k])) / 2); k++);\n\n return u = n(u * g, -Math.round(Math.log(.001) / Math.LN10));\n },\n objectEach: w,\n offset: function (c) {\n var g = k.documentElement;\n c = c.parentElement || c.parentNode ? c.getBoundingClientRect() : {\n top: 0,\n left: 0,\n width: 0,\n height: 0\n };\n return {\n top: c.top + (a.pageYOffset || g.scrollTop) - (g.clientTop || 0),\n left: c.left + (a.pageXOffset || g.scrollLeft) - (g.clientLeft || 0),\n width: c.width,\n height: c.height\n };\n },\n pad: function (a, c, g) {\n return Array((c || 2) + 1 - String(a).replace(\"-\", \"\").length).join(g || \"0\") + a;\n },\n pick: p,\n pInt: C,\n relativeLength: function (a, c, g) {\n return /%$/.test(a) ? c * parseFloat(a) / 100 + (g || 0) : parseFloat(a);\n },\n removeEvent: z,\n splat: function (a) {\n return E(a) ? a : [a];\n },\n stableSort: function (a, c) {\n var g = a.length,\n k,\n u;\n\n for (u = 0; u < g; u++) a[u].safeI = u;\n\n a.sort(function (a, g) {\n k = c(a, g);\n return 0 === k ? a.safeI - g.safeI : k;\n });\n\n for (u = 0; u < g; u++) delete a[u].safeI;\n },\n syncTimeout: function (a, c, g) {\n if (0 < c) return setTimeout(a, c, g);\n a.call(0, g);\n return -1;\n },\n timeUnits: {\n millisecond: 1,\n second: 1E3,\n minute: 6E4,\n hour: 36E5,\n day: 864E5,\n week: 6048E5,\n month: 24192E5,\n year: 314496E5\n },\n uniqueKey: D,\n useSerialIds: function (a) {\n return c = p(a, c);\n },\n wrap: function (a, c, g) {\n var k = a[c];\n\n a[c] = function () {\n var a = Array.prototype.slice.call(arguments),\n c = arguments,\n u = this;\n\n u.proceed = function () {\n k.apply(u, arguments.length ? arguments : c);\n };\n\n a.unshift(k);\n a = g.apply(this, a);\n u.proceed = null;\n return a;\n };\n }\n };\n \"\";\n return g;\n });\n K(l, \"Core/Chart/ChartDefaults.js\", [], function () {\n return {\n alignThresholds: !1,\n panning: {\n enabled: !1,\n type: \"x\"\n },\n styledMode: !1,\n borderRadius: 0,\n colorCount: 10,\n allowMutatingData: !0,\n defaultSeriesType: \"line\",\n ignoreHiddenSeries: !0,\n spacing: [10, 10, 15, 10],\n resetZoomButton: {\n theme: {\n zIndex: 6\n },\n position: {\n align: \"right\",\n x: -10,\n y: 10\n }\n },\n zoomBySingleTouch: !1,\n width: null,\n height: null,\n borderColor: \"#335cad\",\n backgroundColor: \"#ffffff\",\n plotBorderColor: \"#cccccc\"\n };\n });\n K(l, \"Core/Color/Color.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = e.isNumber,\n C = e.merge,\n v = e.pInt;\n\n e = function () {\n function e(l) {\n this.rgba = [NaN, NaN, NaN, NaN];\n this.input = l;\n var B = f.Color;\n if (B && B !== e) return new B(l);\n if (!(this instanceof e)) return new e(l);\n this.init(l);\n }\n\n e.parse = function (f) {\n return f ? new e(f) : e.None;\n };\n\n e.prototype.init = function (f) {\n var B;\n if (\"object\" === typeof f && \"undefined\" !== typeof f.stops) this.stops = f.stops.map(function (d) {\n return new e(d[1]);\n });else if (\"string\" === typeof f) {\n this.input = f = e.names[f.toLowerCase()] || f;\n\n if (\"#\" === f.charAt(0)) {\n var y = f.length;\n var t = parseInt(f.substr(1), 16);\n 7 === y ? B = [(t & 16711680) >> 16, (t & 65280) >> 8, t & 255, 1] : 4 === y && (B = [(t & 3840) >> 4 | (t & 3840) >> 8, (t & 240) >> 4 | t & 240, (t & 15) << 4 | t & 15, 1]);\n }\n\n if (!B) for (t = e.parsers.length; t-- && !B;) {\n var h = e.parsers[t];\n (y = h.regex.exec(f)) && (B = h.parse(y));\n }\n }\n B && (this.rgba = B);\n };\n\n e.prototype.get = function (e) {\n var B = this.input,\n y = this.rgba;\n\n if (\"object\" === typeof B && \"undefined\" !== typeof this.stops) {\n var t = C(B);\n t.stops = [].slice.call(t.stops);\n this.stops.forEach(function (h, d) {\n t.stops[d] = [t.stops[d][0], h.get(e)];\n });\n return t;\n }\n\n return y && l(y[0]) ? \"rgb\" === e || !e && 1 === y[3] ? \"rgb(\" + y[0] + \",\" + y[1] + \",\" + y[2] + \")\" : \"a\" === e ? \"\".concat(y[3]) : \"rgba(\" + y.join(\",\") + \")\" : B;\n };\n\n e.prototype.brighten = function (e) {\n var B = this.rgba;\n if (this.stops) this.stops.forEach(function (t) {\n t.brighten(e);\n });else if (l(e) && 0 !== e) for (var y = 0; 3 > y; y++) B[y] += v(255 * e), 0 > B[y] && (B[y] = 0), 255 < B[y] && (B[y] = 255);\n return this;\n };\n\n e.prototype.setOpacity = function (e) {\n this.rgba[3] = e;\n return this;\n };\n\n e.prototype.tweenTo = function (e, B) {\n var y = this.rgba,\n t = e.rgba;\n if (!l(y[0]) || !l(t[0])) return e.input || \"none\";\n e = 1 !== t[3] || 1 !== y[3];\n return (e ? \"rgba(\" : \"rgb(\") + Math.round(t[0] + (y[0] - t[0]) * (1 - B)) + \",\" + Math.round(t[1] + (y[1] - t[1]) * (1 - B)) + \",\" + Math.round(t[2] + (y[2] - t[2]) * (1 - B)) + (e ? \",\" + (t[3] + (y[3] - t[3]) * (1 - B)) : \"\") + \")\";\n };\n\n e.names = {\n white: \"#ffffff\",\n black: \"#000000\"\n };\n e.parsers = [{\n regex: /rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,\n parse: function (e) {\n return [v(e[1]), v(e[2]), v(e[3]), parseFloat(e[4], 10)];\n }\n }, {\n regex: /rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,\n parse: function (e) {\n return [v(e[1]), v(e[2]), v(e[3]), 1];\n }\n }];\n e.None = new e(\"\");\n return e;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/Color/Palettes.js\", [], function () {\n return {\n colors: \"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \")\n };\n });\n K(l, \"Core/Time.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = f.win,\n C = e.defined,\n v = e.error,\n E = e.extend,\n G = e.isObject,\n B = e.merge,\n y = e.objectEach,\n t = e.pad,\n h = e.pick,\n d = e.splat,\n b = e.timeUnits,\n p = f.isSafari && l.Intl && l.Intl.DateTimeFormat.prototype.formatRange,\n q = f.isSafari && l.Intl && !l.Intl.DateTimeFormat.prototype.formatRange;\n\n e = function () {\n function r(n) {\n this.options = {};\n this.variableTimezone = this.useUTC = !1;\n this.Date = l.Date;\n this.getTimezoneOffset = this.timezoneOffsetFunction();\n this.update(n);\n }\n\n r.prototype.get = function (n, b) {\n if (this.variableTimezone || this.timezoneOffset) {\n var d = b.getTime(),\n r = d - this.getTimezoneOffset(b);\n b.setTime(r);\n n = b[\"getUTC\" + n]();\n b.setTime(d);\n return n;\n }\n\n return this.useUTC ? b[\"getUTC\" + n]() : b[\"get\" + n]();\n };\n\n r.prototype.set = function (n, b, d) {\n if (this.variableTimezone || this.timezoneOffset) {\n if (\"Milliseconds\" === n || \"Seconds\" === n || \"Minutes\" === n && 0 === this.getTimezoneOffset(b) % 36E5) return b[\"setUTC\" + n](d);\n var r = this.getTimezoneOffset(b);\n r = b.getTime() - r;\n b.setTime(r);\n b[\"setUTC\" + n](d);\n n = this.getTimezoneOffset(b);\n r = b.getTime() + n;\n return b.setTime(r);\n }\n\n return this.useUTC || p && \"FullYear\" === n ? b[\"setUTC\" + n](d) : b[\"set\" + n](d);\n };\n\n r.prototype.update = function (b) {\n var n = h(b && b.useUTC, !0);\n this.options = b = B(!0, this.options || {}, b);\n this.Date = b.Date || l.Date || Date;\n this.timezoneOffset = (this.useUTC = n) && b.timezoneOffset || void 0;\n this.getTimezoneOffset = this.timezoneOffsetFunction();\n this.variableTimezone = n && !(!b.getTimezoneOffset && !b.timezone);\n };\n\n r.prototype.makeTime = function (b, d, r, p, x, m) {\n if (this.useUTC) {\n var k = this.Date.UTC.apply(0, arguments);\n var a = this.getTimezoneOffset(k);\n k += a;\n var g = this.getTimezoneOffset(k);\n a !== g ? k += g - a : a - 36E5 !== this.getTimezoneOffset(k - 36E5) || q || (k -= 36E5);\n } else k = new this.Date(b, d, h(r, 1), h(p, 0), h(x, 0), h(m, 0)).getTime();\n\n return k;\n };\n\n r.prototype.timezoneOffsetFunction = function () {\n var b = this,\n d = this.options,\n r = d.getTimezoneOffset,\n p = d.moment || l.moment;\n if (!this.useUTC) return function (b) {\n return 6E4 * new Date(b.toString()).getTimezoneOffset();\n };\n\n if (d.timezone) {\n if (p) return function (b) {\n return 6E4 * -p.tz(b, d.timezone).utcOffset();\n };\n v(25);\n }\n\n return this.useUTC && r ? function (b) {\n return 6E4 * r(b.valueOf());\n } : function () {\n return 6E4 * (b.timezoneOffset || 0);\n };\n };\n\n r.prototype.dateFormat = function (b, d, r) {\n if (!C(d) || isNaN(d)) return f.defaultOptions.lang && f.defaultOptions.lang.invalidDate || \"\";\n b = h(b, \"%Y-%m-%d %H:%M:%S\");\n var n = this,\n p = new this.Date(d),\n m = this.get(\"Hours\", p),\n k = this.get(\"Day\", p),\n a = this.get(\"Date\", p),\n g = this.get(\"Month\", p),\n c = this.get(\"FullYear\", p),\n D = f.defaultOptions.lang,\n A = D && D.weekdays,\n u = D && D.shortWeekdays;\n p = E({\n a: u ? u[k] : A[k].substr(0, 3),\n A: A[k],\n d: t(a),\n e: t(a, 2, \" \"),\n w: k,\n b: D.shortMonths[g],\n B: D.months[g],\n m: t(g + 1),\n o: g + 1,\n y: c.toString().substr(2, 2),\n Y: c,\n H: t(m),\n k: m,\n I: t(m % 12 || 12),\n l: m % 12 || 12,\n M: t(this.get(\"Minutes\", p)),\n p: 12 > m ? \"AM\" : \"PM\",\n P: 12 > m ? \"am\" : \"pm\",\n S: t(p.getSeconds()),\n L: t(Math.floor(d % 1E3), 3)\n }, f.dateFormats);\n y(p, function (a, c) {\n for (; -1 !== b.indexOf(\"%\" + c);) b = b.replace(\"%\" + c, \"function\" === typeof a ? a.call(n, d) : a);\n });\n return r ? b.substr(0, 1).toUpperCase() + b.substr(1) : b;\n };\n\n r.prototype.resolveDTLFormat = function (b) {\n return G(b, !0) ? b : (b = d(b), {\n main: b[0],\n from: b[1],\n to: b[2]\n });\n };\n\n r.prototype.getTimeTicks = function (d, r, p, q) {\n var n = this,\n m = [],\n k = {},\n a = new n.Date(r),\n g = d.unitRange,\n c = d.count || 1,\n D;\n q = h(q, 1);\n\n if (C(r)) {\n n.set(\"Milliseconds\", a, g >= b.second ? 0 : c * Math.floor(n.get(\"Milliseconds\", a) / c));\n g >= b.second && n.set(\"Seconds\", a, g >= b.minute ? 0 : c * Math.floor(n.get(\"Seconds\", a) / c));\n g >= b.minute && n.set(\"Minutes\", a, g >= b.hour ? 0 : c * Math.floor(n.get(\"Minutes\", a) / c));\n g >= b.hour && n.set(\"Hours\", a, g >= b.day ? 0 : c * Math.floor(n.get(\"Hours\", a) / c));\n g >= b.day && n.set(\"Date\", a, g >= b.month ? 1 : Math.max(1, c * Math.floor(n.get(\"Date\", a) / c)));\n\n if (g >= b.month) {\n n.set(\"Month\", a, g >= b.year ? 0 : c * Math.floor(n.get(\"Month\", a) / c));\n var A = n.get(\"FullYear\", a);\n }\n\n g >= b.year && n.set(\"FullYear\", a, A - A % c);\n g === b.week && (A = n.get(\"Day\", a), n.set(\"Date\", a, n.get(\"Date\", a) - A + q + (A < q ? -7 : 0)));\n A = n.get(\"FullYear\", a);\n q = n.get(\"Month\", a);\n var u = n.get(\"Date\", a),\n z = n.get(\"Hours\", a);\n r = a.getTime();\n !n.variableTimezone && n.useUTC || !C(p) || (D = p - r > 4 * b.month || n.getTimezoneOffset(r) !== n.getTimezoneOffset(p));\n r = a.getTime();\n\n for (a = 1; r < p;) m.push(r), r = g === b.year ? n.makeTime(A + a * c, 0) : g === b.month ? n.makeTime(A, q + a * c) : !D || g !== b.day && g !== b.week ? D && g === b.hour && 1 < c ? n.makeTime(A, q, u, z + a * c) : r + g * c : n.makeTime(A, q, u + a * c * (g === b.day ? 1 : 7)), a++;\n\n m.push(r);\n g <= b.hour && 1E4 > m.length && m.forEach(function (a) {\n 0 === a % 18E5 && \"000000000\" === n.dateFormat(\"%H%M%S%L\", a) && (k[a] = \"day\");\n });\n }\n\n m.info = E(d, {\n higherRanks: k,\n totalRange: g * c\n });\n return m;\n };\n\n r.prototype.getDateFormat = function (n, d, r, p) {\n var q = this.dateFormat(\"%m-%d %H:%M:%S.%L\", d),\n m = {\n millisecond: 15,\n second: 12,\n minute: 9,\n hour: 6,\n day: 3\n },\n k = \"millisecond\";\n\n for (a in b) {\n if (n === b.week && +this.dateFormat(\"%w\", d) === r && \"00:00:00.000\" === q.substr(6)) {\n var a = \"week\";\n break;\n }\n\n if (b[a] > n) {\n a = k;\n break;\n }\n\n if (m[a] && q.substr(m[a]) !== \"01-01 00:00:00.000\".substr(m[a])) break;\n \"week\" !== a && (k = a);\n }\n\n return this.resolveDTLFormat(p[a]).main;\n };\n\n return r;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/DefaultOptions.js\", [l[\"Core/Chart/ChartDefaults.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Color/Palettes.js\"], l[\"Core/Time.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E) {\n e = e.parse;\n var P = E.merge,\n B = {\n colors: C.colors,\n symbols: [\"circle\", \"diamond\", \"square\", \"triangle\", \"triangle-down\"],\n lang: {\n loading: \"Loading...\",\n months: \"January February March April May June July August September October November December\".split(\" \"),\n shortMonths: \"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),\n weekdays: \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\n decimalPoint: \".\",\n numericSymbols: \"kMGTPE\".split(\"\"),\n resetZoom: \"Reset zoom\",\n resetZoomTitle: \"Reset zoom level 1:1\",\n thousandsSep: \" \"\n },\n global: {},\n time: {\n Date: void 0,\n getTimezoneOffset: void 0,\n timezone: void 0,\n timezoneOffset: 0,\n useUTC: !0\n },\n chart: f,\n title: {\n text: \"Chart title\",\n align: \"center\",\n margin: 15,\n widthAdjust: -44\n },\n subtitle: {\n text: \"\",\n align: \"center\",\n widthAdjust: -44\n },\n caption: {\n margin: 15,\n text: \"\",\n align: \"left\",\n verticalAlign: \"bottom\"\n },\n plotOptions: {},\n labels: {\n style: {\n position: \"absolute\",\n color: \"#333333\"\n }\n },\n legend: {\n enabled: !0,\n align: \"center\",\n alignColumns: !0,\n className: \"highcharts-no-tooltip\",\n layout: \"horizontal\",\n labelFormatter: function () {\n return this.name;\n },\n borderColor: \"#999999\",\n borderRadius: 0,\n navigation: {\n activeColor: \"#003399\",\n inactiveColor: \"#cccccc\"\n },\n itemStyle: {\n color: \"#333333\",\n cursor: \"pointer\",\n fontSize: \"12px\",\n fontWeight: \"bold\",\n textOverflow: \"ellipsis\"\n },\n itemHoverStyle: {\n color: \"#000000\"\n },\n itemHiddenStyle: {\n color: \"#cccccc\"\n },\n shadow: !1,\n itemCheckboxStyle: {\n position: \"absolute\",\n width: \"13px\",\n height: \"13px\"\n },\n squareSymbol: !0,\n symbolPadding: 5,\n verticalAlign: \"bottom\",\n x: 0,\n y: 0,\n title: {\n style: {\n fontWeight: \"bold\"\n }\n }\n },\n loading: {\n labelStyle: {\n fontWeight: \"bold\",\n position: \"relative\",\n top: \"45%\"\n },\n style: {\n position: \"absolute\",\n backgroundColor: \"#ffffff\",\n opacity: .5,\n textAlign: \"center\"\n }\n },\n tooltip: {\n enabled: !0,\n animation: l.svg,\n borderRadius: 3,\n dateTimeLabelFormats: {\n millisecond: \"%A, %b %e, %H:%M:%S.%L\",\n second: \"%A, %b %e, %H:%M:%S\",\n minute: \"%A, %b %e, %H:%M\",\n hour: \"%A, %b %e, %H:%M\",\n day: \"%A, %b %e, %Y\",\n week: \"Week from %A, %b %e, %Y\",\n month: \"%B %Y\",\n year: \"%Y\"\n },\n footerFormat: \"\",\n headerShape: \"callout\",\n hideDelay: 500,\n padding: 8,\n shape: \"callout\",\n shared: !1,\n snap: l.isTouchDevice ? 25 : 10,\n headerFormat: '{point.key}
',\n pointFormat: '\\u25cf {series.name}: {point.y}
',\n backgroundColor: e(\"#f7f7f7\").setOpacity(.85).get(),\n borderWidth: 1,\n shadow: !0,\n stickOnContact: !1,\n style: {\n color: \"#333333\",\n cursor: \"default\",\n fontSize: \"12px\",\n whiteSpace: \"nowrap\"\n },\n useHTML: !1\n },\n credits: {\n enabled: !0,\n href: \"https://www.highcharts.com?credits\",\n position: {\n align: \"right\",\n x: -10,\n verticalAlign: \"bottom\",\n y: -5\n },\n style: {\n cursor: \"pointer\",\n color: \"#999999\",\n fontSize: \"9px\"\n },\n text: \"Highcharts.com\"\n }\n };\n B.chart.styledMode = !1;\n \"\";\n var y = new v(P(B.global, B.time));\n f = {\n defaultOptions: B,\n defaultTime: y,\n getOptions: function () {\n return B;\n },\n setOptions: function (t) {\n P(!0, B, t);\n if (t.time || t.global) l.time ? l.time.update(P(B.global, B.time, t.global, t.time)) : l.time = y;\n return B;\n }\n };\n \"\";\n return f;\n });\n K(l, \"Core/Animation/Fx.js\", [l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var P = f.parse,\n v = e.win,\n E = l.isNumber,\n G = l.objectEach;\n return function () {\n function e(e, t, h) {\n this.pos = NaN;\n this.options = t;\n this.elem = e;\n this.prop = h;\n }\n\n e.prototype.dSetter = function () {\n var e = this.paths,\n t = e && e[0];\n e = e && e[1];\n var h = this.now || 0,\n d = [];\n if (1 !== h && t && e) {\n if (t.length === e.length && 1 > h) for (var b = 0; b < e.length; b++) {\n for (var p = t[b], q = e[b], r = [], n = 0; n < q.length; n++) {\n var J = p[n],\n w = q[n];\n E(J) && E(w) && (\"A\" !== q[0] || 4 !== n && 5 !== n) ? r[n] = J + h * (w - J) : r[n] = w;\n }\n\n d.push(r);\n } else d = e;\n } else d = this.toD || [];\n this.elem.attr(\"d\", d, void 0, !0);\n };\n\n e.prototype.update = function () {\n var e = this.elem,\n t = this.prop,\n h = this.now,\n d = this.options.step;\n if (this[t + \"Setter\"]) this[t + \"Setter\"]();else e.attr ? e.element && e.attr(t, h, null, !0) : e.style[t] = h + this.unit;\n d && d.call(e, h, this);\n };\n\n e.prototype.run = function (y, t, h) {\n var d = this,\n b = d.options,\n p = function (b) {\n return p.stopped ? !1 : d.step(b);\n },\n q = v.requestAnimationFrame || function (b) {\n setTimeout(b, 13);\n },\n r = function () {\n for (var b = 0; b < e.timers.length; b++) e.timers[b]() || e.timers.splice(b--, 1);\n\n e.timers.length && q(r);\n };\n\n y !== t || this.elem[\"forceAnimate:\" + this.prop] ? (this.startTime = +new Date(), this.start = y, this.end = t, this.unit = h, this.now = this.start, this.pos = 0, p.elem = this.elem, p.prop = this.prop, p() && 1 === e.timers.push(p) && q(r)) : (delete b.curAnim[this.prop], b.complete && 0 === Object.keys(b.curAnim).length && b.complete.call(this.elem));\n };\n\n e.prototype.step = function (e) {\n var t = +new Date(),\n h = this.options,\n d = this.elem,\n b = h.complete,\n p = h.duration,\n q = h.curAnim;\n if (d.attr && !d.element) e = !1;else if (e || t >= p + this.startTime) {\n this.now = this.end;\n this.pos = 1;\n this.update();\n var r = q[this.prop] = !0;\n G(q, function (b) {\n !0 !== b && (r = !1);\n });\n r && b && b.call(d);\n e = !1;\n } else this.pos = h.easing((t - this.startTime) / p), this.now = this.start + (this.end - this.start) * this.pos, this.update(), e = !0;\n return e;\n };\n\n e.prototype.initPath = function (e, t, h) {\n function d(b, m) {\n for (; b.length < z;) {\n var k = b[0],\n a = m[z - b.length];\n a && \"M\" === k[0] && (b[0] = \"C\" === a[0] ? [\"C\", k[1], k[2], k[1], k[2], k[1], k[2]] : [\"L\", k[1], k[2]]);\n b.unshift(k);\n r && (k = b.pop(), b.push(b[b.length - 1], k));\n }\n }\n\n function b(b, m) {\n for (; b.length < z;) if (m = b[Math.floor(b.length / n) - 1].slice(), \"C\" === m[0] && (m[1] = m[5], m[2] = m[6]), r) {\n var k = b[Math.floor(b.length / n)].slice();\n b.splice(b.length / 2, 0, m, k);\n } else b.push(m);\n }\n\n var p = e.startX,\n q = e.endX;\n h = h.slice();\n var r = e.isArea,\n n = r ? 2 : 1;\n t = t && t.slice();\n if (!t) return [h, h];\n\n if (p && q && q.length) {\n for (e = 0; e < p.length; e++) if (p[e] === q[0]) {\n var J = e;\n break;\n } else if (p[0] === q[q.length - p.length + e]) {\n J = e;\n var w = !0;\n break;\n } else if (p[p.length - 1] === q[q.length - p.length + e]) {\n J = p.length - e;\n break;\n }\n\n \"undefined\" === typeof J && (t = []);\n }\n\n if (t.length && E(J)) {\n var z = h.length + J * n;\n w ? (d(t, h), b(h, t)) : (d(h, t), b(t, h));\n }\n\n return [t, h];\n };\n\n e.prototype.fillSetter = function () {\n e.prototype.strokeSetter.apply(this, arguments);\n };\n\n e.prototype.strokeSetter = function () {\n this.elem.attr(this.prop, P(this.start).tweenTo(P(this.end), this.pos), void 0, !0);\n };\n\n e.timers = [];\n return e;\n }();\n });\n K(l, \"Core/Animation/AnimationUtilities.js\", [l[\"Core/Animation/Fx.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n function l(b) {\n return y(b) ? t({\n duration: 500,\n defer: 0\n }, b) : {\n duration: b ? 500 : 0,\n defer: 0\n };\n }\n\n function C(b, d) {\n for (var p = f.timers.length; p--;) f.timers[p].elem !== b || d && d !== f.timers[p].prop || (f.timers[p].stopped = !0);\n }\n\n var v = e.defined,\n E = e.getStyle,\n G = e.isArray,\n B = e.isNumber,\n y = e.isObject,\n t = e.merge,\n h = e.objectEach,\n d = e.pick;\n return {\n animate: function (b, d, q) {\n var r,\n n = \"\",\n p,\n w;\n\n if (!y(q)) {\n var z = arguments;\n q = {\n duration: z[2],\n easing: z[3],\n complete: z[4]\n };\n }\n\n B(q.duration) || (q.duration = 400);\n q.easing = \"function\" === typeof q.easing ? q.easing : Math[q.easing] || Math.easeInOutSine;\n q.curAnim = t(d);\n h(d, function (h, m) {\n C(b, m);\n w = new f(b, q, m);\n p = void 0;\n \"d\" === m && G(d.d) ? (w.paths = w.initPath(b, b.pathArray, d.d), w.toD = d.d, r = 0, p = 1) : b.attr ? r = b.attr(m) : (r = parseFloat(E(b, m)) || 0, \"opacity\" !== m && (n = \"px\"));\n p || (p = h);\n \"string\" === typeof p && p.match(\"px\") && (p = p.replace(/px/g, \"\"));\n w.run(r, p, n);\n });\n },\n animObject: l,\n getDeferredAnimation: function (b, d, q) {\n var r = l(d),\n n = 0,\n p = 0;\n (q ? [q] : b.series).forEach(function (b) {\n b = l(b.options.animation);\n n = d && v(d.defer) ? r.defer : Math.max(n, b.duration + b.defer);\n p = Math.min(r.duration, b.duration);\n });\n b.renderer.forExport && (n = 0);\n return {\n defer: Math.max(0, n - p),\n duration: Math.min(n, p)\n };\n },\n setAnimation: function (b, p) {\n p.renderer.globalAnimation = d(b, p.options.chart.animation, !0);\n },\n stop: C\n };\n });\n K(l, \"Core/Renderer/HTML/AST.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = f.SVG_NS,\n C = e.attr,\n v = e.createElement,\n E = e.css,\n G = e.error,\n B = e.isFunction,\n y = e.isString,\n t = e.objectEach,\n h = e.splat,\n d = (e = f.win.trustedTypes) && B(e.createPolicy) && e.createPolicy(\"highcharts\", {\n createHTML: function (b) {\n return b;\n }\n }),\n b = d ? d.createHTML(\"\") : \"\";\n\n try {\n var p = !!new DOMParser().parseFromString(b, \"text/html\");\n } catch (q) {\n p = !1;\n }\n\n B = function () {\n function q(b) {\n this.nodes = \"string\" === typeof b ? this.parseMarkup(b) : b;\n }\n\n q.filterUserAttributes = function (b) {\n t(b, function (d, p) {\n var n = !0;\n -1 === q.allowedAttributes.indexOf(p) && (n = !1);\n -1 !== [\"background\", \"dynsrc\", \"href\", \"lowsrc\", \"src\"].indexOf(p) && (n = y(d) && q.allowedReferences.some(function (b) {\n return 0 === d.indexOf(b);\n }));\n n || (G(33, !1, void 0, {\n \"Invalid attribute in config\": \"\".concat(p)\n }), delete b[p]);\n });\n return b;\n };\n\n q.parseStyle = function (b) {\n return b.split(\";\").reduce(function (b, d) {\n d = d.split(\":\").map(function (b) {\n return b.trim();\n });\n var p = d.shift();\n p && d.length && (b[p.replace(/-([a-z])/g, function (b) {\n return b[1].toUpperCase();\n })] = d.join(\":\"));\n return b;\n }, {});\n };\n\n q.setElementHTML = function (b, d) {\n b.innerHTML = q.emptyHTML;\n d && new q(d).addToDOM(b);\n };\n\n q.prototype.addToDOM = function (b) {\n function d(b, p) {\n var n;\n h(b).forEach(function (b) {\n var m = b.tagName,\n k = b.textContent ? f.doc.createTextNode(b.textContent) : void 0,\n a = q.bypassHTMLFiltering;\n if (m) if (\"#text\" === m) var g = k;else if (-1 !== q.allowedTags.indexOf(m) || a) {\n m = f.doc.createElementNS(\"svg\" === m ? l : p.namespaceURI || l, m);\n var c = b.attributes || {};\n t(b, function (a, g) {\n \"tagName\" !== g && \"attributes\" !== g && \"children\" !== g && \"style\" !== g && \"textContent\" !== g && (c[g] = a);\n });\n C(m, a ? c : q.filterUserAttributes(c));\n b.style && E(m, b.style);\n k && m.appendChild(k);\n d(b.children || [], m);\n g = m;\n } else G(33, !1, void 0, {\n \"Invalid tagName in config\": m\n });\n g && p.appendChild(g);\n n = g;\n });\n return n;\n }\n\n return d(this.nodes, b);\n };\n\n q.prototype.parseMarkup = function (b) {\n var n = [];\n b = b.trim().replace(/ style=\"/g, ' data-style=\"');\n if (p) b = new DOMParser().parseFromString(d ? d.createHTML(b) : b, \"text/html\");else {\n var r = v(\"div\");\n r.innerHTML = b;\n b = {\n body: r\n };\n }\n\n var h = function (b, d) {\n var m = b.nodeName.toLowerCase(),\n k = {\n tagName: m\n };\n \"#text\" === m && (k.textContent = b.textContent || \"\");\n\n if (m = b.attributes) {\n var a = {};\n [].forEach.call(m, function (c) {\n \"data-style\" === c.name ? k.style = q.parseStyle(c.value) : a[c.name] = c.value;\n });\n k.attributes = a;\n }\n\n if (b.childNodes.length) {\n var g = [];\n [].forEach.call(b.childNodes, function (a) {\n h(a, g);\n });\n g.length && (k.children = g);\n }\n\n d.push(k);\n };\n\n [].forEach.call(b.body.childNodes, function (b) {\n return h(b, n);\n });\n return n;\n };\n\n q.allowedAttributes = \"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 height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align textAnchor textLength title type valign width x x1 x2 y y1 y2 zIndex\".split(\" \");\n q.allowedReferences = \"https:// http:// mailto: / ../ ./ #\".split(\" \");\n q.allowedTags = \"a abbr b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feFuncA feFuncB feFuncG feFuncR feGaussianBlur 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 thead tbody tspan td th tr u ul #text\".split(\" \");\n q.emptyHTML = b;\n q.bypassHTMLFiltering = !1;\n return q;\n }();\n\n \"\";\n return B;\n });\n K(l, \"Core/FormatUtilities.js\", [l[\"Core/DefaultOptions.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n function l(e, h, d, b) {\n e = +e || 0;\n h = +h;\n var p = C.lang,\n q = (e.toString().split(\".\")[1] || \"\").split(\"e\")[0].length,\n r = e.toString().split(\"e\"),\n n = h;\n if (-1 === h) h = Math.min(q, 20);else if (!G(h)) h = 2;else if (h && r[1] && 0 > r[1]) {\n var J = h + +r[1];\n 0 <= J ? (r[0] = (+r[0]).toExponential(J).split(\"e\")[0], h = J) : (r[0] = r[0].split(\".\")[0] || 0, e = 20 > h ? (r[0] * Math.pow(10, r[1])).toFixed(h) : 0, r[1] = 0);\n }\n J = (Math.abs(r[1] ? r[0] : e) + Math.pow(10, -Math.max(h, q) - 1)).toFixed(h);\n q = String(y(J));\n var w = 3 < q.length ? q.length % 3 : 0;\n d = B(d, p.decimalPoint);\n b = B(b, p.thousandsSep);\n e = (0 > e ? \"-\" : \"\") + (w ? q.substr(0, w) + b : \"\");\n e = 0 > +r[1] && !n ? \"0\" : e + q.substr(w).replace(/(\\d{3})(?=\\d)/g, \"$1\" + b);\n h && (e += d + J.slice(-h));\n r[1] && 0 !== +e && (e += \"e\" + r[1]);\n return e;\n }\n\n var C = f.defaultOptions,\n v = f.defaultTime,\n E = e.getNestedProperty,\n G = e.isNumber,\n B = e.pick,\n y = e.pInt;\n return {\n dateFormat: function (e, h, d) {\n return v.dateFormat(e, h, d);\n },\n format: function (e, h, d) {\n var b = \"{\",\n p = !1,\n q = /f$/,\n r = /\\.([0-9])/,\n n = C.lang,\n J = d && d.time || v;\n d = d && d.numberFormatter || l;\n\n for (var w = []; e;) {\n var z = e.indexOf(b);\n if (-1 === z) break;\n var x = e.slice(0, z);\n\n if (p) {\n x = x.split(\":\");\n b = E(x.shift() || \"\", h);\n if (x.length && \"number\" === typeof b) if (x = x.join(\":\"), q.test(x)) {\n var m = parseInt((x.match(r) || [\"\", \"-1\"])[1], 10);\n null !== b && (b = d(b, m, n.decimalPoint, -1 < x.indexOf(\",\") ? n.thousandsSep : \"\"));\n } else b = J.dateFormat(x, b);\n w.push(b);\n } else w.push(x);\n\n e = e.slice(z + 1);\n b = (p = !p) ? \"}\" : \"{\";\n }\n\n w.push(e);\n return w.join(\"\");\n },\n numberFormat: l\n };\n });\n K(l, \"Core/Renderer/RendererUtilities.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.clamp,\n l = f.pick,\n C = f.stableSort,\n v;\n\n (function (f) {\n function v(f, y, t) {\n var h = f,\n d = h.reducedLen || y,\n b = function (b, d) {\n return (d.rank || 0) - (b.rank || 0);\n },\n p = function (b, d) {\n return b.target - d.target;\n },\n q,\n r = !0,\n n = [],\n J = 0;\n\n for (q = f.length; q--;) J += f[q].size;\n\n if (J > d) {\n C(f, b);\n\n for (J = q = 0; J <= d;) J += f[q].size, q++;\n\n n = f.splice(q - 1, f.length);\n }\n\n C(f, p);\n\n for (f = f.map(function (b) {\n return {\n size: b.size,\n targets: [b.target],\n align: l(b.align, .5)\n };\n }); r;) {\n for (q = f.length; q--;) d = f[q], b = (Math.min.apply(0, d.targets) + Math.max.apply(0, d.targets)) / 2, d.pos = e(b - d.size * d.align, 0, y - d.size);\n\n q = f.length;\n\n for (r = !1; q--;) 0 < q && f[q - 1].pos + f[q - 1].size > f[q].pos && (f[q - 1].size += f[q].size, f[q - 1].targets = f[q - 1].targets.concat(f[q].targets), f[q - 1].align = .5, f[q - 1].pos + f[q - 1].size > y && (f[q - 1].pos = y - f[q - 1].size), f.splice(q, 1), r = !0);\n }\n\n h.push.apply(h, n);\n q = 0;\n f.some(function (b) {\n var d = 0;\n return (b.targets || []).some(function () {\n h[q].pos = b.pos + d;\n if (\"undefined\" !== typeof t && Math.abs(h[q].pos - h[q].target) > t) return h.slice(0, q + 1).forEach(function (b) {\n return delete b.pos;\n }), h.reducedLen = (h.reducedLen || y) - .1 * y, h.reducedLen > .1 * y && v(h, y, t), !0;\n d += h[q].size;\n q++;\n return !1;\n });\n });\n C(h, p);\n return h;\n }\n\n f.distribute = v;\n })(v || (v = {}));\n\n return v;\n });\n K(l, \"Core/Renderer/SVG/SVGElement.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var P = f.animate,\n G = f.animObject,\n B = f.stop,\n y = C.deg2rad,\n t = C.doc,\n h = C.noop,\n d = C.svg,\n b = C.SVG_NS,\n p = C.win,\n q = v.addEvent,\n r = v.attr,\n n = v.createElement,\n J = v.css,\n w = v.defined,\n z = v.erase,\n x = v.extend,\n m = v.fireEvent,\n k = v.isArray,\n a = v.isFunction,\n g = v.isNumber,\n c = v.isString,\n D = v.merge,\n A = v.objectEach,\n u = v.pick,\n L = v.pInt,\n S = v.syncTimeout,\n R = v.uniqueKey;\n\n f = function () {\n function f() {\n this.element = void 0;\n this.onEvents = {};\n this.opacity = 1;\n this.renderer = void 0;\n this.SVG_NS = b;\n this.symbolCustomAttribs = \"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");\n }\n\n f.prototype._defaultGetter = function (a) {\n a = u(this[a + \"Value\"], this[a], this.element ? this.element.getAttribute(a) : null, 0);\n /^[\\-0-9\\.]+$/.test(a) && (a = parseFloat(a));\n return a;\n };\n\n f.prototype._defaultSetter = function (a, c, g) {\n g.setAttribute(c, a);\n };\n\n f.prototype.add = function (a) {\n var c = this.renderer,\n g = this.element;\n a && (this.parentGroup = a);\n this.parentInverted = a && a.inverted;\n \"undefined\" !== typeof this.textStr && \"text\" === this.element.nodeName && c.buildText(this);\n this.added = !0;\n if (!a || a.handleZ || this.zIndex) var b = this.zIndexSetter();\n b || (a ? a.element : c.box).appendChild(g);\n if (this.onAdd) this.onAdd();\n return this;\n };\n\n f.prototype.addClass = function (a, c) {\n var g = c ? \"\" : this.attr(\"class\") || \"\";\n a = (a || \"\").split(/ /g).reduce(function (a, c) {\n -1 === g.indexOf(c) && a.push(c);\n return a;\n }, g ? [g] : []).join(\" \");\n a !== g && this.attr(\"class\", a);\n return this;\n };\n\n f.prototype.afterSetters = function () {\n this.doTransform && (this.updateTransform(), this.doTransform = !1);\n };\n\n f.prototype.align = function (a, g, I) {\n var b = {},\n k = this.renderer,\n m = k.alignedObjects,\n d,\n p,\n F;\n\n if (a) {\n if (this.alignOptions = a, this.alignByTranslate = g, !I || c(I)) this.alignTo = d = I || \"renderer\", z(m, this), m.push(this), I = void 0;\n } else a = this.alignOptions, g = this.alignByTranslate, d = this.alignTo;\n\n I = u(I, k[d], \"scrollablePlotBox\" === d ? k.plotBox : void 0, k);\n d = a.align;\n var A = a.verticalAlign;\n k = (I.x || 0) + (a.x || 0);\n m = (I.y || 0) + (a.y || 0);\n \"right\" === d ? p = 1 : \"center\" === d && (p = 2);\n p && (k += (I.width - (a.width || 0)) / p);\n b[g ? \"translateX\" : \"x\"] = Math.round(k);\n \"bottom\" === A ? F = 1 : \"middle\" === A && (F = 2);\n F && (m += (I.height - (a.height || 0)) / F);\n b[g ? \"translateY\" : \"y\"] = Math.round(m);\n this[this.placed ? \"animate\" : \"attr\"](b);\n this.placed = !0;\n this.alignAttr = b;\n return this;\n };\n\n f.prototype.alignSetter = function (a) {\n var c = {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n };\n c[a] && (this.alignValue = a, this.element.setAttribute(\"text-anchor\", c[a]));\n };\n\n f.prototype.animate = function (a, c, g) {\n var I = this,\n b = G(u(c, this.renderer.globalAnimation, !0));\n c = b.defer;\n u(t.hidden, t.msHidden, t.webkitHidden, !1) && (b.duration = 0);\n 0 !== b.duration ? (g && (b.complete = g), S(function () {\n I.element && P(I, a, b);\n }, c)) : (this.attr(a, void 0, g || b.complete), A(a, function (a, c) {\n b.step && b.step.call(this, a, {\n prop: c,\n pos: 1,\n elem: this\n });\n }, this));\n return this;\n };\n\n f.prototype.applyTextOutline = function (a) {\n var c = this.element;\n -1 !== a.indexOf(\"contrast\") && (a = a.replace(/contrast/g, this.renderer.getContrast(c.style.fill)));\n var g = a.split(\" \");\n a = g[g.length - 1];\n\n if ((g = g[0]) && \"none\" !== g && C.svg) {\n this.fakeTS = !0;\n this.ySetter = this.xSetter;\n g = g.replace(/(^[\\d\\.]+)(.*?)$/g, function (a, c, g) {\n return 2 * Number(c) + g;\n });\n this.removeTextOutline();\n var k = t.createElementNS(b, \"tspan\");\n r(k, {\n \"class\": \"highcharts-text-outline\",\n fill: a,\n stroke: a,\n \"stroke-width\": g,\n \"stroke-linejoin\": \"round\"\n });\n [].forEach.call(c.childNodes, function (a) {\n var c = a.cloneNode(!0);\n c.removeAttribute && [\"fill\", \"stroke\", \"stroke-width\", \"stroke\"].forEach(function (a) {\n return c.removeAttribute(a);\n });\n k.appendChild(c);\n });\n var u = t.createElementNS(b, \"tspan\");\n u.textContent = \"\\u200b\";\n [\"x\", \"y\"].forEach(function (a) {\n var g = c.getAttribute(a);\n g && u.setAttribute(a, g);\n });\n k.appendChild(u);\n c.insertBefore(k, c.firstChild);\n }\n };\n\n f.prototype.attr = function (a, c, g, b) {\n var I = this.element,\n k = this.symbolCustomAttribs,\n H,\n u = this,\n F,\n m;\n\n if (\"string\" === typeof a && \"undefined\" !== typeof c) {\n var d = a;\n a = {};\n a[d] = c;\n }\n\n \"string\" === typeof a ? u = (this[a + \"Getter\"] || this._defaultGetter).call(this, a, I) : (A(a, function (c, g) {\n F = !1;\n b || B(this, g);\n this.symbolName && -1 !== k.indexOf(g) && (H || (this.symbolAttr(a), H = !0), F = !0);\n !this.rotation || \"x\" !== g && \"y\" !== g || (this.doTransform = !0);\n F || (m = this[g + \"Setter\"] || this._defaultSetter, m.call(this, c, g, I), !this.styledMode && this.shadows && /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(g) && this.updateShadows(g, c, m));\n }, this), this.afterSetters());\n g && g.call(this);\n return u;\n };\n\n f.prototype.clip = function (a) {\n return this.attr(\"clip-path\", a ? \"url(\" + this.renderer.url + \"#\" + a.id + \")\" : \"none\");\n };\n\n f.prototype.crisp = function (a, c) {\n c = c || a.strokeWidth || 0;\n var g = Math.round(c) % 2 / 2;\n a.x = Math.floor(a.x || this.x || 0) + g;\n a.y = Math.floor(a.y || this.y || 0) + g;\n a.width = Math.floor((a.width || this.width || 0) - 2 * g);\n a.height = Math.floor((a.height || this.height || 0) - 2 * g);\n w(a.strokeWidth) && (a.strokeWidth = c);\n return a;\n };\n\n f.prototype.complexColor = function (a, c, g) {\n var b = this.renderer,\n I,\n u,\n d,\n p,\n F,\n n,\n r,\n q,\n h,\n z,\n e = [],\n x;\n m(this.renderer, \"complexColor\", {\n args: arguments\n }, function () {\n a.radialGradient ? u = \"radialGradient\" : a.linearGradient && (u = \"linearGradient\");\n\n if (u) {\n d = a[u];\n F = b.gradients;\n n = a.stops;\n h = g.radialReference;\n k(d) && (a[u] = d = {\n x1: d[0],\n y1: d[1],\n x2: d[2],\n y2: d[3],\n gradientUnits: \"userSpaceOnUse\"\n });\n \"radialGradient\" === u && h && !w(d.gradientUnits) && (p = d, d = D(d, b.getRadialAttr(h, p), {\n gradientUnits: \"userSpaceOnUse\"\n }));\n A(d, function (a, c) {\n \"id\" !== c && e.push(c, a);\n });\n A(n, function (a) {\n e.push(a);\n });\n e = e.join(\",\");\n if (F[e]) z = F[e].attr(\"id\");else {\n d.id = z = R();\n var H = F[e] = b.createElement(u).attr(d).add(b.defs);\n H.radAttr = p;\n H.stops = [];\n n.forEach(function (a) {\n 0 === a[1].indexOf(\"rgba\") ? (I = l.parse(a[1]), r = I.get(\"rgb\"), q = I.get(\"a\")) : (r = a[1], q = 1);\n a = b.createElement(\"stop\").attr({\n offset: a[0],\n \"stop-color\": r,\n \"stop-opacity\": q\n }).add(H);\n H.stops.push(a);\n });\n }\n x = \"url(\" + b.url + \"#\" + z + \")\";\n g.setAttribute(c, x);\n g.gradient = e;\n\n a.toString = function () {\n return x;\n };\n }\n });\n };\n\n f.prototype.css = function (a) {\n var c = this.styles,\n g = {},\n b = this.element,\n k = !c;\n a.color && (a.fill = a.color);\n c && A(a, function (a, b) {\n c && c[b] !== a && (g[b] = a, k = !0);\n });\n\n if (k) {\n c && (a = x(c, g));\n if (null === a.width || \"auto\" === a.width) delete this.textWidth;else if (\"text\" === b.nodeName.toLowerCase() && a.width) var u = this.textWidth = L(a.width);\n this.styles = a;\n u && !d && this.renderer.forExport && delete a.width;\n var m = D(a);\n b.namespaceURI === this.SVG_NS && [\"textOutline\", \"textOverflow\", \"width\"].forEach(function (a) {\n return m && delete m[a];\n });\n J(b, m);\n this.added && (\"text\" === this.element.nodeName && this.renderer.buildText(this), a.textOutline && this.applyTextOutline(a.textOutline));\n }\n\n return this;\n };\n\n f.prototype.dashstyleSetter = function (a) {\n var c = this[\"stroke-width\"];\n \"inherit\" === c && (c = 1);\n\n if (a = a && a.toLowerCase()) {\n var g = a.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(\",\");\n\n for (a = g.length; a--;) g[a] = \"\" + L(g[a]) * u(c, NaN);\n\n a = g.join(\",\").replace(/NaN/g, \"none\");\n this.element.setAttribute(\"stroke-dasharray\", a);\n }\n };\n\n f.prototype.destroy = function () {\n var a = this,\n c = a.element || {},\n g = a.renderer,\n b = c.ownerSVGElement,\n k = g.isSVG && \"SPAN\" === c.nodeName && a.parentGroup || void 0;\n c.onclick = c.onmouseout = c.onmouseover = c.onmousemove = c.point = null;\n B(a);\n\n if (a.clipPath && b) {\n var u = a.clipPath;\n [].forEach.call(b.querySelectorAll(\"[clip-path],[CLIP-PATH]\"), function (a) {\n -1 < a.getAttribute(\"clip-path\").indexOf(u.element.id) && a.removeAttribute(\"clip-path\");\n });\n a.clipPath = u.destroy();\n }\n\n if (a.stops) {\n for (b = 0; b < a.stops.length; b++) a.stops[b].destroy();\n\n a.stops.length = 0;\n a.stops = void 0;\n }\n\n a.safeRemoveChild(c);\n\n for (g.styledMode || a.destroyShadows(); k && k.div && 0 === k.div.childNodes.length;) c = k.parentGroup, a.safeRemoveChild(k.div), delete k.div, k = c;\n\n a.alignTo && z(g.alignedObjects, a);\n A(a, function (c, g) {\n a[g] && a[g].parentGroup === a && a[g].destroy && a[g].destroy();\n delete a[g];\n });\n };\n\n f.prototype.destroyShadows = function () {\n (this.shadows || []).forEach(function (a) {\n this.safeRemoveChild(a);\n }, this);\n this.shadows = void 0;\n };\n\n f.prototype.destroyTextPath = function (a, c) {\n var g = a.getElementsByTagName(\"text\")[0];\n\n if (g) {\n if (g.removeAttribute(\"dx\"), g.removeAttribute(\"dy\"), c.element.setAttribute(\"id\", \"\"), this.textPathWrapper && g.getElementsByTagName(\"textPath\").length) {\n for (a = this.textPathWrapper.element.childNodes; a.length;) g.appendChild(a[0]);\n\n g.removeChild(this.textPathWrapper.element);\n }\n } else if (a.getAttribute(\"dx\") || a.getAttribute(\"dy\")) a.removeAttribute(\"dx\"), a.removeAttribute(\"dy\");\n\n this.textPathWrapper && (this.textPathWrapper = this.textPathWrapper.destroy());\n };\n\n f.prototype.dSetter = function (a, c, g) {\n k(a) && (\"string\" === typeof a[0] && (a = this.renderer.pathToSegments(a)), this.pathArray = a, a = a.reduce(function (a, c, g) {\n return c && c.join ? (g ? a + \" \" : \"\") + c.join(\" \") : (c || \"\").toString();\n }, \"\"));\n /(NaN| {2}|^$)/.test(a) && (a = \"M 0 0\");\n this[c] !== a && (g.setAttribute(c, a), this[c] = a);\n };\n\n f.prototype.fadeOut = function (a) {\n var c = this;\n c.animate({\n opacity: 0\n }, {\n duration: u(a, 150),\n complete: function () {\n c.hide();\n }\n });\n };\n\n f.prototype.fillSetter = function (a, c, g) {\n \"string\" === typeof a ? g.setAttribute(c, a) : a && this.complexColor(a, c, g);\n };\n\n f.prototype.getBBox = function (c, g) {\n var b = this.alignValue,\n k = this.element,\n d = this.renderer,\n m = this.styles,\n p = this.textStr,\n A = d.cache,\n F = d.cacheKeys,\n n = k.namespaceURI === this.SVG_NS;\n g = u(g, this.rotation, 0);\n var r = d.styledMode ? k && f.prototype.getStyle.call(k, \"font-size\") : m && m.fontSize,\n D;\n\n if (w(p)) {\n var q = p.toString();\n -1 === q.indexOf(\"<\") && (q = q.replace(/[0-9]/g, \"0\"));\n q += [\"\", g, r, this.textWidth, b, m && m.textOverflow, m && m.fontWeight].join();\n }\n\n q && !c && (D = A[q]);\n\n if (!D) {\n if (n || d.forExport) {\n try {\n var h = this.fakeTS && function (a) {\n var c = k.querySelector(\".highcharts-text-outline\");\n c && J(c, {\n display: a\n });\n };\n\n a(h) && h(\"none\");\n D = k.getBBox ? x({}, k.getBBox()) : {\n width: k.offsetWidth,\n height: k.offsetHeight\n };\n a(h) && h(\"\");\n } catch (Z) {\n \"\";\n }\n\n if (!D || 0 > D.width) D = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n } else D = this.htmlGetBBox();\n\n if (d.isSVG && (d = D.width, c = D.height, n && (D.height = c = {\n \"11px,17\": 14,\n \"13px,20\": 16\n }[\"\" + (r || \"\") + \",\".concat(Math.round(c))] || c), g)) {\n n = Number(k.getAttribute(\"y\") || 0) - D.y;\n b = {\n right: 1,\n center: .5\n }[b || 0] || 0;\n m = g * y;\n r = (g - 90) * y;\n var z = d * Math.cos(m);\n g = d * Math.sin(m);\n h = Math.cos(r);\n m = Math.sin(r);\n d = D.x + b * (d - z) + n * h;\n r = d + z;\n h = r - c * h;\n z = h - z;\n n = D.y + n - b * g + n * m;\n b = n + g;\n c = b - c * m;\n g = c - g;\n D.x = Math.min(d, r, h, z);\n D.y = Math.min(n, b, c, g);\n D.width = Math.max(d, r, h, z) - D.x;\n D.height = Math.max(n, b, c, g) - D.y;\n }\n\n if (q && (\"\" === p || 0 < D.height)) {\n for (; 250 < F.length;) delete A[F.shift()];\n\n A[q] || F.push(q);\n A[q] = D;\n }\n }\n\n return D;\n };\n\n f.prototype.getStyle = function (a) {\n return p.getComputedStyle(this.element || this, \"\").getPropertyValue(a);\n };\n\n f.prototype.hasClass = function (a) {\n return -1 !== (\"\" + this.attr(\"class\")).split(\" \").indexOf(a);\n };\n\n f.prototype.hide = function () {\n return this.attr({\n visibility: \"hidden\"\n });\n };\n\n f.prototype.htmlGetBBox = function () {\n return {\n height: 0,\n width: 0,\n x: 0,\n y: 0\n };\n };\n\n f.prototype.init = function (a, c) {\n this.element = \"span\" === c ? n(c) : t.createElementNS(this.SVG_NS, c);\n this.renderer = a;\n m(this, \"afterInit\");\n };\n\n f.prototype.invert = function (a) {\n this.inverted = a;\n this.updateTransform();\n return this;\n };\n\n f.prototype.on = function (a, c) {\n var g = this.onEvents;\n if (g[a]) g[a]();\n g[a] = q(this.element, a, c);\n return this;\n };\n\n f.prototype.opacitySetter = function (a, c, g) {\n this.opacity = a = Number(Number(a).toFixed(3));\n g.setAttribute(c, a);\n };\n\n f.prototype.removeClass = function (a) {\n return this.attr(\"class\", (\"\" + this.attr(\"class\")).replace(c(a) ? new RegExp(\"(^| )\".concat(a, \"( |$)\")) : a, \" \").replace(/ +/g, \" \").trim());\n };\n\n f.prototype.removeTextOutline = function () {\n var a = this.element.querySelector(\"tspan.highcharts-text-outline\");\n a && this.safeRemoveChild(a);\n };\n\n f.prototype.safeRemoveChild = function (a) {\n var c = a.parentNode;\n c && c.removeChild(a);\n };\n\n f.prototype.setRadialReference = function (a) {\n var c = this.element.gradient && this.renderer.gradients[this.element.gradient];\n this.element.radialReference = a;\n c && c.radAttr && c.animate(this.renderer.getRadialAttr(a, c.radAttr));\n return this;\n };\n\n f.prototype.setTextPath = function (a, c) {\n var b = this.element,\n k = this.text ? this.text.element : b,\n u = {\n textAnchor: \"text-anchor\"\n },\n d = !1,\n m = this.textPathWrapper,\n n = !m;\n c = D(!0, {\n enabled: !0,\n attributes: {\n dy: -5,\n startOffset: \"50%\",\n textAnchor: \"middle\"\n }\n }, c);\n var F = e.filterUserAttributes(c.attributes);\n\n if (a && c && c.enabled) {\n m && null === m.element.parentNode ? (n = !0, m = m.destroy()) : m && this.removeTextOutline.call(m.parentGroup);\n this.options && this.options.padding && (F.dx = -this.options.padding);\n m || (this.textPathWrapper = m = this.renderer.createElement(\"textPath\"), d = !0);\n var r = m.element;\n (c = a.element.getAttribute(\"id\")) || a.element.setAttribute(\"id\", c = R());\n if (n) for (k.setAttribute(\"y\", 0), g(F.dx) && k.setAttribute(\"x\", -F.dx), a = [].slice.call(k.childNodes), n = 0; n < a.length; n++) {\n var q = a[n];\n q.nodeType !== p.Node.TEXT_NODE && \"tspan\" !== q.nodeName || r.appendChild(q);\n }\n d && m && m.add({\n element: k\n });\n r.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", this.renderer.url + \"#\" + c);\n w(F.dy) && (r.parentNode.setAttribute(\"dy\", F.dy), delete F.dy);\n w(F.dx) && (r.parentNode.setAttribute(\"dx\", F.dx), delete F.dx);\n A(F, function (a, c) {\n r.setAttribute(u[c] || c, a);\n });\n b.removeAttribute(\"transform\");\n this.removeTextOutline.call(m);\n this.text && !this.renderer.styledMode && this.attr({\n fill: \"none\",\n \"stroke-width\": 0\n });\n this.applyTextOutline = this.updateTransform = h;\n } else m && (delete this.updateTransform, delete this.applyTextOutline, this.destroyTextPath(b, a), this.updateTransform(), this.options && this.options.rotation && this.applyTextOutline(this.options.style.textOutline));\n\n return this;\n };\n\n f.prototype.shadow = function (a, c, g) {\n var b = [],\n k = this.element,\n I = this.oldShadowOptions,\n u = {\n color: \"#000000\",\n offsetX: this.parentInverted ? -1 : 1,\n offsetY: this.parentInverted ? -1 : 1,\n opacity: .15,\n width: 3\n },\n m = !1,\n F;\n !0 === a ? F = u : \"object\" === typeof a && (F = x(u, a));\n F && (F && I && A(F, function (a, c) {\n a !== I[c] && (m = !0);\n }), m && this.destroyShadows(), this.oldShadowOptions = F);\n if (!F) this.destroyShadows();else if (!this.shadows) {\n var d = F.opacity / F.width;\n var p = this.parentInverted ? \"translate(\".concat(F.offsetY, \", \").concat(F.offsetX, \")\") : \"translate(\".concat(F.offsetX, \", \").concat(F.offsetY, \")\");\n\n for (u = 1; u <= F.width; u++) {\n var n = k.cloneNode(!1);\n var D = 2 * F.width + 1 - 2 * u;\n r(n, {\n stroke: a.color || \"#000000\",\n \"stroke-opacity\": d * u,\n \"stroke-width\": D,\n transform: p,\n fill: \"none\"\n });\n n.setAttribute(\"class\", (n.getAttribute(\"class\") || \"\") + \" highcharts-shadow\");\n g && (r(n, \"height\", Math.max(r(n, \"height\") - D, 0)), n.cutHeight = D);\n c ? c.element.appendChild(n) : k.parentNode && k.parentNode.insertBefore(n, k);\n b.push(n);\n }\n\n this.shadows = b;\n }\n return this;\n };\n\n f.prototype.show = function (a) {\n void 0 === a && (a = !0);\n return this.attr({\n visibility: a ? \"inherit\" : \"visible\"\n });\n };\n\n f.prototype.strokeSetter = function (a, c, g) {\n this[c] = a;\n this.stroke && this[\"stroke-width\"] ? (f.prototype.fillSetter.call(this, this.stroke, \"stroke\", g), g.setAttribute(\"stroke-width\", this[\"stroke-width\"]), this.hasStroke = !0) : \"stroke-width\" === c && 0 === a && this.hasStroke ? (g.removeAttribute(\"stroke\"), this.hasStroke = !1) : this.renderer.styledMode && this[\"stroke-width\"] && (g.setAttribute(\"stroke-width\", this[\"stroke-width\"]), this.hasStroke = !0);\n };\n\n f.prototype.strokeWidth = function () {\n if (!this.renderer.styledMode) return this[\"stroke-width\"] || 0;\n var a = this.getStyle(\"stroke-width\"),\n c = 0;\n if (a.indexOf(\"px\") === a.length - 2) c = L(a);else if (\"\" !== a) {\n var g = t.createElementNS(b, \"rect\");\n r(g, {\n width: a,\n \"stroke-width\": 0\n });\n this.element.parentNode.appendChild(g);\n c = g.getBBox().width;\n g.parentNode.removeChild(g);\n }\n return c;\n };\n\n f.prototype.symbolAttr = function (a) {\n var c = this;\n \"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function (g) {\n c[g] = u(a[g], c[g]);\n });\n c.attr({\n d: c.renderer.symbols[c.symbolName](c.x, c.y, c.width, c.height, c)\n });\n };\n\n f.prototype.textSetter = function (a) {\n a !== this.textStr && (delete this.textPxLength, this.textStr = a, this.added && this.renderer.buildText(this));\n };\n\n f.prototype.titleSetter = function (a) {\n var c = this.element,\n g = c.getElementsByTagName(\"title\")[0] || t.createElementNS(this.SVG_NS, \"title\");\n c.insertBefore ? c.insertBefore(g, c.firstChild) : c.appendChild(g);\n g.textContent = String(u(a, \"\")).replace(/<[^>]*>/g, \"\").replace(/</g, \"<\").replace(/>/g, \">\");\n };\n\n f.prototype.toFront = function () {\n var a = this.element;\n a.parentNode.appendChild(a);\n return this;\n };\n\n f.prototype.translate = function (a, c) {\n return this.attr({\n translateX: a,\n translateY: c\n });\n };\n\n f.prototype.updateShadows = function (a, c, g) {\n var b = this.shadows;\n if (b) for (var k = b.length; k--;) g.call(b[k], \"height\" === a ? Math.max(c - (b[k].cutHeight || 0), 0) : \"d\" === a ? this.d : c, a, b[k]);\n };\n\n f.prototype.updateTransform = function () {\n var a = this.scaleX,\n c = this.scaleY,\n g = this.inverted,\n b = this.rotation,\n k = this.matrix,\n m = this.element,\n d = this.translateX || 0,\n n = this.translateY || 0;\n g && (d += this.width, n += this.height);\n d = [\"translate(\" + d + \",\" + n + \")\"];\n w(k) && d.push(\"matrix(\" + k.join(\",\") + \")\");\n g ? d.push(\"rotate(90) scale(-1,1)\") : b && d.push(\"rotate(\" + b + \" \" + u(this.rotationOriginX, m.getAttribute(\"x\"), 0) + \" \" + u(this.rotationOriginY, m.getAttribute(\"y\") || 0) + \")\");\n (w(a) || w(c)) && d.push(\"scale(\" + u(a, 1) + \" \" + u(c, 1) + \")\");\n d.length && m.setAttribute(\"transform\", d.join(\" \"));\n };\n\n f.prototype.visibilitySetter = function (a, c, g) {\n \"inherit\" === a ? g.removeAttribute(c) : this[c] !== a && g.setAttribute(c, a);\n this[c] = a;\n };\n\n f.prototype.xGetter = function (a) {\n \"circle\" === this.element.nodeName && (\"x\" === a ? a = \"cx\" : \"y\" === a && (a = \"cy\"));\n return this._defaultGetter(a);\n };\n\n f.prototype.zIndexSetter = function (a, c) {\n var g = this.renderer,\n b = this.parentGroup,\n k = (b || g).element || g.box,\n u = this.element;\n g = k === g.box;\n var d = !1;\n var m = this.added;\n var F;\n w(a) ? (u.setAttribute(\"data-z-index\", a), a = +a, this[c] === a && (m = !1)) : w(this[c]) && u.removeAttribute(\"data-z-index\");\n this[c] = a;\n\n if (m) {\n (a = this.zIndex) && b && (b.handleZ = !0);\n c = k.childNodes;\n\n for (F = c.length - 1; 0 <= F && !d; F--) {\n b = c[F];\n m = b.getAttribute(\"data-z-index\");\n var n = !w(m);\n if (b !== u) if (0 > a && n && !g && !F) k.insertBefore(u, c[F]), d = !0;else if (L(m) <= a || n && (!w(a) || 0 <= a)) k.insertBefore(u, c[F + 1] || null), d = !0;\n }\n\n d || (k.insertBefore(u, c[g ? 3 : 0] || null), d = !0);\n }\n\n return d;\n };\n\n return f;\n }();\n\n f.prototype[\"stroke-widthSetter\"] = f.prototype.strokeSetter;\n f.prototype.yGetter = f.prototype.xGetter;\n\n f.prototype.matrixSetter = f.prototype.rotationOriginXSetter = f.prototype.rotationOriginYSetter = f.prototype.rotationSetter = f.prototype.scaleXSetter = f.prototype.scaleYSetter = f.prototype.translateXSetter = f.prototype.translateYSetter = f.prototype.verticalAlignSetter = function (a, c) {\n this[c] = a;\n this.doTransform = !0;\n };\n\n \"\";\n return f;\n });\n K(l, \"Core/Renderer/RendererRegistry.js\", [l[\"Core/Globals.js\"]], function (f) {\n var e;\n\n (function (e) {\n e.rendererTypes = {};\n var l;\n\n e.getRendererType = function (f) {\n void 0 === f && (f = l);\n return e.rendererTypes[f] || e.rendererTypes[l];\n };\n\n e.registerRendererType = function (v, P, G) {\n e.rendererTypes[v] = P;\n if (!l || G) l = v, f.Renderer = P;\n };\n })(e || (e = {}));\n\n return e;\n });\n K(l, \"Core/Renderer/SVG/SVGLabel.js\", [l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = this && this.__extends || function () {\n var e = function (h, d) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var p in d) d.hasOwnProperty(p) && (b[p] = d[p]);\n };\n\n return e(h, d);\n };\n\n return function (h, d) {\n function b() {\n this.constructor = h;\n }\n\n e(h, d);\n h.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b());\n };\n }(),\n C = e.defined,\n v = e.extend,\n E = e.isNumber,\n G = e.merge,\n B = e.pick,\n y = e.removeEvent;\n\n return function (e) {\n function h(d, b, p, q, r, n, f, w, z, x) {\n var m = e.call(this) || this;\n m.paddingLeftSetter = m.paddingSetter;\n m.paddingRightSetter = m.paddingSetter;\n m.init(d, \"g\");\n m.textStr = b;\n m.x = p;\n m.y = q;\n m.anchorX = n;\n m.anchorY = f;\n m.baseline = z;\n m.className = x;\n m.addClass(\"button\" === x ? \"highcharts-no-tooltip\" : \"highcharts-label\");\n x && m.addClass(\"highcharts-\" + x);\n m.text = d.text(void 0, 0, 0, w).attr({\n zIndex: 1\n });\n var k;\n \"string\" === typeof r && ((k = /^url\\((.*?)\\)$/.test(r)) || m.renderer.symbols[r]) && (m.symbolKey = r);\n m.bBox = h.emptyBBox;\n m.padding = 3;\n m.baselineOffset = 0;\n m.needsBox = d.styledMode || k;\n m.deferredAttr = {};\n m.alignFactor = 0;\n return m;\n }\n\n l(h, e);\n\n h.prototype.alignSetter = function (d) {\n d = {\n left: 0,\n center: .5,\n right: 1\n }[d];\n d !== this.alignFactor && (this.alignFactor = d, this.bBox && E(this.xSetting) && this.attr({\n x: this.xSetting\n }));\n };\n\n h.prototype.anchorXSetter = function (d, b) {\n this.anchorX = d;\n this.boxAttr(b, Math.round(d) - this.getCrispAdjust() - this.xSetting);\n };\n\n h.prototype.anchorYSetter = function (d, b) {\n this.anchorY = d;\n this.boxAttr(b, d - this.ySetting);\n };\n\n h.prototype.boxAttr = function (d, b) {\n this.box ? this.box.attr(d, b) : this.deferredAttr[d] = b;\n };\n\n h.prototype.css = function (d) {\n if (d) {\n var b = {};\n d = G(d);\n h.textProps.forEach(function (p) {\n \"undefined\" !== typeof d[p] && (b[p] = d[p], delete d[p]);\n });\n this.text.css(b);\n var p = (\"width\" in b);\n \"fontSize\" in b || \"fontWeight\" in b ? this.updateTextPadding() : p && this.updateBoxSize();\n }\n\n return f.prototype.css.call(this, d);\n };\n\n h.prototype.destroy = function () {\n y(this.element, \"mouseenter\");\n y(this.element, \"mouseleave\");\n this.text && this.text.destroy();\n this.box && (this.box = this.box.destroy());\n f.prototype.destroy.call(this);\n };\n\n h.prototype.fillSetter = function (d, b) {\n d && (this.needsBox = !0);\n this.fill = d;\n this.boxAttr(b, d);\n };\n\n h.prototype.getBBox = function () {\n this.textStr && 0 === this.bBox.width && 0 === this.bBox.height && this.updateBoxSize();\n var d = this.padding,\n b = B(this.paddingLeft, d);\n return {\n width: this.width,\n height: this.height,\n x: this.bBox.x - b,\n y: this.bBox.y - d\n };\n };\n\n h.prototype.getCrispAdjust = function () {\n return this.renderer.styledMode && this.box ? this.box.strokeWidth() % 2 / 2 : (this[\"stroke-width\"] ? parseInt(this[\"stroke-width\"], 10) : 0) % 2 / 2;\n };\n\n h.prototype.heightSetter = function (d) {\n this.heightSetting = d;\n };\n\n h.prototype.onAdd = function () {\n var d = this.textStr;\n this.text.add(this);\n this.attr({\n text: C(d) ? d : \"\",\n x: this.x,\n y: this.y\n });\n this.box && C(this.anchorX) && this.attr({\n anchorX: this.anchorX,\n anchorY: this.anchorY\n });\n };\n\n h.prototype.paddingSetter = function (d, b) {\n E(d) ? d !== this[b] && (this[b] = d, this.updateTextPadding()) : this[b] = void 0;\n };\n\n h.prototype.rSetter = function (d, b) {\n this.boxAttr(b, d);\n };\n\n h.prototype.shadow = function (d) {\n d && !this.renderer.styledMode && (this.updateBoxSize(), this.box && this.box.shadow(d));\n return this;\n };\n\n h.prototype.strokeSetter = function (d, b) {\n this.stroke = d;\n this.boxAttr(b, d);\n };\n\n h.prototype[\"stroke-widthSetter\"] = function (d, b) {\n d && (this.needsBox = !0);\n this[\"stroke-width\"] = d;\n this.boxAttr(b, d);\n };\n\n h.prototype[\"text-alignSetter\"] = function (d) {\n this.textAlign = d;\n };\n\n h.prototype.textSetter = function (d) {\n \"undefined\" !== typeof d && this.text.attr({\n text: d\n });\n this.updateTextPadding();\n };\n\n h.prototype.updateBoxSize = function () {\n var d = this.text.element.style,\n b = {},\n p = this.padding,\n q = this.bBox = E(this.widthSetting) && E(this.heightSetting) && !this.textAlign || !C(this.text.textStr) ? h.emptyBBox : this.text.getBBox();\n this.width = this.getPaddedWidth();\n this.height = (this.heightSetting || q.height || 0) + 2 * p;\n d = this.renderer.fontMetrics(d && d.fontSize, this.text);\n this.baselineOffset = p + Math.min((this.text.firstLineMetrics || d).b, q.height || Infinity);\n this.heightSetting && (this.baselineOffset += (this.heightSetting - d.h) / 2);\n this.needsBox && (this.box || (p = this.box = this.symbolKey ? this.renderer.symbol(this.symbolKey) : this.renderer.rect(), p.addClass((\"button\" === this.className ? \"\" : \"highcharts-label-box\") + (this.className ? \" highcharts-\" + this.className + \"-box\" : \"\")), p.add(this)), p = this.getCrispAdjust(), b.x = p, b.y = (this.baseline ? -this.baselineOffset : 0) + p, b.width = Math.round(this.width), b.height = Math.round(this.height), this.box.attr(v(b, this.deferredAttr)), this.deferredAttr = {});\n };\n\n h.prototype.updateTextPadding = function () {\n var d = this.text;\n this.updateBoxSize();\n var b = this.baseline ? 0 : this.baselineOffset,\n p = B(this.paddingLeft, this.padding);\n C(this.widthSetting) && this.bBox && (\"center\" === this.textAlign || \"right\" === this.textAlign) && (p += {\n center: .5,\n right: 1\n }[this.textAlign] * (this.widthSetting - this.bBox.width));\n if (p !== d.x || b !== d.y) d.attr(\"x\", p), d.hasBoxWidthChanged && (this.bBox = d.getBBox(!0)), \"undefined\" !== typeof b && d.attr(\"y\", b);\n d.x = p;\n d.y = b;\n };\n\n h.prototype.widthSetter = function (d) {\n this.widthSetting = E(d) ? d : void 0;\n };\n\n h.prototype.getPaddedWidth = function () {\n var d = this.padding,\n b = B(this.paddingLeft, d);\n d = B(this.paddingRight, d);\n return (this.widthSetting || this.bBox.width || 0) + b + d;\n };\n\n h.prototype.xSetter = function (d) {\n this.x = d;\n this.alignFactor && (d -= this.alignFactor * this.getPaddedWidth(), this[\"forceAnimate:x\"] = !0);\n this.xSetting = Math.round(d);\n this.attr(\"translateX\", this.xSetting);\n };\n\n h.prototype.ySetter = function (d) {\n this.ySetting = this.y = Math.round(d);\n this.attr(\"translateY\", this.ySetting);\n };\n\n h.emptyBBox = {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n h.textProps = \"color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");\n return h;\n }(f);\n });\n K(l, \"Core/Renderer/SVG/Symbols.js\", [l[\"Core/Utilities.js\"]], function (f) {\n function e(e, f, t, h, d) {\n var b = [];\n\n if (d) {\n var p = d.start || 0,\n q = G(d.r, t);\n t = G(d.r, h || t);\n var r = (d.end || 0) - .001;\n h = d.innerR;\n var n = G(d.open, .001 > Math.abs((d.end || 0) - p - 2 * Math.PI)),\n J = Math.cos(p),\n w = Math.sin(p),\n z = Math.cos(r),\n x = Math.sin(r);\n p = G(d.longArc, .001 > r - p - Math.PI ? 0 : 1);\n b.push([\"M\", e + q * J, f + t * w], [\"A\", q, t, 0, p, G(d.clockwise, 1), e + q * z, f + t * x]);\n v(h) && b.push(n ? [\"M\", e + h * z, f + h * x] : [\"L\", e + h * z, f + h * x], [\"A\", h, h, 0, p, v(d.clockwise) ? 1 - d.clockwise : 0, e + h * J, f + h * w]);\n n || b.push([\"Z\"]);\n }\n\n return b;\n }\n\n function l(e, f, t, h, d) {\n return d && d.r ? C(e, f, t, h, d) : [[\"M\", e, f], [\"L\", e + t, f], [\"L\", e + t, f + h], [\"L\", e, f + h], [\"Z\"]];\n }\n\n function C(e, f, t, h, d) {\n d = d && d.r || 0;\n return [[\"M\", e + d, f], [\"L\", e + t - d, f], [\"C\", e + t, f, e + t, f, e + t, f + d], [\"L\", e + t, f + h - d], [\"C\", e + t, f + h, e + t, f + h, e + t - d, f + h], [\"L\", e + d, f + h], [\"C\", e, f + h, e, f + h, e, f + h - d], [\"L\", e, f + d], [\"C\", e, f, e, f, e + d, f]];\n }\n\n var v = f.defined,\n E = f.isNumber,\n G = f.pick;\n return {\n arc: e,\n callout: function (e, f, t, h, d) {\n var b = Math.min(d && d.r || 0, t, h),\n p = b + 6,\n q = d && d.anchorX;\n d = d && d.anchorY || 0;\n var r = C(e, f, t, h, {\n r: b\n });\n if (!E(q)) return r;\n e + q >= t ? d > f + p && d < f + h - p ? r.splice(3, 1, [\"L\", e + t, d - 6], [\"L\", e + t + 6, d], [\"L\", e + t, d + 6], [\"L\", e + t, f + h - b]) : r.splice(3, 1, [\"L\", e + t, h / 2], [\"L\", q, d], [\"L\", e + t, h / 2], [\"L\", e + t, f + h - b]) : 0 >= e + q ? d > f + p && d < f + h - p ? r.splice(7, 1, [\"L\", e, d + 6], [\"L\", e - 6, d], [\"L\", e, d - 6], [\"L\", e, f + b]) : r.splice(7, 1, [\"L\", e, h / 2], [\"L\", q, d], [\"L\", e, h / 2], [\"L\", e, f + b]) : d && d > h && q > e + p && q < e + t - p ? r.splice(5, 1, [\"L\", q + 6, f + h], [\"L\", q, f + h + 6], [\"L\", q - 6, f + h], [\"L\", e + b, f + h]) : d && 0 > d && q > e + p && q < e + t - p && r.splice(1, 1, [\"L\", q - 6, f], [\"L\", q, f - 6], [\"L\", q + 6, f], [\"L\", t - b, f]);\n return r;\n },\n circle: function (f, l, t, h) {\n return e(f + t / 2, l + h / 2, t / 2, h / 2, {\n start: .5 * Math.PI,\n end: 2.5 * Math.PI,\n open: !1\n });\n },\n diamond: function (e, f, t, h) {\n return [[\"M\", e + t / 2, f], [\"L\", e + t, f + h / 2], [\"L\", e + t / 2, f + h], [\"L\", e, f + h / 2], [\"Z\"]];\n },\n rect: l,\n roundedRect: C,\n square: l,\n triangle: function (e, f, t, h) {\n return [[\"M\", e + t / 2, f], [\"L\", e + t, f + h], [\"L\", e, f + h], [\"Z\"]];\n },\n \"triangle-down\": function (e, f, t, h) {\n return [[\"M\", e, f], [\"L\", e + t, f], [\"L\", e + t / 2, f + h], [\"Z\"]];\n }\n };\n });\n K(l, \"Core/Renderer/SVG/TextBuilder.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var P = e.doc,\n v = e.SVG_NS,\n E = e.win,\n G = l.attr,\n B = l.extend,\n y = l.isString,\n t = l.objectEach,\n h = l.pick;\n return function () {\n function d(b) {\n var d = b.styles;\n this.renderer = b.renderer;\n this.svgElement = b;\n this.width = b.textWidth;\n this.textLineHeight = d && d.lineHeight;\n this.textOutline = d && d.textOutline;\n this.ellipsis = !(!d || \"ellipsis\" !== d.textOverflow);\n this.noWrap = !(!d || \"nowrap\" !== d.whiteSpace);\n this.fontSize = d && d.fontSize;\n }\n\n d.prototype.buildSVG = function () {\n var b = this.svgElement,\n d = b.element,\n e = b.renderer,\n r = h(b.textStr, \"\").toString(),\n n = -1 !== r.indexOf(\"<\"),\n J = d.childNodes;\n e = this.width && !b.added && e.box;\n var w = //g,\n z = [r, this.ellipsis, this.noWrap, this.textLineHeight, this.textOutline, this.fontSize, this.width].join();\n\n if (z !== b.textCache) {\n b.textCache = z;\n delete b.actualWidth;\n\n for (z = J.length; z--;) d.removeChild(J[z]);\n\n n || this.ellipsis || this.width || -1 !== r.indexOf(\" \") && (!this.noWrap || w.test(r)) ? \"\" !== r && (e && e.appendChild(d), r = new f(r), this.modifyTree(r.nodes), r.addToDOM(b.element), this.modifyDOM(), this.ellipsis && -1 !== (d.textContent || \"\").indexOf(\"\\u2026\") && b.attr(\"title\", this.unescapeEntities(b.textStr || \"\", [\"<\", \">\"])), e && e.removeChild(d)) : d.appendChild(P.createTextNode(this.unescapeEntities(r)));\n y(this.textOutline) && b.applyTextOutline && b.applyTextOutline(this.textOutline);\n }\n };\n\n d.prototype.modifyDOM = function () {\n var b = this,\n d = this.svgElement,\n e = G(d.element, \"x\");\n d.firstLineMetrics = void 0;\n\n for (var r; r = d.element.firstChild;) if (/^[\\s\\u200B]*$/.test(r.textContent || \" \")) d.element.removeChild(r);else break;\n\n [].forEach.call(d.element.querySelectorAll(\"tspan.highcharts-br\"), function (n, r) {\n n.nextSibling && n.previousSibling && (0 === r && 1 === n.previousSibling.nodeType && (d.firstLineMetrics = d.renderer.fontMetrics(void 0, n.previousSibling)), G(n, {\n dy: b.getLineHeight(n.nextSibling),\n x: e\n }));\n });\n var n = this.width || 0;\n\n if (n) {\n var h = function (r, p) {\n var m = r.textContent || \"\",\n k = m.replace(/([^\\^])-/g, \"$1- \").split(\" \"),\n a = !b.noWrap && (1 < k.length || 1 < d.element.childNodes.length),\n g = b.getLineHeight(p),\n c = 0,\n D = d.actualWidth;\n if (b.ellipsis) m && b.truncate(r, m, void 0, 0, Math.max(0, n - parseInt(b.fontSize || 12, 10)), function (a, c) {\n return a.substring(0, c) + \"\\u2026\";\n });else if (a) {\n m = [];\n\n for (a = []; p.firstChild && p.firstChild !== r;) a.push(p.firstChild), p.removeChild(p.firstChild);\n\n for (; k.length;) k.length && !b.noWrap && 0 < c && (m.push(r.textContent || \"\"), r.textContent = k.join(\" \").replace(/- /g, \"-\")), b.truncate(r, void 0, k, 0 === c ? D || 0 : 0, n, function (a, c) {\n return k.slice(0, c).join(\" \").replace(/- /g, \"-\");\n }), D = d.actualWidth, c++;\n\n a.forEach(function (a) {\n p.insertBefore(a, r);\n });\n m.forEach(function (a) {\n p.insertBefore(P.createTextNode(a), r);\n a = P.createElementNS(v, \"tspan\");\n a.textContent = \"\\u200b\";\n G(a, {\n dy: g,\n x: e\n });\n p.insertBefore(a, r);\n });\n }\n },\n f = function (b) {\n [].slice.call(b.childNodes).forEach(function (n) {\n n.nodeType === E.Node.TEXT_NODE ? h(n, b) : (-1 !== n.className.baseVal.indexOf(\"highcharts-br\") && (d.actualWidth = 0), f(n));\n });\n };\n\n f(d.element);\n }\n };\n\n d.prototype.getLineHeight = function (b) {\n var d;\n b = b.nodeType === E.Node.TEXT_NODE ? b.parentElement : b;\n this.renderer.styledMode || (d = b && /(px|em)$/.test(b.style.fontSize) ? b.style.fontSize : this.fontSize || this.renderer.style.fontSize || 12);\n return this.textLineHeight ? parseInt(this.textLineHeight.toString(), 10) : this.renderer.fontMetrics(d, b || this.svgElement.element).h;\n };\n\n d.prototype.modifyTree = function (b) {\n var d = this,\n e = function (r, n) {\n var p = r.attributes;\n p = void 0 === p ? {} : p;\n var h = r.children,\n q = r.style;\n q = void 0 === q ? {} : q;\n var f = r.tagName,\n m = d.renderer.styledMode;\n if (\"b\" === f || \"strong\" === f) m ? p[\"class\"] = \"highcharts-strong\" : q.fontWeight = \"bold\";else if (\"i\" === f || \"em\" === f) m ? p[\"class\"] = \"highcharts-emphasized\" : q.fontStyle = \"italic\";\n q && q.color && (q.fill = q.color);\n \"br\" === f ? (p[\"class\"] = \"highcharts-br\", r.textContent = \"\\u200b\", (n = b[n + 1]) && n.textContent && (n.textContent = n.textContent.replace(/^ +/gm, \"\"))) : \"a\" === f && h && h.some(function (b) {\n return \"#text\" === b.tagName;\n }) && (r.children = [{\n children: h,\n tagName: \"tspan\"\n }]);\n \"#text\" !== f && \"a\" !== f && (r.tagName = \"tspan\");\n B(r, {\n attributes: p,\n style: q\n });\n h && h.filter(function (b) {\n return \"#text\" !== b.tagName;\n }).forEach(e);\n };\n\n b.forEach(e);\n };\n\n d.prototype.truncate = function (b, d, e, r, n, h) {\n var p = this.svgElement,\n f = p.renderer,\n q = p.rotation,\n m = [],\n k = e ? 1 : 0,\n a = (d || e || \"\").length,\n g = a,\n c,\n D = function (a, c) {\n c = c || a;\n var g = b.parentNode;\n if (g && \"undefined\" === typeof m[c]) if (g.getSubStringLength) try {\n m[c] = r + g.getSubStringLength(0, e ? c + 1 : c);\n } catch (R) {\n \"\";\n } else f.getSpanWidth && (b.textContent = h(d || e, a), m[c] = r + f.getSpanWidth(p, b));\n return m[c];\n };\n\n p.rotation = 0;\n var A = D(b.textContent.length);\n\n if (r + A > n) {\n for (; k <= a;) g = Math.ceil((k + a) / 2), e && (c = h(e, g)), A = D(g, c && c.length - 1), k === a ? k = a + 1 : A > n ? a = g - 1 : k = g;\n\n 0 === a ? b.textContent = \"\" : d && a === d.length - 1 || (b.textContent = c || h(d || e, g));\n }\n\n e && e.splice(0, g);\n p.actualWidth = A;\n p.rotation = q;\n };\n\n d.prototype.unescapeEntities = function (b, d) {\n t(this.renderer.escapes, function (e, r) {\n d && -1 !== d.indexOf(e) || (b = b.toString().replace(new RegExp(e, \"g\"), r));\n });\n return b;\n };\n\n return d;\n }();\n });\n K(l, \"Core/Renderer/SVG/SVGRenderer.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Renderer/SVG/SVGLabel.js\"], l[\"Core/Renderer/SVG/Symbols.js\"], l[\"Core/Renderer/SVG/TextBuilder.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B, y) {\n var t = l.charts,\n h = l.deg2rad,\n d = l.doc,\n b = l.isFirefox,\n p = l.isMS,\n q = l.isWebKit,\n r = l.noop,\n n = l.SVG_NS,\n J = l.symbolSizes,\n w = l.win,\n z = y.addEvent,\n x = y.attr,\n m = y.createElement,\n k = y.css,\n a = y.defined,\n g = y.destroyObjectProperties,\n c = y.extend,\n D = y.isArray,\n A = y.isNumber,\n u = y.isObject,\n L = y.isString,\n S = y.merge,\n R = y.pick,\n M = y.pInt,\n U = y.uniqueKey,\n aa;\n\n l = function () {\n function I(a, c, g, b, d, k, m) {\n this.width = this.url = this.style = this.isSVG = this.imgCount = this.height = this.gradients = this.globalAnimation = this.defs = this.chartIndex = this.cacheKeys = this.cache = this.boxWrapper = this.box = this.alignedObjects = void 0;\n this.init(a, c, g, b, d, k, m);\n }\n\n I.prototype.init = function (a, c, g, m, u, F, I) {\n var n = this.createElement(\"svg\").attr({\n version: \"1.1\",\n \"class\": \"highcharts-root\"\n }),\n H = n.element;\n I || n.css(this.getStyle(m));\n a.appendChild(H);\n x(a, \"dir\", \"ltr\");\n -1 === a.innerHTML.indexOf(\"xmlns\") && x(H, \"xmlns\", this.SVG_NS);\n this.isSVG = !0;\n this.box = H;\n this.boxWrapper = n;\n this.alignedObjects = [];\n this.url = this.getReferenceURL();\n this.createElement(\"desc\").add().element.appendChild(d.createTextNode(\"Created with Highcharts 10.2.0\"));\n this.defs = this.createElement(\"defs\").add();\n this.allowHTML = F;\n this.forExport = u;\n this.styledMode = I;\n this.gradients = {};\n this.cache = {};\n this.cacheKeys = [];\n this.imgCount = 0;\n this.setSize(c, g, !1);\n var e;\n b && a.getBoundingClientRect && (c = function () {\n k(a, {\n left: 0,\n top: 0\n });\n e = a.getBoundingClientRect();\n k(a, {\n left: Math.ceil(e.left) - e.left + \"px\",\n top: Math.ceil(e.top) - e.top + \"px\"\n });\n }, c(), this.unSubPixelFix = z(w, \"resize\", c));\n };\n\n I.prototype.definition = function (a) {\n return new f([a]).addToDOM(this.defs.element);\n };\n\n I.prototype.getReferenceURL = function () {\n if ((b || q) && d.getElementsByTagName(\"base\").length) {\n if (!a(aa)) {\n var c = U();\n c = new f([{\n tagName: \"svg\",\n attributes: {\n width: 8,\n height: 8\n },\n children: [{\n tagName: \"defs\",\n children: [{\n tagName: \"clipPath\",\n attributes: {\n id: c\n },\n children: [{\n tagName: \"rect\",\n attributes: {\n width: 4,\n height: 4\n }\n }]\n }]\n }, {\n tagName: \"rect\",\n attributes: {\n id: \"hitme\",\n width: 8,\n height: 8,\n \"clip-path\": \"url(#\".concat(c, \")\"),\n fill: \"rgba(0,0,0,0.001)\"\n }\n }]\n }]).addToDOM(d.body);\n k(c, {\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 9E5\n });\n var g = d.elementFromPoint(6, 6);\n aa = \"hitme\" === (g && g.id);\n d.body.removeChild(c);\n }\n\n if (aa) return w.location.href.split(\"#\")[0].replace(/<[^>]*>/g, \"\").replace(/([\\('\\)])/g, \"\\\\$1\").replace(/ /g, \"%20\");\n }\n\n return \"\";\n };\n\n I.prototype.getStyle = function (a) {\n return this.style = c({\n fontFamily: '\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',\n fontSize: \"12px\"\n }, a);\n };\n\n I.prototype.setStyle = function (a) {\n this.boxWrapper.css(this.getStyle(a));\n };\n\n I.prototype.isHidden = function () {\n return !this.boxWrapper.getBBox().width;\n };\n\n I.prototype.destroy = function () {\n var a = this.defs;\n this.box = null;\n this.boxWrapper = this.boxWrapper.destroy();\n g(this.gradients || {});\n this.gradients = null;\n a && (this.defs = a.destroy());\n this.unSubPixelFix && this.unSubPixelFix();\n return this.alignedObjects = null;\n };\n\n I.prototype.createElement = function (a) {\n var c = new this.Element();\n c.init(this, a);\n return c;\n };\n\n I.prototype.getRadialAttr = function (a, c) {\n return {\n cx: a[0] - a[2] / 2 + (c.cx || 0) * a[2],\n cy: a[1] - a[2] / 2 + (c.cy || 0) * a[2],\n r: (c.r || 0) * a[2]\n };\n };\n\n I.prototype.buildText = function (a) {\n new B(a).buildSVG();\n };\n\n I.prototype.getContrast = function (a) {\n a = e.parse(a).rgba.map(function (a) {\n a /= 255;\n return .03928 >= a ? a / 12.92 : Math.pow((a + .055) / 1.055, 2.4);\n });\n a = .2126 * a[0] + .7152 * a[1] + .0722 * a[2];\n return 1.05 / (a + .05) > (a + .05) / .05 ? \"#FFFFFF\" : \"#000000\";\n };\n\n I.prototype.button = function (a, g, b, d, k, m, I, n, e, r) {\n void 0 === k && (k = {});\n var F = this.label(a, g, b, e, void 0, void 0, r, void 0, \"button\"),\n D = this.styledMode;\n a = k.states || {};\n var A = 0;\n k = S(k);\n delete k.states;\n var H = S({\n color: \"#333333\",\n cursor: \"pointer\",\n fontWeight: \"normal\"\n }, k.style);\n delete k.style;\n var h = f.filterUserAttributes(k);\n F.attr(S({\n padding: 8,\n r: 2\n }, h));\n\n if (!D) {\n h = S({\n fill: \"#f7f7f7\",\n stroke: \"#cccccc\",\n \"stroke-width\": 1\n }, h);\n m = S(h, {\n fill: \"#e6e6e6\"\n }, f.filterUserAttributes(m || a.hover || {}));\n var q = m.style;\n delete m.style;\n I = S(h, {\n fill: \"#e6ebf5\",\n style: {\n color: \"#000000\",\n fontWeight: \"bold\"\n }\n }, f.filterUserAttributes(I || a.select || {}));\n var N = I.style;\n delete I.style;\n n = S(h, {\n style: {\n color: \"#cccccc\"\n }\n }, f.filterUserAttributes(n || a.disabled || {}));\n var w = n.style;\n delete n.style;\n }\n\n z(F.element, p ? \"mouseover\" : \"mouseenter\", function () {\n 3 !== A && F.setState(1);\n });\n z(F.element, p ? \"mouseout\" : \"mouseleave\", function () {\n 3 !== A && F.setState(A);\n });\n\n F.setState = function (a) {\n 1 !== a && (F.state = A = a);\n F.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\" + [\"normal\", \"hover\", \"pressed\", \"disabled\"][a || 0]);\n D || (F.attr([h, m, I, n][a || 0]), a = [H, q, N, w][a || 0], u(a) && F.css(a));\n };\n\n D || F.attr(h).css(c({\n cursor: \"default\"\n }, H));\n return F.on(\"touchstart\", function (a) {\n return a.stopPropagation();\n }).on(\"click\", function (a) {\n 3 !== A && d.call(F, a);\n });\n };\n\n I.prototype.crispLine = function (c, g, b) {\n void 0 === b && (b = \"round\");\n var d = c[0],\n k = c[1];\n a(d[1]) && d[1] === k[1] && (d[1] = k[1] = Math[b](d[1]) - g % 2 / 2);\n a(d[2]) && d[2] === k[2] && (d[2] = k[2] = Math[b](d[2]) + g % 2 / 2);\n return c;\n };\n\n I.prototype.path = function (a) {\n var g = this.styledMode ? {} : {\n fill: \"none\"\n };\n D(a) ? g.d = a : u(a) && c(g, a);\n return this.createElement(\"path\").attr(g);\n };\n\n I.prototype.circle = function (a, c, g) {\n a = u(a) ? a : \"undefined\" === typeof a ? {} : {\n x: a,\n y: c,\n r: g\n };\n c = this.createElement(\"circle\");\n\n c.xSetter = c.ySetter = function (a, c, g) {\n g.setAttribute(\"c\" + c, a);\n };\n\n return c.attr(a);\n };\n\n I.prototype.arc = function (a, c, g, b, d, k) {\n u(a) ? (b = a, c = b.y, g = b.r, a = b.x) : b = {\n innerR: b,\n start: d,\n end: k\n };\n a = this.symbol(\"arc\", a, c, g, g, b);\n a.r = g;\n return a;\n };\n\n I.prototype.rect = function (a, c, g, b, d, k) {\n d = u(a) ? a.r : d;\n var m = this.createElement(\"rect\");\n a = u(a) ? a : \"undefined\" === typeof a ? {} : {\n x: a,\n y: c,\n width: Math.max(g, 0),\n height: Math.max(b, 0)\n };\n this.styledMode || (\"undefined\" !== typeof k && (a[\"stroke-width\"] = k, a = m.crisp(a)), a.fill = \"none\");\n d && (a.r = d);\n\n m.rSetter = function (a, c, g) {\n m.r = a;\n x(g, {\n rx: a,\n ry: a\n });\n };\n\n m.rGetter = function () {\n return m.r || 0;\n };\n\n return m.attr(a);\n };\n\n I.prototype.setSize = function (a, c, g) {\n this.width = a;\n this.height = c;\n this.boxWrapper.animate({\n width: a,\n height: c\n }, {\n step: function () {\n this.attr({\n viewBox: \"0 0 \" + this.attr(\"width\") + \" \" + this.attr(\"height\")\n });\n },\n duration: R(g, !0) ? void 0 : 0\n });\n this.alignElements();\n };\n\n I.prototype.g = function (a) {\n var c = this.createElement(\"g\");\n return a ? c.attr({\n \"class\": \"highcharts-\" + a\n }) : c;\n };\n\n I.prototype.image = function (a, c, g, b, d, k) {\n var m = {\n preserveAspectRatio: \"none\"\n },\n u = function (a, c) {\n a.setAttributeNS ? a.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", c) : a.setAttribute(\"hc-svg-href\", c);\n };\n\n A(c) && (m.x = c);\n A(g) && (m.y = g);\n A(b) && (m.width = b);\n A(d) && (m.height = d);\n var F = this.createElement(\"image\").attr(m);\n\n c = function (c) {\n u(F.element, a);\n k.call(F, c);\n };\n\n k ? (u(F.element, \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"), g = new w.Image(), z(g, \"load\", c), g.src = a, g.complete && c({})) : u(F.element, a);\n return F;\n };\n\n I.prototype.symbol = function (g, b, u, I, n, F) {\n var e = this,\n r = /^url\\((.*?)\\)$/,\n D = r.test(g),\n p = !D && (this.symbols[g] ? g : \"circle\"),\n A = p && this.symbols[p],\n h;\n\n if (A) {\n \"number\" === typeof b && (h = A.call(this.symbols, Math.round(b || 0), Math.round(u || 0), I || 0, n || 0, F));\n var f = this.path(h);\n e.styledMode || f.attr(\"fill\", \"none\");\n c(f, {\n symbolName: p || void 0,\n x: b,\n y: u,\n width: I,\n height: n\n });\n F && c(f, F);\n } else if (D) {\n var q = g.match(r)[1];\n var H = f = this.image(q);\n H.imgwidth = R(J[q] && J[q].width, F && F.width);\n H.imgheight = R(J[q] && J[q].height, F && F.height);\n\n var z = function (a) {\n return a.attr({\n width: a.width,\n height: a.height\n });\n };\n\n [\"width\", \"height\"].forEach(function (c) {\n H[c + \"Setter\"] = function (c, g) {\n var b = this[\"img\" + g];\n this[g] = c;\n a(b) && (F && \"within\" === F.backgroundSize && this.width && this.height && (b = Math.round(b * Math.min(this.width / this.imgwidth, this.height / this.imgheight))), this.element && this.element.setAttribute(g, b), this.alignByTranslate || (c = ((this[g] || 0) - b) / 2, this.attr(\"width\" === g ? {\n translateX: c\n } : {\n translateY: c\n })));\n };\n });\n a(b) && H.attr({\n x: b,\n y: u\n });\n H.isImg = !0;\n a(H.imgwidth) && a(H.imgheight) ? z(H) : (H.attr({\n width: 0,\n height: 0\n }), m(\"img\", {\n onload: function () {\n var a = t[e.chartIndex];\n 0 === this.width && (k(this, {\n position: \"absolute\",\n top: \"-999em\"\n }), d.body.appendChild(this));\n J[q] = {\n width: this.width,\n height: this.height\n };\n H.imgwidth = this.width;\n H.imgheight = this.height;\n H.element && z(H);\n this.parentNode && this.parentNode.removeChild(this);\n e.imgCount--;\n if (!e.imgCount && a && !a.hasLoaded) a.onload();\n },\n src: q\n }), this.imgCount++);\n }\n\n return f;\n };\n\n I.prototype.clipRect = function (a, c, g, b) {\n var d = U() + \"-\",\n k = this.createElement(\"clipPath\").attr({\n id: d\n }).add(this.defs);\n a = this.rect(a, c, g, b, 0).add(k);\n a.id = d;\n a.clipPath = k;\n a.count = 0;\n return a;\n };\n\n I.prototype.text = function (c, g, b, d) {\n var k = {};\n if (d && (this.allowHTML || !this.forExport)) return this.html(c, g, b);\n k.x = Math.round(g || 0);\n b && (k.y = Math.round(b));\n a(c) && (k.text = c);\n c = this.createElement(\"text\").attr(k);\n if (!d || this.forExport && !this.allowHTML) c.xSetter = function (a, c, g) {\n for (var b = g.getElementsByTagName(\"tspan\"), d = g.getAttribute(c), k = 0, m; k < b.length; k++) m = b[k], m.getAttribute(c) === d && m.setAttribute(c, a);\n\n g.setAttribute(c, a);\n };\n return c;\n };\n\n I.prototype.fontMetrics = function (a, c) {\n a = !this.styledMode && /px/.test(a) || !w.getComputedStyle ? a || c && c.style && c.style.fontSize || this.style && this.style.fontSize : c && v.prototype.getStyle.call(c, \"font-size\");\n a = /px/.test(a) ? M(a) : 12;\n c = 24 > a ? a + 3 : Math.round(1.2 * a);\n return {\n h: c,\n b: Math.round(.8 * c),\n f: a\n };\n };\n\n I.prototype.rotCorr = function (a, c, g) {\n var b = a;\n c && g && (b = Math.max(b * Math.cos(c * h), 4));\n return {\n x: -a / 3 * Math.sin(c * h),\n y: b\n };\n };\n\n I.prototype.pathToSegments = function (a) {\n for (var c = [], g = [], b = {\n A: 8,\n C: 7,\n H: 2,\n L: 3,\n M: 3,\n Q: 5,\n S: 5,\n T: 3,\n V: 2\n }, d = 0; d < a.length; d++) L(g[0]) && A(a[d]) && g.length === b[g[0].toUpperCase()] && a.splice(d, 0, g[0].replace(\"M\", \"L\").replace(\"m\", \"l\")), \"string\" === typeof a[d] && (g.length && c.push(g.slice(0)), g.length = 0), g.push(a[d]);\n\n c.push(g.slice(0));\n return c;\n };\n\n I.prototype.label = function (a, c, g, b, d, k, m, u, I) {\n return new E(this, a, c, g, b, d, k, m, u, I);\n };\n\n I.prototype.alignElements = function () {\n this.alignedObjects.forEach(function (a) {\n return a.align();\n });\n };\n\n return I;\n }();\n\n c(l.prototype, {\n Element: v,\n SVG_NS: n,\n escapes: {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \"'\": \"'\",\n '\"': \""\"\n },\n symbols: G,\n draw: r\n });\n C.registerRendererType(\"svg\", l, !0);\n \"\";\n return l;\n });\n K(l, \"Core/Renderer/HTML/HTMLElement.js\", [l[\"Core/Globals.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var b = function (d, e) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var n in d) d.hasOwnProperty(n) && (b[n] = d[n]);\n };\n\n return b(d, e);\n };\n\n return function (d, e) {\n function n() {\n this.constructor = d;\n }\n\n b(d, e);\n d.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n());\n };\n }(),\n v = f.isFirefox,\n E = f.isMS,\n G = f.isWebKit,\n B = f.win,\n y = l.css,\n t = l.defined,\n h = l.extend,\n d = l.pick,\n b = l.pInt;\n\n return function (e) {\n function p() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n C(p, e);\n\n p.compose = function (b) {\n if (-1 === p.composedClasses.indexOf(b)) {\n p.composedClasses.push(b);\n var d = p.prototype,\n e = b.prototype;\n e.getSpanCorrection = d.getSpanCorrection;\n e.htmlCss = d.htmlCss;\n e.htmlGetBBox = d.htmlGetBBox;\n e.htmlUpdateTransform = d.htmlUpdateTransform;\n e.setSpanRotation = d.setSpanRotation;\n }\n\n return b;\n };\n\n p.prototype.getSpanCorrection = function (b, d, e) {\n this.xCorr = -b * e;\n this.yCorr = -d;\n };\n\n p.prototype.htmlCss = function (b) {\n var n = \"SPAN\" === this.element.tagName && b && \"width\" in b,\n e = d(n && b.width, void 0);\n\n if (n) {\n delete b.width;\n this.textWidth = e;\n var p = !0;\n }\n\n b && \"ellipsis\" === b.textOverflow && (b.whiteSpace = \"nowrap\", b.overflow = \"hidden\");\n this.styles = h(this.styles, b);\n y(this.element, b);\n p && this.htmlUpdateTransform();\n return this;\n };\n\n p.prototype.htmlGetBBox = function () {\n var b = this.element;\n return {\n x: b.offsetLeft,\n y: b.offsetTop,\n width: b.offsetWidth,\n height: b.offsetHeight\n };\n };\n\n p.prototype.htmlUpdateTransform = function () {\n if (this.added) {\n var d = this.renderer,\n n = this.element,\n e = this.translateX || 0,\n p = this.translateY || 0,\n h = this.x || 0,\n f = this.y || 0,\n m = this.textAlign || \"left\",\n k = {\n left: 0,\n center: .5,\n right: 1\n }[m],\n a = this.styles;\n a = a && a.whiteSpace;\n y(n, {\n marginLeft: e,\n marginTop: p\n });\n !d.styledMode && this.shadows && this.shadows.forEach(function (a) {\n y(a, {\n marginLeft: e + 1,\n marginTop: p + 1\n });\n });\n this.inverted && [].forEach.call(n.childNodes, function (a) {\n d.invertChild(a, n);\n });\n\n if (\"SPAN\" === n.tagName) {\n var g = this.rotation,\n c = this.textWidth && b(this.textWidth),\n D = [g, m, n.innerHTML, this.textWidth, this.textAlign].join(),\n A = void 0;\n A = !1;\n\n if (c !== this.oldTextWidth) {\n if (this.textPxLength) var u = this.textPxLength;else y(n, {\n width: \"\",\n whiteSpace: a || \"nowrap\"\n }), u = n.offsetWidth;\n (c > this.oldTextWidth || u > c) && (/[ \\-]/.test(n.textContent || n.innerText) || \"ellipsis\" === n.style.textOverflow) && (y(n, {\n width: u > c || g ? c + \"px\" : \"auto\",\n display: \"block\",\n whiteSpace: a || \"normal\"\n }), this.oldTextWidth = c, A = !0);\n }\n\n this.hasBoxWidthChanged = A;\n D !== this.cTT && (A = d.fontMetrics(n.style.fontSize, n).b, !t(g) || g === (this.oldRotation || 0) && m === this.oldAlign || this.setSpanRotation(g, k, A), this.getSpanCorrection(!t(g) && this.textPxLength || n.offsetWidth, A, k, g, m));\n y(n, {\n left: h + (this.xCorr || 0) + \"px\",\n top: f + (this.yCorr || 0) + \"px\"\n });\n this.cTT = D;\n this.oldRotation = g;\n this.oldAlign = m;\n }\n } else this.alignOnAdd = !0;\n };\n\n p.prototype.setSpanRotation = function (b, d, e) {\n var n = {},\n p = E && !/Edge/.test(B.navigator.userAgent) ? \"-ms-transform\" : G ? \"-webkit-transform\" : v ? \"MozTransform\" : B.opera ? \"-o-transform\" : void 0;\n p && (n[p] = n.transform = \"rotate(\" + b + \"deg)\", n[p + (v ? \"Origin\" : \"-origin\")] = n.transformOrigin = 100 * d + \"% \" + e + \"px\", y(this.element, n));\n };\n\n p.composedClasses = [];\n return p;\n }(e);\n });\n K(l, \"Core/Renderer/HTML/HTMLRenderer.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Renderer/SVG/SVGRenderer.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = this && this.__extends || function () {\n var e = function (h, d) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(h, d);\n };\n\n return function (h, d) {\n function b() {\n this.constructor = h;\n }\n\n e(h, d);\n h.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b());\n };\n }(),\n E = C.attr,\n G = C.createElement,\n B = C.extend,\n y = C.pick;\n\n return function (t) {\n function h() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n v(h, t);\n\n h.compose = function (d) {\n -1 === h.composedClasses.indexOf(d) && (h.composedClasses.push(d), d.prototype.html = h.prototype.html);\n return d;\n };\n\n h.prototype.html = function (d, b, p) {\n var h = this.createElement(\"span\"),\n r = h.element,\n n = h.renderer,\n t = n.isSVG,\n w = function (b, d) {\n [\"opacity\", \"visibility\"].forEach(function (m) {\n b[m + \"Setter\"] = function (k, a, g) {\n var c = b.div ? b.div.style : d;\n e.prototype[m + \"Setter\"].call(this, k, a, g);\n c && (c[a] = k);\n };\n });\n b.addedSetters = !0;\n };\n\n h.textSetter = function (b) {\n b !== this.textStr && (delete this.bBox, delete this.oldTextWidth, f.setElementHTML(this.element, y(b, \"\")), this.textStr = b, h.doTransform = !0);\n };\n\n t && w(h, h.element.style);\n\n h.xSetter = h.ySetter = h.alignSetter = h.rotationSetter = function (b, d) {\n \"align\" === d ? h.alignValue = h.textAlign = b : h[d] = b;\n h.doTransform = !0;\n };\n\n h.afterSetters = function () {\n this.doTransform && (this.htmlUpdateTransform(), this.doTransform = !1);\n };\n\n h.attr({\n text: d,\n x: Math.round(b),\n y: Math.round(p)\n }).css({\n position: \"absolute\"\n });\n n.styledMode || h.css({\n fontFamily: this.style.fontFamily,\n fontSize: this.style.fontSize\n });\n r.style.whiteSpace = \"nowrap\";\n h.css = h.htmlCss;\n t && (h.add = function (b) {\n var d = n.box.parentNode,\n m = [];\n\n if (this.parentGroup = b) {\n var k = b.div;\n\n if (!k) {\n for (; b;) m.push(b), b = b.parentGroup;\n\n m.reverse().forEach(function (a) {\n function g(c, g) {\n a[g] = c;\n \"translateX\" === g ? e.left = c + \"px\" : e.top = c + \"px\";\n a.doTransform = !0;\n }\n\n var c = E(a.element, \"class\"),\n b = a.styles || {};\n k = a.div = a.div || G(\"div\", c ? {\n className: c\n } : void 0, {\n position: \"absolute\",\n left: (a.translateX || 0) + \"px\",\n top: (a.translateY || 0) + \"px\",\n display: a.display,\n opacity: a.opacity,\n cursor: b.cursor,\n pointerEvents: b.pointerEvents,\n visibility: a.visibility\n }, k || d);\n var e = k.style;\n B(a, {\n classSetter: function (a) {\n return function (c) {\n this.element.setAttribute(\"class\", c);\n a.className = c;\n };\n }(k),\n on: function () {\n m[0].div && h.on.apply({\n element: m[0].div,\n onEvents: a.onEvents\n }, arguments);\n return a;\n },\n translateXSetter: g,\n translateYSetter: g\n });\n a.addedSetters || w(a);\n });\n }\n } else k = d;\n\n k.appendChild(r);\n h.added = !0;\n h.alignOnAdd && h.htmlUpdateTransform();\n return h;\n });\n return h;\n };\n\n h.composedClasses = [];\n return h;\n }(l);\n });\n K(l, \"Core/Axis/AxisDefaults.js\", [], function () {\n var f;\n\n (function (e) {\n e.defaultXAxisOptions = {\n alignTicks: !0,\n allowDecimals: void 0,\n panningEnabled: !0,\n zIndex: 2,\n zoomEnabled: !0,\n dateTimeLabelFormats: {\n millisecond: {\n main: \"%H:%M:%S.%L\",\n range: !1\n },\n second: {\n main: \"%H:%M:%S\",\n range: !1\n },\n minute: {\n main: \"%H:%M\",\n range: !1\n },\n hour: {\n main: \"%H:%M\",\n range: !1\n },\n day: {\n main: \"%e. %b\"\n },\n week: {\n main: \"%e. %b\"\n },\n month: {\n main: \"%b '%y\"\n },\n year: {\n main: \"%Y\"\n }\n },\n endOnTick: !1,\n gridLineDashStyle: \"Solid\",\n gridZIndex: 1,\n labels: {\n autoRotation: void 0,\n autoRotationLimit: 80,\n distance: void 0,\n enabled: !0,\n indentation: 10,\n overflow: \"justify\",\n padding: 5,\n reserveSpace: void 0,\n rotation: void 0,\n staggerLines: 0,\n step: 0,\n useHTML: !1,\n x: 0,\n zIndex: 7,\n style: {\n color: \"#666666\",\n cursor: \"default\",\n fontSize: \"11px\"\n }\n },\n maxPadding: .01,\n minorGridLineDashStyle: \"Solid\",\n minorTickLength: 2,\n minorTickPosition: \"outside\",\n minPadding: .01,\n offset: void 0,\n opposite: !1,\n reversed: void 0,\n reversedStacks: !1,\n showEmpty: !0,\n showFirstLabel: !0,\n showLastLabel: !0,\n startOfWeek: 1,\n startOnTick: !1,\n tickLength: 10,\n tickPixelInterval: 100,\n tickmarkPlacement: \"between\",\n tickPosition: \"outside\",\n title: {\n align: \"middle\",\n rotation: 0,\n useHTML: !1,\n x: 0,\n y: 0,\n style: {\n color: \"#666666\"\n }\n },\n type: \"linear\",\n uniqueNames: !0,\n visible: !0,\n minorGridLineColor: \"#f2f2f2\",\n minorGridLineWidth: 1,\n minorTickColor: \"#999999\",\n lineColor: \"#ccd6eb\",\n lineWidth: 1,\n gridLineColor: \"#e6e6e6\",\n gridLineWidth: void 0,\n tickColor: \"#ccd6eb\"\n };\n e.defaultYAxisOptions = {\n reversedStacks: !0,\n endOnTick: !0,\n maxPadding: .05,\n minPadding: .05,\n tickPixelInterval: 72,\n showLastLabel: !0,\n labels: {\n x: -8\n },\n startOnTick: !0,\n title: {\n rotation: 270,\n text: \"Values\"\n },\n stackLabels: {\n animation: {},\n allowOverlap: !1,\n enabled: !1,\n crop: !0,\n overflow: \"justify\",\n formatter: function () {\n var e = this.axis.chart.numberFormatter;\n return e(this.total, -1);\n },\n style: {\n color: \"#000000\",\n fontSize: \"11px\",\n fontWeight: \"bold\",\n textOutline: \"1px contrast\"\n }\n },\n gridLineWidth: 1,\n lineWidth: 0\n };\n e.defaultLeftAxisOptions = {\n labels: {\n x: -15\n },\n title: {\n rotation: 270\n }\n };\n e.defaultRightAxisOptions = {\n labels: {\n x: 15\n },\n title: {\n rotation: 90\n }\n };\n e.defaultBottomAxisOptions = {\n labels: {\n autoRotation: [-45],\n x: 0\n },\n margin: 15,\n title: {\n rotation: 0\n }\n };\n e.defaultTopAxisOptions = {\n labels: {\n autoRotation: [-45],\n x: 0\n },\n margin: 15,\n title: {\n rotation: 0\n }\n };\n })(f || (f = {}));\n\n return f;\n });\n K(l, \"Core/Foundation.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.addEvent,\n l = f.isFunction,\n C = f.objectEach,\n v = f.removeEvent,\n E;\n\n (function (f) {\n f.registerEventOptions = function (f, y) {\n f.eventOptions = f.eventOptions || {};\n C(y.events, function (t, h) {\n f.eventOptions[h] !== t && (f.eventOptions[h] && (v(f, h, f.eventOptions[h]), delete f.eventOptions[h]), l(t) && (f.eventOptions[h] = t, e(f, h, t)));\n });\n };\n })(E || (E = {}));\n\n return E;\n });\n K(l, \"Core/Axis/Tick.js\", [l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = e.deg2rad,\n v = l.clamp,\n E = l.correctFloat,\n G = l.defined,\n B = l.destroyObjectProperties,\n y = l.extend,\n t = l.fireEvent,\n h = l.isNumber,\n d = l.merge,\n b = l.objectEach,\n p = l.pick;\n\n e = function () {\n function e(b, d, e, p, h) {\n this.isNewLabel = this.isNew = !0;\n this.axis = b;\n this.pos = d;\n this.type = e || \"\";\n this.parameters = h || {};\n this.tickmarkOffset = this.parameters.tickmarkOffset;\n this.options = this.parameters.options;\n t(this, \"init\");\n e || p || this.addLabel();\n }\n\n e.prototype.addLabel = function () {\n var b = this,\n d = b.axis,\n e = d.options,\n q = d.chart,\n z = d.categories,\n x = d.logarithmic,\n m = d.names,\n k = b.pos,\n a = p(b.options && b.options.labels, e.labels),\n g = d.tickPositions,\n c = k === g[0],\n D = k === g[g.length - 1],\n A = (!a.step || 1 === a.step) && 1 === d.tickInterval;\n g = g.info;\n var u = b.label,\n l;\n z = this.parameters.category || (z ? p(z[k], m[k], k) : k);\n x && h(z) && (z = E(x.lin2log(z)));\n if (d.dateTime) if (g) {\n var S = q.time.resolveDTLFormat(e.dateTimeLabelFormats[!e.grid && g.higherRanks[k] || g.unitName]);\n var R = S.main;\n } else h(z) && (R = d.dateTime.getXDateFormat(z, e.dateTimeLabelFormats || {}));\n b.isFirst = c;\n b.isLast = D;\n var M = {\n axis: d,\n chart: q,\n dateTimeLabelFormat: R,\n isFirst: c,\n isLast: D,\n pos: k,\n tick: b,\n tickPositionInfo: g,\n value: z\n };\n t(this, \"labelFormat\", M);\n\n var B = function (c) {\n return a.formatter ? a.formatter.call(c, c) : a.format ? (c.text = d.defaultLabelFormatter.call(c), f.format(a.format, c, q)) : d.defaultLabelFormatter.call(c, c);\n };\n\n e = B.call(M, M);\n var aa = S && S.list;\n b.shortenLabel = aa ? function () {\n for (l = 0; l < aa.length; l++) if (y(M, {\n dateTimeLabelFormat: aa[l]\n }), u.attr({\n text: B.call(M, M)\n }), u.getBBox().width < d.getSlotWidth(b) - 2 * a.padding) return;\n\n u.attr({\n text: \"\"\n });\n } : void 0;\n A && d._addedPlotLB && b.moveLabel(e, a);\n G(u) || b.movedLabel ? u && u.textStr !== e && !A && (!u.textWidth || a.style.width || u.styles.width || u.css({\n width: null\n }), u.attr({\n text: e\n }), u.textPxLength = u.getBBox().width) : (b.label = u = b.createLabel({\n x: 0,\n y: 0\n }, e, a), b.rotation = 0);\n };\n\n e.prototype.createLabel = function (b, e, p) {\n var n = this.axis,\n h = n.chart;\n if (b = G(e) && p.enabled ? h.renderer.text(e, b.x, b.y, p.useHTML).add(n.labelGroup) : null) h.styledMode || b.css(d(p.style)), b.textPxLength = b.getBBox().width;\n return b;\n };\n\n e.prototype.destroy = function () {\n B(this, this.axis);\n };\n\n e.prototype.getPosition = function (b, d, e, p) {\n var n = this.axis,\n h = n.chart,\n m = p && h.oldChartHeight || h.chartHeight;\n b = {\n x: b ? E(n.translate(d + e, void 0, void 0, p) + n.transB) : n.left + n.offset + (n.opposite ? (p && h.oldChartWidth || h.chartWidth) - n.right - n.left : 0),\n y: b ? m - n.bottom + n.offset - (n.opposite ? n.height : 0) : E(m - n.translate(d + e, void 0, void 0, p) - n.transB)\n };\n b.y = v(b.y, -1E5, 1E5);\n t(this, \"afterGetPosition\", {\n pos: b\n });\n return b;\n };\n\n e.prototype.getLabelPosition = function (b, d, e, p, h, f, m, k) {\n var a = this.axis,\n g = a.transA,\n c = a.isLinked && a.linkedParent ? a.linkedParent.reversed : a.reversed,\n n = a.staggerLines,\n A = a.tickRotCorr || {\n x: 0,\n y: 0\n },\n u = p || a.reserveSpaceDefault ? 0 : -a.labelOffset * (\"center\" === a.labelAlign ? .5 : 1),\n r = {};\n e = 0 === a.side ? e.rotation ? -8 : -e.getBBox().height : 2 === a.side ? A.y + 8 : Math.cos(e.rotation * C) * (A.y - e.getBBox(!1, 0).height / 2);\n G(h.y) && (e = 0 === a.side && a.horiz ? h.y + e : h.y);\n b = b + h.x + u + A.x - (f && p ? f * g * (c ? -1 : 1) : 0);\n d = d + e - (f && !p ? f * g * (c ? 1 : -1) : 0);\n n && (p = m / (k || 1) % n, a.opposite && (p = n - p - 1), d += a.labelOffset / n * p);\n r.x = b;\n r.y = Math.round(d);\n t(this, \"afterGetLabelPosition\", {\n pos: r,\n tickmarkOffset: f,\n index: m\n });\n return r;\n };\n\n e.prototype.getLabelSize = function () {\n return this.label ? this.label.getBBox()[this.axis.horiz ? \"height\" : \"width\"] : 0;\n };\n\n e.prototype.getMarkPath = function (b, d, e, p, h, f) {\n return f.crispLine([[\"M\", b, d], [\"L\", b + (h ? 0 : -e), d + (h ? e : 0)]], p);\n };\n\n e.prototype.handleOverflow = function (b) {\n var d = this.axis,\n e = d.options.labels,\n h = b.x,\n f = d.chart.chartWidth,\n r = d.chart.spacing,\n m = p(d.labelLeft, Math.min(d.pos, r[3]));\n r = p(d.labelRight, Math.max(d.isRadial ? 0 : d.pos + d.len, f - r[1]));\n var k = this.label,\n a = this.rotation,\n g = {\n left: 0,\n center: .5,\n right: 1\n }[d.labelAlign || k.attr(\"align\")],\n c = k.getBBox().width,\n D = d.getSlotWidth(this),\n A = {},\n u = D,\n q = 1,\n l;\n if (a || \"justify\" !== e.overflow) 0 > a && h - g * c < m ? l = Math.round(h / Math.cos(a * C) - m) : 0 < a && h + g * c > r && (l = Math.round((f - h) / Math.cos(a * C)));else if (f = h + (1 - g) * c, h - g * c < m ? u = b.x + u * (1 - g) - m : f > r && (u = r - b.x + u * g, q = -1), u = Math.min(D, u), u < D && \"center\" === d.labelAlign && (b.x += q * (D - u - g * (D - Math.min(c, u)))), c > u || d.autoRotation && (k.styles || {}).width) l = u;\n l && (this.shortenLabel ? this.shortenLabel() : (A.width = Math.floor(l) + \"px\", (e.style || {}).textOverflow || (A.textOverflow = \"ellipsis\"), k.css(A)));\n };\n\n e.prototype.moveLabel = function (d, e) {\n var h = this,\n p = h.label,\n n = h.axis,\n f = n.reversed,\n m = !1;\n p && p.textStr === d ? (h.movedLabel = p, m = !0, delete h.label) : b(n.ticks, function (a) {\n m || a.isNew || a === h || !a.label || a.label.textStr !== d || (h.movedLabel = a.label, m = !0, a.labelPos = h.movedLabel.xy, delete a.label);\n });\n\n if (!m && (h.labelPos || p)) {\n var k = h.labelPos || p.xy;\n p = n.horiz ? f ? 0 : n.width + n.left : k.x;\n n = n.horiz ? k.y : f ? n.width + n.left : 0;\n h.movedLabel = h.createLabel({\n x: p,\n y: n\n }, d, e);\n h.movedLabel && h.movedLabel.attr({\n opacity: 0\n });\n }\n };\n\n e.prototype.render = function (b, d, e) {\n var h = this.axis,\n n = h.horiz,\n f = this.pos,\n m = p(this.tickmarkOffset, h.tickmarkOffset);\n f = this.getPosition(n, f, m, d);\n m = f.x;\n var k = f.y;\n h = n && m === h.pos + h.len || !n && k === h.pos ? -1 : 1;\n n = p(e, this.label && this.label.newOpacity, 1);\n e = p(e, 1);\n this.isActive = !0;\n this.renderGridLine(d, e, h);\n this.renderMark(f, e, h);\n this.renderLabel(f, d, n, b);\n this.isNew = !1;\n t(this, \"afterRender\");\n };\n\n e.prototype.renderGridLine = function (b, d, e) {\n var h = this.axis,\n n = h.options,\n f = {},\n m = this.pos,\n k = this.type,\n a = p(this.tickmarkOffset, h.tickmarkOffset),\n g = h.chart.renderer,\n c = this.gridLine,\n D = n.gridLineWidth,\n A = n.gridLineColor,\n u = n.gridLineDashStyle;\n \"minor\" === this.type && (D = n.minorGridLineWidth, A = n.minorGridLineColor, u = n.minorGridLineDashStyle);\n c || (h.chart.styledMode || (f.stroke = A, f[\"stroke-width\"] = D || 0, f.dashstyle = u), k || (f.zIndex = 1), b && (d = 0), this.gridLine = c = g.path().attr(f).addClass(\"highcharts-\" + (k ? k + \"-\" : \"\") + \"grid-line\").add(h.gridGroup));\n if (c && (e = h.getPlotLinePath({\n value: m + a,\n lineWidth: c.strokeWidth() * e,\n force: \"pass\",\n old: b\n }))) c[b || this.isNew ? \"attr\" : \"animate\"]({\n d: e,\n opacity: d\n });\n };\n\n e.prototype.renderMark = function (b, d, e) {\n var h = this.axis,\n n = h.options,\n f = h.chart.renderer,\n m = this.type,\n k = h.tickSize(m ? m + \"Tick\" : \"tick\"),\n a = b.x;\n b = b.y;\n var g = p(n[\"minor\" !== m ? \"tickWidth\" : \"minorTickWidth\"], !m && h.isXAxis ? 1 : 0);\n n = n[\"minor\" !== m ? \"tickColor\" : \"minorTickColor\"];\n var c = this.mark,\n D = !c;\n k && (h.opposite && (k[0] = -k[0]), c || (this.mark = c = f.path().addClass(\"highcharts-\" + (m ? m + \"-\" : \"\") + \"tick\").add(h.axisGroup), h.chart.styledMode || c.attr({\n stroke: n,\n \"stroke-width\": g\n })), c[D ? \"attr\" : \"animate\"]({\n d: this.getMarkPath(a, b, k[0], c.strokeWidth() * e, h.horiz, f),\n opacity: d\n }));\n };\n\n e.prototype.renderLabel = function (b, d, e, f) {\n var n = this.axis,\n r = n.horiz,\n m = n.options,\n k = this.label,\n a = m.labels,\n g = a.step;\n n = p(this.tickmarkOffset, n.tickmarkOffset);\n var c = b.x;\n b = b.y;\n var D = !0;\n k && h(c) && (k.xy = b = this.getLabelPosition(c, b, k, r, a, n, f, g), this.isFirst && !this.isLast && !m.showFirstLabel || this.isLast && !this.isFirst && !m.showLastLabel ? D = !1 : !r || a.step || a.rotation || d || 0 === e || this.handleOverflow(b), g && f % g && (D = !1), D && h(b.y) ? (b.opacity = e, k[this.isNewLabel ? \"attr\" : \"animate\"](b).show(!0), this.isNewLabel = !1) : (k.hide(), this.isNewLabel = !0));\n };\n\n e.prototype.replaceMovedLabel = function () {\n var b = this.label,\n d = this.axis,\n e = d.reversed;\n\n if (b && !this.isNew) {\n var h = d.horiz ? e ? d.left : d.width + d.left : b.xy.x;\n e = d.horiz ? b.xy.y : e ? d.width + d.top : d.top;\n b.animate({\n x: h,\n y: e,\n opacity: 0\n }, void 0, b.destroy);\n delete this.label;\n }\n\n d.isDirty = !0;\n this.label = this.movedLabel;\n delete this.movedLabel;\n };\n\n return e;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/Axis/Axis.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/AxisDefaults.js\"], l[\"Core/Color/Color.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Foundation.js\"], l[\"Core/Globals.js\"], l[\"Core/Axis/Tick.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B) {\n var y = f.animObject,\n t = C.defaultOptions,\n h = v.registerEventOptions,\n d = E.deg2rad,\n b = B.arrayMax,\n p = B.arrayMin,\n q = B.clamp,\n r = B.correctFloat,\n n = B.defined,\n J = B.destroyObjectProperties,\n w = B.erase,\n z = B.error,\n x = B.extend,\n m = B.fireEvent,\n k = B.isArray,\n a = B.isNumber,\n g = B.isString,\n c = B.merge,\n D = B.normalizeTickInterval,\n A = B.objectEach,\n u = B.pick,\n L = B.relativeLength,\n S = B.removeEvent,\n R = B.splat,\n M = B.syncTimeout,\n U = function (a, c) {\n return D(c, void 0, void 0, u(a.options.allowDecimals, .5 > c || void 0 !== a.tickAmount), !!a.tickAmount);\n };\n\n f = function () {\n function f(a, c) {\n this.zoomEnabled = this.width = this.visible = this.userOptions = this.translationSlope = this.transB = this.transA = this.top = this.ticks = this.tickRotCorr = this.tickPositions = this.tickmarkOffset = this.tickInterval = this.tickAmount = this.side = this.series = this.right = this.positiveValuesOnly = this.pos = this.pointRangePadding = this.pointRange = this.plotLinesAndBandsGroups = this.plotLinesAndBands = this.paddedTicks = this.overlap = this.options = this.offset = this.names = this.minPixelPadding = this.minorTicks = this.minorTickInterval = this.min = this.maxLabelLength = this.max = this.len = this.left = this.labelFormatter = this.labelEdge = this.isLinked = this.height = this.hasVisibleSeries = this.hasNames = this.eventOptions = this.coll = this.closestPointRange = this.chart = this.bottom = this.alternateBands = void 0;\n this.init(a, c);\n }\n\n f.prototype.init = function (c, b) {\n var g = b.isX;\n this.chart = c;\n this.horiz = c.inverted && !this.isZAxis ? !g : g;\n this.isXAxis = g;\n this.coll = this.coll || (g ? \"xAxis\" : \"yAxis\");\n m(this, \"init\", {\n userOptions: b\n });\n this.opposite = u(b.opposite, this.opposite);\n this.side = u(b.side, this.side, this.horiz ? this.opposite ? 0 : 2 : this.opposite ? 1 : 3);\n this.setOptions(b);\n var d = this.options,\n k = d.labels,\n e = d.type;\n this.userOptions = b;\n this.minPixelPadding = 0;\n this.reversed = u(d.reversed, this.reversed);\n this.visible = d.visible;\n this.zoomEnabled = d.zoomEnabled;\n this.hasNames = \"category\" === e || !0 === d.categories;\n this.categories = d.categories || (this.hasNames ? [] : void 0);\n this.names || (this.names = [], this.names.keys = {});\n this.plotLinesAndBandsGroups = {};\n this.positiveValuesOnly = !!this.logarithmic;\n this.isLinked = n(d.linkedTo);\n this.ticks = {};\n this.labelEdge = [];\n this.minorTicks = {};\n this.plotLinesAndBands = [];\n this.alternateBands = {};\n this.len = 0;\n this.minRange = this.userMinRange = d.minRange || d.maxZoom;\n this.range = d.range;\n this.offset = d.offset || 0;\n this.min = this.max = null;\n b = u(d.crosshair, R(c.options.tooltip.crosshairs)[g ? 0 : 1]);\n this.crosshair = !0 === b ? {} : b;\n -1 === c.axes.indexOf(this) && (g ? c.axes.splice(c.xAxis.length, 0, this) : c.axes.push(this), c[this.coll].push(this));\n this.series = this.series || [];\n c.inverted && !this.isZAxis && g && \"undefined\" === typeof this.reversed && (this.reversed = !0);\n this.labelRotation = a(k.rotation) ? k.rotation : void 0;\n h(this, d);\n m(this, \"afterInit\");\n };\n\n f.prototype.setOptions = function (a) {\n this.options = c(e.defaultXAxisOptions, \"yAxis\" === this.coll && e.defaultYAxisOptions, [e.defaultTopAxisOptions, e.defaultRightAxisOptions, e.defaultBottomAxisOptions, e.defaultLeftAxisOptions][this.side], c(t[this.coll], a));\n m(this, \"afterSetOptions\", {\n userOptions: a\n });\n };\n\n f.prototype.defaultLabelFormatter = function (c) {\n var b = this.axis;\n c = this.chart.numberFormatter;\n var g = a(this.value) ? this.value : NaN,\n d = b.chart.time,\n k = this.dateTimeLabelFormat,\n e = t.lang,\n m = e.numericSymbols;\n e = e.numericSymbolMagnitude || 1E3;\n var u = b.logarithmic ? Math.abs(g) : b.tickInterval,\n h = m && m.length;\n if (b.categories) var f = \"\".concat(this.value);else if (k) f = d.dateFormat(k, g);else if (h && 1E3 <= u) for (; h-- && \"undefined\" === typeof f;) b = Math.pow(e, h + 1), u >= b && 0 === 10 * g % b && null !== m[h] && 0 !== g && (f = c(g / b, -1) + m[h]);\n \"undefined\" === typeof f && (f = 1E4 <= Math.abs(g) ? c(g, -1) : c(g, -1, void 0, \"\"));\n return f;\n };\n\n f.prototype.getSeriesExtremes = function () {\n var c = this,\n b = c.chart,\n g;\n m(this, \"getSeriesExtremes\", null, function () {\n c.hasVisibleSeries = !1;\n c.dataMin = c.dataMax = c.threshold = null;\n c.softThreshold = !c.isXAxis;\n c.stacking && c.stacking.buildStacks();\n c.series.forEach(function (d) {\n if (d.visible || !b.options.chart.ignoreHiddenSeries) {\n var k = d.options,\n e = k.threshold;\n c.hasVisibleSeries = !0;\n c.positiveValuesOnly && 0 >= e && (e = null);\n\n if (c.isXAxis) {\n if (k = d.xData, k.length) {\n k = c.logarithmic ? k.filter(c.validatePositiveValue) : k;\n g = d.getXExtremes(k);\n var m = g.min;\n var h = g.max;\n a(m) || m instanceof Date || (k = k.filter(a), g = d.getXExtremes(k), m = g.min, h = g.max);\n k.length && (c.dataMin = Math.min(u(c.dataMin, m), m), c.dataMax = Math.max(u(c.dataMax, h), h));\n }\n } else if (d = d.applyExtremes(), a(d.dataMin) && (m = d.dataMin, c.dataMin = Math.min(u(c.dataMin, m), m)), a(d.dataMax) && (h = d.dataMax, c.dataMax = Math.max(u(c.dataMax, h), h)), n(e) && (c.threshold = e), !k.softThreshold || c.positiveValuesOnly) c.softThreshold = !1;\n }\n });\n });\n m(this, \"afterGetSeriesExtremes\");\n };\n\n f.prototype.translate = function (c, b, g, d, k, e) {\n var m = this.linkedParent || this,\n u = d && m.old ? m.old.min : m.min;\n if (!a(u)) return NaN;\n var h = m.minPixelPadding;\n k = (m.isOrdinal || m.brokenAxis && m.brokenAxis.hasBreaks || m.logarithmic && k) && m.lin2val;\n var f = 1,\n p = 0;\n d = d && m.old ? m.old.transA : m.transA;\n d || (d = m.transA);\n g && (f *= -1, p = m.len);\n m.reversed && (f *= -1, p -= f * (m.sector || m.len));\n b ? (e = (c * f + p - h) / d + u, k && (e = m.lin2val(e))) : (k && (c = m.val2lin(c)), c = f * (c - u) * d, e = (m.isRadial ? c : r(c)) + p + f * h + (a(e) ? d * e : 0));\n return e;\n };\n\n f.prototype.toPixels = function (a, c) {\n return this.translate(a, !1, !this.horiz, void 0, !0) + (c ? 0 : this.pos);\n };\n\n f.prototype.toValue = function (a, c) {\n return this.translate(a - (c ? 0 : this.pos), !0, !this.horiz, void 0, !0);\n };\n\n f.prototype.getPlotLinePath = function (c) {\n function b(a, c, g) {\n if (\"pass\" !== r && a < c || a > g) r ? a = q(a, c, g) : L = !0;\n return a;\n }\n\n var g = this,\n d = g.chart,\n k = g.left,\n e = g.top,\n h = c.old,\n f = c.value,\n p = c.lineWidth,\n n = h && d.oldChartHeight || d.chartHeight,\n I = h && d.oldChartWidth || d.chartWidth,\n D = g.transB,\n A = c.translatedValue,\n r = c.force,\n l,\n t,\n x,\n z,\n L;\n c = {\n value: f,\n lineWidth: p,\n old: h,\n force: r,\n acrossPanes: c.acrossPanes,\n translatedValue: A\n };\n m(this, \"getPlotLinePath\", c, function (c) {\n A = u(A, g.translate(f, void 0, void 0, h));\n A = q(A, -1E5, 1E5);\n l = x = Math.round(A + D);\n t = z = Math.round(n - A - D);\n a(A) ? g.horiz ? (t = e, z = n - g.bottom, l = x = b(l, k, k + g.width)) : (l = k, x = I - g.right, t = z = b(t, e, e + g.height)) : (L = !0, r = !1);\n c.path = L && !r ? null : d.renderer.crispLine([[\"M\", l, t], [\"L\", x, z]], p || 1);\n });\n return c.path;\n };\n\n f.prototype.getLinearTickPositions = function (a, c, g) {\n var b = r(Math.floor(c / a) * a);\n g = r(Math.ceil(g / a) * a);\n var d = [],\n k;\n r(b + a) === b && (k = 20);\n if (this.single) return [c];\n\n for (c = b; c <= g;) {\n d.push(c);\n c = r(c + a, k);\n if (c === m) break;\n var m = c;\n }\n\n return d;\n };\n\n f.prototype.getMinorTickInterval = function () {\n var a = this.options;\n return !0 === a.minorTicks ? u(a.minorTickInterval, \"auto\") : !1 === a.minorTicks ? null : a.minorTickInterval;\n };\n\n f.prototype.getMinorTickPositions = function () {\n var a = this.options,\n c = this.tickPositions,\n g = this.minorTickInterval,\n b = this.pointRangePadding || 0,\n d = this.min - b;\n b = this.max + b;\n var k = b - d,\n m = [];\n\n if (k && k / g < this.len / 3) {\n var e = this.logarithmic;\n if (e) this.paddedTicks.forEach(function (a, c, b) {\n c && m.push.apply(m, e.getLogTickPositions(g, b[c - 1], b[c], !0));\n });else if (this.dateTime && \"auto\" === this.getMinorTickInterval()) m = m.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(g), d, b, a.startOfWeek));else for (a = d + (c[0] - d) % g; a <= b && a !== m[0]; a += g) m.push(a);\n }\n\n 0 !== m.length && this.trimTicks(m);\n return m;\n };\n\n f.prototype.adjustForMinRange = function () {\n var a = this.options,\n c = this.logarithmic,\n g = this.min,\n d = this.max,\n k = 0,\n m,\n e,\n h,\n f;\n this.isXAxis && \"undefined\" === typeof this.minRange && !c && (n(a.min) || n(a.max) || n(a.floor) || n(a.ceiling) ? this.minRange = null : (this.series.forEach(function (a) {\n h = a.xData;\n f = a.xIncrement ? 1 : h.length - 1;\n if (1 < h.length) for (m = f; 0 < m; m--) if (e = h[m] - h[m - 1], !k || e < k) k = e;\n }), this.minRange = Math.min(5 * k, this.dataMax - this.dataMin)));\n\n if (d - g < this.minRange) {\n var A = this.dataMax - this.dataMin >= this.minRange;\n var D = this.minRange;\n var r = (D - d + g) / 2;\n r = [g - r, u(a.min, g - r)];\n A && (r[2] = this.logarithmic ? this.logarithmic.log2lin(this.dataMin) : this.dataMin);\n g = b(r);\n d = [g + D, u(a.max, g + D)];\n A && (d[2] = c ? c.log2lin(this.dataMax) : this.dataMax);\n d = p(d);\n d - g < D && (r[0] = d - D, r[1] = u(a.min, d - D), g = b(r));\n }\n\n this.min = g;\n this.max = d;\n };\n\n f.prototype.getClosest = function () {\n var a;\n this.categories ? a = 1 : this.series.forEach(function (c) {\n var g = c.closestPointRange,\n b = c.visible || !c.chart.options.chart.ignoreHiddenSeries;\n !c.noSharedTooltip && n(g) && b && (a = n(a) ? Math.min(a, g) : g);\n });\n return a;\n };\n\n f.prototype.nameToX = function (a) {\n var c = k(this.options.categories),\n g = c ? this.categories : this.names,\n b = a.options.x;\n a.series.requireSorting = !1;\n n(b) || (b = this.options.uniqueNames && g ? c ? g.indexOf(a.name) : u(g.keys[a.name], -1) : a.series.autoIncrement());\n\n if (-1 === b) {\n if (!c && g) var d = g.length;\n } else d = b;\n\n \"undefined\" !== typeof d && (this.names[d] = a.name, this.names.keys[a.name] = d);\n return d;\n };\n\n f.prototype.updateNames = function () {\n var a = this,\n c = this.names;\n 0 < c.length && (Object.keys(c.keys).forEach(function (a) {\n delete c.keys[a];\n }), c.length = 0, this.minRange = this.userMinRange, (this.series || []).forEach(function (c) {\n c.xIncrement = null;\n if (!c.points || c.isDirtyData) a.max = Math.max(a.max, c.xData.length - 1), c.processData(), c.generatePoints();\n c.data.forEach(function (g, b) {\n if (g && g.options && \"undefined\" !== typeof g.name) {\n var d = a.nameToX(g);\n \"undefined\" !== typeof d && d !== g.x && (g.x = d, c.xData[b] = d);\n }\n });\n }));\n };\n\n f.prototype.setAxisTranslation = function () {\n var a = this,\n c = a.max - a.min,\n b = a.linkedParent,\n d = !!a.categories,\n k = a.isXAxis,\n e = a.axisPointRange || 0,\n h = 0,\n f = 0,\n p = a.transA;\n\n if (k || d || e) {\n var n = a.getClosest();\n b ? (h = b.minPointOffset, f = b.pointRangePadding) : a.series.forEach(function (c) {\n var b = d ? 1 : k ? u(c.options.pointRange, n, 0) : a.axisPointRange || 0,\n m = c.options.pointPlacement;\n e = Math.max(e, b);\n if (!a.single || d) c = c.is(\"xrange\") ? !k : k, h = Math.max(h, c && g(m) ? 0 : b / 2), f = Math.max(f, c && \"on\" === m ? 0 : b);\n });\n b = a.ordinal && a.ordinal.slope && n ? a.ordinal.slope / n : 1;\n a.minPointOffset = h *= b;\n a.pointRangePadding = f *= b;\n a.pointRange = Math.min(e, a.single && d ? 1 : c);\n k && (a.closestPointRange = n);\n }\n\n a.translationSlope = a.transA = p = a.staticScale || a.len / (c + f || 1);\n a.transB = a.horiz ? a.left : a.bottom;\n a.minPixelPadding = p * h;\n m(this, \"afterSetAxisTranslation\");\n };\n\n f.prototype.minFromRange = function () {\n return this.max - this.range;\n };\n\n f.prototype.setTickInterval = function (c) {\n var g = this.chart,\n b = this.logarithmic,\n d = this.options,\n k = this.isXAxis,\n e = this.isLinked,\n h = d.tickPixelInterval,\n f = this.categories,\n p = this.softThreshold,\n A = d.maxPadding,\n D = d.minPadding,\n I = a(d.tickInterval) && 0 <= d.tickInterval ? d.tickInterval : void 0,\n q = a(this.threshold) ? this.threshold : null;\n this.dateTime || f || e || this.getTickAmount();\n var l = u(this.userMin, d.min);\n var t = u(this.userMax, d.max);\n\n if (e) {\n this.linkedParent = g[this.coll][d.linkedTo];\n var x = this.linkedParent.getExtremes();\n this.min = u(x.min, x.dataMin);\n this.max = u(x.max, x.dataMax);\n d.type !== this.linkedParent.options.type && z(11, 1, g);\n } else {\n if (p && n(q)) if (this.dataMin >= q) x = q, D = 0;else if (this.dataMax <= q) {\n var L = q;\n A = 0;\n }\n this.min = u(l, x, this.dataMin);\n this.max = u(t, L, this.dataMax);\n }\n\n b && (this.positiveValuesOnly && !c && 0 >= Math.min(this.min, u(this.dataMin, this.min)) && z(10, 1, g), this.min = r(b.log2lin(this.min), 16), this.max = r(b.log2lin(this.max), 16));\n this.range && n(this.max) && (this.userMin = this.min = l = Math.max(this.dataMin, this.minFromRange()), this.userMax = t = this.max, this.range = null);\n m(this, \"foundExtremes\");\n this.beforePadding && this.beforePadding();\n this.adjustForMinRange();\n !(f || this.axisPointRange || this.stacking && this.stacking.usePercentage || e) && n(this.min) && n(this.max) && (g = this.max - this.min) && (!n(l) && D && (this.min -= g * D), !n(t) && A && (this.max += g * A));\n a(this.userMin) || (a(d.softMin) && d.softMin < this.min && (this.min = l = d.softMin), a(d.floor) && (this.min = Math.max(this.min, d.floor)));\n a(this.userMax) || (a(d.softMax) && d.softMax > this.max && (this.max = t = d.softMax), a(d.ceiling) && (this.max = Math.min(this.max, d.ceiling)));\n p && n(this.dataMin) && (q = q || 0, !n(l) && this.min < q && this.dataMin >= q ? this.min = this.options.minRange ? Math.min(q, this.max - this.minRange) : q : !n(t) && this.max > q && this.dataMax <= q && (this.max = this.options.minRange ? Math.max(q, this.min + this.minRange) : q));\n a(this.min) && a(this.max) && !this.chart.polar && this.min > this.max && (n(this.options.min) ? this.max = this.min : n(this.options.max) && (this.min = this.max));\n this.tickInterval = this.min === this.max || \"undefined\" === typeof this.min || \"undefined\" === typeof this.max ? 1 : e && this.linkedParent && !I && h === this.linkedParent.options.tickPixelInterval ? I = this.linkedParent.tickInterval : u(I, this.tickAmount ? (this.max - this.min) / Math.max(this.tickAmount - 1, 1) : void 0, f ? 1 : (this.max - this.min) * h / Math.max(this.len, h));\n\n if (k && !c) {\n var w = this.min !== (this.old && this.old.min) || this.max !== (this.old && this.old.max);\n this.series.forEach(function (a) {\n a.forceCrop = a.forceCropping && a.forceCropping();\n a.processData(w);\n });\n m(this, \"postProcessData\", {\n hasExtemesChanged: w\n });\n }\n\n this.setAxisTranslation();\n m(this, \"initialAxisTranslation\");\n this.pointRange && !I && (this.tickInterval = Math.max(this.pointRange, this.tickInterval));\n c = u(d.minTickInterval, this.dateTime && !this.series.some(function (a) {\n return a.noSharedTooltip;\n }) ? this.closestPointRange : 0);\n !I && this.tickInterval < c && (this.tickInterval = c);\n this.dateTime || this.logarithmic || I || (this.tickInterval = U(this, this.tickInterval));\n this.tickAmount || (this.tickInterval = this.unsquish());\n this.setTickPositions();\n };\n\n f.prototype.setTickPositions = function () {\n var a = this.options,\n c = a.tickPositions,\n g = this.getMinorTickInterval(),\n b = this.hasVerticalPanning(),\n d = \"colorAxis\" === this.coll,\n k = (d || !b) && a.startOnTick;\n b = (d || !b) && a.endOnTick;\n d = a.tickPositioner;\n this.tickmarkOffset = this.categories && \"between\" === a.tickmarkPlacement && 1 === this.tickInterval ? .5 : 0;\n this.minorTickInterval = \"auto\" === g && this.tickInterval ? this.tickInterval / 5 : g;\n this.single = this.min === this.max && n(this.min) && !this.tickAmount && (parseInt(this.min, 10) === this.min || !1 !== a.allowDecimals);\n this.tickPositions = g = c && c.slice();\n\n if (!g) {\n if (this.ordinal && this.ordinal.positions || !((this.max - this.min) / this.tickInterval > Math.max(2 * this.len, 200))) {\n if (this.dateTime) g = this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval, a.units), this.min, this.max, a.startOfWeek, this.ordinal && this.ordinal.positions, this.closestPointRange, !0);else if (this.logarithmic) g = this.logarithmic.getLogTickPositions(this.tickInterval, this.min, this.max);else for (var e = a = this.tickInterval; e <= 2 * a;) if (g = this.getLinearTickPositions(this.tickInterval, this.min, this.max), this.tickAmount && g.length > this.tickAmount) this.tickInterval = U(this, e *= 1.1);else break;\n } else g = [this.min, this.max], z(19, !1, this.chart);\n g.length > this.len && (g = [g[0], g.pop()], g[0] === g[1] && (g.length = 1));\n this.tickPositions = g;\n d && (d = d.apply(this, [this.min, this.max])) && (this.tickPositions = g = d);\n }\n\n this.paddedTicks = g.slice(0);\n this.trimTicks(g, k, b);\n this.isLinked || (this.single && 2 > g.length && !this.categories && !this.series.some(function (a) {\n return a.is(\"heatmap\") && \"between\" === a.options.pointPlacement;\n }) && (this.min -= .5, this.max += .5), c || d || this.adjustTickAmount());\n m(this, \"afterSetTickPositions\");\n };\n\n f.prototype.trimTicks = function (a, c, g) {\n var b = a[0],\n d = a[a.length - 1],\n k = !this.isOrdinal && this.minPointOffset || 0;\n m(this, \"trimTicks\");\n\n if (!this.isLinked) {\n if (c && -Infinity !== b) this.min = b;else for (; this.min - k > a[0];) a.shift();\n if (g) this.max = d;else for (; this.max + k < a[a.length - 1];) a.pop();\n 0 === a.length && n(b) && !this.options.tickPositions && a.push((d + b) / 2);\n }\n };\n\n f.prototype.alignToOthers = function () {\n var c = this,\n g = [this],\n b = c.options,\n d = \"yAxis\" === this.coll && this.chart.options.chart.alignThresholds,\n k = [],\n m;\n c.thresholdAlignment = void 0;\n\n if ((!1 !== this.chart.options.chart.alignTicks && b.alignTicks || d) && !1 !== b.startOnTick && !1 !== b.endOnTick && !c.logarithmic) {\n var e = function (a) {\n var c = a.options;\n return [a.horiz ? c.left : c.top, c.width, c.height, c.pane].join();\n },\n h = e(this);\n\n this.chart[this.coll].forEach(function (a) {\n var b = a.series;\n b.length && b.some(function (a) {\n return a.visible;\n }) && a !== c && e(a) === h && (m = !0, g.push(a));\n });\n }\n\n if (m && d) {\n g.forEach(function (g) {\n g = g.getThresholdAlignment(c);\n a(g) && k.push(g);\n });\n var u = 1 < k.length ? k.reduce(function (a, c) {\n return a + c;\n }, 0) / k.length : void 0;\n g.forEach(function (a) {\n a.thresholdAlignment = u;\n });\n }\n\n return m;\n };\n\n f.prototype.getThresholdAlignment = function (c) {\n (!a(this.dataMin) || this !== c && this.series.some(function (a) {\n return a.isDirty || a.isDirtyData;\n })) && this.getSeriesExtremes();\n if (a(this.threshold)) return c = q((this.threshold - (this.dataMin || 0)) / ((this.dataMax || 0) - (this.dataMin || 0)), 0, 1), this.options.reversed && (c = 1 - c), c;\n };\n\n f.prototype.getTickAmount = function () {\n var a = this.options,\n c = a.tickPixelInterval,\n g = a.tickAmount;\n !n(a.tickInterval) && !g && this.len < c && !this.isRadial && !this.logarithmic && a.startOnTick && a.endOnTick && (g = 2);\n !g && this.alignToOthers() && (g = Math.ceil(this.len / c) + 1);\n 4 > g && (this.finalTickAmt = g, g = 5);\n this.tickAmount = g;\n };\n\n f.prototype.adjustTickAmount = function () {\n var c = this,\n g = c.finalTickAmt,\n b = c.max,\n d = c.min,\n k = c.options,\n m = c.tickPositions,\n e = c.tickAmount,\n h = c.thresholdAlignment,\n f = m && m.length,\n p = u(c.threshold, c.softThreshold ? 0 : null);\n var A = c.tickInterval;\n\n if (a(h)) {\n var D = .5 > h ? Math.ceil(h * (e - 1)) : Math.floor(h * (e - 1));\n k.reversed && (D = e - 1 - D);\n }\n\n if (c.hasData() && a(d) && a(b)) {\n h = function () {\n c.transA *= (f - 1) / (e - 1);\n c.min = k.startOnTick ? m[0] : Math.min(d, m[0]);\n c.max = k.endOnTick ? m[m.length - 1] : Math.max(b, m[m.length - 1]);\n };\n\n if (a(D) && a(c.threshold)) {\n for (; m[D] !== p || m.length !== e || m[0] > d || m[m.length - 1] < b;) {\n m.length = 0;\n\n for (m.push(c.threshold); m.length < e;) void 0 === m[D] || m[D] > c.threshold ? m.unshift(r(m[0] - A)) : m.push(r(m[m.length - 1] + A));\n\n if (A > 8 * c.tickInterval) break;\n A *= 2;\n }\n\n h();\n } else if (f < e) {\n for (; m.length < e;) m.length % 2 || d === p ? m.push(r(m[m.length - 1] + A)) : m.unshift(r(m[0] - A));\n\n h();\n }\n\n if (n(g)) {\n for (A = p = m.length; A--;) (3 === g && 1 === A % 2 || 2 >= g && 0 < A && A < p - 1) && m.splice(A, 1);\n\n c.finalTickAmt = void 0;\n }\n }\n };\n\n f.prototype.setScale = function () {\n var a = !1,\n c = !1;\n this.series.forEach(function (g) {\n a = a || g.isDirtyData || g.isDirty;\n c = c || g.xAxis && g.xAxis.isDirty || !1;\n });\n this.setAxisSize();\n var g = this.len !== (this.old && this.old.len);\n g || a || c || this.isLinked || this.forceRedraw || this.userMin !== (this.old && this.old.userMin) || this.userMax !== (this.old && this.old.userMax) || this.alignToOthers() ? (this.stacking && this.stacking.resetStacks(), this.forceRedraw = !1, this.getSeriesExtremes(), this.setTickInterval(), this.isDirty || (this.isDirty = g || this.min !== (this.old && this.old.min) || this.max !== (this.old && this.old.max))) : this.stacking && this.stacking.cleanStacks();\n a && this.panningState && (this.panningState.isDirty = !0);\n m(this, \"afterSetScale\");\n };\n\n f.prototype.setExtremes = function (a, c, g, b, d) {\n var k = this,\n e = k.chart;\n g = u(g, !0);\n k.series.forEach(function (a) {\n delete a.kdTree;\n });\n d = x(d, {\n min: a,\n max: c\n });\n m(k, \"setExtremes\", d, function () {\n k.userMin = a;\n k.userMax = c;\n k.eventArgs = d;\n g && e.redraw(b);\n });\n };\n\n f.prototype.zoom = function (a, c) {\n var g = this,\n b = this.dataMin,\n d = this.dataMax,\n k = this.options,\n e = Math.min(b, u(k.min, b)),\n h = Math.max(d, u(k.max, d));\n a = {\n newMin: a,\n newMax: c\n };\n m(this, \"zoom\", a, function (a) {\n var c = a.newMin,\n k = a.newMax;\n if (c !== g.min || k !== g.max) g.allowZoomOutside || (n(b) && (c < e && (c = e), c > h && (c = h)), n(d) && (k < e && (k = e), k > h && (k = h))), g.displayBtn = \"undefined\" !== typeof c || \"undefined\" !== typeof k, g.setExtremes(c, k, !1, void 0, {\n trigger: \"zoom\"\n });\n a.zoomed = !0;\n });\n return a.zoomed;\n };\n\n f.prototype.setAxisSize = function () {\n var a = this.chart,\n c = this.options,\n g = c.offsets || [0, 0, 0, 0],\n b = this.horiz,\n d = this.width = Math.round(L(u(c.width, a.plotWidth - g[3] + g[1]), a.plotWidth)),\n k = this.height = Math.round(L(u(c.height, a.plotHeight - g[0] + g[2]), a.plotHeight)),\n m = this.top = Math.round(L(u(c.top, a.plotTop + g[0]), a.plotHeight, a.plotTop));\n c = this.left = Math.round(L(u(c.left, a.plotLeft + g[3]), a.plotWidth, a.plotLeft));\n this.bottom = a.chartHeight - k - m;\n this.right = a.chartWidth - d - c;\n this.len = Math.max(b ? d : k, 0);\n this.pos = b ? c : m;\n };\n\n f.prototype.getExtremes = function () {\n var a = this.logarithmic;\n return {\n min: a ? r(a.lin2log(this.min)) : this.min,\n max: a ? r(a.lin2log(this.max)) : this.max,\n dataMin: this.dataMin,\n dataMax: this.dataMax,\n userMin: this.userMin,\n userMax: this.userMax\n };\n };\n\n f.prototype.getThreshold = function (a) {\n var c = this.logarithmic,\n g = c ? c.lin2log(this.min) : this.min;\n c = c ? c.lin2log(this.max) : this.max;\n null === a || -Infinity === a ? a = g : Infinity === a ? a = c : g > a ? a = g : c < a && (a = c);\n return this.translate(a, 0, 1, 0, 1);\n };\n\n f.prototype.autoLabelAlign = function (a) {\n var c = (u(a, 0) - 90 * this.side + 720) % 360;\n a = {\n align: \"center\"\n };\n m(this, \"autoLabelAlign\", a, function (a) {\n 15 < c && 165 > c ? a.align = \"right\" : 195 < c && 345 > c && (a.align = \"left\");\n });\n return a.align;\n };\n\n f.prototype.tickSize = function (a) {\n var c = this.options,\n g = u(c[\"tick\" === a ? \"tickWidth\" : \"minorTickWidth\"], \"tick\" === a && this.isXAxis && !this.categories ? 1 : 0),\n b = c[\"tick\" === a ? \"tickLength\" : \"minorTickLength\"];\n\n if (g && b) {\n \"inside\" === c[a + \"Position\"] && (b = -b);\n var d = [b, g];\n }\n\n a = {\n tickSize: d\n };\n m(this, \"afterTickSize\", a);\n return a.tickSize;\n };\n\n f.prototype.labelMetrics = function () {\n var a = this.tickPositions && this.tickPositions[0] || 0;\n return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize, this.ticks[a] && this.ticks[a].label);\n };\n\n f.prototype.unsquish = function () {\n var c = this.options.labels,\n g = this.horiz,\n b = this.tickInterval,\n k = this.len / (((this.categories ? 1 : 0) + this.max - this.min) / b),\n m = c.rotation,\n e = this.labelMetrics(),\n h = Math.max(this.max - this.min, 0),\n f = function (a) {\n var c = a / (k || 1);\n c = 1 < c ? Math.ceil(c) : 1;\n c * b > h && Infinity !== a && Infinity !== k && h && (c = Math.ceil(h / b));\n return r(c * b);\n },\n p = b,\n n,\n A,\n D = Number.MAX_VALUE;\n\n if (g) {\n if (!c.staggerLines && !c.step) if (a(m)) var q = [m];else k < c.autoRotationLimit && (q = c.autoRotation);\n q && q.forEach(function (a) {\n if (a === m || a && -90 <= a && 90 >= a) {\n A = f(Math.abs(e.h / Math.sin(d * a)));\n var c = A + Math.abs(a / 360);\n c < D && (D = c, n = a, p = A);\n }\n });\n } else c.step || (p = f(e.h));\n\n this.autoRotation = q;\n this.labelRotation = u(n, a(m) ? m : 0);\n return p;\n };\n\n f.prototype.getSlotWidth = function (c) {\n var g = this.chart,\n b = this.horiz,\n d = this.options.labels,\n k = Math.max(this.tickPositions.length - (this.categories ? 0 : 1), 1),\n m = g.margin[3];\n if (c && a(c.slotWidth)) return c.slotWidth;\n if (b && 2 > d.step) return d.rotation ? 0 : (this.staggerLines || 1) * this.len / k;\n\n if (!b) {\n c = d.style.width;\n if (void 0 !== c) return parseInt(String(c), 10);\n if (m) return m - g.spacing[3];\n }\n\n return .33 * g.chartWidth;\n };\n\n f.prototype.renderUnsquish = function () {\n var a = this.chart,\n c = a.renderer,\n b = this.tickPositions,\n d = this.ticks,\n k = this.options.labels,\n m = k.style,\n e = this.horiz,\n h = this.getSlotWidth(),\n u = Math.max(1, Math.round(h - 2 * k.padding)),\n f = {},\n p = this.labelMetrics(),\n n = m.textOverflow,\n A = 0;\n g(k.rotation) || (f.rotation = k.rotation || 0);\n b.forEach(function (a) {\n a = d[a];\n a.movedLabel && a.replaceMovedLabel();\n a && a.label && a.label.textPxLength > A && (A = a.label.textPxLength);\n });\n this.maxLabelLength = A;\n if (this.autoRotation) A > u && A > p.h ? f.rotation = this.labelRotation : this.labelRotation = 0;else if (h) {\n var D = u;\n\n if (!n) {\n var r = \"clip\";\n\n for (u = b.length; !e && u--;) {\n var q = b[u];\n if (q = d[q].label) q.styles && \"ellipsis\" === q.styles.textOverflow ? q.css({\n textOverflow: \"clip\"\n }) : q.textPxLength > h && q.css({\n width: h + \"px\"\n }), q.getBBox().height > this.len / b.length - (p.h - p.f) && (q.specificTextOverflow = \"ellipsis\");\n }\n }\n }\n f.rotation && (D = A > .5 * a.chartHeight ? .33 * a.chartHeight : A, n || (r = \"ellipsis\"));\n if (this.labelAlign = k.align || this.autoLabelAlign(this.labelRotation)) f.align = this.labelAlign;\n b.forEach(function (a) {\n var c = (a = d[a]) && a.label,\n g = m.width,\n b = {};\n c && (c.attr(f), a.shortenLabel ? a.shortenLabel() : D && !g && \"nowrap\" !== m.whiteSpace && (D < c.textPxLength || \"SPAN\" === c.element.tagName) ? (b.width = D + \"px\", n || (b.textOverflow = c.specificTextOverflow || r), c.css(b)) : c.styles && c.styles.width && !b.width && !g && c.css({\n width: null\n }), delete c.specificTextOverflow, a.rotation = f.rotation);\n }, this);\n this.tickRotCorr = c.rotCorr(p.b, this.labelRotation || 0, 0 !== this.side);\n };\n\n f.prototype.hasData = function () {\n return this.series.some(function (a) {\n return a.hasData();\n }) || this.options.showEmpty && n(this.min) && n(this.max);\n };\n\n f.prototype.addTitle = function (a) {\n var g = this.chart.renderer,\n b = this.horiz,\n d = this.opposite,\n k = this.options.title,\n m = this.chart.styledMode,\n e;\n this.axisTitle || ((e = k.textAlign) || (e = (b ? {\n low: \"left\",\n middle: \"center\",\n high: \"right\"\n } : {\n low: d ? \"right\" : \"left\",\n middle: \"center\",\n high: d ? \"left\" : \"right\"\n })[k.align]), this.axisTitle = g.text(k.text || \"\", 0, 0, k.useHTML).attr({\n zIndex: 7,\n rotation: k.rotation,\n align: e\n }).addClass(\"highcharts-axis-title\"), m || this.axisTitle.css(c(k.style)), this.axisTitle.add(this.axisGroup), this.axisTitle.isNew = !0);\n m || k.style.width || this.isRadial || this.axisTitle.css({\n width: this.len + \"px\"\n });\n this.axisTitle[a ? \"show\" : \"hide\"](a);\n };\n\n f.prototype.generateTick = function (a) {\n var c = this.ticks;\n c[a] ? c[a].addLabel() : c[a] = new G(this, a);\n };\n\n f.prototype.getOffset = function () {\n var a = this,\n c = this,\n g = c.chart,\n b = c.horiz,\n d = c.options,\n k = c.side,\n e = c.ticks,\n h = c.tickPositions,\n f = c.coll,\n p = c.axisParent,\n D = g.renderer,\n q = g.inverted && !c.isZAxis ? [1, 0, 3, 2][k] : k,\n r = c.hasData(),\n l = d.title,\n t = d.labels,\n x = g.axisOffset;\n g = g.clipOffset;\n var z = [-1, 1, 1, -1][k],\n L = d.className,\n w,\n S = 0,\n ja = 0,\n ca = 0;\n c.showAxis = w = r || d.showEmpty;\n c.staggerLines = c.horiz && t.staggerLines || void 0;\n\n if (!c.axisGroup) {\n var J = function (c, g, b) {\n return D.g(c).attr({\n zIndex: b\n }).addClass(\"highcharts-\".concat(f.toLowerCase()).concat(g, \" \") + (a.isRadial ? \"highcharts-radial-axis\".concat(g, \" \") : \"\") + (L || \"\")).add(p);\n };\n\n c.gridGroup = J(\"grid\", \"-grid\", d.gridZIndex);\n c.axisGroup = J(\"axis\", \"\", d.zIndex);\n c.labelGroup = J(\"axis-labels\", \"-labels\", t.zIndex);\n }\n\n r || c.isLinked ? (h.forEach(function (a) {\n c.generateTick(a);\n }), c.renderUnsquish(), c.reserveSpaceDefault = 0 === k || 2 === k || {\n 1: \"left\",\n 3: \"right\"\n }[k] === c.labelAlign, u(t.reserveSpace, \"center\" === c.labelAlign ? !0 : null, c.reserveSpaceDefault) && h.forEach(function (a) {\n ca = Math.max(e[a].getLabelSize(), ca);\n }), c.staggerLines && (ca *= c.staggerLines), c.labelOffset = ca * (c.opposite ? -1 : 1)) : A(e, function (a, c) {\n a.destroy();\n delete e[c];\n });\n\n if (l && l.text && !1 !== l.enabled && (c.addTitle(w), w && !1 !== l.reserveSpace)) {\n c.titleOffset = S = c.axisTitle.getBBox()[b ? \"height\" : \"width\"];\n var M = l.offset;\n ja = n(M) ? 0 : u(l.margin, b ? 5 : 10);\n }\n\n c.renderLine();\n c.offset = z * u(d.offset, x[k] ? x[k] + (d.margin || 0) : 0);\n c.tickRotCorr = c.tickRotCorr || {\n x: 0,\n y: 0\n };\n l = 0 === k ? -c.labelMetrics().h : 2 === k ? c.tickRotCorr.y : 0;\n r = Math.abs(ca) + ja;\n ca && (r = r - l + z * (b ? u(t.y, c.tickRotCorr.y + 8 * z) : t.x));\n c.axisTitleMargin = u(M, r);\n c.getMaxLabelDimensions && (c.maxLabelDimensions = c.getMaxLabelDimensions(e, h));\n \"colorAxis\" !== f && (b = this.tickSize(\"tick\"), x[k] = Math.max(x[k], (c.axisTitleMargin || 0) + S + z * c.offset, r, h && h.length && b ? b[0] + z * c.offset : 0), d = !c.axisLine || d.offset ? 0 : 2 * Math.floor(c.axisLine.strokeWidth() / 2), g[q] = Math.max(g[q], d));\n m(this, \"afterGetOffset\");\n };\n\n f.prototype.getLinePath = function (a) {\n var c = this.chart,\n g = this.opposite,\n b = this.offset,\n d = this.horiz,\n k = this.left + (g ? this.width : 0) + b;\n b = c.chartHeight - this.bottom - (g ? this.height : 0) + b;\n g && (a *= -1);\n return c.renderer.crispLine([[\"M\", d ? this.left : k, d ? b : this.top], [\"L\", d ? c.chartWidth - this.right : k, d ? b : c.chartHeight - this.bottom]], a);\n };\n\n f.prototype.renderLine = function () {\n this.axisLine || (this.axisLine = this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup), this.chart.styledMode || this.axisLine.attr({\n stroke: this.options.lineColor,\n \"stroke-width\": this.options.lineWidth,\n zIndex: 7\n }));\n };\n\n f.prototype.getTitlePosition = function () {\n var a = this.horiz,\n c = this.left,\n g = this.top,\n b = this.len,\n d = this.options.title,\n k = a ? c : g,\n e = this.opposite,\n h = this.offset,\n f = d.x,\n u = d.y,\n p = this.axisTitle,\n n = this.chart.renderer.fontMetrics(d.style.fontSize, p);\n p = p ? Math.max(p.getBBox(!1, 0).height - n.h - 1, 0) : 0;\n b = {\n low: k + (a ? 0 : b),\n middle: k + b / 2,\n high: k + (a ? b : 0)\n }[d.align];\n c = (a ? g + this.height : c) + (a ? 1 : -1) * (e ? -1 : 1) * (this.axisTitleMargin || 0) + [-p, p, n.f, -p][this.side];\n a = {\n x: a ? b + f : c + (e ? this.width : 0) + h + f,\n y: a ? c + u - (e ? this.height : 0) + h : b + u\n };\n m(this, \"afterGetTitlePosition\", {\n titlePosition: a\n });\n return a;\n };\n\n f.prototype.renderMinorTick = function (a, c) {\n var g = this.minorTicks;\n g[a] || (g[a] = new G(this, a, \"minor\"));\n c && g[a].isNew && g[a].render(null, !0);\n g[a].render(null, !1, 1);\n };\n\n f.prototype.renderTick = function (a, c, g) {\n var b = this.ticks;\n if (!this.isLinked || a >= this.min && a <= this.max || this.grid && this.grid.isColumn) b[a] || (b[a] = new G(this, a)), g && b[a].isNew && b[a].render(c, !0, -1), b[a].render(c);\n };\n\n f.prototype.render = function () {\n var c = this,\n g = c.chart,\n b = c.logarithmic,\n d = c.options,\n k = c.isLinked,\n e = c.tickPositions,\n h = c.axisTitle,\n f = c.ticks,\n u = c.minorTicks,\n p = c.alternateBands,\n n = d.stackLabels,\n D = d.alternateGridColor,\n r = c.tickmarkOffset,\n q = c.axisLine,\n l = c.showAxis,\n t = y(g.renderer.globalAnimation),\n x,\n z;\n c.labelEdge.length = 0;\n c.overlap = !1;\n [f, u, p].forEach(function (a) {\n A(a, function (a) {\n a.isActive = !1;\n });\n });\n\n if (c.hasData() || k) {\n var L = c.chart.hasRendered && c.old && a(c.old.min);\n c.minorTickInterval && !c.categories && c.getMinorTickPositions().forEach(function (a) {\n c.renderMinorTick(a, L);\n });\n e.length && (e.forEach(function (a, g) {\n c.renderTick(a, g, L);\n }), r && (0 === c.min || c.single) && (f[-1] || (f[-1] = new G(c, -1, null, !0)), f[-1].render(-1)));\n D && e.forEach(function (a, d) {\n z = \"undefined\" !== typeof e[d + 1] ? e[d + 1] + r : c.max - r;\n 0 === d % 2 && a < c.max && z <= c.max + (g.polar ? -r : r) && (p[a] || (p[a] = new E.PlotLineOrBand(c)), x = a + r, p[a].options = {\n from: b ? b.lin2log(x) : x,\n to: b ? b.lin2log(z) : z,\n color: D,\n className: \"highcharts-alternate-grid\"\n }, p[a].render(), p[a].isActive = !0);\n });\n c._addedPlotLB || (c._addedPlotLB = !0, (d.plotLines || []).concat(d.plotBands || []).forEach(function (a) {\n c.addPlotBandOrLine(a);\n }));\n }\n\n [f, u, p].forEach(function (a) {\n var c = [],\n b = t.duration;\n A(a, function (a, g) {\n a.isActive || (a.render(g, !1, 0), a.isActive = !1, c.push(g));\n });\n M(function () {\n for (var g = c.length; g--;) a[c[g]] && !a[c[g]].isActive && (a[c[g]].destroy(), delete a[c[g]]);\n }, a !== p && g.hasRendered && b ? b : 0);\n });\n q && (q[q.isPlaced ? \"animate\" : \"attr\"]({\n d: this.getLinePath(q.strokeWidth())\n }), q.isPlaced = !0, q[l ? \"show\" : \"hide\"](l));\n h && l && (d = c.getTitlePosition(), h[h.isNew ? \"attr\" : \"animate\"](d), h.isNew = !1);\n n && n.enabled && c.stacking && c.stacking.renderStackTotals();\n c.old = {\n len: c.len,\n max: c.max,\n min: c.min,\n transA: c.transA,\n userMax: c.userMax,\n userMin: c.userMin\n };\n c.isDirty = !1;\n m(this, \"afterRender\");\n };\n\n f.prototype.redraw = function () {\n this.visible && (this.render(), this.plotLinesAndBands.forEach(function (a) {\n a.render();\n }));\n this.series.forEach(function (a) {\n a.isDirty = !0;\n });\n };\n\n f.prototype.getKeepProps = function () {\n return this.keepProps || f.keepProps;\n };\n\n f.prototype.destroy = function (a) {\n var c = this,\n g = c.plotLinesAndBands,\n b = this.eventOptions;\n m(this, \"destroy\", {\n keepEvents: a\n });\n a || S(c);\n [c.ticks, c.minorTicks, c.alternateBands].forEach(function (a) {\n J(a);\n });\n if (g) for (a = g.length; a--;) g[a].destroy();\n \"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function (a) {\n c[a] && (c[a] = c[a].destroy());\n });\n\n for (var d in c.plotLinesAndBandsGroups) c.plotLinesAndBandsGroups[d] = c.plotLinesAndBandsGroups[d].destroy();\n\n A(c, function (a, g) {\n -1 === c.getKeepProps().indexOf(g) && delete c[g];\n });\n this.eventOptions = b;\n };\n\n f.prototype.drawCrosshair = function (a, c) {\n var g = this.crosshair,\n b = u(g && g.snap, !0),\n d = this.chart,\n k,\n e = this.cross;\n m(this, \"drawCrosshair\", {\n e: a,\n point: c\n });\n a || (a = this.cross && this.cross.e);\n\n if (g && !1 !== (n(c) || !b)) {\n b ? n(c) && (k = u(\"colorAxis\" !== this.coll ? c.crosshairPos : null, this.isXAxis ? c.plotX : this.len - c.plotY)) : k = a && (this.horiz ? a.chartX - this.pos : this.len - a.chartY + this.pos);\n\n if (n(k)) {\n var h = {\n value: c && (this.isXAxis ? c.x : u(c.stackY, c.y)),\n translatedValue: k\n };\n d.polar && x(h, {\n isCrosshair: !0,\n chartX: a && a.chartX,\n chartY: a && a.chartY,\n point: c\n });\n h = this.getPlotLinePath(h) || null;\n }\n\n if (!n(h)) {\n this.hideCrosshair();\n return;\n }\n\n b = this.categories && !this.isRadial;\n e || (this.cross = e = d.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\" + (b ? \"category \" : \"thin \") + (g.className || \"\")).attr({\n zIndex: u(g.zIndex, 2)\n }).add(), d.styledMode || (e.attr({\n stroke: g.color || (b ? l.parse(\"#ccd6eb\").setOpacity(.25).get() : \"#cccccc\"),\n \"stroke-width\": u(g.width, 1)\n }).css({\n \"pointer-events\": \"none\"\n }), g.dashStyle && e.attr({\n dashstyle: g.dashStyle\n })));\n e.show().attr({\n d: h\n });\n b && !g.width && e.attr({\n \"stroke-width\": this.transA\n });\n this.cross.e = a;\n } else this.hideCrosshair();\n\n m(this, \"afterDrawCrosshair\", {\n e: a,\n point: c\n });\n };\n\n f.prototype.hideCrosshair = function () {\n this.cross && this.cross.hide();\n m(this, \"afterHideCrosshair\");\n };\n\n f.prototype.hasVerticalPanning = function () {\n var a = this.chart.options.chart.panning;\n return !!(a && a.enabled && /y/.test(a.type));\n };\n\n f.prototype.validatePositiveValue = function (c) {\n return a(c) && 0 < c;\n };\n\n f.prototype.update = function (a, g) {\n var b = this.chart;\n a = c(this.userOptions, a);\n this.destroy(!0);\n this.init(b, a);\n b.isDirtyBox = !0;\n u(g, !0) && b.redraw();\n };\n\n f.prototype.remove = function (a) {\n for (var c = this.chart, g = this.coll, b = this.series, d = b.length; d--;) b[d] && b[d].remove(!1);\n\n w(c.axes, this);\n w(c[g], this);\n c[g].forEach(function (a, c) {\n a.options.index = a.userOptions.index = c;\n });\n this.destroy();\n c.isDirtyBox = !0;\n u(a, !0) && c.redraw();\n };\n\n f.prototype.setTitle = function (a, c) {\n this.update({\n title: a\n }, c);\n };\n\n f.prototype.setCategories = function (a, c) {\n this.update({\n categories: a\n }, c);\n };\n\n f.defaultOptions = e.defaultXAxisOptions;\n f.keepProps = \"extKey hcEvents names series userMax userMin\".split(\" \");\n return f;\n }();\n\n \"\";\n return f;\n });\n K(l, \"Core/Axis/DateTimeAxis.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.addEvent,\n l = f.getMagnitude,\n C = f.normalizeTickInterval,\n v = f.timeUnits,\n E;\n\n (function (f) {\n function B() {\n return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);\n }\n\n function y(d) {\n \"datetime\" !== d.userOptions.type ? this.dateTime = void 0 : this.dateTime || (this.dateTime = new h(this));\n }\n\n var t = [];\n\n f.compose = function (d) {\n -1 === t.indexOf(d) && (t.push(d), d.keepProps.push(\"dateTime\"), d.prototype.getTimeTicks = B, e(d, \"init\", y));\n return d;\n };\n\n var h = function () {\n function d(b) {\n this.axis = b;\n }\n\n d.prototype.normalizeTimeTickInterval = function (b, d) {\n var e = d || [[\"millisecond\", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], [\"second\", [1, 2, 5, 10, 15, 30]], [\"minute\", [1, 2, 5, 10, 15, 30]], [\"hour\", [1, 2, 3, 4, 6, 8, 12]], [\"day\", [1, 2]], [\"week\", [1, 2]], [\"month\", [1, 2, 3, 4, 6]], [\"year\", null]];\n d = e[e.length - 1];\n var h = v[d[0]],\n f = d[1],\n p;\n\n for (p = 0; p < e.length && !(d = e[p], h = v[d[0]], f = d[1], e[p + 1] && b <= (h * f[f.length - 1] + v[e[p + 1][0]]) / 2); p++);\n\n h === v.year && b < 5 * h && (f = [1, 2, 5]);\n b = C(b / h, f, \"year\" === d[0] ? Math.max(l(b / h), 1) : 1);\n return {\n unitRange: h,\n count: b,\n unitName: d[0]\n };\n };\n\n d.prototype.getXDateFormat = function (b, d) {\n var e = this.axis,\n h = e.chart.time;\n return e.closestPointRange ? h.getDateFormat(e.closestPointRange, b, e.options.startOfWeek, d) || h.resolveDTLFormat(d.year).main : h.resolveDTLFormat(d.day).main;\n };\n\n return d;\n }();\n\n f.Additions = h;\n })(E || (E = {}));\n\n return E;\n });\n K(l, \"Core/Axis/LogarithmicAxis.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.addEvent,\n l = f.normalizeTickInterval,\n C = f.pick,\n v;\n\n (function (f) {\n function v(e) {\n var d = this.logarithmic;\n \"logarithmic\" !== e.userOptions.type ? this.logarithmic = void 0 : d || (this.logarithmic = new t(this));\n }\n\n function B() {\n var e = this.logarithmic;\n e && (this.lin2val = function (d) {\n return e.lin2log(d);\n }, this.val2lin = function (d) {\n return e.log2lin(d);\n });\n }\n\n var y = [];\n\n f.compose = function (h) {\n -1 === y.indexOf(h) && (y.push(h), h.keepProps.push(\"logarithmic\"), e(h, \"init\", v), e(h, \"afterInit\", B));\n return h;\n };\n\n var t = function () {\n function e(d) {\n this.axis = d;\n }\n\n e.prototype.getLogTickPositions = function (d, b, e, h) {\n var f = this.axis,\n p = f.len,\n q = f.options,\n t = [];\n h || (this.minorAutoInterval = void 0);\n if (.5 <= d) d = Math.round(d), t = f.getLinearTickPositions(d, b, e);else if (.08 <= d) {\n var z = Math.floor(b),\n x,\n m = q = void 0;\n\n for (p = .3 < d ? [1, 2, 4] : .15 < d ? [1, 2, 4, 6, 8] : [1, 2, 3, 4, 5, 6, 7, 8, 9]; z < e + 1 && !m; z++) {\n var k = p.length;\n\n for (x = 0; x < k && !m; x++) {\n var a = this.log2lin(this.lin2log(z) * p[x]);\n a > b && (!h || q <= e) && \"undefined\" !== typeof q && t.push(q);\n q > e && (m = !0);\n q = a;\n }\n }\n } else b = this.lin2log(b), e = this.lin2log(e), d = h ? f.getMinorTickInterval() : q.tickInterval, d = C(\"auto\" === d ? null : d, this.minorAutoInterval, q.tickPixelInterval / (h ? 5 : 1) * (e - b) / ((h ? p / f.tickPositions.length : p) || 1)), d = l(d), t = f.getLinearTickPositions(d, b, e).map(this.log2lin), h || (this.minorAutoInterval = d / 5);\n h || (f.tickInterval = d);\n return t;\n };\n\n e.prototype.lin2log = function (d) {\n return Math.pow(10, d);\n };\n\n e.prototype.log2lin = function (d) {\n return Math.log(d) / Math.LN10;\n };\n\n return e;\n }();\n\n f.Additions = t;\n })(v || (v = {}));\n\n return v;\n });\n K(l, \"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.erase,\n l = f.extend,\n C = f.isNumber,\n v;\n\n (function (f) {\n var v = [],\n B;\n\n f.compose = function (e, h) {\n B || (B = e);\n -1 === v.indexOf(h) && (v.push(h), l(h.prototype, y.prototype));\n return h;\n };\n\n var y = function () {\n function f() {}\n\n f.prototype.getPlotBandPath = function (e, d, b) {\n void 0 === b && (b = this.options);\n var h = this.getPlotLinePath({\n value: d,\n force: !0,\n acrossPanes: b.acrossPanes\n }),\n f = [],\n r = this.horiz;\n d = !C(this.min) || !C(this.max) || e < this.min && d < this.min || e > this.max && d > this.max;\n e = this.getPlotLinePath({\n value: e,\n force: !0,\n acrossPanes: b.acrossPanes\n });\n b = 1;\n\n if (e && h) {\n if (d) {\n var n = e.toString() === h.toString();\n b = 0;\n }\n\n for (d = 0; d < e.length; d += 2) {\n var l = e[d],\n t = e[d + 1],\n z = h[d],\n x = h[d + 1];\n \"M\" !== l[0] && \"L\" !== l[0] || \"M\" !== t[0] && \"L\" !== t[0] || \"M\" !== z[0] && \"L\" !== z[0] || \"M\" !== x[0] && \"L\" !== x[0] || (r && z[1] === l[1] ? (z[1] += b, x[1] += b) : r || z[2] !== l[2] || (z[2] += b, x[2] += b), f.push([\"M\", l[1], l[2]], [\"L\", t[1], t[2]], [\"L\", x[1], x[2]], [\"L\", z[1], z[2]], [\"Z\"]));\n f.isFlat = n;\n }\n }\n\n return f;\n };\n\n f.prototype.addPlotBand = function (e) {\n return this.addPlotBandOrLine(e, \"plotBands\");\n };\n\n f.prototype.addPlotLine = function (e) {\n return this.addPlotBandOrLine(e, \"plotLines\");\n };\n\n f.prototype.addPlotBandOrLine = function (e, d) {\n var b = this,\n f = this.userOptions,\n h = new B(this, e);\n this.visible && (h = h.render());\n\n if (h) {\n this._addedPlotLB || (this._addedPlotLB = !0, (f.plotLines || []).concat(f.plotBands || []).forEach(function (d) {\n b.addPlotBandOrLine(d);\n }));\n\n if (d) {\n var r = f[d] || [];\n r.push(e);\n f[d] = r;\n }\n\n this.plotLinesAndBands.push(h);\n }\n\n return h;\n };\n\n f.prototype.removePlotBandOrLine = function (f) {\n var d = this.plotLinesAndBands,\n b = this.options,\n h = this.userOptions;\n\n if (d) {\n for (var q = d.length; q--;) d[q].id === f && d[q].destroy();\n\n [b.plotLines || [], h.plotLines || [], b.plotBands || [], h.plotBands || []].forEach(function (b) {\n for (q = b.length; q--;) (b[q] || {}).id === f && e(b, b[q]);\n });\n }\n };\n\n f.prototype.removePlotBand = function (e) {\n this.removePlotBandOrLine(e);\n };\n\n f.prototype.removePlotLine = function (e) {\n this.removePlotBandOrLine(e);\n };\n\n return f;\n }();\n })(v || (v = {}));\n\n return v;\n });\n K(l, \"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\", [l[\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = e.arrayMax,\n C = e.arrayMin,\n v = e.defined,\n E = e.destroyObjectProperties,\n G = e.erase,\n B = e.fireEvent,\n y = e.merge,\n t = e.objectEach,\n h = e.pick;\n\n e = function () {\n function d(b, d) {\n this.axis = b;\n d && (this.options = d, this.id = d.id);\n }\n\n d.compose = function (b) {\n return f.compose(d, b);\n };\n\n d.prototype.render = function () {\n B(this, \"render\");\n var b = this,\n d = b.axis,\n e = d.horiz,\n f = d.logarithmic,\n n = b.options,\n l = n.color,\n w = h(n.zIndex, 0),\n z = n.events,\n x = {},\n m = d.chart.renderer,\n k = n.label,\n a = b.label,\n g = n.to,\n c = n.from,\n D = n.value,\n A = b.svgElem,\n u = [],\n L = v(c) && v(g);\n u = v(D);\n var S = !A,\n R = {\n \"class\": \"highcharts-plot-\" + (L ? \"band \" : \"line \") + (n.className || \"\")\n },\n M = L ? \"bands\" : \"lines\";\n f && (c = f.log2lin(c), g = f.log2lin(g), D = f.log2lin(D));\n d.chart.styledMode || (u ? (R.stroke = l || \"#999999\", R[\"stroke-width\"] = h(n.width, 1), n.dashStyle && (R.dashstyle = n.dashStyle)) : L && (R.fill = l || \"#e6ebf5\", n.borderWidth && (R.stroke = n.borderColor, R[\"stroke-width\"] = n.borderWidth)));\n x.zIndex = w;\n M += \"-\" + w;\n (f = d.plotLinesAndBandsGroups[M]) || (d.plotLinesAndBandsGroups[M] = f = m.g(\"plot-\" + M).attr(x).add());\n S && (b.svgElem = A = m.path().attr(R).add(f));\n if (u) u = d.getPlotLinePath({\n value: D,\n lineWidth: A.strokeWidth(),\n acrossPanes: n.acrossPanes\n });else if (L) u = d.getPlotBandPath(c, g, n);else return;\n !b.eventsAdded && z && (t(z, function (a, c) {\n A.on(c, function (a) {\n z[c].apply(b, [a]);\n });\n }), b.eventsAdded = !0);\n (S || !A.d) && u && u.length ? A.attr({\n d: u\n }) : A && (u ? (A.show(), A.animate({\n d: u\n })) : A.d && (A.hide(), a && (b.label = a = a.destroy())));\n k && (v(k.text) || v(k.formatter)) && u && u.length && 0 < d.width && 0 < d.height && !u.isFlat ? (k = y({\n align: e && L && \"center\",\n x: e ? !L && 4 : 10,\n verticalAlign: !e && L && \"middle\",\n y: e ? L ? 16 : 10 : L ? 6 : -4,\n rotation: e && !L && 90\n }, k), this.renderLabel(k, u, L, w)) : a && a.hide();\n return b;\n };\n\n d.prototype.renderLabel = function (b, d, e, f) {\n var h = this.axis,\n p = h.chart.renderer,\n r = this.label;\n r || (this.label = r = p.text(this.getLabelText(b), 0, 0, b.useHTML).attr({\n align: b.textAlign || b.align,\n rotation: b.rotation,\n \"class\": \"highcharts-plot-\" + (e ? \"band\" : \"line\") + \"-label \" + (b.className || \"\"),\n zIndex: f\n }).add(), h.chart.styledMode || r.css(y({\n textOverflow: \"ellipsis\"\n }, b.style)));\n f = d.xBounds || [d[0][1], d[1][1], e ? d[2][1] : d[0][1]];\n d = d.yBounds || [d[0][2], d[1][2], e ? d[2][2] : d[0][2]];\n e = C(f);\n p = C(d);\n r.align(b, !1, {\n x: e,\n y: p,\n width: l(f) - e,\n height: l(d) - p\n });\n r.alignValue && \"left\" !== r.alignValue || r.css({\n width: (90 === r.rotation ? h.height - (r.alignAttr.y - h.top) : h.width - (r.alignAttr.x - h.left)) + \"px\"\n });\n r.show(!0);\n };\n\n d.prototype.getLabelText = function (b) {\n return v(b.formatter) ? b.formatter.call(this) : b.text;\n };\n\n d.prototype.destroy = function () {\n G(this.axis.plotLinesAndBands, this);\n delete this.axis;\n E(this);\n };\n\n return d;\n }();\n\n \"\";\n \"\";\n return e;\n });\n K(l, \"Core/Tooltip.js\", [l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var E = f.format,\n G = e.doc,\n B = l.distribute,\n y = v.addEvent,\n t = v.clamp,\n h = v.css,\n d = v.defined,\n b = v.discardElement,\n p = v.extend,\n q = v.fireEvent,\n r = v.isArray,\n n = v.isNumber,\n J = v.isString,\n w = v.merge,\n z = v.pick,\n x = v.splat,\n m = v.syncTimeout;\n\n f = function () {\n function k(a, g) {\n this.allowShared = !0;\n this.container = void 0;\n this.crosshairs = [];\n this.distance = 0;\n this.isHidden = !0;\n this.isSticky = !1;\n this.now = {};\n this.options = {};\n this.outside = !1;\n this.chart = a;\n this.init(a, g);\n }\n\n k.prototype.applyFilter = function () {\n var a = this.chart;\n a.renderer.definition({\n tagName: \"filter\",\n attributes: {\n id: \"drop-shadow-\" + a.index,\n opacity: .5\n },\n children: [{\n tagName: \"feGaussianBlur\",\n attributes: {\n \"in\": \"SourceAlpha\",\n stdDeviation: 1\n }\n }, {\n tagName: \"feOffset\",\n attributes: {\n dx: 1,\n dy: 1\n }\n }, {\n tagName: \"feComponentTransfer\",\n children: [{\n tagName: \"feFuncA\",\n attributes: {\n type: \"linear\",\n slope: .3\n }\n }]\n }, {\n tagName: \"feMerge\",\n children: [{\n tagName: \"feMergeNode\"\n }, {\n tagName: \"feMergeNode\",\n attributes: {\n \"in\": \"SourceGraphic\"\n }\n }]\n }]\n });\n };\n\n k.prototype.bodyFormatter = function (a) {\n return a.map(function (a) {\n var c = a.series.tooltipOptions;\n return (c[(a.point.formatPrefix || \"point\") + \"Formatter\"] || a.point.tooltipFormatter).call(a.point, c[(a.point.formatPrefix || \"point\") + \"Format\"] || \"\");\n });\n };\n\n k.prototype.cleanSplit = function (a) {\n this.chart.series.forEach(function (g) {\n var c = g && g.tt;\n c && (!c.isActive || a ? g.tt = c.destroy() : c.isActive = !1);\n });\n };\n\n k.prototype.defaultFormatter = function (a) {\n var g = this.points || x(this);\n var c = [a.tooltipFooterHeaderFormatter(g[0])];\n c = c.concat(a.bodyFormatter(g));\n c.push(a.tooltipFooterHeaderFormatter(g[0], !0));\n return c;\n };\n\n k.prototype.destroy = function () {\n this.label && (this.label = this.label.destroy());\n this.split && this.tt && (this.cleanSplit(!0), this.tt = this.tt.destroy());\n this.renderer && (this.renderer = this.renderer.destroy(), b(this.container));\n v.clearTimeout(this.hideTimer);\n v.clearTimeout(this.tooltipTimeout);\n };\n\n k.prototype.getAnchor = function (a, g) {\n var c = this.chart,\n b = c.pointer,\n d = c.inverted,\n k = c.plotTop,\n e = c.plotLeft,\n m,\n f,\n h = 0,\n p = 0;\n a = x(a);\n this.followPointer && g ? (\"undefined\" === typeof g.chartX && (g = b.normalize(g)), b = [g.chartX - e, g.chartY - k]) : a[0].tooltipPos ? b = a[0].tooltipPos : (a.forEach(function (a) {\n m = a.series.yAxis;\n f = a.series.xAxis;\n h += a.plotX || 0;\n p += a.plotLow ? (a.plotLow + (a.plotHigh || 0)) / 2 : a.plotY || 0;\n f && m && (d ? (h += k + c.plotHeight - f.len - f.pos, p += e + c.plotWidth - m.len - m.pos) : (h += f.pos - e, p += m.pos - k));\n }), h /= a.length, p /= a.length, b = [d ? c.plotWidth - p : h, d ? c.plotHeight - h : p], this.shared && 1 < a.length && g && (d ? b[0] = g.chartX - e : b[1] = g.chartY - k));\n return b.map(Math.round);\n };\n\n k.prototype.getLabel = function () {\n var a = this,\n g = this.chart.styledMode,\n c = this.options,\n b = this.split && this.allowShared,\n k = \"tooltip\" + (d(c.className) ? \" \" + c.className : \"\"),\n m = c.style.pointerEvents || (!this.followPointer && c.stickOnContact ? \"auto\" : \"none\"),\n f = function () {\n a.inContact = !0;\n },\n p = function (c) {\n var g = a.chart.hoverSeries;\n a.inContact = a.shouldStickOnContact() && a.chart.pointer.inClass(c.relatedTarget, \"highcharts-tooltip\");\n if (!a.inContact && g && g.onMouseOut) g.onMouseOut();\n },\n n,\n r = this.chart.renderer;\n\n if (a.label) {\n var q = !a.label.hasClass(\"highcharts-label\");\n (b && !q || !b && q) && a.destroy();\n }\n\n if (!this.label) {\n if (this.outside) {\n q = this.chart.options.chart.style;\n var l = C.getRendererType();\n this.container = n = e.doc.createElement(\"div\");\n n.className = \"highcharts-tooltip-container\";\n h(n, {\n position: \"absolute\",\n top: \"1px\",\n pointerEvents: m,\n zIndex: Math.max(this.options.style.zIndex || 0, (q && q.zIndex || 0) + 3)\n });\n y(n, \"mouseenter\", f);\n y(n, \"mouseleave\", p);\n e.doc.body.appendChild(n);\n this.renderer = r = new l(n, 0, 0, q, void 0, void 0, r.styledMode);\n }\n\n b ? this.label = r.g(k) : (this.label = r.label(\"\", 0, 0, c.shape, void 0, void 0, c.useHTML, void 0, k).attr({\n padding: c.padding,\n r: c.borderRadius\n }), g || this.label.attr({\n fill: c.backgroundColor,\n \"stroke-width\": c.borderWidth\n }).css(c.style).css({\n pointerEvents: m\n }).shadow(c.shadow));\n g && c.shadow && (this.applyFilter(), this.label.attr({\n filter: \"url(#drop-shadow-\" + this.chart.index + \")\"\n }));\n\n if (a.outside && !a.split) {\n var t = this.label,\n x = t.xSetter,\n z = t.ySetter;\n\n t.xSetter = function (c) {\n x.call(t, a.distance);\n n.style.left = c + \"px\";\n };\n\n t.ySetter = function (c) {\n z.call(t, a.distance);\n n.style.top = c + \"px\";\n };\n }\n\n this.label.on(\"mouseenter\", f).on(\"mouseleave\", p).attr({\n zIndex: 8\n }).add();\n }\n\n return this.label;\n };\n\n k.prototype.getPosition = function (a, g, c) {\n var b = this.chart,\n d = this.distance,\n k = {},\n e = b.inverted && c.h || 0,\n m = this.outside,\n f = m ? G.documentElement.clientWidth - 2 * d : b.chartWidth,\n h = m ? Math.max(G.body.scrollHeight, G.documentElement.scrollHeight, G.body.offsetHeight, G.documentElement.offsetHeight, G.documentElement.clientHeight) : b.chartHeight,\n p = b.pointer.getChartPosition(),\n n = function (k) {\n var e = \"x\" === k;\n return [k, e ? f : h, e ? a : g].concat(m ? [e ? a * p.scaleX : g * p.scaleY, e ? p.left - d + (c.plotX + b.plotLeft) * p.scaleX : p.top - d + (c.plotY + b.plotTop) * p.scaleY, 0, e ? f : h] : [e ? a : g, e ? c.plotX + b.plotLeft : c.plotY + b.plotTop, e ? b.plotLeft : b.plotTop, e ? b.plotLeft + b.plotWidth : b.plotTop + b.plotHeight]);\n },\n r = n(\"y\"),\n q = n(\"x\"),\n l;\n\n n = !!c.negative;\n !b.polar && b.hoverSeries && b.hoverSeries.yAxis && b.hoverSeries.yAxis.reversed && (n = !n);\n\n var t = !this.followPointer && z(c.ttBelow, !b.inverted === n),\n x = function (a, c, g, b, f, h, u) {\n var n = m ? \"y\" === a ? d * p.scaleY : d * p.scaleX : d,\n A = (g - b) / 2,\n D = b < f - d,\n F = f + d + b < c,\n r = f - n - g + A;\n f = f + n - A;\n if (t && F) k[a] = f;else if (!t && D) k[a] = r;else if (D) k[a] = Math.min(u - b, 0 > r - e ? r : r - e);else if (F) k[a] = Math.max(h, f + e + g > c ? f : f + e);else return !1;\n },\n w = function (a, c, g, b, e) {\n var m;\n e < d || e > c - d ? m = !1 : k[a] = e < g / 2 ? 1 : e > c - b / 2 ? c - b - 2 : e - g / 2;\n return m;\n },\n F = function (a) {\n var c = r;\n r = q;\n q = c;\n l = a;\n },\n T = function () {\n !1 !== x.apply(0, r) ? !1 !== w.apply(0, q) || l || (F(!0), T()) : l ? k.x = k.y = 0 : (F(!0), T());\n };\n\n (b.inverted || 1 < this.len) && F();\n T();\n return k;\n };\n\n k.prototype.hide = function (a) {\n var g = this;\n v.clearTimeout(this.hideTimer);\n a = z(a, this.options.hideDelay);\n this.isHidden || (this.hideTimer = m(function () {\n g.getLabel().fadeOut(a ? void 0 : a);\n g.isHidden = !0;\n }, a));\n };\n\n k.prototype.init = function (a, g) {\n this.chart = a;\n this.options = g;\n this.crosshairs = [];\n this.now = {\n x: 0,\n y: 0\n };\n this.isHidden = !0;\n this.split = g.split && !a.inverted && !a.polar;\n this.shared = g.shared || this.split;\n this.outside = z(g.outside, !(!a.scrollablePixelsX && !a.scrollablePixelsY));\n };\n\n k.prototype.shouldStickOnContact = function () {\n return !(this.followPointer || !this.options.stickOnContact);\n };\n\n k.prototype.isStickyOnContact = function () {\n return !(!this.shouldStickOnContact() || !this.inContact);\n };\n\n k.prototype.move = function (a, g, c, b) {\n var d = this,\n k = d.now,\n e = !1 !== d.options.animation && !d.isHidden && (1 < Math.abs(a - k.x) || 1 < Math.abs(g - k.y)),\n m = d.followPointer || 1 < d.len;\n p(k, {\n x: e ? (2 * k.x + a) / 3 : a,\n y: e ? (k.y + g) / 2 : g,\n anchorX: m ? void 0 : e ? (2 * k.anchorX + c) / 3 : c,\n anchorY: m ? void 0 : e ? (k.anchorY + b) / 2 : b\n });\n d.getLabel().attr(k);\n d.drawTracker();\n e && (v.clearTimeout(this.tooltipTimeout), this.tooltipTimeout = setTimeout(function () {\n d && d.move(a, g, c, b);\n }, 32));\n };\n\n k.prototype.refresh = function (a, g) {\n var c = this.chart,\n b = this.options,\n d = x(a),\n k = d[0],\n e = [],\n m = b.formatter || this.defaultFormatter,\n f = this.shared,\n h = c.styledMode,\n p = {};\n\n if (b.enabled && k.series) {\n v.clearTimeout(this.hideTimer);\n this.allowShared = !(!r(a) && a.series && a.series.noSharedTooltip);\n this.followPointer = !this.split && k.series.tooltipOptions.followPointer;\n a = this.getAnchor(a, g);\n var n = a[0],\n l = a[1];\n f && this.allowShared ? (c.pointer.applyInactiveState(d), d.forEach(function (a) {\n a.setState(\"hover\");\n e.push(a.getLabelConfig());\n }), p = {\n x: k.category,\n y: k.y\n }, p.points = e) : p = k.getLabelConfig();\n this.len = e.length;\n m = m.call(p, this);\n f = k.series;\n this.distance = z(f.tooltipOptions.distance, 16);\n if (!1 === m) this.hide();else {\n if (this.split && this.allowShared) this.renderSplit(m, d);else {\n var t = n,\n w = l;\n g && c.pointer.isDirectTouch && (t = g.chartX - c.plotLeft, w = g.chartY - c.plotTop);\n if (c.polar || !1 === f.options.clip || d.some(function (a) {\n return a.series.shouldShowTooltip(t, w);\n })) g = this.getLabel(), b.style.width && !h || g.css({\n width: this.chart.spacingBox.width + \"px\"\n }), g.attr({\n text: m && m.join ? m.join(\"\") : m\n }), g.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\" + z(k.colorIndex, f.colorIndex)), h || g.attr({\n stroke: b.borderColor || k.color || f.color || \"#666666\"\n }), this.updatePosition({\n plotX: n,\n plotY: l,\n negative: k.negative,\n ttBelow: k.ttBelow,\n h: a[2] || 0\n });else {\n this.hide();\n return;\n }\n }\n this.isHidden && this.label && this.label.attr({\n opacity: 1\n }).show();\n this.isHidden = !1;\n }\n q(this, \"refresh\");\n }\n };\n\n k.prototype.renderSplit = function (a, g) {\n function c(a, c, g, d, k) {\n void 0 === k && (k = !0);\n g ? (c = X ? 0 : E, a = t(a - d / 2, N.left, N.right - d - (b.outside ? Q : 0))) : (c -= Z, a = k ? a - d - v : a + v, a = t(a, k ? a : N.left, N.right));\n return {\n x: a,\n y: c\n };\n }\n\n var b = this,\n d = b.chart,\n k = b.chart,\n e = k.chartWidth,\n m = k.chartHeight,\n f = k.plotHeight,\n h = k.plotLeft,\n n = k.plotTop,\n r = k.pointer,\n q = k.scrollablePixelsY;\n q = void 0 === q ? 0 : q;\n var l = k.scrollablePixelsX,\n x = k.scrollingContainer;\n x = void 0 === x ? {\n scrollLeft: 0,\n scrollTop: 0\n } : x;\n var w = x.scrollLeft;\n x = x.scrollTop;\n var y = k.styledMode,\n v = b.distance,\n F = b.options,\n T = b.options.positioner,\n N = b.outside && \"number\" !== typeof l ? G.documentElement.getBoundingClientRect() : {\n left: w,\n right: w + e,\n top: x,\n bottom: x + m\n },\n V = b.getLabel(),\n W = this.renderer || d.renderer,\n X = !(!d.xAxis[0] || !d.xAxis[0].opposite);\n d = r.getChartPosition();\n var Q = d.left;\n d = d.top;\n var Z = n + x,\n ba = 0,\n E = f - q;\n J(a) && (a = [!1, a]);\n a = a.slice(0, g.length + 1).reduce(function (a, d, k) {\n if (!1 !== d && \"\" !== d) {\n k = g[k - 1] || {\n isHeader: !0,\n plotX: g[0].plotX,\n plotY: f,\n series: {}\n };\n var e = k.isHeader,\n m = e ? b : k.series;\n d = d.toString();\n var u = m.tt,\n p = k.isHeader;\n var A = k.series;\n var D = \"highcharts-color-\" + z(k.colorIndex, A.colorIndex, \"none\");\n u || (u = {\n padding: F.padding,\n r: F.borderRadius\n }, y || (u.fill = F.backgroundColor, u[\"stroke-width\"] = F.borderWidth), u = W.label(\"\", 0, 0, F[p ? \"headerShape\" : \"shape\"], void 0, void 0, F.useHTML).addClass((p ? \"highcharts-tooltip-header \" : \"\") + \"highcharts-tooltip-box \" + D).attr(u).add(V));\n u.isActive = !0;\n u.attr({\n text: d\n });\n y || u.css(F.style).shadow(F.shadow).attr({\n stroke: F.borderColor || k.color || A.color || \"#333333\"\n });\n m = m.tt = u;\n p = m.getBBox();\n d = p.width + m.strokeWidth();\n e && (ba = p.height, E += ba, X && (Z -= ba));\n A = k.plotX;\n A = void 0 === A ? 0 : A;\n D = k.plotY;\n D = void 0 === D ? 0 : D;\n u = k.series;\n\n if (k.isHeader) {\n A = h + A;\n var r = n + f / 2;\n } else {\n var q = u.xAxis,\n l = u.yAxis;\n A = q.pos + t(A, -v, q.len + v);\n u.shouldShowTooltip(0, l.pos - n + D, {\n ignoreX: !0\n }) && (r = l.pos + D);\n }\n\n A = t(A, N.left - v, N.right + v);\n \"number\" === typeof r ? (p = p.height + 1, D = T ? T.call(b, d, p, k) : c(A, r, e, d), a.push({\n align: T ? 0 : void 0,\n anchorX: A,\n anchorY: r,\n boxWidth: d,\n point: k,\n rank: z(D.rank, e ? 1 : 0),\n size: p,\n target: D.y,\n tt: m,\n x: D.x\n })) : m.isActive = !1;\n }\n\n return a;\n }, []);\n !T && a.some(function (a) {\n var c = (b.outside ? Q : 0) + a.anchorX;\n return c < N.left && c + a.boxWidth < N.right ? !0 : c < Q - N.left + a.boxWidth && N.right - c > c;\n }) && (a = a.map(function (a) {\n var b = c(a.anchorX, a.anchorY, a.point.isHeader, a.boxWidth, !1);\n return p(a, {\n target: b.y,\n x: b.x\n });\n }));\n b.cleanSplit();\n B(a, E);\n var C = Q,\n P = Q;\n a.forEach(function (a) {\n var c = a.x,\n g = a.boxWidth;\n a = a.isHeader;\n a || (b.outside && Q + c < C && (C = Q + c), !a && b.outside && C + g > P && (P = Q + c));\n });\n a.forEach(function (a) {\n var c = a.x,\n g = a.anchorX,\n d = a.pos,\n k = a.point.isHeader;\n d = {\n visibility: \"undefined\" === typeof d ? \"hidden\" : \"inherit\",\n x: c,\n y: d + Z,\n anchorX: g,\n anchorY: a.anchorY\n };\n\n if (b.outside && c < g) {\n var e = Q - C;\n 0 < e && (k || (d.x = c + e, d.anchorX = g + e), k && (d.x = (P - C) / 2, d.anchorX = g + e));\n }\n\n a.tt.attr(d);\n });\n a = b.container;\n q = b.renderer;\n b.outside && a && q && (k = V.getBBox(), q.setSize(k.width + k.x, k.height + k.y, !1), a.style.left = C + \"px\", a.style.top = d + \"px\");\n };\n\n k.prototype.drawTracker = function () {\n if (this.followPointer || !this.options.stickOnContact) this.tracker && this.tracker.destroy();else {\n var a = this.chart,\n b = this.label,\n c = this.shared ? a.hoverPoints : a.hoverPoint;\n\n if (b && c) {\n var d = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n c = this.getAnchor(c);\n var k = b.getBBox();\n c[0] += a.plotLeft - b.translateX;\n c[1] += a.plotTop - b.translateY;\n d.x = Math.min(0, c[0]);\n d.y = Math.min(0, c[1]);\n d.width = 0 > c[0] ? Math.max(Math.abs(c[0]), k.width - c[0]) : Math.max(Math.abs(c[0]), k.width);\n d.height = 0 > c[1] ? Math.max(Math.abs(c[1]), k.height - Math.abs(c[1])) : Math.max(Math.abs(c[1]), k.height);\n this.tracker ? this.tracker.attr(d) : (this.tracker = b.renderer.rect(d).addClass(\"highcharts-tracker\").add(b), a.styledMode || this.tracker.attr({\n fill: \"rgba(0,0,0,0)\"\n }));\n }\n }\n };\n\n k.prototype.styledModeFormat = function (a) {\n return a.replace('style=\"font-size: 10px\"', 'class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g, 'class=\"highcharts-color-{$1.colorIndex}\"');\n };\n\n k.prototype.tooltipFooterHeaderFormatter = function (a, b) {\n var c = a.series,\n g = c.tooltipOptions,\n d = c.xAxis,\n k = d && d.dateTime;\n d = {\n isFooter: b,\n labelConfig: a\n };\n var e = g.xDateFormat,\n m = g[b ? \"footerFormat\" : \"headerFormat\"];\n q(this, \"headerFormatter\", d, function (b) {\n k && !e && n(a.key) && (e = k.getXDateFormat(a.key, g.dateTimeLabelFormats));\n k && e && (a.point && a.point.tooltipDateKeys || [\"key\"]).forEach(function (a) {\n m = m.replace(\"{point.\" + a + \"}\", \"{point.\" + a + \":\" + e + \"}\");\n });\n c.chart.styledMode && (m = this.styledModeFormat(m));\n b.text = E(m, {\n point: a,\n series: c\n }, this.chart);\n });\n return d.text;\n };\n\n k.prototype.update = function (a) {\n this.destroy();\n w(!0, this.chart.options.tooltip.userOptions, a);\n this.init(this.chart, w(!0, this.options, a));\n };\n\n k.prototype.updatePosition = function (a) {\n var b = this.chart,\n c = this.options,\n d = b.pointer,\n k = this.getLabel();\n d = d.getChartPosition();\n var e = (c.positioner || this.getPosition).call(this, k.width, k.height, a),\n m = a.plotX + b.plotLeft;\n a = a.plotY + b.plotTop;\n\n if (this.outside) {\n c = c.borderWidth + 2 * this.distance;\n this.renderer.setSize(k.width + c, k.height + c, !1);\n if (1 !== d.scaleX || 1 !== d.scaleY) h(this.container, {\n transform: \"scale(\".concat(d.scaleX, \", \").concat(d.scaleY, \")\")\n }), m *= d.scaleX, a *= d.scaleY;\n m += d.left - e.x;\n a += d.top - e.y;\n }\n\n this.move(Math.round(e.x), Math.round(e.y || 0), m, a);\n };\n\n return k;\n }();\n\n \"\";\n return f;\n });\n K(l, \"Core/Series/Point.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var E = e.animObject,\n G = l.defaultOptions,\n B = C.format,\n y = v.addEvent,\n t = v.defined,\n h = v.erase,\n d = v.extend,\n b = v.fireEvent,\n p = v.getNestedProperty,\n q = v.isArray,\n r = v.isFunction,\n n = v.isNumber,\n J = v.isObject,\n w = v.merge,\n z = v.objectEach,\n x = v.pick,\n m = v.syncTimeout,\n k = v.removeEvent,\n a = v.uniqueKey;\n\n e = function () {\n function g() {\n this.colorIndex = this.category = void 0;\n this.formatPrefix = \"point\";\n this.id = void 0;\n this.isNull = !1;\n this.percentage = this.options = this.name = void 0;\n this.selected = !1;\n this.total = this.shapeArgs = this.series = void 0;\n this.visible = !0;\n this.x = void 0;\n }\n\n g.prototype.animateBeforeDestroy = function () {\n var a = this,\n b = {\n x: a.startXPos,\n opacity: 0\n },\n g = a.getGraphicalProps();\n g.singular.forEach(function (c) {\n a[c] = a[c].animate(\"dataLabel\" === c ? {\n x: a[c].startXPos,\n y: a[c].startYPos,\n opacity: 0\n } : b);\n });\n g.plural.forEach(function (c) {\n a[c].forEach(function (c) {\n c.element && c.animate(d({\n x: a.startXPos\n }, c.startYPos ? {\n x: c.startXPos,\n y: c.startYPos\n } : {}));\n });\n });\n };\n\n g.prototype.applyOptions = function (a, b) {\n var c = this.series,\n k = c.options.pointValKey || c.pointValKey;\n a = g.prototype.optionsToObject.call(this, a);\n d(this, a);\n this.options = this.options ? d(this.options, a) : a;\n a.group && delete this.group;\n a.dataLabels && delete this.dataLabels;\n k && (this.y = g.prototype.getNestedProperty.call(this, k));\n this.formatPrefix = (this.isNull = x(this.isValid && !this.isValid(), null === this.x || !n(this.y))) ? \"null\" : \"point\";\n this.selected && (this.state = \"select\");\n \"name\" in this && \"undefined\" === typeof b && c.xAxis && c.xAxis.hasNames && (this.x = c.xAxis.nameToX(this));\n \"undefined\" === typeof this.x && c ? this.x = \"undefined\" === typeof b ? c.autoIncrement() : b : n(a.x) && c.options.relativeXValue && (this.x = c.autoIncrement(a.x));\n return this;\n };\n\n g.prototype.destroy = function () {\n function a() {\n if (b.graphic || b.dataLabel || b.dataLabels) k(b), b.destroyElements();\n\n for (p in b) b[p] = null;\n }\n\n var b = this,\n g = b.series,\n d = g.chart;\n g = g.options.dataSorting;\n var e = d.hoverPoints,\n f = E(b.series.chart.renderer.globalAnimation),\n p;\n b.legendItem && d.legend.destroyItem(b);\n e && (b.setState(), h(e, b), e.length || (d.hoverPoints = null));\n if (b === d.hoverPoint) b.onMouseOut();\n g && g.enabled ? (this.animateBeforeDestroy(), m(a, f.duration)) : a();\n d.pointCount--;\n };\n\n g.prototype.destroyElements = function (a) {\n var c = this;\n a = c.getGraphicalProps(a);\n a.singular.forEach(function (a) {\n c[a] = c[a].destroy();\n });\n a.plural.forEach(function (a) {\n c[a].forEach(function (a) {\n a.element && a.destroy();\n });\n delete c[a];\n });\n };\n\n g.prototype.firePointEvent = function (a, g, d) {\n var c = this,\n k = this.series.options;\n (k.point.events[a] || c.options && c.options.events && c.options.events[a]) && c.importEvents();\n \"click\" === a && k.allowPointSelect && (d = function (a) {\n c.select && c.select(null, a.ctrlKey || a.metaKey || a.shiftKey);\n });\n b(c, a, g, d);\n };\n\n g.prototype.getClassName = function () {\n return \"highcharts-point\" + (this.selected ? \" highcharts-point-select\" : \"\") + (this.negative ? \" highcharts-negative\" : \"\") + (this.isNull ? \" highcharts-null-point\" : \"\") + (\"undefined\" !== typeof this.colorIndex ? \" highcharts-color-\" + this.colorIndex : \"\") + (this.options.className ? \" \" + this.options.className : \"\") + (this.zone && this.zone.className ? \" \" + this.zone.className.replace(\"highcharts-negative\", \"\") : \"\");\n };\n\n g.prototype.getGraphicalProps = function (a) {\n var c = this,\n b = [],\n g = {\n singular: [],\n plural: []\n },\n d;\n a = a || {\n graphic: 1,\n dataLabel: 1\n };\n a.graphic && b.push(\"graphic\", \"upperGraphic\", \"shadowGroup\");\n a.dataLabel && b.push(\"dataLabel\", \"dataLabelUpper\", \"connector\");\n\n for (d = b.length; d--;) {\n var k = b[d];\n c[k] && g.singular.push(k);\n }\n\n [\"dataLabel\", \"connector\"].forEach(function (b) {\n var d = b + \"s\";\n a[b] && c[d] && g.plural.push(d);\n });\n return g;\n };\n\n g.prototype.getLabelConfig = function () {\n return {\n x: this.category,\n y: this.y,\n color: this.color,\n colorIndex: this.colorIndex,\n key: this.name || this.category,\n series: this.series,\n point: this,\n percentage: this.percentage,\n total: this.total || this.stackTotal\n };\n };\n\n g.prototype.getNestedProperty = function (a) {\n if (a) return 0 === a.indexOf(\"custom.\") ? p(a, this.options) : this[a];\n };\n\n g.prototype.getZone = function () {\n var a = this.series,\n b = a.zones;\n a = a.zoneAxis || \"y\";\n var g,\n d = 0;\n\n for (g = b[d]; this[a] >= g.value;) g = b[++d];\n\n this.nonZonedColor || (this.nonZonedColor = this.color);\n this.color = g && g.color && !this.options.color ? g.color : this.nonZonedColor;\n return g;\n };\n\n g.prototype.hasNewShapeType = function () {\n return (this.graphic && (this.graphic.symbolName || this.graphic.element.nodeName)) !== this.shapeType;\n };\n\n g.prototype.init = function (c, g, d) {\n this.series = c;\n this.applyOptions(g, d);\n this.id = t(this.id) ? this.id : a();\n this.resolveColor();\n c.chart.pointCount++;\n b(this, \"afterInit\");\n return this;\n };\n\n g.prototype.optionsToObject = function (a) {\n var c = this.series,\n b = c.options.keys,\n d = b || c.pointArrayMap || [\"y\"],\n k = d.length,\n e = {},\n m = 0,\n f = 0;\n if (n(a) || null === a) e[d[0]] = a;else if (q(a)) for (!b && a.length > k && (c = typeof a[0], \"string\" === c ? e.name = a[0] : \"number\" === c && (e.x = a[0]), m++); f < k;) b && \"undefined\" === typeof a[m] || (0 < d[f].indexOf(\".\") ? g.prototype.setNestedProperty(e, a[m], d[f]) : e[d[f]] = a[m]), m++, f++;else \"object\" === typeof a && (e = a, a.dataLabels && (c._hasPointLabels = !0), a.marker && (c._hasPointMarkers = !0));\n return e;\n };\n\n g.prototype.resolveColor = function () {\n var a = this.series,\n b = a.chart.styledMode;\n var g = a.chart.options.chart.colorCount;\n delete this.nonZonedColor;\n\n if (a.options.colorByPoint) {\n if (!b) {\n g = a.options.colors || a.chart.options.colors;\n var d = g[a.colorCounter];\n g = g.length;\n }\n\n b = a.colorCounter;\n a.colorCounter++;\n a.colorCounter === g && (a.colorCounter = 0);\n } else b || (d = a.color), b = a.colorIndex;\n\n this.colorIndex = x(this.options.colorIndex, b);\n this.color = x(this.options.color, d);\n };\n\n g.prototype.setNestedProperty = function (a, b, g) {\n g.split(\".\").reduce(function (a, c, g, d) {\n a[c] = d.length - 1 === g ? b : J(a[c], !0) ? a[c] : {};\n return a[c];\n }, a);\n return a;\n };\n\n g.prototype.tooltipFormatter = function (a) {\n var c = this.series,\n b = c.tooltipOptions,\n g = x(b.valueDecimals, \"\"),\n d = b.valuePrefix || \"\",\n k = b.valueSuffix || \"\";\n c.chart.styledMode && (a = c.chart.tooltip.styledModeFormat(a));\n (c.pointArrayMap || [\"y\"]).forEach(function (c) {\n c = \"{point.\" + c;\n if (d || k) a = a.replace(RegExp(c + \"}\", \"g\"), d + c + \"}\" + k);\n a = a.replace(RegExp(c + \"}\", \"g\"), c + \":,.\" + g + \"f}\");\n });\n return B(a, {\n point: this,\n series: this.series\n }, c.chart);\n };\n\n g.prototype.update = function (a, b, g, d) {\n function c() {\n k.applyOptions(a);\n var c = m && k.hasDummyGraphic;\n c = null === k.y ? !c : c;\n m && c && (k.graphic = m.destroy(), delete k.hasDummyGraphic);\n J(a, !0) && (m && m.element && a && a.marker && \"undefined\" !== typeof a.marker.symbol && (k.graphic = m.destroy()), a && a.dataLabels && k.dataLabel && (k.dataLabel = k.dataLabel.destroy()), k.connector && (k.connector = k.connector.destroy()));\n p = k.index;\n e.updateParallelArrays(k, p);\n h.data[p] = J(h.data[p], !0) || J(a, !0) ? k.options : x(a, h.data[p]);\n e.isDirty = e.isDirtyData = !0;\n !e.fixedBox && e.hasCartesianSeries && (f.isDirtyBox = !0);\n \"point\" === h.legendType && (f.isDirtyLegend = !0);\n b && f.redraw(g);\n }\n\n var k = this,\n e = k.series,\n m = k.graphic,\n f = e.chart,\n h = e.options,\n p;\n b = x(b, !0);\n !1 === d ? c() : k.firePointEvent(\"update\", {\n options: a\n }, c);\n };\n\n g.prototype.remove = function (a, b) {\n this.series.removePoint(this.series.data.indexOf(this), a, b);\n };\n\n g.prototype.select = function (a, b) {\n var c = this,\n g = c.series,\n d = g.chart;\n this.selectedStaging = a = x(a, !c.selected);\n c.firePointEvent(a ? \"select\" : \"unselect\", {\n accumulate: b\n }, function () {\n c.selected = c.options.selected = a;\n g.options.data[g.data.indexOf(c)] = c.options;\n c.setState(a && \"select\");\n b || d.getSelectedPoints().forEach(function (a) {\n var b = a.series;\n a.selected && a !== c && (a.selected = a.options.selected = !1, b.options.data[b.data.indexOf(a)] = a.options, a.setState(d.hoverPoints && b.options.inactiveOtherPoints ? \"inactive\" : \"\"), a.firePointEvent(\"unselect\"));\n });\n });\n delete this.selectedStaging;\n };\n\n g.prototype.onMouseOver = function (a) {\n var c = this.series.chart,\n b = c.pointer;\n a = a ? b.normalize(a) : b.getChartCoordinatesFromPoint(this, c.inverted);\n b.runPointActions(a, this);\n };\n\n g.prototype.onMouseOut = function () {\n var a = this.series.chart;\n this.firePointEvent(\"mouseOut\");\n this.series.options.inactiveOtherPoints || (a.hoverPoints || []).forEach(function (a) {\n a.setState();\n });\n a.hoverPoints = a.hoverPoint = null;\n };\n\n g.prototype.importEvents = function () {\n if (!this.hasImportedEvents) {\n var a = this,\n b = w(a.series.options.point, a.options).events;\n a.events = b;\n z(b, function (c, b) {\n r(c) && y(a, b, c);\n });\n this.hasImportedEvents = !0;\n }\n };\n\n g.prototype.setState = function (a, g) {\n var c = this.series,\n k = this.state,\n e = c.options.states[a || \"normal\"] || {},\n m = G.plotOptions[c.type].marker && c.options.marker,\n h = m && !1 === m.enabled,\n p = m && m.states && m.states[a || \"normal\"] || {},\n r = !1 === p.enabled,\n q = this.marker || {},\n l = c.chart,\n D = m && c.markerAttribs,\n t = c.halo,\n z,\n w = c.stateMarkerGraphic;\n a = a || \"\";\n\n if (!(a === this.state && !g || this.selected && \"select\" !== a || !1 === e.enabled || a && (r || h && !1 === p.enabled) || a && q.states && q.states[a] && !1 === q.states[a].enabled)) {\n this.state = a;\n D && (z = c.markerAttribs(this, a));\n\n if (this.graphic && !this.hasDummyGraphic) {\n k && this.graphic.removeClass(\"highcharts-point-\" + k);\n a && this.graphic.addClass(\"highcharts-point-\" + a);\n\n if (!l.styledMode) {\n var y = c.pointAttribs(this, a);\n var F = x(l.options.chart.animation, e.animation);\n c.options.inactiveOtherPoints && n(y.opacity) && ((this.dataLabels || []).forEach(function (a) {\n a && a.animate({\n opacity: y.opacity\n }, F);\n }), this.connector && this.connector.animate({\n opacity: y.opacity\n }, F));\n this.graphic.animate(y, F);\n }\n\n z && this.graphic.animate(z, x(l.options.chart.animation, p.animation, m.animation));\n w && w.hide();\n } else {\n if (a && p) {\n k = q.symbol || c.symbol;\n w && w.currentSymbol !== k && (w = w.destroy());\n if (z) if (w) w[g ? \"animate\" : \"attr\"]({\n x: z.x,\n y: z.y\n });else k && (c.stateMarkerGraphic = w = l.renderer.symbol(k, z.x, z.y, z.width, z.height).add(c.markerGroup), w.currentSymbol = k);\n !l.styledMode && w && \"inactive\" !== this.state && w.attr(c.pointAttribs(this, a));\n }\n\n w && (w[a && this.isInside ? \"show\" : \"hide\"](), w.element.point = this, w.addClass(this.getClassName(), !0));\n }\n\n e = e.halo;\n z = (w = this.graphic || w) && w.visibility || \"inherit\";\n e && e.size && w && \"hidden\" !== z && !this.isCluster ? (t || (c.halo = t = l.renderer.path().add(w.parentGroup)), t.show()[g ? \"animate\" : \"attr\"]({\n d: this.haloPath(e.size)\n }), t.attr({\n \"class\": \"highcharts-halo highcharts-color-\" + x(this.colorIndex, c.colorIndex) + (this.className ? \" \" + this.className : \"\"),\n visibility: z,\n zIndex: -1\n }), t.point = this, l.styledMode || t.attr(d({\n fill: this.color || c.color,\n \"fill-opacity\": e.opacity\n }, f.filterUserAttributes(e.attributes || {})))) : t && t.point && t.point.haloPath && t.animate({\n d: t.point.haloPath(0)\n }, null, t.hide);\n b(this, \"afterSetState\", {\n state: a\n });\n }\n };\n\n g.prototype.haloPath = function (a) {\n return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX) - a, this.plotY - a, 2 * a, 2 * a);\n };\n\n return g;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/Pointer.js\", [l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Tooltip.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = f.parse,\n E = e.charts,\n G = e.noop,\n B = C.addEvent,\n y = C.attr,\n t = C.css,\n h = C.defined,\n d = C.extend,\n b = C.find,\n p = C.fireEvent,\n q = C.isNumber,\n r = C.isObject,\n n = C.objectEach,\n J = C.offset,\n w = C.pick,\n z = C.splat;\n\n f = function () {\n function f(b, d) {\n this.lastValidTouch = {};\n this.pinchDown = [];\n this.runChartClick = !1;\n this.eventsToUnbind = [];\n this.chart = b;\n this.hasDragged = !1;\n this.options = d;\n this.init(b, d);\n }\n\n f.prototype.applyInactiveState = function (b) {\n var d = [],\n a;\n (b || []).forEach(function (b) {\n a = b.series;\n d.push(a);\n a.linkedParent && d.push(a.linkedParent);\n a.linkedSeries && (d = d.concat(a.linkedSeries));\n a.navigatorSeries && d.push(a.navigatorSeries);\n });\n this.chart.series.forEach(function (a) {\n -1 === d.indexOf(a) ? a.setState(\"inactive\", !0) : a.options.inactiveOtherPoints && a.setAllPointsToState(\"inactive\");\n });\n };\n\n f.prototype.destroy = function () {\n var b = this;\n this.eventsToUnbind.forEach(function (b) {\n return b();\n });\n this.eventsToUnbind = [];\n e.chartCount || (f.unbindDocumentMouseUp && (f.unbindDocumentMouseUp = f.unbindDocumentMouseUp()), f.unbindDocumentTouchEnd && (f.unbindDocumentTouchEnd = f.unbindDocumentTouchEnd()));\n clearInterval(b.tooltipTimeout);\n n(b, function (d, a) {\n b[a] = void 0;\n });\n };\n\n f.prototype.drag = function (b) {\n var d = this.chart,\n a = d.options.chart,\n g = this.zoomHor,\n c = this.zoomVert,\n e = d.plotLeft,\n m = d.plotTop,\n f = d.plotWidth,\n h = d.plotHeight,\n p = this.mouseDownX || 0,\n n = this.mouseDownY || 0,\n q = r(a.panning) ? a.panning && a.panning.enabled : a.panning,\n l = a.panKey && b[a.panKey + \"Key\"],\n t = b.chartX,\n z = b.chartY,\n w = this.selectionMarker;\n if (!w || !w.touch) if (t < e ? t = e : t > e + f && (t = e + f), z < m ? z = m : z > m + h && (z = m + h), this.hasDragged = Math.sqrt(Math.pow(p - t, 2) + Math.pow(n - z, 2)), 10 < this.hasDragged) {\n var x = d.isInsidePlot(p - e, n - m, {\n visiblePlotOnly: !0\n });\n !d.hasCartesianSeries && !d.mapView || !this.zoomX && !this.zoomY || !x || l || w || (this.selectionMarker = w = d.renderer.rect(e, m, g ? 1 : f, c ? 1 : h, 0).attr({\n \"class\": \"highcharts-selection-marker\",\n zIndex: 7\n }).add(), d.styledMode || w.attr({\n fill: a.selectionMarkerFill || v(\"#335cad\").setOpacity(.25).get()\n }));\n w && g && (g = t - p, w.attr({\n width: Math.abs(g),\n x: (0 < g ? 0 : g) + p\n }));\n w && c && (g = z - n, w.attr({\n height: Math.abs(g),\n y: (0 < g ? 0 : g) + n\n }));\n x && !w && q && d.pan(b, a.panning);\n }\n };\n\n f.prototype.dragStart = function (b) {\n var d = this.chart;\n d.mouseIsDown = b.type;\n d.cancelClick = !1;\n d.mouseDownX = this.mouseDownX = b.chartX;\n d.mouseDownY = this.mouseDownY = b.chartY;\n };\n\n f.prototype.drop = function (b) {\n var k = this,\n a = this.chart,\n g = this.hasPinched;\n\n if (this.selectionMarker) {\n var c = this.selectionMarker,\n e = c.attr ? c.attr(\"x\") : c.x,\n m = c.attr ? c.attr(\"y\") : c.y,\n f = c.attr ? c.attr(\"width\") : c.width,\n n = c.attr ? c.attr(\"height\") : c.height,\n r = {\n originalEvent: b,\n xAxis: [],\n yAxis: [],\n x: e,\n y: m,\n width: f,\n height: n\n },\n l = !!a.mapView;\n if (this.hasDragged || g) a.axes.forEach(function (a) {\n if (a.zoomEnabled && h(a.min) && (g || k[{\n xAxis: \"zoomX\",\n yAxis: \"zoomY\"\n }[a.coll]]) && q(e) && q(m)) {\n var c = a.horiz,\n d = \"touchend\" === b.type ? a.minPixelPadding : 0,\n p = a.toValue((c ? e : m) + d);\n c = a.toValue((c ? e + f : m + n) - d);\n r[a.coll].push({\n axis: a,\n min: Math.min(p, c),\n max: Math.max(p, c)\n });\n l = !0;\n }\n }), l && p(a, \"selection\", r, function (c) {\n a.zoom(d(c, g ? {\n animation: !1\n } : null));\n });\n q(a.index) && (this.selectionMarker = this.selectionMarker.destroy());\n g && this.scaleGroups();\n }\n\n a && q(a.index) && (t(a.container, {\n cursor: a._cursor\n }), a.cancelClick = 10 < this.hasDragged, a.mouseIsDown = this.hasDragged = this.hasPinched = !1, this.pinchDown = []);\n };\n\n f.prototype.findNearestKDPoint = function (b, d, a) {\n var g = this.chart,\n c = g.hoverPoint;\n g = g.tooltip;\n if (c && g && g.isStickyOnContact()) return c;\n var k;\n b.forEach(function (c) {\n var b = !(c.noSharedTooltip && d) && 0 > c.options.findNearestPointBy.indexOf(\"y\");\n c = c.searchPoint(a, b);\n\n if ((b = r(c, !0) && c.series) && !(b = !r(k, !0))) {\n b = k.distX - c.distX;\n var g = k.dist - c.dist,\n e = (c.series.group && c.series.group.zIndex) - (k.series.group && k.series.group.zIndex);\n b = 0 < (0 !== b && d ? b : 0 !== g ? g : 0 !== e ? e : k.series.index > c.series.index ? -1 : 1);\n }\n\n b && (k = c);\n });\n return k;\n };\n\n f.prototype.getChartCoordinatesFromPoint = function (b, d) {\n var a = b.series,\n g = a.xAxis;\n a = a.yAxis;\n var c = b.shapeArgs;\n\n if (g && a) {\n var k = w(b.clientX, b.plotX),\n e = b.plotY || 0;\n b.isNode && c && q(c.x) && q(c.y) && (k = c.x, e = c.y);\n return d ? {\n chartX: a.len + a.pos - e,\n chartY: g.len + g.pos - k\n } : {\n chartX: k + g.pos,\n chartY: e + a.pos\n };\n }\n\n if (c && c.x && c.y) return {\n chartX: c.x,\n chartY: c.y\n };\n };\n\n f.prototype.getChartPosition = function () {\n if (this.chartPosition) return this.chartPosition;\n var b = this.chart.container,\n d = J(b);\n this.chartPosition = {\n left: d.left,\n top: d.top,\n scaleX: 1,\n scaleY: 1\n };\n var a = b.offsetWidth;\n b = b.offsetHeight;\n 2 < a && 2 < b && (this.chartPosition.scaleX = d.width / a, this.chartPosition.scaleY = d.height / b);\n return this.chartPosition;\n };\n\n f.prototype.getCoordinates = function (b) {\n var d = {\n xAxis: [],\n yAxis: []\n };\n this.chart.axes.forEach(function (a) {\n d[a.isXAxis ? \"xAxis\" : \"yAxis\"].push({\n axis: a,\n value: a.toValue(b[a.horiz ? \"chartX\" : \"chartY\"])\n });\n });\n return d;\n };\n\n f.prototype.getHoverData = function (d, k, a, g, c, e) {\n var f = [];\n g = !(!g || !d);\n var m = {\n chartX: e ? e.chartX : void 0,\n chartY: e ? e.chartY : void 0,\n shared: c\n };\n p(this, \"beforeGetHoverData\", m);\n var h = k && !k.stickyTracking ? [k] : a.filter(function (a) {\n return m.filter ? m.filter(a) : a.visible && !(!c && a.directTouch) && w(a.options.enableMouseTracking, !0) && a.stickyTracking;\n });\n var n = g || !e ? d : this.findNearestKDPoint(h, c, e);\n k = n && n.series;\n n && (c && !k.noSharedTooltip ? (h = a.filter(function (a) {\n return m.filter ? m.filter(a) : a.visible && !(!c && a.directTouch) && w(a.options.enableMouseTracking, !0) && !a.noSharedTooltip;\n }), h.forEach(function (a) {\n var c = b(a.points, function (a) {\n return a.x === n.x && !a.isNull;\n });\n r(c) && (a.chart.isBoosting && (c = a.getPoint(c)), f.push(c));\n })) : f.push(n));\n m = {\n hoverPoint: n\n };\n p(this, \"afterGetHoverData\", m);\n return {\n hoverPoint: m.hoverPoint,\n hoverSeries: k,\n hoverPoints: f\n };\n };\n\n f.prototype.getPointFromEvent = function (b) {\n b = b.target;\n\n for (var d; b && !d;) d = b.point, b = b.parentNode;\n\n return d;\n };\n\n f.prototype.onTrackerMouseOut = function (b) {\n b = b.relatedTarget || b.toElement;\n var d = this.chart.hoverSeries;\n this.isDirectTouch = !1;\n if (!(!d || !b || d.stickyTracking || this.inClass(b, \"highcharts-tooltip\") || this.inClass(b, \"highcharts-series-\" + d.index) && this.inClass(b, \"highcharts-tracker\"))) d.onMouseOut();\n };\n\n f.prototype.inClass = function (b, d) {\n for (var a; b;) {\n if (a = y(b, \"class\")) {\n if (-1 !== a.indexOf(d)) return !0;\n if (-1 !== a.indexOf(\"highcharts-container\")) return !1;\n }\n\n b = b.parentElement;\n }\n };\n\n f.prototype.init = function (b, d) {\n this.options = d;\n this.chart = b;\n this.runChartClick = !(!d.chart.events || !d.chart.events.click);\n this.pinchDown = [];\n this.lastValidTouch = {};\n l && (b.tooltip = new l(b, d.tooltip), this.followTouchMove = w(d.tooltip.followTouchMove, !0));\n this.setDOMEvents();\n };\n\n f.prototype.normalize = function (b, e) {\n var a = b.touches,\n g = a ? a.length ? a.item(0) : w(a.changedTouches, b.changedTouches)[0] : b;\n e || (e = this.getChartPosition());\n a = g.pageX - e.left;\n g = g.pageY - e.top;\n a /= e.scaleX;\n g /= e.scaleY;\n return d(b, {\n chartX: Math.round(a),\n chartY: Math.round(g)\n });\n };\n\n f.prototype.onContainerClick = function (b) {\n var e = this.chart,\n a = e.hoverPoint;\n b = this.normalize(b);\n var g = e.plotLeft,\n c = e.plotTop;\n e.cancelClick || (a && this.inClass(b.target, \"highcharts-tracker\") ? (p(a.series, \"click\", d(b, {\n point: a\n })), e.hoverPoint && a.firePointEvent(\"click\", b)) : (d(b, this.getCoordinates(b)), e.isInsidePlot(b.chartX - g, b.chartY - c, {\n visiblePlotOnly: !0\n }) && p(e, \"click\", b)));\n };\n\n f.prototype.onContainerMouseDown = function (b) {\n var d = 1 === ((b.buttons || b.button) & 1);\n b = this.normalize(b);\n if (e.isFirefox && 0 !== b.button) this.onContainerMouseMove(b);\n if (\"undefined\" === typeof b.button || d) this.zoomOption(b), d && b.preventDefault && b.preventDefault(), this.dragStart(b);\n };\n\n f.prototype.onContainerMouseLeave = function (b) {\n var d = E[w(f.hoverChartIndex, -1)],\n a = this.chart.tooltip;\n a && a.shouldStickOnContact() && this.inClass(b.relatedTarget, \"highcharts-tooltip-container\") || (b = this.normalize(b), d && (b.relatedTarget || b.toElement) && (d.pointer.reset(), d.pointer.chartPosition = void 0), a && !a.isHidden && this.reset());\n };\n\n f.prototype.onContainerMouseEnter = function (b) {\n delete this.chartPosition;\n };\n\n f.prototype.onContainerMouseMove = function (b) {\n var d = this.chart;\n b = this.normalize(b);\n this.setHoverChartIndex();\n b.preventDefault || (b.returnValue = !1);\n (\"mousedown\" === d.mouseIsDown || this.touchSelect(b)) && this.drag(b);\n d.openMenu || !this.inClass(b.target, \"highcharts-tracker\") && !d.isInsidePlot(b.chartX - d.plotLeft, b.chartY - d.plotTop, {\n visiblePlotOnly: !0\n }) || (this.inClass(b.target, \"highcharts-no-tooltip\") ? this.reset(!1, 0) : this.runPointActions(b));\n };\n\n f.prototype.onDocumentTouchEnd = function (b) {\n var d = E[w(f.hoverChartIndex, -1)];\n d && d.pointer.drop(b);\n };\n\n f.prototype.onContainerTouchMove = function (b) {\n if (this.touchSelect(b)) this.onContainerMouseMove(b);else this.touch(b);\n };\n\n f.prototype.onContainerTouchStart = function (b) {\n if (this.touchSelect(b)) this.onContainerMouseDown(b);else this.zoomOption(b), this.touch(b, !0);\n };\n\n f.prototype.onDocumentMouseMove = function (b) {\n var d = this.chart,\n a = this.chartPosition;\n b = this.normalize(b, a);\n var g = d.tooltip;\n !a || g && g.isStickyOnContact() || d.isInsidePlot(b.chartX - d.plotLeft, b.chartY - d.plotTop, {\n visiblePlotOnly: !0\n }) || this.inClass(b.target, \"highcharts-tracker\") || this.reset();\n };\n\n f.prototype.onDocumentMouseUp = function (b) {\n var d = E[w(f.hoverChartIndex, -1)];\n d && d.pointer.drop(b);\n };\n\n f.prototype.pinch = function (b) {\n var e = this,\n a = e.chart,\n g = e.pinchDown,\n c = b.touches || [],\n f = c.length,\n h = e.lastValidTouch,\n m = e.hasZoom,\n n = {},\n r = 1 === f && (e.inClass(b.target, \"highcharts-tracker\") && a.runTrackerClick || e.runChartClick),\n q = {},\n l = e.selectionMarker;\n 1 < f ? e.initiated = !0 : 1 === f && this.followTouchMove && (e.initiated = !1);\n m && e.initiated && !r && !1 !== b.cancelable && b.preventDefault();\n [].map.call(c, function (a) {\n return e.normalize(a);\n });\n \"touchstart\" === b.type ? ([].forEach.call(c, function (a, c) {\n g[c] = {\n chartX: a.chartX,\n chartY: a.chartY\n };\n }), h.x = [g[0].chartX, g[1] && g[1].chartX], h.y = [g[0].chartY, g[1] && g[1].chartY], a.axes.forEach(function (c) {\n if (c.zoomEnabled) {\n var b = a.bounds[c.horiz ? \"h\" : \"v\"],\n d = c.minPixelPadding,\n g = c.toPixels(Math.min(w(c.options.min, c.dataMin), c.dataMin)),\n e = c.toPixels(Math.max(w(c.options.max, c.dataMax), c.dataMax)),\n k = Math.max(g, e);\n b.min = Math.min(c.pos, Math.min(g, e) - d);\n b.max = Math.max(c.pos + c.len, k + d);\n }\n }), e.res = !0) : e.followTouchMove && 1 === f ? this.runPointActions(e.normalize(b)) : g.length && (p(a, \"touchpan\", {\n originalEvent: b\n }, function () {\n l || (e.selectionMarker = l = d({\n destroy: G,\n touch: !0\n }, a.plotBox));\n e.pinchTranslate(g, c, n, l, q, h);\n e.hasPinched = m;\n e.scaleGroups(n, q);\n }), e.res && (e.res = !1, this.reset(!1, 0)));\n };\n\n f.prototype.pinchTranslate = function (b, d, a, g, c, e) {\n this.zoomHor && this.pinchTranslateDirection(!0, b, d, a, g, c, e);\n this.zoomVert && this.pinchTranslateDirection(!1, b, d, a, g, c, e);\n };\n\n f.prototype.pinchTranslateDirection = function (b, d, a, g, c, e, f, h) {\n var k = this.chart,\n m = b ? \"x\" : \"y\",\n p = b ? \"X\" : \"Y\",\n n = \"chart\" + p,\n u = b ? \"width\" : \"height\",\n r = k[\"plot\" + (b ? \"Left\" : \"Top\")],\n q = k.inverted,\n l = k.bounds[b ? \"h\" : \"v\"],\n t = 1 === d.length,\n A = d[0][n],\n D = !t && d[1][n];\n\n d = function () {\n \"number\" === typeof x && 20 < Math.abs(A - D) && (w = h || Math.abs(N - x) / Math.abs(A - D));\n F = (r - N) / w + A;\n z = k[\"plot\" + (b ? \"Width\" : \"Height\")] / w;\n };\n\n var z,\n F,\n w = h || 1,\n N = a[0][n],\n x = !t && a[1][n];\n d();\n a = F;\n\n if (a < l.min) {\n a = l.min;\n var y = !0;\n } else a + z > l.max && (a = l.max - z, y = !0);\n\n y ? (N -= .8 * (N - f[m][0]), \"number\" === typeof x && (x -= .8 * (x - f[m][1])), d()) : f[m] = [N, x];\n q || (e[m] = F - r, e[u] = z);\n e = q ? 1 / w : w;\n c[u] = z;\n c[m] = a;\n g[q ? b ? \"scaleY\" : \"scaleX\" : \"scale\" + p] = w;\n g[\"translate\" + p] = e * r + (N - e * A);\n };\n\n f.prototype.reset = function (b, d) {\n var a = this.chart,\n g = a.hoverSeries,\n c = a.hoverPoint,\n e = a.hoverPoints,\n k = a.tooltip,\n f = k && k.shared ? e : c;\n b && f && z(f).forEach(function (a) {\n a.series.isCartesian && \"undefined\" === typeof a.plotX && (b = !1);\n });\n if (b) k && f && z(f).length && (k.refresh(f), k.shared && e ? e.forEach(function (a) {\n a.setState(a.state, !0);\n a.series.isCartesian && (a.series.xAxis.crosshair && a.series.xAxis.drawCrosshair(null, a), a.series.yAxis.crosshair && a.series.yAxis.drawCrosshair(null, a));\n }) : c && (c.setState(c.state, !0), a.axes.forEach(function (a) {\n a.crosshair && c.series[a.coll] === a && a.drawCrosshair(null, c);\n })));else {\n if (c) c.onMouseOut();\n e && e.forEach(function (a) {\n a.setState();\n });\n if (g) g.onMouseOut();\n k && k.hide(d);\n this.unDocMouseMove && (this.unDocMouseMove = this.unDocMouseMove());\n a.axes.forEach(function (a) {\n a.hideCrosshair();\n });\n this.hoverX = a.hoverPoints = a.hoverPoint = null;\n }\n };\n\n f.prototype.runPointActions = function (d, e) {\n var a = this.chart,\n g = a.tooltip && a.tooltip.options.enabled ? a.tooltip : void 0,\n c = g ? g.shared : !1,\n k = e || a.hoverPoint,\n h = k && k.series || a.hoverSeries;\n e = this.getHoverData(k, h, a.series, (!d || \"touchmove\" !== d.type) && (!!e || h && h.directTouch && this.isDirectTouch), c, d);\n k = e.hoverPoint;\n h = e.hoverSeries;\n var m = e.hoverPoints;\n e = h && h.tooltipOptions.followPointer && !h.tooltipOptions.split;\n var p = c && h && !h.noSharedTooltip;\n\n if (k && (k !== a.hoverPoint || g && g.isHidden)) {\n (a.hoverPoints || []).forEach(function (a) {\n -1 === m.indexOf(a) && a.setState();\n });\n if (a.hoverSeries !== h) h.onMouseOver();\n this.applyInactiveState(m);\n (m || []).forEach(function (a) {\n a.setState(\"hover\");\n });\n a.hoverPoint && a.hoverPoint.firePointEvent(\"mouseOut\");\n if (!k.series) return;\n a.hoverPoints = m;\n a.hoverPoint = k;\n k.firePointEvent(\"mouseOver\", void 0, function () {\n g && k && g.refresh(p ? m : k, d);\n });\n } else e && g && !g.isHidden && (c = g.getAnchor([{}], d), a.isInsidePlot(c[0], c[1], {\n visiblePlotOnly: !0\n }) && g.updatePosition({\n plotX: c[0],\n plotY: c[1]\n }));\n\n this.unDocMouseMove || (this.unDocMouseMove = B(a.container.ownerDocument, \"mousemove\", function (a) {\n var c = E[f.hoverChartIndex];\n if (c) c.pointer.onDocumentMouseMove(a);\n }), this.eventsToUnbind.push(this.unDocMouseMove));\n a.axes.forEach(function (c) {\n var g = w((c.crosshair || {}).snap, !0),\n e;\n g && ((e = a.hoverPoint) && e.series[c.coll] === c || (e = b(m, function (a) {\n return a.series && a.series[c.coll] === c;\n })));\n e || !g ? c.drawCrosshair(d, e) : c.hideCrosshair();\n });\n };\n\n f.prototype.scaleGroups = function (b, d) {\n var a = this.chart;\n a.series.forEach(function (g) {\n var c = b || g.getPlotBox();\n g.group && (g.xAxis && g.xAxis.zoomEnabled || a.mapView) && (g.group.attr(c), g.markerGroup && (g.markerGroup.attr(c), g.markerGroup.clip(d ? a.clipRect : null)), g.dataLabelsGroup && g.dataLabelsGroup.attr(c));\n });\n a.clipRect.attr(d || a.clipBox);\n };\n\n f.prototype.setDOMEvents = function () {\n var b = this,\n d = this.chart.container,\n a = d.ownerDocument;\n d.onmousedown = this.onContainerMouseDown.bind(this);\n d.onmousemove = this.onContainerMouseMove.bind(this);\n d.onclick = this.onContainerClick.bind(this);\n this.eventsToUnbind.push(B(d, \"mouseenter\", this.onContainerMouseEnter.bind(this)));\n this.eventsToUnbind.push(B(d, \"mouseleave\", this.onContainerMouseLeave.bind(this)));\n f.unbindDocumentMouseUp || (f.unbindDocumentMouseUp = B(a, \"mouseup\", this.onDocumentMouseUp.bind(this)));\n\n for (var g = this.chart.renderTo.parentElement; g && \"BODY\" !== g.tagName;) this.eventsToUnbind.push(B(g, \"scroll\", function () {\n delete b.chartPosition;\n })), g = g.parentElement;\n\n e.hasTouch && (this.eventsToUnbind.push(B(d, \"touchstart\", this.onContainerTouchStart.bind(this), {\n passive: !1\n })), this.eventsToUnbind.push(B(d, \"touchmove\", this.onContainerTouchMove.bind(this), {\n passive: !1\n })), f.unbindDocumentTouchEnd || (f.unbindDocumentTouchEnd = B(a, \"touchend\", this.onDocumentTouchEnd.bind(this), {\n passive: !1\n })));\n };\n\n f.prototype.setHoverChartIndex = function () {\n var b = this.chart,\n d = e.charts[w(f.hoverChartIndex, -1)];\n if (d && d !== b) d.pointer.onContainerMouseLeave({\n relatedTarget: b.container\n });\n d && d.mouseIsDown || (f.hoverChartIndex = b.index);\n };\n\n f.prototype.touch = function (b, d) {\n var a = this.chart,\n g;\n this.setHoverChartIndex();\n if (1 === b.touches.length) {\n if (b = this.normalize(b), (g = a.isInsidePlot(b.chartX - a.plotLeft, b.chartY - a.plotTop, {\n visiblePlotOnly: !0\n })) && !a.openMenu) {\n d && this.runPointActions(b);\n\n if (\"touchmove\" === b.type) {\n d = this.pinchDown;\n var c = d[0] ? 4 <= Math.sqrt(Math.pow(d[0].chartX - b.chartX, 2) + Math.pow(d[0].chartY - b.chartY, 2)) : !1;\n }\n\n w(c, !0) && this.pinch(b);\n } else d && this.reset();\n } else 2 === b.touches.length && this.pinch(b);\n };\n\n f.prototype.touchSelect = function (b) {\n return !(!this.chart.options.chart.zoomBySingleTouch || !b.touches || 1 !== b.touches.length);\n };\n\n f.prototype.zoomOption = function (b) {\n var d = this.chart,\n a = d.options.chart;\n d = d.inverted;\n var g = a.zoomType || \"\";\n /touch/.test(b.type) && (g = w(a.pinchType, g));\n this.zoomX = b = /x/.test(g);\n this.zoomY = a = /y/.test(g);\n this.zoomHor = b && !d || a && d;\n this.zoomVert = a && !d || b && d;\n this.hasZoom = b || a;\n };\n\n return f;\n }();\n\n \"\";\n return f;\n });\n K(l, \"Core/MSPointer.js\", [l[\"Core/Globals.js\"], l[\"Core/Pointer.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n function C() {\n var d = [];\n\n d.item = function (b) {\n return this[b];\n };\n\n b(q, function (b) {\n d.push({\n pageX: b.pageX,\n pageY: b.pageY,\n target: b.target\n });\n });\n return d;\n }\n\n function v(b, d, f, h) {\n var p = G[e.hoverChartIndex || NaN];\n \"touch\" !== b.pointerType && b.pointerType !== b.MSPOINTER_TYPE_TOUCH || !p || (p = p.pointer, h(b), p[d]({\n type: f,\n target: b.currentTarget,\n preventDefault: y,\n touches: C()\n }));\n }\n\n var E = this && this.__extends || function () {\n var b = function (d, e) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return b(d, e);\n };\n\n return function (d, e) {\n function f() {\n this.constructor = d;\n }\n\n b(d, e);\n d.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f());\n };\n }(),\n G = f.charts,\n B = f.doc,\n y = f.noop,\n t = f.win,\n h = l.addEvent,\n d = l.css,\n b = l.objectEach,\n p = l.removeEvent,\n q = {},\n r = !!t.PointerEvent;\n\n return function (b) {\n function e() {\n return null !== b && b.apply(this, arguments) || this;\n }\n\n E(e, b);\n\n e.isRequired = function () {\n return !(f.hasTouch || !t.PointerEvent && !t.MSPointerEvent);\n };\n\n e.prototype.batchMSEvents = function (b) {\n b(this.chart.container, r ? \"pointerdown\" : \"MSPointerDown\", this.onContainerPointerDown);\n b(this.chart.container, r ? \"pointermove\" : \"MSPointerMove\", this.onContainerPointerMove);\n b(B, r ? \"pointerup\" : \"MSPointerUp\", this.onDocumentPointerUp);\n };\n\n e.prototype.destroy = function () {\n this.batchMSEvents(p);\n b.prototype.destroy.call(this);\n };\n\n e.prototype.init = function (e, f) {\n b.prototype.init.call(this, e, f);\n this.hasZoom && d(e.container, {\n \"-ms-touch-action\": \"none\",\n \"touch-action\": \"none\"\n });\n };\n\n e.prototype.onContainerPointerDown = function (b) {\n v(b, \"onContainerTouchStart\", \"touchstart\", function (b) {\n q[b.pointerId] = {\n pageX: b.pageX,\n pageY: b.pageY,\n target: b.currentTarget\n };\n });\n };\n\n e.prototype.onContainerPointerMove = function (b) {\n v(b, \"onContainerTouchMove\", \"touchmove\", function (b) {\n q[b.pointerId] = {\n pageX: b.pageX,\n pageY: b.pageY\n };\n q[b.pointerId].target || (q[b.pointerId].target = b.currentTarget);\n });\n };\n\n e.prototype.onDocumentPointerUp = function (b) {\n v(b, \"onDocumentTouchEnd\", \"touchend\", function (b) {\n delete q[b.pointerId];\n });\n };\n\n e.prototype.setDOMEvents = function () {\n b.prototype.setDOMEvents.call(this);\n (this.hasZoom || this.followTouchMove) && this.batchMSEvents(h);\n };\n\n return e;\n }(e);\n });\n K(l, \"Core/Legend/Legend.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E) {\n var G = f.animObject,\n B = f.setAnimation,\n y = e.format;\n f = l.isFirefox;\n var t = l.marginNames;\n l = l.win;\n var h = v.distribute,\n d = E.addEvent,\n b = E.createElement,\n p = E.css,\n q = E.defined,\n r = E.discardElement,\n n = E.find,\n J = E.fireEvent,\n w = E.isNumber,\n z = E.merge,\n x = E.pick,\n m = E.relativeLength,\n k = E.stableSort,\n a = E.syncTimeout;\n v = E.wrap;\n\n E = function () {\n function g(a, b) {\n this.allItems = [];\n this.contentGroup = this.box = void 0;\n this.display = !1;\n this.group = void 0;\n this.offsetWidth = this.maxLegendWidth = this.maxItemWidth = this.legendWidth = this.legendHeight = this.lastLineHeight = this.lastItemY = this.itemY = this.itemX = this.itemMarginTop = this.itemMarginBottom = this.itemHeight = this.initialItemY = 0;\n this.options = void 0;\n this.padding = 0;\n this.pages = [];\n this.proximate = !1;\n this.scrollGroup = void 0;\n this.widthOption = this.totalItemWidth = this.titleHeight = this.symbolWidth = this.symbolHeight = 0;\n this.chart = a;\n this.init(a, b);\n }\n\n g.prototype.init = function (a, b) {\n this.chart = a;\n this.setOptions(b);\n b.enabled && (this.render(), d(this.chart, \"endResize\", function () {\n this.legend.positionCheckboxes();\n }), this.proximate ? this.unchartrender = d(this.chart, \"render\", function () {\n this.legend.proximatePositions();\n this.legend.positionItems();\n }) : this.unchartrender && this.unchartrender());\n };\n\n g.prototype.setOptions = function (a) {\n var c = x(a.padding, 8);\n this.options = a;\n this.chart.styledMode || (this.itemStyle = a.itemStyle, this.itemHiddenStyle = z(this.itemStyle, a.itemHiddenStyle));\n this.itemMarginTop = a.itemMarginTop || 0;\n this.itemMarginBottom = a.itemMarginBottom || 0;\n this.padding = c;\n this.initialItemY = c - 5;\n this.symbolWidth = x(a.symbolWidth, 16);\n this.pages = [];\n this.proximate = \"proximate\" === a.layout && !this.chart.inverted;\n this.baseline = void 0;\n };\n\n g.prototype.update = function (a, b) {\n var c = this.chart;\n this.setOptions(z(!0, this.options, a));\n this.destroy();\n c.isDirtyLegend = c.isDirtyBox = !0;\n x(b, !0) && c.redraw();\n J(this, \"afterUpdate\");\n };\n\n g.prototype.colorizeItem = function (a, b) {\n a.legendGroup[b ? \"removeClass\" : \"addClass\"](\"highcharts-legend-item-hidden\");\n\n if (!this.chart.styledMode) {\n var c = this.options,\n d = a.legendItem,\n g = a.legendLine,\n e = a.legendSymbol,\n f = this.itemHiddenStyle.color;\n c = b ? c.itemStyle.color : f;\n var k = b ? a.color || f : f,\n h = a.options && a.options.marker,\n m = {\n fill: k\n };\n d && d.css({\n fill: c,\n color: c\n });\n g && g.attr({\n stroke: k\n });\n e && (h && e.isMarker && (m = a.pointAttribs(), b || (m.stroke = m.fill = f)), e.attr(m));\n }\n\n J(this, \"afterColorizeItem\", {\n item: a,\n visible: b\n });\n };\n\n g.prototype.positionItems = function () {\n this.allItems.forEach(this.positionItem, this);\n this.chart.isResizing || this.positionCheckboxes();\n };\n\n g.prototype.positionItem = function (a) {\n var c = this,\n b = this.options,\n d = b.symbolPadding,\n g = !b.rtl,\n e = a._legendItemPos;\n b = e[0];\n e = e[1];\n var f = a.checkbox,\n k = a.legendGroup;\n k && k.element && (d = {\n translateX: g ? b : this.legendWidth - b - 2 * d - 4,\n translateY: e\n }, g = function () {\n J(c, \"afterPositionItem\", {\n item: a\n });\n }, q(k.translateY) ? k.animate(d, void 0, g) : (k.attr(d), g()));\n f && (f.x = b, f.y = e);\n };\n\n g.prototype.destroyItem = function (a) {\n var c = a.checkbox;\n [\"legendItem\", \"legendLine\", \"legendSymbol\", \"legendGroup\"].forEach(function (c) {\n a[c] && (a[c] = a[c].destroy());\n });\n c && r(a.checkbox);\n };\n\n g.prototype.destroy = function () {\n function a(a) {\n this[a] && (this[a] = this[a].destroy());\n }\n\n this.getAllItems().forEach(function (c) {\n [\"legendItem\", \"legendGroup\"].forEach(a, c);\n });\n \"clipRect up down pager nav box title group\".split(\" \").forEach(a, this);\n this.display = null;\n };\n\n g.prototype.positionCheckboxes = function () {\n var a = this.group && this.group.alignAttr,\n b = this.clipHeight || this.legendHeight,\n d = this.titleHeight;\n\n if (a) {\n var g = a.translateY;\n this.allItems.forEach(function (c) {\n var e = c.checkbox;\n\n if (e) {\n var f = g + d + e.y + (this.scrollOffset || 0) + 3;\n p(e, {\n left: a.translateX + c.checkboxOffset + e.x - 20 + \"px\",\n top: f + \"px\",\n display: this.proximate || f > g - 6 && f < g + b - 6 ? \"\" : \"none\"\n });\n }\n }, this);\n }\n };\n\n g.prototype.renderTitle = function () {\n var a = this.options,\n b = this.padding,\n d = a.title,\n g = 0;\n d.text && (this.title || (this.title = this.chart.renderer.label(d.text, b - 3, b - 4, void 0, void 0, void 0, a.useHTML, void 0, \"legend-title\").attr({\n zIndex: 1\n }), this.chart.styledMode || this.title.css(d.style), this.title.add(this.group)), d.width || this.title.css({\n width: this.maxLegendWidth + \"px\"\n }), a = this.title.getBBox(), g = a.height, this.offsetWidth = a.width, this.contentGroup.attr({\n translateY: g\n }));\n this.titleHeight = g;\n };\n\n g.prototype.setText = function (a) {\n var c = this.options;\n a.legendItem.attr({\n text: c.labelFormat ? y(c.labelFormat, a, this.chart) : c.labelFormatter.call(a)\n });\n };\n\n g.prototype.renderItem = function (a) {\n var c = this.chart,\n b = c.renderer,\n d = this.options,\n g = this.symbolWidth,\n e = d.symbolPadding || 0,\n f = this.itemStyle,\n k = this.itemHiddenStyle,\n h = \"horizontal\" === d.layout ? x(d.itemDistance, 20) : 0,\n m = !d.rtl,\n p = !a.series,\n n = !p && a.series.drawLegendSymbol ? a.series : a,\n l = n.options,\n r = this.createCheckboxForItem && l && l.showCheckbox,\n q = d.useHTML,\n t = a.options.className,\n F = a.legendItem;\n l = g + e + h + (r ? 20 : 0);\n F || (a.legendGroup = b.g(\"legend-item\").addClass(\"highcharts-\" + n.type + \"-series highcharts-color-\" + a.colorIndex + (t ? \" \" + t : \"\") + (p ? \" highcharts-series-\" + a.index : \"\")).attr({\n zIndex: 1\n }).add(this.scrollGroup), a.legendItem = F = b.text(\"\", m ? g + e : -e, this.baseline || 0, q), c.styledMode || F.css(z(a.visible ? f : k)), F.attr({\n align: m ? \"left\" : \"right\",\n zIndex: 2\n }).add(a.legendGroup), this.baseline || (this.fontMetrics = b.fontMetrics(c.styledMode ? 12 : f.fontSize, F), this.baseline = this.fontMetrics.f + 3 + this.itemMarginTop, F.attr(\"y\", this.baseline), this.symbolHeight = d.symbolHeight || this.fontMetrics.f, d.squareSymbol && (this.symbolWidth = x(d.symbolWidth, Math.max(this.symbolHeight, 16)), l = this.symbolWidth + e + h + (r ? 20 : 0), m && F.attr(\"x\", this.symbolWidth + e))), n.drawLegendSymbol(this, a), this.setItemEvents && this.setItemEvents(a, F, q));\n r && !a.checkbox && this.createCheckboxForItem && this.createCheckboxForItem(a);\n this.colorizeItem(a, a.visible);\n !c.styledMode && f.width || F.css({\n width: (d.itemWidth || this.widthOption || c.spacingBox.width) - l + \"px\"\n });\n this.setText(a);\n c = F.getBBox();\n b = this.fontMetrics && this.fontMetrics.h || 0;\n a.itemWidth = a.checkboxOffset = d.itemWidth || a.legendItemWidth || c.width + l;\n this.maxItemWidth = Math.max(this.maxItemWidth, a.itemWidth);\n this.totalItemWidth += a.itemWidth;\n this.itemHeight = a.itemHeight = Math.round(a.legendItemHeight || (c.height > 1.5 * b ? c.height : b));\n };\n\n g.prototype.layoutItem = function (a) {\n var c = this.options,\n b = this.padding,\n d = \"horizontal\" === c.layout,\n g = a.itemHeight,\n e = this.itemMarginBottom,\n f = this.itemMarginTop,\n k = d ? x(c.itemDistance, 20) : 0,\n h = this.maxLegendWidth;\n c = c.alignColumns && this.totalItemWidth > h ? this.maxItemWidth : a.itemWidth;\n d && this.itemX - b + c > h && (this.itemX = b, this.lastLineHeight && (this.itemY += f + this.lastLineHeight + e), this.lastLineHeight = 0);\n this.lastItemY = f + this.itemY + e;\n this.lastLineHeight = Math.max(g, this.lastLineHeight);\n a._legendItemPos = [this.itemX, this.itemY];\n d ? this.itemX += c : (this.itemY += f + g + e, this.lastLineHeight = g);\n this.offsetWidth = this.widthOption || Math.max((d ? this.itemX - b - (a.checkbox ? 0 : k) : c) + b, this.offsetWidth);\n };\n\n g.prototype.getAllItems = function () {\n var a = [];\n this.chart.series.forEach(function (c) {\n var b = c && c.options;\n c && x(b.showInLegend, q(b.linkedTo) ? !1 : void 0, !0) && (a = a.concat(c.legendItems || (\"point\" === b.legendType ? c.data : c)));\n });\n J(this, \"afterGetAllItems\", {\n allItems: a\n });\n return a;\n };\n\n g.prototype.getAlignment = function () {\n var a = this.options;\n return this.proximate ? a.align.charAt(0) + \"tv\" : a.floating ? \"\" : a.align.charAt(0) + a.verticalAlign.charAt(0) + a.layout.charAt(0);\n };\n\n g.prototype.adjustMargins = function (a, b) {\n var c = this.chart,\n d = this.options,\n g = this.getAlignment();\n g && [/(lth|ct|rth)/, /(rtv|rm|rbv)/, /(rbh|cb|lbh)/, /(lbv|lm|ltv)/].forEach(function (e, f) {\n e.test(g) && !q(a[f]) && (c[t[f]] = Math.max(c[t[f]], c.legend[(f + 1) % 2 ? \"legendHeight\" : \"legendWidth\"] + [1, -1, -1, 1][f] * d[f % 2 ? \"x\" : \"y\"] + x(d.margin, 12) + b[f] + (c.titleOffset[f] || 0)));\n });\n };\n\n g.prototype.proximatePositions = function () {\n var a = this.chart,\n b = [],\n d = \"left\" === this.options.align;\n this.allItems.forEach(function (c) {\n var g;\n var e = d;\n\n if (c.yAxis) {\n c.xAxis.options.reversed && (e = !e);\n c.points && (g = n(e ? c.points : c.points.slice(0).reverse(), function (a) {\n return w(a.plotY);\n }));\n e = this.itemMarginTop + c.legendItem.getBBox().height + this.itemMarginBottom;\n var f = c.yAxis.top - a.plotTop;\n c.visible ? (g = g ? g.plotY : c.yAxis.height, g += f - .3 * e) : g = f + c.yAxis.height;\n b.push({\n target: g,\n size: e,\n item: c\n });\n }\n }, this);\n h(b, a.plotHeight).forEach(function (c) {\n c.item._legendItemPos && c.pos && (c.item._legendItemPos[1] = a.plotTop - a.spacing[0] + c.pos);\n });\n };\n\n g.prototype.render = function () {\n var a = this.chart,\n b = a.renderer,\n d = this.options,\n g = this.padding,\n e = this.getAllItems(),\n f = this.group,\n h = this.box;\n this.itemX = g;\n this.itemY = this.initialItemY;\n this.lastItemY = this.offsetWidth = 0;\n this.widthOption = m(d.width, a.spacingBox.width - g);\n var p = a.spacingBox.width - 2 * g - d.x;\n -1 < [\"rm\", \"lm\"].indexOf(this.getAlignment().substring(0, 2)) && (p /= 2);\n this.maxLegendWidth = this.widthOption || p;\n f || (this.group = f = b.g(\"legend\").addClass(d.className || \"\").attr({\n zIndex: 7\n }).add(), this.contentGroup = b.g().attr({\n zIndex: 1\n }).add(f), this.scrollGroup = b.g().add(this.contentGroup));\n this.renderTitle();\n k(e, function (a, c) {\n return (a.options && a.options.legendIndex || 0) - (c.options && c.options.legendIndex || 0);\n });\n d.reversed && e.reverse();\n this.allItems = e;\n this.display = p = !!e.length;\n this.itemHeight = this.totalItemWidth = this.maxItemWidth = this.lastLineHeight = 0;\n e.forEach(this.renderItem, this);\n e.forEach(this.layoutItem, this);\n e = (this.widthOption || this.offsetWidth) + g;\n var n = this.lastItemY + this.lastLineHeight + this.titleHeight;\n n = this.handleOverflow(n);\n n += g;\n h || (this.box = h = b.rect().addClass(\"highcharts-legend-box\").attr({\n r: d.borderRadius\n }).add(f));\n a.styledMode || h.attr({\n stroke: d.borderColor,\n \"stroke-width\": d.borderWidth || 0,\n fill: d.backgroundColor || \"none\"\n }).shadow(d.shadow);\n if (0 < e && 0 < n) h[h.placed ? \"animate\" : \"attr\"](h.crisp.call({}, {\n x: 0,\n y: 0,\n width: e,\n height: n\n }, h.strokeWidth()));\n f[p ? \"show\" : \"hide\"]();\n a.styledMode && \"none\" === f.getStyle(\"display\") && (e = n = 0);\n this.legendWidth = e;\n this.legendHeight = n;\n p && this.align();\n this.proximate || this.positionItems();\n J(this, \"afterRender\");\n };\n\n g.prototype.align = function (a) {\n void 0 === a && (a = this.chart.spacingBox);\n var c = this.chart,\n b = this.options,\n d = a.y;\n /(lth|ct|rth)/.test(this.getAlignment()) && 0 < c.titleOffset[0] ? d += c.titleOffset[0] : /(lbh|cb|rbh)/.test(this.getAlignment()) && 0 < c.titleOffset[2] && (d -= c.titleOffset[2]);\n d !== a.y && (a = z(a, {\n y: d\n }));\n c.hasRendered || (this.group.placed = !1);\n this.group.align(z(b, {\n width: this.legendWidth,\n height: this.legendHeight,\n verticalAlign: this.proximate ? \"top\" : b.verticalAlign\n }), !0, a);\n };\n\n g.prototype.handleOverflow = function (a) {\n var c = this,\n b = this.chart,\n d = b.renderer,\n g = this.options,\n e = g.y,\n f = \"top\" === g.verticalAlign,\n k = this.padding,\n h = g.maxHeight,\n m = g.navigation,\n p = x(m.animation, !0),\n n = m.arrowSize || 12,\n l = this.pages,\n r = this.allItems,\n q = function (a) {\n \"number\" === typeof a ? w.attr({\n height: a\n }) : w && (c.clipRect = w.destroy(), c.contentGroup.clip());\n c.contentGroup.div && (c.contentGroup.div.style.clip = a ? \"rect(\" + k + \"px,9999px,\" + (k + a) + \"px,0)\" : \"auto\");\n },\n t = function (a) {\n c[a] = d.circle(0, 0, 1.3 * n).translate(n / 2, n / 2).add(N);\n b.styledMode || c[a].attr(\"fill\", \"rgba(0,0,0,0.0001)\");\n return c[a];\n },\n F,\n z;\n\n e = b.spacingBox.height + (f ? -e : e) - k;\n var N = this.nav,\n w = this.clipRect;\n \"horizontal\" !== g.layout || \"middle\" === g.verticalAlign || g.floating || (e /= 2);\n h && (e = Math.min(e, h));\n l.length = 0;\n a && 0 < e && a > e && !1 !== m.enabled ? (this.clipHeight = F = Math.max(e - 20 - this.titleHeight - k, 0), this.currentPage = x(this.currentPage, 1), this.fullHeight = a, r.forEach(function (a, c) {\n var b = a._legendItemPos[1],\n d = Math.round(a.legendItem.getBBox().height),\n g = l.length;\n if (!g || b - l[g - 1] > F && (z || b) !== l[g - 1]) l.push(z || b), g++;\n a.pageIx = g - 1;\n z && (r[c - 1].pageIx = g - 1);\n c === r.length - 1 && b + d - l[g - 1] > F && d <= F && (l.push(b), a.pageIx = g);\n b !== z && (z = b);\n }), w || (w = c.clipRect = d.clipRect(0, k, 9999, 0), c.contentGroup.clip(w)), q(F), N || (this.nav = N = d.g().attr({\n zIndex: 1\n }).add(this.group), this.up = d.symbol(\"triangle\", 0, 0, n, n).add(N), t(\"upTracker\").on(\"click\", function () {\n c.scroll(-1, p);\n }), this.pager = d.text(\"\", 15, 10).addClass(\"highcharts-legend-navigation\"), !b.styledMode && m.style && this.pager.css(m.style), this.pager.add(N), this.down = d.symbol(\"triangle-down\", 0, 0, n, n).add(N), t(\"downTracker\").on(\"click\", function () {\n c.scroll(1, p);\n })), c.scroll(0), a = e) : N && (q(), this.nav = N.destroy(), this.scrollGroup.attr({\n translateY: 1\n }), this.clipHeight = 0);\n return a;\n };\n\n g.prototype.scroll = function (c, b) {\n var d = this,\n g = this.chart,\n e = this.pages,\n f = e.length,\n k = this.clipHeight,\n h = this.options.navigation,\n m = this.pager,\n p = this.padding,\n n = this.currentPage + c;\n n > f && (n = f);\n 0 < n && (\"undefined\" !== typeof b && B(b, g), this.nav.attr({\n translateX: p,\n translateY: k + this.padding + 7 + this.titleHeight,\n visibility: \"inherit\"\n }), [this.up, this.upTracker].forEach(function (a) {\n a.attr({\n \"class\": 1 === n ? \"highcharts-legend-nav-inactive\" : \"highcharts-legend-nav-active\"\n });\n }), m.attr({\n text: n + \"/\" + f\n }), [this.down, this.downTracker].forEach(function (a) {\n a.attr({\n x: 18 + this.pager.getBBox().width,\n \"class\": n === f ? \"highcharts-legend-nav-inactive\" : \"highcharts-legend-nav-active\"\n });\n }, this), g.styledMode || (this.up.attr({\n fill: 1 === n ? h.inactiveColor : h.activeColor\n }), this.upTracker.css({\n cursor: 1 === n ? \"default\" : \"pointer\"\n }), this.down.attr({\n fill: n === f ? h.inactiveColor : h.activeColor\n }), this.downTracker.css({\n cursor: n === f ? \"default\" : \"pointer\"\n })), this.scrollOffset = -e[n - 1] + this.initialItemY, this.scrollGroup.animate({\n translateY: this.scrollOffset\n }), this.currentPage = n, this.positionCheckboxes(), c = G(x(b, g.renderer.globalAnimation, !0)), a(function () {\n J(d, \"afterScroll\", {\n currentPage: n\n });\n }, c.duration));\n };\n\n g.prototype.setItemEvents = function (a, b, d) {\n var c = this,\n g = c.chart.renderer.boxWrapper,\n e = a instanceof C,\n f = \"highcharts-legend-\" + (e ? \"point\" : \"series\") + \"-active\",\n k = c.chart.styledMode,\n h = function (b) {\n c.allItems.forEach(function (c) {\n a !== c && [c].concat(c.linkedSeries || []).forEach(function (a) {\n a.setState(b, !e);\n });\n });\n };\n\n (d ? [b, a.legendSymbol] : [a.legendGroup]).forEach(function (d) {\n if (d) d.on(\"mouseover\", function () {\n a.visible && h(\"inactive\");\n a.setState(\"hover\");\n a.visible && g.addClass(f);\n k || b.css(c.options.itemHoverStyle);\n }).on(\"mouseout\", function () {\n c.chart.styledMode || b.css(z(a.visible ? c.itemStyle : c.itemHiddenStyle));\n h(\"\");\n g.removeClass(f);\n a.setState();\n }).on(\"click\", function (c) {\n var b = function () {\n a.setVisible && a.setVisible();\n h(a.visible ? \"inactive\" : \"\");\n };\n\n g.removeClass(f);\n c = {\n browserEvent: c\n };\n a.firePointEvent ? a.firePointEvent(\"legendItemClick\", c, b) : J(a, \"legendItemClick\", c, b);\n });\n });\n };\n\n g.prototype.createCheckboxForItem = function (a) {\n a.checkbox = b(\"input\", {\n type: \"checkbox\",\n className: \"highcharts-legend-checkbox\",\n checked: a.selected,\n defaultChecked: a.selected\n }, this.options.itemCheckboxStyle, this.chart.container);\n d(a.checkbox, \"click\", function (c) {\n J(a.series || a, \"checkboxClick\", {\n checked: c.target.checked,\n item: a\n }, function () {\n a.select();\n });\n });\n };\n\n return g;\n }();\n\n (/Trident\\/7\\.0/.test(l.navigator && l.navigator.userAgent) || f) && v(E.prototype, \"positionItem\", function (a, c) {\n var b = this,\n d = function () {\n c._legendItemPos && a.call(b, c);\n };\n\n d();\n b.bubbleLegend || setTimeout(d);\n });\n \"\";\n return E;\n });\n K(l, \"Core/Series/SeriesRegistry.js\", [l[\"Core/Globals.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = e.defaultOptions,\n E = C.error,\n G = C.extendClass,\n B = C.merge,\n y;\n\n (function (e) {\n function h(d, b) {\n var f = v.plotOptions || {},\n h = b.defaultOptions;\n b.prototype.pointClass || (b.prototype.pointClass = l);\n b.prototype.type = d;\n h && (f[d] = h);\n e.seriesTypes[d] = b;\n }\n\n e.seriesTypes = f.seriesTypes;\n\n e.getSeries = function (d, b) {\n void 0 === b && (b = {});\n var f = d.options.chart;\n f = b.type || f.type || f.defaultSeriesType || \"\";\n var h = e.seriesTypes[f];\n e || E(17, !0, d, {\n missingModuleFor: f\n });\n f = new h();\n \"function\" === typeof f.init && f.init(d, b);\n return f;\n };\n\n e.registerSeriesType = h;\n\n e.seriesType = function (d, b, f, q, r) {\n var p = v.plotOptions || {};\n b = b || \"\";\n p[d] = B(p[b], f);\n h(d, G(e.seriesTypes[b] || function () {}, q));\n e.seriesTypes[d].prototype.type = d;\n r && (e.seriesTypes[d].prototype.pointClass = G(l, r));\n return e.seriesTypes[d];\n };\n })(y || (y = {}));\n\n return y;\n });\n K(l, \"Core/Chart/Chart.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Foundation.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/Legend.js\"], l[\"Core/MSPointer.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Pointer.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Renderer/SVG/SVGRenderer.js\"], l[\"Core/Time.js\"], l[\"Core/Utilities.js\"], l[\"Core/Renderer/HTML/AST.js\"]], function (f, e, l, C, v, E, G, B, y, t, h, d, b, p, q) {\n var r = f.animate,\n n = f.animObject,\n J = f.setAnimation,\n w = l.numberFormat,\n z = C.registerEventOptions,\n x = v.charts,\n m = v.doc,\n k = v.marginNames,\n a = v.svg,\n g = v.win,\n c = B.defaultOptions,\n D = B.defaultTime,\n A = h.seriesTypes,\n u = p.addEvent,\n L = p.attr,\n S = p.cleanRecursively,\n R = p.createElement,\n M = p.css,\n U = p.defined,\n P = p.discardElement,\n I = p.erase,\n H = p.error,\n K = p.extend,\n da = p.find,\n O = p.fireEvent,\n ea = p.getStyle,\n F = p.isArray,\n T = p.isNumber,\n N = p.isObject,\n V = p.isString,\n W = p.merge,\n X = p.objectEach,\n Q = p.pick,\n Z = p.pInt,\n ba = p.relativeLength,\n ha = p.removeEvent,\n fa = p.splat,\n ia = p.syncTimeout,\n ka = p.uniqueKey;\n\n f = function () {\n function f(a, c, b) {\n this.series = this.renderTo = this.renderer = this.pointer = this.pointCount = this.plotWidth = this.plotTop = this.plotLeft = this.plotHeight = this.plotBox = this.options = this.numberFormatter = this.margin = this.legend = this.labelCollectors = this.isResizing = this.index = this.eventOptions = this.container = this.colorCounter = this.clipBox = this.chartWidth = this.chartHeight = this.bounds = this.axisOffset = this.axes = void 0;\n this.sharedClips = {};\n this.yAxis = this.xAxis = this.userOptions = this.titleOffset = this.time = this.symbolCounter = this.spacingBox = this.spacing = void 0;\n this.getArgs(a, c, b);\n }\n\n f.chart = function (a, c, b) {\n return new f(a, c, b);\n };\n\n f.prototype.getArgs = function (a, c, b) {\n V(a) || a.nodeName ? (this.renderTo = a, this.init(c, b)) : this.init(a, c);\n };\n\n f.prototype.init = function (a, d) {\n var g = a.plotOptions || {};\n O(this, \"init\", {\n args: arguments\n }, function () {\n var e = W(c, a),\n f = e.chart;\n X(e.plotOptions, function (a, c) {\n N(a) && (a.tooltip = g[c] && W(g[c].tooltip) || void 0);\n });\n e.tooltip.userOptions = a.chart && a.chart.forExport && a.tooltip.userOptions || a.tooltip;\n this.userOptions = a;\n this.margin = [];\n this.spacing = [];\n this.bounds = {\n h: {},\n v: {}\n };\n this.labelCollectors = [];\n this.callback = d;\n this.isResizing = 0;\n this.options = e;\n this.axes = [];\n this.series = [];\n this.time = a.time && Object.keys(a.time).length ? new b(a.time) : v.time;\n this.numberFormatter = f.numberFormatter || w;\n this.styledMode = f.styledMode;\n this.hasCartesianSeries = f.showAxes;\n this.index = x.length;\n x.push(this);\n v.chartCount++;\n z(this, f);\n this.xAxis = [];\n this.yAxis = [];\n this.pointCount = this.colorCounter = this.symbolCounter = 0;\n O(this, \"afterInit\");\n this.firstRender();\n });\n };\n\n f.prototype.initSeries = function (a) {\n var c = this.options.chart;\n c = a.type || c.type || c.defaultSeriesType;\n var b = A[c];\n b || H(17, !0, this, {\n missingModuleFor: c\n });\n c = new b();\n \"function\" === typeof c.init && c.init(this, a);\n return c;\n };\n\n f.prototype.setSeriesData = function () {\n this.getSeriesOrderByLinks().forEach(function (a) {\n a.points || a.data || !a.enabledDataSorting || a.setData(a.options.data, !1);\n });\n };\n\n f.prototype.getSeriesOrderByLinks = function () {\n return this.series.concat().sort(function (a, c) {\n return a.linkedSeries.length || c.linkedSeries.length ? c.linkedSeries.length - a.linkedSeries.length : 0;\n });\n };\n\n f.prototype.orderSeries = function (a) {\n var c = this.series;\n a = a || 0;\n\n for (var b = c.length; a < b; ++a) c[a] && (c[a].index = a, c[a].name = c[a].getName());\n };\n\n f.prototype.isInsidePlot = function (a, c, b) {\n void 0 === b && (b = {});\n var d = this.inverted,\n g = this.plotBox,\n e = this.plotLeft,\n f = this.plotTop,\n k = this.scrollablePlotBox,\n h = 0;\n var m = 0;\n b.visiblePlotOnly && this.scrollingContainer && (m = this.scrollingContainer, h = m.scrollLeft, m = m.scrollTop);\n var p = b.series;\n g = b.visiblePlotOnly && k || g;\n k = b.inverted ? c : a;\n c = b.inverted ? a : c;\n a = {\n x: k,\n y: c,\n isInsidePlot: !0\n };\n\n if (!b.ignoreX) {\n var n = p && (d ? p.yAxis : p.xAxis) || {\n pos: e,\n len: Infinity\n };\n k = b.paneCoordinates ? n.pos + k : e + k;\n k >= Math.max(h + e, n.pos) && k <= Math.min(h + e + g.width, n.pos + n.len) || (a.isInsidePlot = !1);\n }\n\n !b.ignoreY && a.isInsidePlot && (d = p && (d ? p.xAxis : p.yAxis) || {\n pos: f,\n len: Infinity\n }, b = b.paneCoordinates ? d.pos + c : f + c, b >= Math.max(m + f, d.pos) && b <= Math.min(m + f + g.height, d.pos + d.len) || (a.isInsidePlot = !1));\n O(this, \"afterIsInsidePlot\", a);\n return a.isInsidePlot;\n };\n\n f.prototype.redraw = function (a) {\n O(this, \"beforeRedraw\");\n var c = this.hasCartesianSeries ? this.axes : this.colorAxis || [],\n b = this.series,\n d = this.pointer,\n g = this.legend,\n e = this.userOptions.legend,\n f = this.renderer,\n k = f.isHidden(),\n h = [],\n m = this.isDirtyBox,\n p = this.isDirtyLegend;\n this.setResponsive && this.setResponsive(!1);\n J(this.hasRendered ? a : !1, this);\n k && this.temporaryDisplay();\n this.layOutTitles();\n\n for (a = b.length; a--;) {\n var n = b[a];\n\n if (n.options.stacking || n.options.centerInCategory) {\n var l = !0;\n\n if (n.isDirty) {\n var F = !0;\n break;\n }\n }\n }\n\n if (F) for (a = b.length; a--;) n = b[a], n.options.stacking && (n.isDirty = !0);\n b.forEach(function (a) {\n a.isDirty && (\"point\" === a.options.legendType ? (\"function\" === typeof a.updateTotals && a.updateTotals(), p = !0) : e && (e.labelFormatter || e.labelFormat) && (p = !0));\n a.isDirtyData && O(a, \"updatedData\");\n });\n p && g && g.options.enabled && (g.render(), this.isDirtyLegend = !1);\n l && this.getStacks();\n c.forEach(function (a) {\n a.updateNames();\n a.setScale();\n });\n this.getMargins();\n c.forEach(function (a) {\n a.isDirty && (m = !0);\n });\n c.forEach(function (a) {\n var c = a.min + \",\" + a.max;\n a.extKey !== c && (a.extKey = c, h.push(function () {\n O(a, \"afterSetExtremes\", K(a.eventArgs, a.getExtremes()));\n delete a.eventArgs;\n }));\n (m || l) && a.redraw();\n });\n m && this.drawChartBox();\n O(this, \"predraw\");\n b.forEach(function (a) {\n (m || a.isDirty) && a.visible && a.redraw();\n a.isDirtyData = !1;\n });\n d && d.reset(!0);\n f.draw();\n O(this, \"redraw\");\n O(this, \"render\");\n k && this.temporaryDisplay(!0);\n h.forEach(function (a) {\n a.call();\n });\n };\n\n f.prototype.get = function (a) {\n function c(c) {\n return c.id === a || c.options && c.options.id === a;\n }\n\n for (var b = this.series, d = da(this.axes, c) || da(this.series, c), g = 0; !d && g < b.length; g++) d = da(b[g].points || [], c);\n\n return d;\n };\n\n f.prototype.getAxes = function () {\n var a = this,\n c = this.options,\n b = c.xAxis = fa(c.xAxis || {});\n c = c.yAxis = fa(c.yAxis || {});\n O(this, \"getAxes\");\n b.forEach(function (a, c) {\n a.index = c;\n a.isX = !0;\n });\n c.forEach(function (a, c) {\n a.index = c;\n });\n b.concat(c).forEach(function (c) {\n new e(a, c);\n });\n O(this, \"afterGetAxes\");\n };\n\n f.prototype.getSelectedPoints = function () {\n return this.series.reduce(function (a, c) {\n c.getPointsCollection().forEach(function (c) {\n Q(c.selectedStaging, c.selected) && a.push(c);\n });\n return a;\n }, []);\n };\n\n f.prototype.getSelectedSeries = function () {\n return this.series.filter(function (a) {\n return a.selected;\n });\n };\n\n f.prototype.setTitle = function (a, c, b) {\n this.applyDescription(\"title\", a);\n this.applyDescription(\"subtitle\", c);\n this.applyDescription(\"caption\", void 0);\n this.layOutTitles(b);\n };\n\n f.prototype.applyDescription = function (a, c) {\n var b = this,\n d = \"title\" === a ? {\n color: \"#333333\",\n fontSize: this.options.isStock ? \"16px\" : \"18px\"\n } : {\n color: \"#666666\"\n };\n d = this.options[a] = W(!this.styledMode && {\n style: d\n }, this.options[a], c);\n var g = this[a];\n g && c && (this[a] = g = g.destroy());\n d && !g && (g = this.renderer.text(d.text, 0, 0, d.useHTML).attr({\n align: d.align,\n \"class\": \"highcharts-\" + a,\n zIndex: d.zIndex || 4\n }).add(), g.update = function (c) {\n b[{\n title: \"setTitle\",\n subtitle: \"setSubtitle\",\n caption: \"setCaption\"\n }[a]](c);\n }, this.styledMode || g.css(d.style), this[a] = g);\n };\n\n f.prototype.layOutTitles = function (a) {\n var c = [0, 0, 0],\n b = this.renderer,\n d = this.spacingBox;\n [\"title\", \"subtitle\", \"caption\"].forEach(function (a) {\n var g = this[a],\n e = this.options[a],\n f = e.verticalAlign || \"top\";\n a = \"title\" === a ? \"top\" === f ? -3 : 0 : \"top\" === f ? c[0] + 2 : 0;\n var k;\n\n if (g) {\n this.styledMode || (k = e.style && e.style.fontSize);\n k = b.fontMetrics(k, g).b;\n g.css({\n width: (e.width || d.width + (e.widthAdjust || 0)) + \"px\"\n });\n var h = Math.round(g.getBBox(e.useHTML).height);\n g.align(K({\n y: \"bottom\" === f ? k : a + k,\n height: h\n }, e), !1, \"spacingBox\");\n e.floating || (\"top\" === f ? c[0] = Math.ceil(c[0] + h) : \"bottom\" === f && (c[2] = Math.ceil(c[2] + h)));\n }\n }, this);\n c[0] && \"top\" === (this.options.title.verticalAlign || \"top\") && (c[0] += this.options.title.margin);\n c[2] && \"bottom\" === this.options.caption.verticalAlign && (c[2] += this.options.caption.margin);\n var g = !this.titleOffset || this.titleOffset.join(\",\") !== c.join(\",\");\n this.titleOffset = c;\n O(this, \"afterLayOutTitles\");\n !this.isDirtyBox && g && (this.isDirtyBox = this.isDirtyLegend = g, this.hasRendered && Q(a, !0) && this.isDirtyBox && this.redraw());\n };\n\n f.prototype.getChartSize = function () {\n var a = this.options.chart,\n c = a.width;\n a = a.height;\n var b = this.renderTo;\n U(c) || (this.containerWidth = ea(b, \"width\"));\n U(a) || (this.containerHeight = ea(b, \"height\"));\n this.chartWidth = Math.max(0, c || this.containerWidth || 600);\n this.chartHeight = Math.max(0, ba(a, this.chartWidth) || (1 < this.containerHeight ? this.containerHeight : 400));\n };\n\n f.prototype.temporaryDisplay = function (a) {\n var c = this.renderTo;\n if (a) for (; c && c.style;) c.hcOrigStyle && (M(c, c.hcOrigStyle), delete c.hcOrigStyle), c.hcOrigDetached && (m.body.removeChild(c), c.hcOrigDetached = !1), c = c.parentNode;else for (; c && c.style;) {\n m.body.contains(c) || c.parentNode || (c.hcOrigDetached = !0, m.body.appendChild(c));\n if (\"none\" === ea(c, \"display\", !1) || c.hcOricDetached) c.hcOrigStyle = {\n display: c.style.display,\n height: c.style.height,\n overflow: c.style.overflow\n }, a = {\n display: \"block\",\n overflow: \"hidden\"\n }, c !== this.renderTo && (a.height = 0), M(c, a), c.offsetWidth || c.style.setProperty(\"display\", \"block\", \"important\");\n c = c.parentNode;\n if (c === m.body) break;\n }\n };\n\n f.prototype.setClassName = function (a) {\n this.container.className = \"highcharts-container \" + (a || \"\");\n };\n\n f.prototype.getContainer = function () {\n var c = this.options,\n b = c.chart,\n g = ka(),\n e,\n f = this.renderTo;\n f || (this.renderTo = f = b.renderTo);\n V(f) && (this.renderTo = f = m.getElementById(f));\n f || H(13, !0, this);\n var k = Z(L(f, \"data-highcharts-chart\"));\n T(k) && x[k] && x[k].hasRendered && x[k].destroy();\n L(f, \"data-highcharts-chart\", this.index);\n f.innerHTML = q.emptyHTML;\n b.skipClone || f.offsetWidth || this.temporaryDisplay();\n this.getChartSize();\n k = this.chartWidth;\n var h = this.chartHeight;\n M(f, {\n overflow: \"hidden\"\n });\n this.styledMode || (e = K({\n position: \"relative\",\n overflow: \"hidden\",\n width: k + \"px\",\n height: h + \"px\",\n textAlign: \"left\",\n lineHeight: \"normal\",\n zIndex: 0,\n \"-webkit-tap-highlight-color\": \"rgba(0,0,0,0)\",\n userSelect: \"none\",\n \"touch-action\": \"manipulation\",\n outline: \"none\"\n }, b.style || {}));\n this.container = g = R(\"div\", {\n id: g\n }, e, f);\n this._cursor = g.style.cursor;\n this.renderer = new (b.renderer || !a ? t.getRendererType(b.renderer) : d)(g, k, h, void 0, b.forExport, c.exporting && c.exporting.allowHTML, this.styledMode);\n J(void 0, this);\n this.setClassName(b.className);\n if (this.styledMode) for (var p in c.defs) this.renderer.definition(c.defs[p]);else this.renderer.setStyle(b.style);\n this.renderer.chartIndex = this.index;\n O(this, \"afterGetContainer\");\n };\n\n f.prototype.getMargins = function (a) {\n var c = this.spacing,\n b = this.margin,\n d = this.titleOffset;\n this.resetMargins();\n d[0] && !U(b[0]) && (this.plotTop = Math.max(this.plotTop, d[0] + c[0]));\n d[2] && !U(b[2]) && (this.marginBottom = Math.max(this.marginBottom, d[2] + c[2]));\n this.legend && this.legend.display && this.legend.adjustMargins(b, c);\n O(this, \"getMargins\");\n a || this.getAxisMargins();\n };\n\n f.prototype.getAxisMargins = function () {\n var a = this,\n c = a.axisOffset = [0, 0, 0, 0],\n b = a.colorAxis,\n d = a.margin,\n g = function (a) {\n a.forEach(function (a) {\n a.visible && a.getOffset();\n });\n };\n\n a.hasCartesianSeries ? g(a.axes) : b && b.length && g(b);\n k.forEach(function (b, g) {\n U(d[g]) || (a[b] += c[g]);\n });\n a.setChartSize();\n };\n\n f.prototype.reflow = function (a) {\n var c = this,\n b = c.options.chart,\n d = c.renderTo,\n e = U(b.width) && U(b.height),\n f = b.width || ea(d, \"width\");\n b = b.height || ea(d, \"height\");\n d = a ? a.target : g;\n delete c.pointer.chartPosition;\n\n if (!e && !c.isPrinting && f && b && (d === g || d === m)) {\n if (f !== c.containerWidth || b !== c.containerHeight) p.clearTimeout(c.reflowTimeout), c.reflowTimeout = ia(function () {\n c.container && c.setSize(void 0, void 0, !1);\n }, a ? 100 : 0);\n c.containerWidth = f;\n c.containerHeight = b;\n }\n };\n\n f.prototype.setReflow = function (a) {\n var c = this;\n !1 === a || this.unbindReflow ? !1 === a && this.unbindReflow && (this.unbindReflow = this.unbindReflow()) : (this.unbindReflow = u(g, \"resize\", function (a) {\n c.options && c.reflow(a);\n }), u(this, \"destroy\", this.unbindReflow));\n };\n\n f.prototype.setSize = function (a, c, b) {\n var d = this,\n g = d.renderer;\n d.isResizing += 1;\n J(b, d);\n b = g.globalAnimation;\n d.oldChartHeight = d.chartHeight;\n d.oldChartWidth = d.chartWidth;\n \"undefined\" !== typeof a && (d.options.chart.width = a);\n \"undefined\" !== typeof c && (d.options.chart.height = c);\n d.getChartSize();\n d.styledMode || (b ? r : M)(d.container, {\n width: d.chartWidth + \"px\",\n height: d.chartHeight + \"px\"\n }, b);\n d.setChartSize(!0);\n g.setSize(d.chartWidth, d.chartHeight, b);\n d.axes.forEach(function (a) {\n a.isDirty = !0;\n a.setScale();\n });\n d.isDirtyLegend = !0;\n d.isDirtyBox = !0;\n d.layOutTitles();\n d.getMargins();\n d.redraw(b);\n d.oldChartHeight = null;\n O(d, \"resize\");\n ia(function () {\n d && O(d, \"endResize\", null, function () {\n --d.isResizing;\n });\n }, n(b).duration);\n };\n\n f.prototype.setChartSize = function (a) {\n var c = this.inverted,\n b = this.renderer,\n d = this.chartWidth,\n g = this.chartHeight,\n e = this.options.chart,\n f = this.spacing,\n k = this.clipOffset,\n h,\n m,\n p,\n n;\n this.plotLeft = h = Math.round(this.plotLeft);\n this.plotTop = m = Math.round(this.plotTop);\n this.plotWidth = p = Math.max(0, Math.round(d - h - this.marginRight));\n this.plotHeight = n = Math.max(0, Math.round(g - m - this.marginBottom));\n this.plotSizeX = c ? n : p;\n this.plotSizeY = c ? p : n;\n this.plotBorderWidth = e.plotBorderWidth || 0;\n this.spacingBox = b.spacingBox = {\n x: f[3],\n y: f[0],\n width: d - f[3] - f[1],\n height: g - f[0] - f[2]\n };\n this.plotBox = b.plotBox = {\n x: h,\n y: m,\n width: p,\n height: n\n };\n c = 2 * Math.floor(this.plotBorderWidth / 2);\n d = Math.ceil(Math.max(c, k[3]) / 2);\n g = Math.ceil(Math.max(c, k[0]) / 2);\n this.clipBox = {\n x: d,\n y: g,\n width: Math.floor(this.plotSizeX - Math.max(c, k[1]) / 2 - d),\n height: Math.max(0, Math.floor(this.plotSizeY - Math.max(c, k[2]) / 2 - g))\n };\n a || (this.axes.forEach(function (a) {\n a.setAxisSize();\n a.setAxisTranslation();\n }), b.alignElements());\n O(this, \"afterSetChartSize\", {\n skipAxes: a\n });\n };\n\n f.prototype.resetMargins = function () {\n O(this, \"resetMargins\");\n var a = this,\n c = a.options.chart;\n [\"margin\", \"spacing\"].forEach(function (b) {\n var d = c[b],\n g = N(d) ? d : [d, d, d, d];\n [\"Top\", \"Right\", \"Bottom\", \"Left\"].forEach(function (d, e) {\n a[b][e] = Q(c[b + d], g[e]);\n });\n });\n k.forEach(function (c, b) {\n a[c] = Q(a.margin[b], a.spacing[b]);\n });\n a.axisOffset = [0, 0, 0, 0];\n a.clipOffset = [0, 0, 0, 0];\n };\n\n f.prototype.drawChartBox = function () {\n var a = this.options.chart,\n c = this.renderer,\n b = this.chartWidth,\n d = this.chartHeight,\n g = this.styledMode,\n e = this.plotBGImage,\n f = a.backgroundColor,\n k = a.plotBackgroundColor,\n h = a.plotBackgroundImage,\n m = this.plotLeft,\n p = this.plotTop,\n n = this.plotWidth,\n l = this.plotHeight,\n F = this.plotBox,\n r = this.clipRect,\n q = this.clipBox,\n u = this.chartBackground,\n t = this.plotBackground,\n N = this.plotBorder,\n z,\n w = \"animate\";\n u || (this.chartBackground = u = c.rect().addClass(\"highcharts-background\").add(), w = \"attr\");\n if (g) var x = z = u.strokeWidth();else {\n x = a.borderWidth || 0;\n z = x + (a.shadow ? 8 : 0);\n f = {\n fill: f || \"none\"\n };\n if (x || u[\"stroke-width\"]) f.stroke = a.borderColor, f[\"stroke-width\"] = x;\n u.attr(f).shadow(a.shadow);\n }\n u[w]({\n x: z / 2,\n y: z / 2,\n width: b - z - x % 2,\n height: d - z - x % 2,\n r: a.borderRadius\n });\n w = \"animate\";\n t || (w = \"attr\", this.plotBackground = t = c.rect().addClass(\"highcharts-plot-background\").add());\n t[w](F);\n g || (t.attr({\n fill: k || \"none\"\n }).shadow(a.plotShadow), h && (e ? (h !== e.attr(\"href\") && e.attr(\"href\", h), e.animate(F)) : this.plotBGImage = c.image(h, m, p, n, l).add()));\n r ? r.animate({\n width: q.width,\n height: q.height\n }) : this.clipRect = c.clipRect(q);\n w = \"animate\";\n N || (w = \"attr\", this.plotBorder = N = c.rect().addClass(\"highcharts-plot-border\").attr({\n zIndex: 1\n }).add());\n g || N.attr({\n stroke: a.plotBorderColor,\n \"stroke-width\": a.plotBorderWidth || 0,\n fill: \"none\"\n });\n N[w](N.crisp({\n x: m,\n y: p,\n width: n,\n height: l\n }, -N.strokeWidth()));\n this.isDirtyBox = !1;\n O(this, \"afterDrawChartBox\");\n };\n\n f.prototype.propFromSeries = function () {\n var a = this,\n c = a.options.chart,\n b = a.options.series,\n d,\n g,\n e;\n [\"inverted\", \"angular\", \"polar\"].forEach(function (f) {\n g = A[c.type || c.defaultSeriesType];\n e = c[f] || g && g.prototype[f];\n\n for (d = b && b.length; !e && d--;) (g = A[b[d].type]) && g.prototype[f] && (e = !0);\n\n a[f] = e;\n });\n };\n\n f.prototype.linkSeries = function () {\n var a = this,\n c = a.series;\n c.forEach(function (a) {\n a.linkedSeries.length = 0;\n });\n c.forEach(function (c) {\n var b = c.options.linkedTo;\n V(b) && (b = \":previous\" === b ? a.series[c.index - 1] : a.get(b)) && b.linkedParent !== c && (b.linkedSeries.push(c), c.linkedParent = b, b.enabledDataSorting && c.setDataSortingOptions(), c.visible = Q(c.options.visible, b.options.visible, c.visible));\n });\n O(this, \"afterLinkSeries\");\n };\n\n f.prototype.renderSeries = function () {\n this.series.forEach(function (a) {\n a.translate();\n a.render();\n });\n };\n\n f.prototype.renderLabels = function () {\n var a = this,\n c = a.options.labels;\n c.items && c.items.forEach(function (b) {\n var d = K(c.style, b.style),\n g = Z(d.left) + a.plotLeft,\n e = Z(d.top) + a.plotTop + 12;\n delete d.left;\n delete d.top;\n a.renderer.text(b.html, g, e).attr({\n zIndex: 2\n }).css(d).add();\n });\n };\n\n f.prototype.render = function () {\n var a = this.axes,\n c = this.colorAxis,\n b = this.renderer,\n d = this.options,\n g = function (a) {\n a.forEach(function (a) {\n a.visible && a.render();\n });\n },\n e = 0;\n\n this.setTitle();\n this.legend = new E(this, d.legend);\n this.getStacks && this.getStacks();\n this.getMargins(!0);\n this.setChartSize();\n d = this.plotWidth;\n a.some(function (a) {\n if (a.horiz && a.visible && a.options.labels.enabled && a.series.length) return e = 21, !0;\n });\n var f = this.plotHeight = Math.max(this.plotHeight - e, 0);\n a.forEach(function (a) {\n a.setScale();\n });\n this.getAxisMargins();\n var k = 1.1 < d / this.plotWidth,\n h = 1.05 < f / this.plotHeight;\n if (k || h) a.forEach(function (a) {\n (a.horiz && k || !a.horiz && h) && a.setTickInterval(!0);\n }), this.getMargins();\n this.drawChartBox();\n this.hasCartesianSeries ? g(a) : c && c.length && g(c);\n this.seriesGroup || (this.seriesGroup = b.g(\"series-group\").attr({\n zIndex: 3\n }).add());\n this.renderSeries();\n this.renderLabels();\n this.addCredits();\n this.setResponsive && this.setResponsive();\n this.hasRendered = !0;\n };\n\n f.prototype.addCredits = function (a) {\n var c = this,\n b = W(!0, this.options.credits, a);\n b.enabled && !this.credits && (this.credits = this.renderer.text(b.text + (this.mapCredits || \"\"), 0, 0).addClass(\"highcharts-credits\").on(\"click\", function () {\n b.href && (g.location.href = b.href);\n }).attr({\n align: b.position.align,\n zIndex: 8\n }), c.styledMode || this.credits.css(b.style), this.credits.add().align(b.position), this.credits.update = function (a) {\n c.credits = c.credits.destroy();\n c.addCredits(a);\n });\n };\n\n f.prototype.destroy = function () {\n var a = this,\n c = a.axes,\n b = a.series,\n d = a.container,\n g = d && d.parentNode,\n e;\n O(a, \"destroy\");\n a.renderer.forExport ? I(x, a) : x[a.index] = void 0;\n v.chartCount--;\n a.renderTo.removeAttribute(\"data-highcharts-chart\");\n ha(a);\n\n for (e = c.length; e--;) c[e] = c[e].destroy();\n\n this.scroller && this.scroller.destroy && this.scroller.destroy();\n\n for (e = b.length; e--;) b[e] = b[e].destroy();\n\n \"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function (c) {\n var b = a[c];\n b && b.destroy && (a[c] = b.destroy());\n });\n d && (d.innerHTML = q.emptyHTML, ha(d), g && P(d));\n X(a, function (c, b) {\n delete a[b];\n });\n };\n\n f.prototype.firstRender = function () {\n var a = this,\n c = a.options;\n\n if (!a.isReadyToRender || a.isReadyToRender()) {\n a.getContainer();\n a.resetMargins();\n a.setChartSize();\n a.propFromSeries();\n a.getAxes();\n (F(c.series) ? c.series : []).forEach(function (c) {\n a.initSeries(c);\n });\n a.linkSeries();\n a.setSeriesData();\n O(a, \"beforeRender\");\n y && (G.isRequired() ? a.pointer = new G(a, c) : a.pointer = new y(a, c));\n a.render();\n a.pointer.getChartPosition();\n if (!a.renderer.imgCount && !a.hasLoaded) a.onload();\n a.temporaryDisplay(!0);\n }\n };\n\n f.prototype.onload = function () {\n this.callbacks.concat([this.callback]).forEach(function (a) {\n a && \"undefined\" !== typeof this.index && a.apply(this, [this]);\n }, this);\n O(this, \"load\");\n O(this, \"render\");\n U(this.index) && this.setReflow(this.options.chart.reflow);\n this.warnIfA11yModuleNotLoaded();\n this.hasLoaded = !0;\n };\n\n f.prototype.warnIfA11yModuleNotLoaded = function () {\n var a = this.options,\n c = this.title;\n a && !this.accessibility && (this.renderer.boxWrapper.attr({\n role: \"img\",\n \"aria-label\": c && c.element.textContent || \"\"\n }), a.accessibility && !1 === a.accessibility.enabled || H('Highcharts warning: Consider including the \"accessibility.js\" module to make your chart more usable for people with disabilities. Set the \"accessibility.enabled\" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.', !1, this));\n };\n\n f.prototype.addSeries = function (a, c, b) {\n var d = this,\n g;\n a && (c = Q(c, !0), O(d, \"addSeries\", {\n options: a\n }, function () {\n g = d.initSeries(a);\n d.isDirtyLegend = !0;\n d.linkSeries();\n g.enabledDataSorting && g.setData(a.data, !1);\n O(d, \"afterAddSeries\", {\n series: g\n });\n c && d.redraw(b);\n }));\n return g;\n };\n\n f.prototype.addAxis = function (a, c, b, d) {\n return this.createAxis(c ? \"xAxis\" : \"yAxis\", {\n axis: a,\n redraw: b,\n animation: d\n });\n };\n\n f.prototype.addColorAxis = function (a, c, b) {\n return this.createAxis(\"colorAxis\", {\n axis: a,\n redraw: c,\n animation: b\n });\n };\n\n f.prototype.createAxis = function (a, c) {\n a = new e(this, W(c.axis, {\n index: this[a].length,\n isX: \"xAxis\" === a\n }));\n Q(c.redraw, !0) && this.redraw(c.animation);\n return a;\n };\n\n f.prototype.showLoading = function (a) {\n var c = this,\n b = c.options,\n d = b.loading,\n g = function () {\n e && M(e, {\n left: c.plotLeft + \"px\",\n top: c.plotTop + \"px\",\n width: c.plotWidth + \"px\",\n height: c.plotHeight + \"px\"\n });\n },\n e = c.loadingDiv,\n f = c.loadingSpan;\n\n e || (c.loadingDiv = e = R(\"div\", {\n className: \"highcharts-loading highcharts-loading-hidden\"\n }, null, c.container));\n f || (c.loadingSpan = f = R(\"span\", {\n className: \"highcharts-loading-inner\"\n }, null, e), u(c, \"redraw\", g));\n e.className = \"highcharts-loading\";\n q.setElementHTML(f, Q(a, b.lang.loading, \"\"));\n c.styledMode || (M(e, K(d.style, {\n zIndex: 10\n })), M(f, d.labelStyle), c.loadingShown || (M(e, {\n opacity: 0,\n display: \"\"\n }), r(e, {\n opacity: d.style.opacity || .5\n }, {\n duration: d.showDuration || 0\n })));\n c.loadingShown = !0;\n g();\n };\n\n f.prototype.hideLoading = function () {\n var a = this.options,\n c = this.loadingDiv;\n c && (c.className = \"highcharts-loading highcharts-loading-hidden\", this.styledMode || r(c, {\n opacity: 0\n }, {\n duration: a.loading.hideDuration || 100,\n complete: function () {\n M(c, {\n display: \"none\"\n });\n }\n }));\n this.loadingShown = !1;\n };\n\n f.prototype.update = function (a, c, d, g) {\n var e = this,\n f = {\n credits: \"addCredits\",\n title: \"setTitle\",\n subtitle: \"setSubtitle\",\n caption: \"setCaption\"\n },\n k = a.isResponsiveOptions,\n h = [],\n m,\n p;\n O(e, \"update\", {\n options: a\n });\n k || e.setResponsive(!1, !0);\n a = S(a, e.options);\n e.userOptions = W(e.userOptions, a);\n var n = a.chart;\n\n if (n) {\n W(!0, e.options.chart, n);\n \"className\" in n && e.setClassName(n.className);\n \"reflow\" in n && e.setReflow(n.reflow);\n\n if (\"inverted\" in n || \"polar\" in n || \"type\" in n) {\n e.propFromSeries();\n var l = !0;\n }\n\n \"alignTicks\" in n && (l = !0);\n \"events\" in n && z(this, n);\n X(n, function (a, c) {\n -1 !== e.propsRequireUpdateSeries.indexOf(\"chart.\" + c) && (m = !0);\n -1 !== e.propsRequireDirtyBox.indexOf(c) && (e.isDirtyBox = !0);\n -1 !== e.propsRequireReflow.indexOf(c) && (k ? e.isDirtyBox = !0 : p = !0);\n });\n !e.styledMode && n.style && e.renderer.setStyle(e.options.chart.style || {});\n }\n\n !e.styledMode && a.colors && (this.options.colors = a.colors);\n a.time && (this.time === D && (this.time = new b(a.time)), W(!0, e.options.time, a.time));\n X(a, function (c, b) {\n if (e[b] && \"function\" === typeof e[b].update) e[b].update(c, !1);else if (\"function\" === typeof e[f[b]]) e[f[b]](c);else \"colors\" !== b && -1 === e.collectionsWithUpdate.indexOf(b) && W(!0, e.options[b], a[b]);\n \"chart\" !== b && -1 !== e.propsRequireUpdateSeries.indexOf(b) && (m = !0);\n });\n this.collectionsWithUpdate.forEach(function (c) {\n if (a[c]) {\n var b = [];\n e[c].forEach(function (a, c) {\n a.options.isInternal || b.push(Q(a.options.index, c));\n });\n fa(a[c]).forEach(function (a, g) {\n var f = U(a.id),\n k;\n f && (k = e.get(a.id));\n !k && e[c] && (k = e[c][b ? b[g] : g]) && f && U(k.options.id) && (k = void 0);\n k && k.coll === c && (k.update(a, !1), d && (k.touched = !0));\n !k && d && e.collectionsWithInit[c] && (e.collectionsWithInit[c][0].apply(e, [a].concat(e.collectionsWithInit[c][1] || []).concat([!1])).touched = !0);\n });\n d && e[c].forEach(function (a) {\n a.touched || a.options.isInternal ? delete a.touched : h.push(a);\n });\n }\n });\n h.forEach(function (a) {\n a.chart && a.remove && a.remove(!1);\n });\n l && e.axes.forEach(function (a) {\n a.update({}, !1);\n });\n m && e.getSeriesOrderByLinks().forEach(function (a) {\n a.chart && a.update({}, !1);\n }, this);\n l = n && n.width;\n n = n && (V(n.height) ? ba(n.height, l || e.chartWidth) : n.height);\n p || T(l) && l !== e.chartWidth || T(n) && n !== e.chartHeight ? e.setSize(l, n, g) : Q(c, !0) && e.redraw(g);\n O(e, \"afterUpdate\", {\n options: a,\n redraw: c,\n animation: g\n });\n };\n\n f.prototype.setSubtitle = function (a, c) {\n this.applyDescription(\"subtitle\", a);\n this.layOutTitles(c);\n };\n\n f.prototype.setCaption = function (a, c) {\n this.applyDescription(\"caption\", a);\n this.layOutTitles(c);\n };\n\n f.prototype.showResetZoom = function () {\n function a() {\n b.zoomOut();\n }\n\n var b = this,\n d = c.lang,\n g = b.options.chart.resetZoomButton,\n e = g.theme,\n f = \"chart\" === g.relativeTo || \"spacingBox\" === g.relativeTo ? null : \"scrollablePlotBox\";\n O(this, \"beforeShowResetZoom\", null, function () {\n b.resetZoomButton = b.renderer.button(d.resetZoom, null, null, a, e).attr({\n align: g.position.align,\n title: d.resetZoomTitle\n }).addClass(\"highcharts-reset-zoom\").add().align(g.position, !1, f);\n });\n O(this, \"afterShowResetZoom\");\n };\n\n f.prototype.zoomOut = function () {\n O(this, \"selection\", {\n resetSelection: !0\n }, this.zoom);\n };\n\n f.prototype.zoom = function (a) {\n var c = this,\n b = c.pointer,\n d = c.inverted ? b.mouseDownX : b.mouseDownY,\n g = !1,\n e;\n !a || a.resetSelection ? (c.axes.forEach(function (a) {\n e = a.zoom();\n }), b.initiated = !1) : a.xAxis.concat(a.yAxis).forEach(function (a) {\n var f = a.axis,\n k = c.inverted ? f.left : f.top,\n h = c.inverted ? k + f.width : k + f.height,\n m = f.isXAxis,\n n = !1;\n if (!m && d >= k && d <= h || m || !U(d)) n = !0;\n b[m ? \"zoomX\" : \"zoomY\"] && n && (e = f.zoom(a.min, a.max), f.displayBtn && (g = !0));\n });\n var f = c.resetZoomButton;\n g && !f ? c.showResetZoom() : !g && N(f) && (c.resetZoomButton = f.destroy());\n e && c.redraw(Q(c.options.chart.animation, a && a.animation, 100 > c.pointCount));\n };\n\n f.prototype.pan = function (a, c) {\n var b = this,\n d = b.hoverPoints;\n c = \"object\" === typeof c ? c : {\n enabled: c,\n type: \"x\"\n };\n var g = b.options.chart;\n g && g.panning && (g.panning = c);\n var e = c.type,\n f;\n O(this, \"pan\", {\n originalEvent: a\n }, function () {\n d && d.forEach(function (a) {\n a.setState();\n });\n var c = b.xAxis;\n \"xy\" === e ? c = c.concat(b.yAxis) : \"y\" === e && (c = b.yAxis);\n var g = {};\n c.forEach(function (c) {\n if (c.options.panningEnabled && !c.options.isInternal) {\n var d = c.horiz,\n k = a[d ? \"chartX\" : \"chartY\"];\n d = d ? \"mouseDownX\" : \"mouseDownY\";\n var h = b[d],\n m = c.minPointOffset || 0,\n n = c.reversed && !b.inverted || !c.reversed && b.inverted ? -1 : 1,\n p = c.getExtremes(),\n l = c.toValue(h - k, !0) + m * n,\n F = c.toValue(h + c.len - k, !0) - (m * n || c.isXAxis && c.pointRangePadding || 0),\n r = F < l;\n n = c.hasVerticalPanning();\n h = r ? F : l;\n l = r ? l : F;\n var q = c.panningState;\n !n || c.isXAxis || q && !q.isDirty || c.series.forEach(function (a) {\n var c = a.getProcessedData(!0);\n c = a.getExtremes(c.yData, !0);\n q || (q = {\n startMin: Number.MAX_VALUE,\n startMax: -Number.MAX_VALUE\n });\n T(c.dataMin) && T(c.dataMax) && (q.startMin = Math.min(Q(a.options.threshold, Infinity), c.dataMin, q.startMin), q.startMax = Math.max(Q(a.options.threshold, -Infinity), c.dataMax, q.startMax));\n });\n n = Math.min(Q(q && q.startMin, p.dataMin), m ? p.min : c.toValue(c.toPixels(p.min) - c.minPixelPadding));\n F = Math.max(Q(q && q.startMax, p.dataMax), m ? p.max : c.toValue(c.toPixels(p.max) + c.minPixelPadding));\n c.panningState = q;\n c.isOrdinal || (m = n - h, 0 < m && (l += m, h = n), m = l - F, 0 < m && (l = F, h -= m), c.series.length && h !== p.min && l !== p.max && h >= n && l <= F && (c.setExtremes(h, l, !1, !1, {\n trigger: \"pan\"\n }), !b.resetZoomButton && h !== n && l !== F && e.match(\"y\") && (b.showResetZoom(), c.displayBtn = !1), f = !0), g[d] = k);\n }\n });\n X(g, function (a, c) {\n b[c] = a;\n });\n f && b.redraw(!1);\n M(b.container, {\n cursor: \"move\"\n });\n });\n };\n\n return f;\n }();\n\n K(f.prototype, {\n callbacks: [],\n collectionsWithInit: {\n xAxis: [f.prototype.addAxis, [!0]],\n yAxis: [f.prototype.addAxis, [!1]],\n series: [f.prototype.addSeries]\n },\n collectionsWithUpdate: [\"xAxis\", \"yAxis\", \"series\"],\n propsRequireDirtyBox: \"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),\n propsRequireReflow: \"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\n propsRequireUpdateSeries: \"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \")\n });\n \"\";\n return f;\n });\n K(l, \"Core/Legend/LegendSymbol.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.merge,\n l = f.pick,\n C;\n\n (function (f) {\n f.drawLineMarker = function (f) {\n var v = this.options,\n B = f.symbolWidth,\n y = f.symbolHeight,\n t = y / 2,\n h = this.chart.renderer,\n d = this.legendGroup;\n f = f.baseline - Math.round(.3 * f.fontMetrics.b);\n var b = {},\n p = v.marker;\n this.chart.styledMode || (b = {\n \"stroke-width\": v.lineWidth || 0\n }, v.dashStyle && (b.dashstyle = v.dashStyle));\n this.legendLine = h.path([[\"M\", 0, f], [\"L\", B, f]]).addClass(\"highcharts-graph\").attr(b).add(d);\n p && !1 !== p.enabled && B && (v = Math.min(l(p.radius, t), t), 0 === this.symbol.indexOf(\"url\") && (p = e(p, {\n width: y,\n height: y\n }), v = 0), this.legendSymbol = B = h.symbol(this.symbol, B / 2 - v, f - v, 2 * v, 2 * v, p).addClass(\"highcharts-point\").add(d), B.isMarker = !0);\n };\n\n f.drawRectangle = function (e, f) {\n var v = e.symbolHeight,\n y = e.options.squareSymbol;\n f.legendSymbol = this.chart.renderer.rect(y ? (e.symbolWidth - v) / 2 : 0, e.baseline - v + 1, y ? v : e.symbolWidth, v, l(e.options.symbolRadius, v / 2)).addClass(\"highcharts-point\").attr({\n zIndex: 3\n }).add(f.legendGroup);\n };\n })(C || (C = {}));\n\n return C;\n });\n K(l, \"Core/Series/SeriesDefaults.js\", [], function () {\n return {\n lineWidth: 2,\n allowPointSelect: !1,\n crisp: !0,\n showCheckbox: !1,\n animation: {\n duration: 1E3\n },\n events: {},\n marker: {\n enabledThreshold: 2,\n lineColor: \"#ffffff\",\n lineWidth: 0,\n radius: 4,\n states: {\n normal: {\n animation: !0\n },\n hover: {\n animation: {\n duration: 50\n },\n enabled: !0,\n radiusPlus: 2,\n lineWidthPlus: 1\n },\n select: {\n fillColor: \"#cccccc\",\n lineColor: \"#000000\",\n lineWidth: 2\n }\n }\n },\n point: {\n events: {}\n },\n dataLabels: {\n animation: {},\n align: \"center\",\n defer: !0,\n formatter: function () {\n var f = this.series.chart.numberFormatter;\n return \"number\" !== typeof this.y ? \"\" : f(this.y, -1);\n },\n padding: 5,\n style: {\n fontSize: \"11px\",\n fontWeight: \"bold\",\n color: \"contrast\",\n textOutline: \"1px contrast\"\n },\n verticalAlign: \"bottom\",\n x: 0,\n y: 0\n },\n cropThreshold: 300,\n opacity: 1,\n pointRange: 0,\n softThreshold: !0,\n states: {\n normal: {\n animation: !0\n },\n hover: {\n animation: {\n duration: 50\n },\n lineWidthPlus: 1,\n marker: {},\n halo: {\n size: 10,\n opacity: .25\n }\n },\n select: {\n animation: {\n duration: 0\n }\n },\n inactive: {\n animation: {\n duration: 50\n },\n opacity: .2\n }\n },\n stickyTracking: !0,\n turboThreshold: 1E3,\n findNearestPointBy: \"x\"\n };\n });\n K(l, \"Core/Series/Series.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Foundation.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Series/SeriesDefaults.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B, y, t) {\n var h = f.animObject,\n d = f.setAnimation,\n b = e.defaultOptions,\n p = l.registerEventOptions,\n q = C.hasTouch,\n r = C.svg,\n n = C.win,\n J = B.seriesTypes,\n w = t.addEvent,\n z = t.arrayMax,\n x = t.arrayMin,\n m = t.clamp,\n k = t.cleanRecursively,\n a = t.correctFloat,\n g = t.defined,\n c = t.erase,\n D = t.error,\n A = t.extend,\n u = t.find,\n L = t.fireEvent,\n S = t.getNestedProperty,\n R = t.isArray,\n M = t.isNumber,\n U = t.isString,\n P = t.merge,\n I = t.objectEach,\n H = t.pick,\n K = t.removeEvent,\n da = t.splat,\n O = t.syncTimeout;\n\n f = function () {\n function e() {\n this.zones = this.yAxis = this.xAxis = this.userOptions = this.tooltipOptions = this.processedYData = this.processedXData = this.points = this.options = this.linkedSeries = this.index = this.eventsToUnbind = this.eventOptions = this.data = this.chart = this._i = void 0;\n }\n\n e.prototype.init = function (a, c) {\n L(this, \"init\", {\n options: c\n });\n var b = this,\n d = a.series;\n this.eventsToUnbind = [];\n b.chart = a;\n b.options = b.setOptions(c);\n c = b.options;\n b.linkedSeries = [];\n b.bindAxes();\n A(b, {\n name: c.name,\n state: \"\",\n visible: !1 !== c.visible,\n selected: !0 === c.selected\n });\n p(this, c);\n var g = c.events;\n if (g && g.click || c.point && c.point.events && c.point.events.click || c.allowPointSelect) a.runTrackerClick = !0;\n b.getColor();\n b.getSymbol();\n b.parallelArrays.forEach(function (a) {\n b[a + \"Data\"] || (b[a + \"Data\"] = []);\n });\n b.isCartesian && (a.hasCartesianSeries = !0);\n var e;\n d.length && (e = d[d.length - 1]);\n b._i = H(e && e._i, -1) + 1;\n b.opacity = b.options.opacity;\n a.orderSeries(this.insert(d));\n c.dataSorting && c.dataSorting.enabled ? b.setDataSortingOptions() : b.points || b.data || b.setData(c.data, !1);\n L(this, \"afterInit\");\n };\n\n e.prototype.is = function (a) {\n return J[a] && this instanceof J[a];\n };\n\n e.prototype.insert = function (a) {\n var c = this.options.index,\n b;\n\n if (M(c)) {\n for (b = a.length; b--;) if (c >= H(a[b].options.index, a[b]._i)) {\n a.splice(b + 1, 0, this);\n break;\n }\n\n -1 === b && a.unshift(this);\n b += 1;\n } else a.push(this);\n\n return H(b, a.length - 1);\n };\n\n e.prototype.bindAxes = function () {\n var a = this,\n c = a.options,\n b = a.chart,\n d;\n L(this, \"bindAxes\", null, function () {\n (a.axisTypes || []).forEach(function (g) {\n var e = 0;\n b[g].forEach(function (b) {\n d = b.options;\n if (c[g] === e && !d.isInternal || \"undefined\" !== typeof c[g] && c[g] === d.id || \"undefined\" === typeof c[g] && 0 === d.index) a.insert(b.series), a[g] = b, b.isDirty = !0;\n d.isInternal || e++;\n });\n a[g] || a.optionalAxis === g || D(18, !0, b);\n });\n });\n L(this, \"afterBindAxes\");\n };\n\n e.prototype.updateParallelArrays = function (a, c) {\n var b = a.series,\n d = arguments,\n g = M(c) ? function (d) {\n var g = \"y\" === d && b.toYData ? b.toYData(a) : a[d];\n b[d + \"Data\"][c] = g;\n } : function (a) {\n Array.prototype[c].apply(b[a + \"Data\"], Array.prototype.slice.call(d, 2));\n };\n b.parallelArrays.forEach(g);\n };\n\n e.prototype.hasData = function () {\n return this.visible && \"undefined\" !== typeof this.dataMax && \"undefined\" !== typeof this.dataMin || this.visible && this.yData && 0 < this.yData.length;\n };\n\n e.prototype.autoIncrement = function (a) {\n var c = this.options,\n b = c.pointIntervalUnit,\n d = c.relativeXValue,\n g = this.chart.time,\n e = this.xIncrement,\n f;\n e = H(e, c.pointStart, 0);\n this.pointInterval = f = H(this.pointInterval, c.pointInterval, 1);\n d && M(a) && (f *= a);\n b && (c = new g.Date(e), \"day\" === b ? g.set(\"Date\", c, g.get(\"Date\", c) + f) : \"month\" === b ? g.set(\"Month\", c, g.get(\"Month\", c) + f) : \"year\" === b && g.set(\"FullYear\", c, g.get(\"FullYear\", c) + f), f = c.getTime() - e);\n if (d && M(a)) return e + f;\n this.xIncrement = e + f;\n return e;\n };\n\n e.prototype.setDataSortingOptions = function () {\n var a = this.options;\n A(this, {\n requireSorting: !1,\n sorted: !1,\n enabledDataSorting: !0,\n allowDG: !1\n });\n g(a.pointRange) || (a.pointRange = 1);\n };\n\n e.prototype.setOptions = function (a) {\n var c = this.chart,\n d = c.options,\n e = d.plotOptions,\n f = c.userOptions || {};\n a = P(a);\n c = c.styledMode;\n var k = {\n plotOptions: e,\n userOptions: a\n };\n L(this, \"setOptions\", k);\n var h = k.plotOptions[this.type],\n m = f.plotOptions || {};\n this.userOptions = k.userOptions;\n f = P(h, e.series, f.plotOptions && f.plotOptions[this.type], a);\n this.tooltipOptions = P(b.tooltip, b.plotOptions.series && b.plotOptions.series.tooltip, b.plotOptions[this.type].tooltip, d.tooltip.userOptions, e.series && e.series.tooltip, e[this.type].tooltip, a.tooltip);\n this.stickyTracking = H(a.stickyTracking, m[this.type] && m[this.type].stickyTracking, m.series && m.series.stickyTracking, this.tooltipOptions.shared && !this.noSharedTooltip ? !0 : f.stickyTracking);\n null === h.marker && delete f.marker;\n this.zoneAxis = f.zoneAxis;\n e = this.zones = (f.zones || []).slice();\n !f.negativeColor && !f.negativeFillColor || f.zones || (d = {\n value: f[this.zoneAxis + \"Threshold\"] || f.threshold || 0,\n className: \"highcharts-negative\"\n }, c || (d.color = f.negativeColor, d.fillColor = f.negativeFillColor), e.push(d));\n e.length && g(e[e.length - 1].value) && e.push(c ? {} : {\n color: this.color,\n fillColor: this.fillColor\n });\n L(this, \"afterSetOptions\", {\n options: f\n });\n return f;\n };\n\n e.prototype.getName = function () {\n return H(this.options.name, \"Series \" + (this.index + 1));\n };\n\n e.prototype.getCyclic = function (a, c, b) {\n var d = this.chart,\n e = this.userOptions,\n f = a + \"Index\",\n k = a + \"Counter\",\n h = b ? b.length : H(d.options.chart[a + \"Count\"], d[a + \"Count\"]);\n\n if (!c) {\n var m = H(e[f], e[\"_\" + f]);\n g(m) || (d.series.length || (d[k] = 0), e[\"_\" + f] = m = d[k] % h, d[k] += 1);\n b && (c = b[m]);\n }\n\n \"undefined\" !== typeof m && (this[f] = m);\n this[a] = c;\n };\n\n e.prototype.getColor = function () {\n this.chart.styledMode ? this.getCyclic(\"color\") : this.options.colorByPoint ? this.color = \"#cccccc\" : this.getCyclic(\"color\", this.options.color || b.plotOptions[this.type].color, this.chart.options.colors);\n };\n\n e.prototype.getPointsCollection = function () {\n return (this.hasGroupedData ? this.points : this.data) || [];\n };\n\n e.prototype.getSymbol = function () {\n this.getCyclic(\"symbol\", this.options.marker.symbol, this.chart.options.symbols);\n };\n\n e.prototype.findPointIndex = function (a, c) {\n var b = a.id,\n d = a.x,\n g = this.points,\n e = this.options.dataSorting,\n f,\n k;\n if (b) e = this.chart.get(b), e instanceof E && (f = e);else if (this.linkedParent || this.enabledDataSorting || this.options.relativeXValue) if (f = function (c) {\n return !c.touched && c.index === a.index;\n }, e && e.matchByName ? f = function (c) {\n return !c.touched && c.name === a.name;\n } : this.options.relativeXValue && (f = function (c) {\n return !c.touched && c.options.x === a.x;\n }), f = u(g, f), !f) return;\n\n if (f) {\n var h = f && f.index;\n \"undefined\" !== typeof h && (k = !0);\n }\n\n \"undefined\" === typeof h && M(d) && (h = this.xData.indexOf(d, c));\n -1 !== h && \"undefined\" !== typeof h && this.cropped && (h = h >= this.cropStart ? h - this.cropStart : h);\n !k && M(h) && g[h] && g[h].touched && (h = void 0);\n return h;\n };\n\n e.prototype.updateData = function (a, c) {\n var b = this.options,\n d = b.dataSorting,\n e = this.points,\n f = [],\n k = this.requireSorting,\n h = a.length === e.length,\n m,\n n,\n p,\n l = !0;\n this.xIncrement = null;\n a.forEach(function (a, c) {\n var n = g(a) && this.pointClass.prototype.optionsToObject.call({\n series: this\n }, a) || {},\n l = n.x;\n\n if (n.id || M(l)) {\n if (n = this.findPointIndex(n, p), -1 === n || \"undefined\" === typeof n ? f.push(a) : e[n] && a !== b.data[n] ? (e[n].update(a, !1, null, !1), e[n].touched = !0, k && (p = n + 1)) : e[n] && (e[n].touched = !0), !h || c !== n || d && d.enabled || this.hasDerivedData) m = !0;\n } else f.push(a);\n }, this);\n if (m) for (a = e.length; a--;) (n = e[a]) && !n.touched && n.remove && n.remove(!1, c);else !h || d && d.enabled ? l = !1 : (a.forEach(function (a, c) {\n a !== e[c].y && e[c].update && e[c].update(a, !1, null, !1);\n }), f.length = 0);\n e.forEach(function (a) {\n a && (a.touched = !1);\n });\n if (!l) return !1;\n f.forEach(function (a) {\n this.addPoint(a, !1, null, null, !1);\n }, this);\n null === this.xIncrement && this.xData && this.xData.length && (this.xIncrement = z(this.xData), this.autoIncrement());\n return !0;\n };\n\n e.prototype.setData = function (a, c, b, d) {\n var g = this,\n e = g.points,\n f = e && e.length || 0,\n k = g.options,\n h = g.chart,\n m = k.dataSorting,\n n = g.xAxis,\n p = k.turboThreshold,\n l = this.xData,\n r = this.yData,\n q = g.pointArrayMap;\n q = q && q.length;\n var F = k.keys,\n u,\n t = 0,\n z = 1,\n w = null;\n\n if (!h.options.chart.allowMutatingData) {\n k.data && delete g.options.data;\n g.userOptions.data && delete g.userOptions.data;\n var x = P(!0, a);\n }\n\n a = x || a || [];\n x = a.length;\n c = H(c, !0);\n m && m.enabled && (a = this.sortData(a));\n h.options.chart.allowMutatingData && !1 !== d && x && f && !g.cropped && !g.hasGroupedData && g.visible && !g.isSeriesBoosting && (u = this.updateData(a, b));\n\n if (!u) {\n g.xIncrement = null;\n g.colorCounter = 0;\n this.parallelArrays.forEach(function (a) {\n g[a + \"Data\"].length = 0;\n });\n if (p && x > p) {\n if (w = g.getFirstValidPoint(a), M(w)) for (b = 0; b < x; b++) l[b] = this.autoIncrement(), r[b] = a[b];else if (R(w)) {\n if (q) {\n if (w.length === q) for (b = 0; b < x; b++) l[b] = this.autoIncrement(), r[b] = a[b];else for (b = 0; b < x; b++) d = a[b], l[b] = d[0], r[b] = d.slice(1, q + 1);\n } else if (F && (t = F.indexOf(\"x\"), z = F.indexOf(\"y\"), t = 0 <= t ? t : 0, z = 0 <= z ? z : 1), 1 === w.length && (z = 0), t === z) for (b = 0; b < x; b++) l[b] = this.autoIncrement(), r[b] = a[b][z];else for (b = 0; b < x; b++) d = a[b], l[b] = d[t], r[b] = d[z];\n } else D(12, !1, h);\n } else for (b = 0; b < x; b++) \"undefined\" !== typeof a[b] && (d = {\n series: g\n }, g.pointClass.prototype.applyOptions.apply(d, [a[b]]), g.updateParallelArrays(d, b));\n r && U(r[0]) && D(14, !0, h);\n g.data = [];\n g.options.data = g.userOptions.data = a;\n\n for (b = f; b--;) e[b] && e[b].destroy && e[b].destroy();\n\n n && (n.minRange = n.userMinRange);\n g.isDirty = h.isDirtyBox = !0;\n g.isDirtyData = !!e;\n b = !1;\n }\n\n \"point\" === k.legendType && (this.processData(), this.generatePoints());\n c && h.redraw(b);\n };\n\n e.prototype.sortData = function (a) {\n var c = this,\n b = c.options.dataSorting.sortKey || \"y\",\n d = function (a, c) {\n return g(c) && a.pointClass.prototype.optionsToObject.call({\n series: a\n }, c) || {};\n };\n\n a.forEach(function (b, g) {\n a[g] = d(c, b);\n a[g].index = g;\n }, this);\n a.concat().sort(function (a, c) {\n a = S(b, a);\n c = S(b, c);\n return c < a ? -1 : c > a ? 1 : 0;\n }).forEach(function (a, c) {\n a.x = c;\n }, this);\n c.linkedSeries && c.linkedSeries.forEach(function (c) {\n var b = c.options,\n g = b.data;\n b.dataSorting && b.dataSorting.enabled || !g || (g.forEach(function (b, e) {\n g[e] = d(c, b);\n a[e] && (g[e].x = a[e].x, g[e].index = e);\n }), c.setData(g, !1));\n });\n return a;\n };\n\n e.prototype.getProcessedData = function (a) {\n var c = this.xAxis,\n b = this.options,\n d = b.cropThreshold,\n g = a || this.getExtremesFromAll || b.getExtremesFromAll,\n e = this.isCartesian;\n a = c && c.val2lin;\n b = !(!c || !c.logarithmic);\n var f = 0,\n k = this.xData,\n h = this.yData,\n m = this.requireSorting;\n var n = !1;\n var p = k.length;\n\n if (c) {\n n = c.getExtremes();\n var l = n.min;\n var r = n.max;\n n = !(!c.categories || c.names.length);\n }\n\n if (e && this.sorted && !g && (!d || p > d || this.forceCrop)) if (k[p - 1] < l || k[0] > r) k = [], h = [];else if (this.yData && (k[0] < l || k[p - 1] > r)) {\n var q = this.cropData(this.xData, this.yData, l, r);\n k = q.xData;\n h = q.yData;\n f = q.start;\n q = !0;\n }\n\n for (d = k.length || 1; --d;) if (c = b ? a(k[d]) - a(k[d - 1]) : k[d] - k[d - 1], 0 < c && (\"undefined\" === typeof u || c < u)) var u = c;else 0 > c && m && !n && (D(15, !1, this.chart), m = !1);\n\n return {\n xData: k,\n yData: h,\n cropped: q,\n cropStart: f,\n closestPointRange: u\n };\n };\n\n e.prototype.processData = function (a) {\n var c = this.xAxis;\n if (this.isCartesian && !this.isDirty && !c.isDirty && !this.yAxis.isDirty && !a) return !1;\n a = this.getProcessedData();\n this.cropped = a.cropped;\n this.cropStart = a.cropStart;\n this.processedXData = a.xData;\n this.processedYData = a.yData;\n this.closestPointRange = this.basePointRange = a.closestPointRange;\n L(this, \"afterProcessData\");\n };\n\n e.prototype.cropData = function (a, c, b, d, g) {\n var e = a.length,\n f,\n k = 0,\n h = e;\n g = H(g, this.cropShoulder);\n\n for (f = 0; f < e; f++) if (a[f] >= b) {\n k = Math.max(0, f - g);\n break;\n }\n\n for (b = f; b < e; b++) if (a[b] > d) {\n h = b + g;\n break;\n }\n\n return {\n xData: a.slice(k, h),\n yData: c.slice(k, h),\n start: k,\n end: h\n };\n };\n\n e.prototype.generatePoints = function () {\n var a = this.options,\n c = this.processedData || a.data,\n b = this.processedXData,\n d = this.processedYData,\n g = this.pointClass,\n e = b.length,\n f = this.cropStart || 0,\n k = this.hasGroupedData,\n h = a.keys,\n m = [];\n a = a.dataGrouping && a.dataGrouping.groupAll ? f : 0;\n var n,\n p,\n l = this.data;\n\n if (!l && !k) {\n var r = [];\n r.length = c.length;\n l = this.data = r;\n }\n\n h && k && (this.options.keys = !1);\n\n for (p = 0; p < e; p++) {\n r = f + p;\n\n if (k) {\n var q = new g().init(this, [b[p]].concat(da(d[p])));\n q.dataGroup = this.groupMap[a + p];\n q.dataGroup.options && (q.options = q.dataGroup.options, A(q, q.dataGroup.options), delete q.dataLabels);\n } else (q = l[r]) || \"undefined\" === typeof c[r] || (l[r] = q = new g().init(this, c[r], b[p]));\n\n q && (q.index = k ? a + p : r, m[p] = q);\n }\n\n this.options.keys = h;\n if (l && (e !== (n = l.length) || k)) for (p = 0; p < n; p++) p !== f || k || (p += e), l[p] && (l[p].destroyElements(), l[p].plotX = void 0);\n this.data = l;\n this.points = m;\n L(this, \"afterGeneratePoints\");\n };\n\n e.prototype.getXExtremes = function (a) {\n return {\n min: x(a),\n max: z(a)\n };\n };\n\n e.prototype.getExtremes = function (a, c) {\n var b = this.xAxis,\n d = this.yAxis,\n g = this.processedXData || this.xData,\n e = [],\n f = this.requireSorting ? this.cropShoulder : 0;\n d = d ? d.positiveValuesOnly : !1;\n var k,\n h = 0,\n m = 0,\n n = 0;\n a = a || this.stackedYData || this.processedYData || [];\n var p = a.length;\n\n if (b) {\n var l = b.getExtremes();\n h = l.min;\n m = l.max;\n }\n\n for (k = 0; k < p; k++) {\n var q = g[k];\n l = a[k];\n var r = (M(l) || R(l)) && (l.length || 0 < l || !d);\n q = c || this.getExtremesFromAll || this.options.getExtremesFromAll || this.cropped || !b || (g[k + f] || q) >= h && (g[k - f] || q) <= m;\n if (r && q) if (r = l.length) for (; r--;) M(l[r]) && (e[n++] = l[r]);else e[n++] = l;\n }\n\n a = {\n activeYData: e,\n dataMin: x(e),\n dataMax: z(e)\n };\n L(this, \"afterGetExtremes\", {\n dataExtremes: a\n });\n return a;\n };\n\n e.prototype.applyExtremes = function () {\n var a = this.getExtremes();\n this.dataMin = a.dataMin;\n this.dataMax = a.dataMax;\n return a;\n };\n\n e.prototype.getFirstValidPoint = function (a) {\n for (var c = a.length, b = 0, d = null; null === d && b < c;) d = a[b], b++;\n\n return d;\n };\n\n e.prototype.translate = function () {\n this.processedXData || this.processData();\n this.generatePoints();\n var c = this.options,\n b = c.stacking,\n d = this.xAxis,\n e = d.categories,\n f = this.enabledDataSorting,\n k = this.yAxis,\n h = this.points,\n n = h.length,\n p = this.pointPlacementToXValue(),\n l = !!p,\n q = c.threshold,\n r = c.startFromThreshold ? q : 0,\n u = this.zoneAxis || \"y\",\n t,\n z,\n w = Number.MAX_VALUE;\n\n for (t = 0; t < n; t++) {\n var x = h[t],\n A = x.x,\n y = void 0,\n D = void 0,\n v = x.y,\n J = x.low,\n B = b && k.stacking && k.stacking.stacks[(this.negStacks && v < (r ? 0 : q) ? \"-\" : \"\") + this.stackKey];\n if (k.positiveValuesOnly && !k.validatePositiveValue(v) || d.positiveValuesOnly && !d.validatePositiveValue(A)) x.isNull = !0;\n x.plotX = z = a(m(d.translate(A, 0, 0, 0, 1, p, \"flags\" === this.type), -1E5, 1E5));\n\n if (b && this.visible && B && B[A]) {\n var C = this.getStackIndicator(C, A, this.index);\n x.isNull || (y = B[A], D = y.points[C.key]);\n }\n\n R(D) && (J = D[0], v = D[1], J === r && C.key === B[A].base && (J = H(M(q) && q, k.min)), k.positiveValuesOnly && 0 >= J && (J = null), x.total = x.stackTotal = y.total, x.percentage = y.total && x.y / y.total * 100, x.stackY = v, this.irregularWidths || y.setOffset(this.pointXOffset || 0, this.barW || 0));\n x.yBottom = g(J) ? m(k.translate(J, 0, 1, 0, 1), -1E5, 1E5) : null;\n this.dataModify && (v = this.dataModify.modifyValue(v, t));\n x.plotY = void 0;\n M(v) && (y = k.translate(v, !1, !0, !1, !0), \"undefined\" !== typeof y && (x.plotY = m(y, -1E5, 1E5)));\n x.isInside = this.isPointInside(x);\n x.clientX = l ? a(d.translate(A, 0, 0, 0, 1, p)) : z;\n x.negative = x[u] < (c[u + \"Threshold\"] || q || 0);\n x.category = H(e && e[x.x], x.x);\n\n if (!x.isNull && !1 !== x.visible) {\n \"undefined\" !== typeof G && (w = Math.min(w, Math.abs(z - G)));\n var G = z;\n }\n\n x.zone = this.zones.length ? x.getZone() : void 0;\n !x.graphic && this.group && f && (x.isNew = !0);\n }\n\n this.closestPointRangePx = w;\n L(this, \"afterTranslate\");\n };\n\n e.prototype.getValidPoints = function (a, c, b) {\n var d = this.chart;\n return (a || this.points || []).filter(function (a) {\n return c && !d.isInsidePlot(a.plotX, a.plotY, {\n inverted: d.inverted\n }) ? !1 : !1 !== a.visible && (b || !a.isNull);\n });\n };\n\n e.prototype.getClipBox = function () {\n var a = this.chart,\n c = this.xAxis,\n b = this.yAxis,\n d = P(a.clipBox);\n c && c.len !== a.plotSizeX && (d.width = c.len);\n b && b.len !== a.plotSizeY && (d.height = b.len);\n return d;\n };\n\n e.prototype.getSharedClipKey = function () {\n return this.sharedClipKey = (this.options.xAxis || 0) + \",\" + (this.options.yAxis || 0);\n };\n\n e.prototype.setClip = function () {\n var a = this.chart,\n c = this.group,\n b = this.markerGroup,\n d = a.sharedClips;\n a = a.renderer;\n var g = this.getClipBox(),\n e = this.getSharedClipKey(),\n f = d[e];\n f ? f.animate(g) : d[e] = f = a.clipRect(g);\n c && c.clip(!1 === this.options.clip ? void 0 : f);\n b && b.clip();\n };\n\n e.prototype.animate = function (a) {\n var c = this.chart,\n b = this.group,\n d = this.markerGroup,\n g = c.inverted,\n e = h(this.options.animation),\n f = [this.getSharedClipKey(), e.duration, e.easing, e.defer].join(),\n k = c.sharedClips[f],\n m = c.sharedClips[f + \"m\"];\n if (a && b) e = this.getClipBox(), k ? k.attr(\"height\", e.height) : (e.width = 0, g && (e.x = c.plotHeight), k = c.renderer.clipRect(e), c.sharedClips[f] = k, m = c.renderer.clipRect({\n x: g ? (c.plotSizeX || 0) + 99 : -99,\n y: g ? -c.plotLeft : -c.plotTop,\n width: 99,\n height: g ? c.chartWidth : c.chartHeight\n }), c.sharedClips[f + \"m\"] = m), b.clip(k), d && d.clip(m);else if (k && !k.hasClass(\"highcharts-animating\")) {\n c = this.getClipBox();\n var n = e.step;\n d && d.element.childNodes.length && (e.step = function (a, c) {\n n && n.apply(c, arguments);\n m && m.element && m.attr(c.prop, \"width\" === c.prop ? a + 99 : a);\n });\n k.addClass(\"highcharts-animating\").animate(c, e);\n }\n };\n\n e.prototype.afterAnimate = function () {\n var a = this;\n this.setClip();\n I(this.chart.sharedClips, function (c, b, d) {\n c && !a.chart.container.querySelector('[clip-path=\"url(#'.concat(c.id, ')\"]')) && (c.destroy(), delete d[b]);\n });\n this.finishedAnimating = !0;\n L(this, \"afterAnimate\");\n };\n\n e.prototype.drawPoints = function () {\n var a = this.points,\n c = this.chart,\n b = this.options.marker,\n d = this[this.specialGroup] || this.markerGroup,\n g = this.xAxis,\n e = H(b.enabled, !g || g.isRadial ? !0 : null, this.closestPointRangePx >= b.enabledThreshold * b.radius),\n f,\n k;\n if (!1 !== b.enabled || this._hasPointMarkers) for (f = 0; f < a.length; f++) {\n var h = a[f];\n var m = (k = h.graphic) ? \"animate\" : \"attr\";\n var n = h.marker || {};\n var p = !!h.marker;\n\n if ((e && \"undefined\" === typeof n.enabled || n.enabled) && !h.isNull && !1 !== h.visible) {\n var l = H(n.symbol, this.symbol, \"rect\");\n var q = this.markerAttribs(h, h.selected && \"select\");\n this.enabledDataSorting && (h.startXPos = g.reversed ? -(q.width || 0) : g.width);\n var r = !1 !== h.isInside;\n k ? k[r ? \"show\" : \"hide\"](r).animate(q) : r && (0 < (q.width || 0) || h.hasImage) && (h.graphic = k = c.renderer.symbol(l, q.x, q.y, q.width, q.height, p ? n : b).add(d), this.enabledDataSorting && c.hasRendered && (k.attr({\n x: h.startXPos\n }), m = \"animate\"));\n k && \"animate\" === m && k[r ? \"show\" : \"hide\"](r).animate(q);\n if (k && !c.styledMode) k[m](this.pointAttribs(h, h.selected && \"select\"));\n k && k.addClass(h.getClassName(), !0);\n } else k && (h.graphic = k.destroy());\n }\n };\n\n e.prototype.markerAttribs = function (a, c) {\n var b = this.options,\n d = b.marker,\n g = a.marker || {},\n e = g.symbol || d.symbol,\n f = H(g.radius, d && d.radius);\n c && (d = d.states[c], c = g.states && g.states[c], f = H(c && c.radius, d && d.radius, f && f + (d && d.radiusPlus || 0)));\n a.hasImage = e && 0 === e.indexOf(\"url\");\n a.hasImage && (f = 0);\n a = M(f) ? {\n x: b.crisp ? Math.floor(a.plotX - f) : a.plotX - f,\n y: a.plotY - f\n } : {};\n f && (a.width = a.height = 2 * f);\n return a;\n };\n\n e.prototype.pointAttribs = function (a, c) {\n var b = this.options.marker,\n d = a && a.options,\n g = d && d.marker || {},\n e = d && d.color,\n f = a && a.color,\n k = a && a.zone && a.zone.color,\n h = this.color;\n a = H(g.lineWidth, b.lineWidth);\n d = 1;\n h = e || k || f || h;\n e = g.fillColor || b.fillColor || h;\n f = g.lineColor || b.lineColor || h;\n c = c || \"normal\";\n b = b.states[c] || {};\n c = g.states && g.states[c] || {};\n a = H(c.lineWidth, b.lineWidth, a + H(c.lineWidthPlus, b.lineWidthPlus, 0));\n e = c.fillColor || b.fillColor || e;\n f = c.lineColor || b.lineColor || f;\n d = H(c.opacity, b.opacity, d);\n return {\n stroke: f,\n \"stroke-width\": a,\n fill: e,\n opacity: d\n };\n };\n\n e.prototype.destroy = function (a) {\n var b = this,\n d = b.chart,\n g = /AppleWebKit\\/533/.test(n.navigator.userAgent),\n e = b.data || [],\n f,\n k,\n h,\n m;\n L(b, \"destroy\", {\n keepEventsForUpdate: a\n });\n this.removeEvents(a);\n (b.axisTypes || []).forEach(function (a) {\n (m = b[a]) && m.series && (c(m.series, b), m.isDirty = m.forceRedraw = !0);\n });\n b.legendItem && b.chart.legend.destroyItem(b);\n\n for (k = e.length; k--;) (h = e[k]) && h.destroy && h.destroy();\n\n b.clips && b.clips.forEach(function (a) {\n return a.destroy();\n });\n t.clearTimeout(b.animationTimeout);\n I(b, function (a, c) {\n a instanceof y && !a.survive && (f = g && \"group\" === c ? \"hide\" : \"destroy\", a[f]());\n });\n d.hoverSeries === b && (d.hoverSeries = void 0);\n c(d.series, b);\n d.orderSeries();\n I(b, function (c, d) {\n a && \"hcEvents\" === d || delete b[d];\n });\n };\n\n e.prototype.applyZones = function () {\n var a = this,\n c = this.chart,\n b = c.renderer,\n d = this.zones,\n g = this.clips || [],\n e = this.graph,\n f = this.area,\n k = Math.max(c.chartWidth, c.chartHeight),\n h = this[(this.zoneAxis || \"y\") + \"Axis\"],\n n = c.inverted,\n p,\n l,\n q,\n r,\n u,\n t,\n z,\n x,\n w = !1;\n\n if (d.length && (e || f) && h && \"undefined\" !== typeof h.min) {\n var A = h.reversed;\n var y = h.horiz;\n e && !this.showLine && e.hide();\n f && f.hide();\n var D = h.getExtremes();\n d.forEach(function (d, F) {\n p = A ? y ? c.plotWidth : 0 : y ? 0 : h.toPixels(D.min) || 0;\n p = m(H(l, p), 0, k);\n l = m(Math.round(h.toPixels(H(d.value, D.max), !0) || 0), 0, k);\n w && (p = l = h.toPixels(D.max));\n r = Math.abs(p - l);\n u = Math.min(p, l);\n t = Math.max(p, l);\n h.isXAxis ? (q = {\n x: n ? t : u,\n y: 0,\n width: r,\n height: k\n }, y || (q.x = c.plotHeight - q.x)) : (q = {\n x: 0,\n y: n ? t : u,\n width: k,\n height: r\n }, y && (q.y = c.plotWidth - q.y));\n n && b.isVML && (q = h.isXAxis ? {\n x: 0,\n y: A ? u : t,\n height: q.width,\n width: c.chartWidth\n } : {\n x: q.y - c.plotLeft - c.spacingBox.x,\n y: 0,\n width: q.height,\n height: c.chartHeight\n });\n g[F] ? g[F].animate(q) : g[F] = b.clipRect(q);\n z = a[\"zone-area-\" + F];\n x = a[\"zone-graph-\" + F];\n e && x && x.clip(g[F]);\n f && z && z.clip(g[F]);\n w = d.value > D.max;\n a.resetZones && 0 === l && (l = void 0);\n });\n this.clips = g;\n } else a.visible && (e && e.show(), f && f.show());\n };\n\n e.prototype.invertGroups = function (a) {\n function c() {\n [\"group\", \"markerGroup\"].forEach(function (c) {\n b[c] && (d.renderer.isVML && b[c].attr({\n width: b.yAxis.len,\n height: b.xAxis.len\n }), b[c].width = b.yAxis.len, b[c].height = b.xAxis.len, b[c].invert(b.isRadialSeries ? !1 : a));\n });\n }\n\n var b = this,\n d = b.chart;\n b.xAxis && (b.eventsToUnbind.push(w(d, \"resize\", c)), c(), b.invertGroups = c);\n };\n\n e.prototype.plotGroup = function (a, c, b, d, e) {\n var f = this[a],\n k = !f;\n b = {\n visibility: b,\n zIndex: d || .1\n };\n \"undefined\" === typeof this.opacity || this.chart.styledMode || \"inactive\" === this.state || (b.opacity = this.opacity);\n k && (this[a] = f = this.chart.renderer.g().add(e));\n f.addClass(\"highcharts-\" + c + \" highcharts-series-\" + this.index + \" highcharts-\" + this.type + \"-series \" + (g(this.colorIndex) ? \"highcharts-color-\" + this.colorIndex + \" \" : \"\") + (this.options.className || \"\") + (f.hasClass(\"highcharts-tracker\") ? \" highcharts-tracker\" : \"\"), !0);\n f.attr(b)[k ? \"attr\" : \"animate\"](this.getPlotBox());\n return f;\n };\n\n e.prototype.getPlotBox = function () {\n var a = this.chart,\n c = this.xAxis,\n b = this.yAxis;\n a.inverted && (c = b, b = this.xAxis);\n return {\n translateX: c ? c.left : a.plotLeft,\n translateY: b ? b.top : a.plotTop,\n scaleX: 1,\n scaleY: 1\n };\n };\n\n e.prototype.removeEvents = function (a) {\n a || K(this);\n this.eventsToUnbind.length && (this.eventsToUnbind.forEach(function (a) {\n a();\n }), this.eventsToUnbind.length = 0);\n };\n\n e.prototype.render = function () {\n var a = this,\n c = a.chart,\n b = a.options,\n d = h(b.animation),\n g = a.visible ? \"inherit\" : \"hidden\",\n e = b.zIndex,\n f = a.hasRendered,\n k = c.seriesGroup,\n m = c.inverted;\n c = !a.finishedAnimating && c.renderer.isSVG ? d.duration : 0;\n L(this, \"render\");\n var n = a.plotGroup(\"group\", \"series\", g, e, k);\n a.markerGroup = a.plotGroup(\"markerGroup\", \"markers\", g, e, k);\n !1 !== b.clip && a.setClip();\n a.animate && c && a.animate(!0);\n n.inverted = H(a.invertible, a.isCartesian) ? m : !1;\n a.drawGraph && (a.drawGraph(), a.applyZones());\n a.visible && a.drawPoints();\n a.drawDataLabels && a.drawDataLabels();\n a.redrawPoints && a.redrawPoints();\n a.drawTracker && !1 !== a.options.enableMouseTracking && a.drawTracker();\n a.invertGroups(m);\n a.animate && c && a.animate();\n f || (c && d.defer && (c += d.defer), a.animationTimeout = O(function () {\n a.afterAnimate();\n }, c || 0));\n a.isDirty = !1;\n a.hasRendered = !0;\n L(a, \"afterRender\");\n };\n\n e.prototype.redraw = function () {\n var a = this.chart,\n c = this.isDirty || this.isDirtyData,\n b = this.group,\n d = this.xAxis,\n g = this.yAxis;\n b && (a.inverted && b.attr({\n width: a.plotWidth,\n height: a.plotHeight\n }), b.animate({\n translateX: H(d && d.left, a.plotLeft),\n translateY: H(g && g.top, a.plotTop)\n }));\n this.translate();\n this.render();\n c && delete this.kdTree;\n };\n\n e.prototype.searchPoint = function (a, c) {\n var b = this.xAxis,\n d = this.yAxis,\n g = this.chart.inverted;\n return this.searchKDTree({\n clientX: g ? b.len - a.chartY + b.pos : a.chartX - b.pos,\n plotY: g ? d.len - a.chartX + d.pos : a.chartY - d.pos\n }, c, a);\n };\n\n e.prototype.buildKDTree = function (a) {\n function c(a, d, g) {\n var e = a && a.length;\n\n if (e) {\n var f = b.kdAxisArray[d % g];\n a.sort(function (a, c) {\n return a[f] - c[f];\n });\n e = Math.floor(e / 2);\n return {\n point: a[e],\n left: c(a.slice(0, e), d + 1, g),\n right: c(a.slice(e + 1), d + 1, g)\n };\n }\n }\n\n this.buildingKdTree = !0;\n var b = this,\n d = -1 < b.options.findNearestPointBy.indexOf(\"y\") ? 2 : 1;\n delete b.kdTree;\n O(function () {\n b.kdTree = c(b.getValidPoints(null, !b.directTouch), d, d);\n b.buildingKdTree = !1;\n }, b.options.kdNow || a && \"touchstart\" === a.type ? 0 : 1);\n };\n\n e.prototype.searchKDTree = function (a, c, b) {\n function d(a, c, b, m) {\n var n = c.point,\n p = e.kdAxisArray[b % m],\n l = n,\n q = g(a[f]) && g(n[f]) ? Math.pow(a[f] - n[f], 2) : null;\n var r = g(a[k]) && g(n[k]) ? Math.pow(a[k] - n[k], 2) : null;\n r = (q || 0) + (r || 0);\n n.dist = g(r) ? Math.sqrt(r) : Number.MAX_VALUE;\n n.distX = g(q) ? Math.sqrt(q) : Number.MAX_VALUE;\n p = a[p] - n[p];\n r = 0 > p ? \"left\" : \"right\";\n q = 0 > p ? \"right\" : \"left\";\n c[r] && (r = d(a, c[r], b + 1, m), l = r[h] < l[h] ? r : n);\n c[q] && Math.sqrt(p * p) < l[h] && (a = d(a, c[q], b + 1, m), l = a[h] < l[h] ? a : l);\n return l;\n }\n\n var e = this,\n f = this.kdAxisArray[0],\n k = this.kdAxisArray[1],\n h = c ? \"distX\" : \"dist\";\n c = -1 < e.options.findNearestPointBy.indexOf(\"y\") ? 2 : 1;\n this.kdTree || this.buildingKdTree || this.buildKDTree(b);\n if (this.kdTree) return d(a, this.kdTree, c, c);\n };\n\n e.prototype.pointPlacementToXValue = function () {\n var a = this.options,\n c = a.pointRange,\n b = this.xAxis;\n a = a.pointPlacement;\n \"between\" === a && (a = b.reversed ? -.5 : .5);\n return M(a) ? a * (c || b.pointRange) : 0;\n };\n\n e.prototype.isPointInside = function (a) {\n var c = this.chart,\n b = this.xAxis,\n d = this.yAxis;\n return \"undefined\" !== typeof a.plotY && \"undefined\" !== typeof a.plotX && 0 <= a.plotY && a.plotY <= (d ? d.len : c.plotHeight) && 0 <= a.plotX && a.plotX <= (b ? b.len : c.plotWidth);\n };\n\n e.prototype.drawTracker = function () {\n var a = this,\n c = a.options,\n b = c.trackByArea,\n d = [].concat(b ? a.areaPath : a.graphPath),\n g = a.chart,\n e = g.pointer,\n f = g.renderer,\n k = g.options.tooltip.snap,\n h = a.tracker,\n m = function (c) {\n if (g.hoverSeries !== a) a.onMouseOver();\n },\n n = \"rgba(192,192,192,\" + (r ? .0001 : .002) + \")\";\n\n h ? h.attr({\n d: d\n }) : a.graph && (a.tracker = f.path(d).attr({\n visibility: a.visible ? \"inherit\" : \"hidden\",\n zIndex: 2\n }).addClass(b ? \"highcharts-tracker-area\" : \"highcharts-tracker-line\").add(a.group), g.styledMode || a.tracker.attr({\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n stroke: n,\n fill: b ? n : \"none\",\n \"stroke-width\": a.graph.strokeWidth() + (b ? 0 : 2 * k)\n }), [a.tracker, a.markerGroup, a.dataLabelsGroup].forEach(function (a) {\n if (a && (a.addClass(\"highcharts-tracker\").on(\"mouseover\", m).on(\"mouseout\", function (a) {\n e.onTrackerMouseOut(a);\n }), c.cursor && !g.styledMode && a.css({\n cursor: c.cursor\n }), q)) a.on(\"touchstart\", m);\n }));\n L(this, \"afterDrawTracker\");\n };\n\n e.prototype.addPoint = function (a, c, b, d, g) {\n var e = this.options,\n f = this.data,\n k = this.chart,\n h = this.xAxis;\n h = h && h.hasNames && h.names;\n var m = e.data,\n n = this.xData,\n p;\n c = H(c, !0);\n var l = {\n series: this\n };\n this.pointClass.prototype.applyOptions.apply(l, [a]);\n var q = l.x;\n var r = n.length;\n if (this.requireSorting && q < n[r - 1]) for (p = !0; r && n[r - 1] > q;) r--;\n this.updateParallelArrays(l, \"splice\", r, 0, 0);\n this.updateParallelArrays(l, r);\n h && l.name && (h[q] = l.name);\n m.splice(r, 0, a);\n if (p || this.processedData) this.data.splice(r, 0, null), this.processData();\n \"point\" === e.legendType && this.generatePoints();\n b && (f[0] && f[0].remove ? f[0].remove(!1) : (f.shift(), this.updateParallelArrays(l, \"shift\"), m.shift()));\n !1 !== g && L(this, \"addPoint\", {\n point: l\n });\n this.isDirtyData = this.isDirty = !0;\n c && k.redraw(d);\n };\n\n e.prototype.removePoint = function (a, c, b) {\n var g = this,\n e = g.data,\n f = e[a],\n k = g.points,\n h = g.chart,\n m = function () {\n k && k.length === e.length && k.splice(a, 1);\n e.splice(a, 1);\n g.options.data.splice(a, 1);\n g.updateParallelArrays(f || {\n series: g\n }, \"splice\", a, 1);\n f && f.destroy();\n g.isDirty = !0;\n g.isDirtyData = !0;\n c && h.redraw();\n };\n\n d(b, h);\n c = H(c, !0);\n f ? f.firePointEvent(\"remove\", null, m) : m();\n };\n\n e.prototype.remove = function (a, c, b, d) {\n function g() {\n e.destroy(d);\n f.isDirtyLegend = f.isDirtyBox = !0;\n f.linkSeries();\n H(a, !0) && f.redraw(c);\n }\n\n var e = this,\n f = e.chart;\n !1 !== b ? L(e, \"remove\", null, g) : g();\n };\n\n e.prototype.update = function (a, c) {\n a = k(a, this.userOptions);\n L(this, \"update\", {\n options: a\n });\n var b = this,\n d = b.chart,\n g = b.userOptions,\n e = b.initialType || b.type,\n f = d.options.plotOptions,\n h = J[e].prototype,\n m = b.finishedAnimating && {\n animation: !1\n },\n n = {},\n p,\n l = [\"eventOptions\", \"navigatorSeries\", \"baseSeries\"],\n q = a.type || g.type || d.options.chart.type,\n r = !(this.hasDerivedData || q && q !== this.type || \"undefined\" !== typeof a.pointStart || \"undefined\" !== typeof a.pointInterval || \"undefined\" !== typeof a.relativeXValue || a.joinBy || a.mapData || b.hasOptionChanged(\"dataGrouping\") || b.hasOptionChanged(\"pointStart\") || b.hasOptionChanged(\"pointInterval\") || b.hasOptionChanged(\"pointIntervalUnit\") || b.hasOptionChanged(\"keys\"));\n q = q || e;\n r && (l.push(\"data\", \"isDirtyData\", \"points\", \"processedData\", \"processedXData\", \"processedYData\", \"xIncrement\", \"cropped\", \"_hasPointMarkers\", \"_hasPointLabels\", \"clips\", \"nodes\", \"layout\", \"level\", \"mapMap\", \"mapData\", \"minY\", \"maxY\", \"minX\", \"maxX\"), !1 !== a.visible && l.push(\"area\", \"graph\"), b.parallelArrays.forEach(function (a) {\n l.push(a + \"Data\");\n }), a.data && (a.dataSorting && A(b.options.dataSorting, a.dataSorting), this.setData(a.data, !1)));\n a = P(g, m, {\n index: \"undefined\" === typeof g.index ? b.index : g.index,\n pointStart: H(f && f.series && f.series.pointStart, g.pointStart, b.xData[0])\n }, !r && {\n data: b.options.data\n }, a);\n r && a.data && (a.data = b.options.data);\n l = [\"group\", \"markerGroup\", \"dataLabelsGroup\", \"transformGroup\"].concat(l);\n l.forEach(function (a) {\n l[a] = b[a];\n delete b[a];\n });\n f = !1;\n\n if (J[q]) {\n if (f = q !== b.type, b.remove(!1, !1, !1, !0), f) if (Object.setPrototypeOf) Object.setPrototypeOf(b, J[q].prototype);else {\n m = Object.hasOwnProperty.call(b, \"hcEvents\") && b.hcEvents;\n\n for (p in h) b[p] = void 0;\n\n A(b, J[q].prototype);\n m ? b.hcEvents = m : delete b.hcEvents;\n }\n } else D(17, !0, d, {\n missingModuleFor: q\n });\n\n l.forEach(function (a) {\n b[a] = l[a];\n });\n b.init(d, a);\n\n if (r && this.points) {\n var u = b.options;\n !1 === u.visible ? (n.graphic = 1, n.dataLabel = 1) : b._hasPointLabels || (a = u.marker, h = u.dataLabels, !a || !1 !== a.enabled && (g.marker && g.marker.symbol) === a.symbol || (n.graphic = 1), h && !1 === h.enabled && (n.dataLabel = 1));\n this.points.forEach(function (a) {\n a && a.series && (a.resolveColor(), Object.keys(n).length && a.destroyElements(n), !1 === u.showInLegend && a.legendItem && d.legend.destroyItem(a));\n }, this);\n }\n\n b.initialType = e;\n d.linkSeries();\n f && b.linkedSeries.length && (b.isDirtyData = !0);\n L(this, \"afterUpdate\");\n H(c, !0) && d.redraw(r ? void 0 : !1);\n };\n\n e.prototype.setName = function (a) {\n this.name = this.options.name = this.userOptions.name = a;\n this.chart.isDirtyLegend = !0;\n };\n\n e.prototype.hasOptionChanged = function (a) {\n var c = this.options[a],\n b = this.chart.options.plotOptions,\n d = this.userOptions[a];\n return d ? c !== d : c !== H(b && b[this.type] && b[this.type][a], b && b.series && b.series[a], c);\n };\n\n e.prototype.onMouseOver = function () {\n var a = this.chart,\n c = a.hoverSeries;\n a.pointer.setHoverChartIndex();\n if (c && c !== this) c.onMouseOut();\n this.options.events.mouseOver && L(this, \"mouseOver\");\n this.setState(\"hover\");\n a.hoverSeries = this;\n };\n\n e.prototype.onMouseOut = function () {\n var a = this.options,\n c = this.chart,\n b = c.tooltip,\n d = c.hoverPoint;\n c.hoverSeries = null;\n if (d) d.onMouseOut();\n this && a.events.mouseOut && L(this, \"mouseOut\");\n !b || this.stickyTracking || b.shared && !this.noSharedTooltip || b.hide();\n c.series.forEach(function (a) {\n a.setState(\"\", !0);\n });\n };\n\n e.prototype.setState = function (a, c) {\n var b = this,\n d = b.options,\n g = b.graph,\n e = d.inactiveOtherPoints,\n f = d.states,\n k = H(f[a || \"normal\"] && f[a || \"normal\"].animation, b.chart.options.chart.animation),\n h = d.lineWidth,\n m = 0,\n n = d.opacity;\n a = a || \"\";\n\n if (b.state !== a && ([b.group, b.markerGroup, b.dataLabelsGroup].forEach(function (c) {\n c && (b.state && c.removeClass(\"highcharts-series-\" + b.state), a && c.addClass(\"highcharts-series-\" + a));\n }), b.state = a, !b.chart.styledMode)) {\n if (f[a] && !1 === f[a].enabled) return;\n a && (h = f[a].lineWidth || h + (f[a].lineWidthPlus || 0), n = H(f[a].opacity, n));\n if (g && !g.dashstyle) for (d = {\n \"stroke-width\": h\n }, g.animate(d, k); b[\"zone-graph-\" + m];) b[\"zone-graph-\" + m].animate(d, k), m += 1;\n e || [b.group, b.markerGroup, b.dataLabelsGroup, b.labelBySeries].forEach(function (a) {\n a && a.animate({\n opacity: n\n }, k);\n });\n }\n\n c && e && b.points && b.setAllPointsToState(a || void 0);\n };\n\n e.prototype.setAllPointsToState = function (a) {\n this.points.forEach(function (c) {\n c.setState && c.setState(a);\n });\n };\n\n e.prototype.setVisible = function (a, c) {\n var b = this,\n d = b.chart,\n g = b.legendItem,\n e = d.options.chart.ignoreHiddenSeries,\n f = b.visible,\n k = (b.visible = a = b.options.visible = b.userOptions.visible = \"undefined\" === typeof a ? !f : a) ? \"show\" : \"hide\";\n [\"group\", \"dataLabelsGroup\", \"markerGroup\", \"tracker\", \"tt\"].forEach(function (a) {\n if (b[a]) b[a][k]();\n });\n if (d.hoverSeries === b || (d.hoverPoint && d.hoverPoint.series) === b) b.onMouseOut();\n g && d.legend.colorizeItem(b, a);\n b.isDirty = !0;\n b.options.stacking && d.series.forEach(function (a) {\n a.options.stacking && a.visible && (a.isDirty = !0);\n });\n b.linkedSeries.forEach(function (c) {\n c.setVisible(a, !1);\n });\n e && (d.isDirtyBox = !0);\n L(b, k);\n !1 !== c && d.redraw();\n };\n\n e.prototype.show = function () {\n this.setVisible(!0);\n };\n\n e.prototype.hide = function () {\n this.setVisible(!1);\n };\n\n e.prototype.select = function (a) {\n this.selected = a = this.options.selected = \"undefined\" === typeof a ? !this.selected : a;\n this.checkbox && (this.checkbox.checked = a);\n L(this, a ? \"select\" : \"unselect\");\n };\n\n e.prototype.shouldShowTooltip = function (a, c, b) {\n void 0 === b && (b = {});\n b.series = this;\n b.visiblePlotOnly = !0;\n return this.chart.isInsidePlot(a, c, b);\n };\n\n e.defaultOptions = G;\n return e;\n }();\n\n A(f.prototype, {\n axisTypes: [\"xAxis\", \"yAxis\"],\n coll: \"series\",\n colorCounter: 0,\n cropShoulder: 1,\n directTouch: !1,\n drawLegendSymbol: v.drawLineMarker,\n isCartesian: !0,\n kdAxisArray: [\"clientX\", \"plotY\"],\n parallelArrays: [\"x\", \"y\"],\n pointClass: E,\n requireSorting: !0,\n sorted: !0\n });\n B.series = f;\n \"\";\n \"\";\n return f;\n });\n K(l, \"Extensions/ScrollablePlotArea.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/Chart/Chart.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E) {\n var G = f.stop,\n B = E.addEvent,\n y = E.createElement,\n t = E.defined,\n h = E.merge,\n d = E.pick;\n B(l, \"afterSetChartSize\", function (b) {\n var d = this.options.chart.scrollablePlotArea,\n f = d && d.minWidth;\n d = d && d.minHeight;\n\n if (!this.renderer.forExport) {\n if (f) {\n if (this.scrollablePixelsX = f = Math.max(0, f - this.chartWidth)) {\n this.scrollablePlotBox = this.renderer.scrollablePlotBox = h(this.plotBox);\n this.plotBox.width = this.plotWidth += f;\n this.inverted ? this.clipBox.height += f : this.clipBox.width += f;\n var l = {\n 1: {\n name: \"right\",\n value: f\n }\n };\n }\n } else d && (this.scrollablePixelsY = f = Math.max(0, d - this.chartHeight), t(f) && (this.scrollablePlotBox = this.renderer.scrollablePlotBox = h(this.plotBox), this.plotBox.height = this.plotHeight += f, this.inverted ? this.clipBox.width += f : this.clipBox.height += f, l = {\n 2: {\n name: \"bottom\",\n value: f\n }\n }));\n\n l && !b.skipAxes && this.axes.forEach(function (b) {\n l[b.side] ? b.getPlotLinePath = function () {\n var d = l[b.side].name,\n f = this[d];\n this[d] = f - l[b.side].value;\n var h = e.prototype.getPlotLinePath.apply(this, arguments);\n this[d] = f;\n return h;\n } : (b.setAxisSize(), b.setAxisTranslation());\n });\n }\n });\n B(l, \"render\", function () {\n this.scrollablePixelsX || this.scrollablePixelsY ? (this.setUpScrolling && this.setUpScrolling(), this.applyFixed()) : this.fixedDiv && this.applyFixed();\n });\n\n l.prototype.setUpScrolling = function () {\n var b = this,\n d = {\n WebkitOverflowScrolling: \"touch\",\n overflowX: \"hidden\",\n overflowY: \"hidden\"\n };\n this.scrollablePixelsX && (d.overflowX = \"auto\");\n this.scrollablePixelsY && (d.overflowY = \"auto\");\n this.scrollingParent = y(\"div\", {\n className: \"highcharts-scrolling-parent\"\n }, {\n position: \"relative\"\n }, this.renderTo);\n this.scrollingContainer = y(\"div\", {\n className: \"highcharts-scrolling\"\n }, d, this.scrollingParent);\n B(this.scrollingContainer, \"scroll\", function () {\n b.pointer && delete b.pointer.chartPosition;\n });\n this.innerContainer = y(\"div\", {\n className: \"highcharts-inner-container\"\n }, null, this.scrollingContainer);\n this.innerContainer.appendChild(this.container);\n this.setUpScrolling = null;\n };\n\n l.prototype.moveFixedElements = function () {\n var b = this.container,\n d = this.fixedRenderer,\n e = \".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),\n f;\n this.scrollablePixelsX && !this.inverted ? f = \".highcharts-yaxis\" : this.scrollablePixelsX && this.inverted ? f = \".highcharts-xaxis\" : this.scrollablePixelsY && !this.inverted ? f = \".highcharts-xaxis\" : this.scrollablePixelsY && this.inverted && (f = \".highcharts-yaxis\");\n f && e.push(\"\" + f + \":not(.highcharts-radial-axis)\", \"\" + f + \"-labels:not(.highcharts-radial-axis-labels)\");\n e.forEach(function (e) {\n [].forEach.call(b.querySelectorAll(e), function (b) {\n (b.namespaceURI === d.SVG_NS ? d.box : d.box.parentNode).appendChild(b);\n b.style.pointerEvents = \"auto\";\n });\n });\n };\n\n l.prototype.applyFixed = function () {\n var b = !this.fixedDiv,\n e = this.options.chart,\n f = e.scrollablePlotArea,\n h = v.getRendererType();\n b ? (this.fixedDiv = y(\"div\", {\n className: \"highcharts-fixed\"\n }, {\n position: \"absolute\",\n overflow: \"hidden\",\n pointerEvents: \"none\",\n zIndex: (e.style && e.style.zIndex || 0) + 2,\n top: 0\n }, null, !0), this.scrollingContainer && this.scrollingContainer.parentNode.insertBefore(this.fixedDiv, this.scrollingContainer), this.renderTo.style.overflow = \"visible\", this.fixedRenderer = e = new h(this.fixedDiv, this.chartWidth, this.chartHeight, this.options.chart.style), this.scrollableMask = e.path().attr({\n fill: this.options.chart.backgroundColor || \"#fff\",\n \"fill-opacity\": d(f.opacity, .85),\n zIndex: -1\n }).addClass(\"highcharts-scrollable-mask\").add(), B(this, \"afterShowResetZoom\", this.moveFixedElements), B(this, \"afterApplyDrilldown\", this.moveFixedElements), B(this, \"afterLayOutTitles\", this.moveFixedElements)) : this.fixedRenderer.setSize(this.chartWidth, this.chartHeight);\n if (this.scrollableDirty || b) this.scrollableDirty = !1, this.moveFixedElements();\n e = this.chartWidth + (this.scrollablePixelsX || 0);\n h = this.chartHeight + (this.scrollablePixelsY || 0);\n G(this.container);\n this.container.style.width = e + \"px\";\n this.container.style.height = h + \"px\";\n this.renderer.boxWrapper.attr({\n width: e,\n height: h,\n viewBox: [0, 0, e, h].join(\" \")\n });\n this.chartBackground.attr({\n width: e,\n height: h\n });\n this.scrollingContainer.style.height = this.chartHeight + \"px\";\n b && (f.scrollPositionX && (this.scrollingContainer.scrollLeft = this.scrollablePixelsX * f.scrollPositionX), f.scrollPositionY && (this.scrollingContainer.scrollTop = this.scrollablePixelsY * f.scrollPositionY));\n h = this.axisOffset;\n b = this.plotTop - h[0] - 1;\n f = this.plotLeft - h[3] - 1;\n e = this.plotTop + this.plotHeight + h[2] + 1;\n h = this.plotLeft + this.plotWidth + h[1] + 1;\n var n = this.plotLeft + this.plotWidth - (this.scrollablePixelsX || 0),\n l = this.plotTop + this.plotHeight - (this.scrollablePixelsY || 0);\n b = this.scrollablePixelsX ? [[\"M\", 0, b], [\"L\", this.plotLeft - 1, b], [\"L\", this.plotLeft - 1, e], [\"L\", 0, e], [\"Z\"], [\"M\", n, b], [\"L\", this.chartWidth, b], [\"L\", this.chartWidth, e], [\"L\", n, e], [\"Z\"]] : this.scrollablePixelsY ? [[\"M\", f, 0], [\"L\", f, this.plotTop - 1], [\"L\", h, this.plotTop - 1], [\"L\", h, 0], [\"Z\"], [\"M\", f, l], [\"L\", f, this.chartHeight], [\"L\", h, this.chartHeight], [\"L\", h, l], [\"Z\"]] : [[\"M\", 0, 0]];\n \"adjustHeight\" !== this.redrawTrigger && this.scrollableMask.attr({\n d: b\n });\n };\n\n B(e, \"afterInit\", function () {\n this.chart.scrollableDirty = !0;\n });\n B(C, \"show\", function () {\n this.chart.scrollableDirty = !0;\n });\n \"\";\n });\n K(l, \"Core/Axis/StackingAxis.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = f.getDeferredAnimation,\n v = l.addEvent,\n E = l.destroyObjectProperties,\n G = l.fireEvent,\n B = l.isNumber,\n y = l.objectEach,\n t;\n\n (function (e) {\n function d() {\n var b = this.stacking;\n\n if (b) {\n var d = b.stacks;\n y(d, function (b, e) {\n E(b);\n d[e] = null;\n });\n b && b.stackTotalGroup && b.stackTotalGroup.destroy();\n }\n }\n\n function b() {\n this.stacking || (this.stacking = new h(this));\n }\n\n var f = [];\n\n e.compose = function (e) {\n -1 === f.indexOf(e) && (f.push(e), v(e, \"init\", b), v(e, \"destroy\", d));\n return e;\n };\n\n var h = function () {\n function b(b) {\n this.oldStacks = {};\n this.stacks = {};\n this.stacksTouched = 0;\n this.axis = b;\n }\n\n b.prototype.buildStacks = function () {\n var b = this.axis,\n d = b.series,\n e = b.options.reversedStacks,\n f = d.length,\n h;\n\n if (!b.isXAxis) {\n this.usePercentage = !1;\n\n for (h = f; h--;) {\n var m = d[e ? h : f - h - 1];\n m.setStackedPoints();\n m.setGroupedPoints();\n }\n\n for (h = 0; h < f; h++) d[h].modifyStacks();\n\n G(b, \"afterBuildStacks\");\n }\n };\n\n b.prototype.cleanStacks = function () {\n if (!this.axis.isXAxis) {\n if (this.oldStacks) var b = this.stacks = this.oldStacks;\n y(b, function (b) {\n y(b, function (b) {\n b.cumulative = b.total;\n });\n });\n }\n };\n\n b.prototype.resetStacks = function () {\n var b = this,\n d = b.stacks;\n b.axis.isXAxis || y(d, function (d) {\n y(d, function (e, f) {\n B(e.touched) && e.touched < b.stacksTouched ? (e.destroy(), delete d[f]) : (e.total = null, e.cumulative = null);\n });\n });\n };\n\n b.prototype.renderStackTotals = function () {\n var b = this.axis,\n d = b.chart,\n e = d.renderer,\n f = this.stacks;\n b = C(d, b.options.stackLabels && b.options.stackLabels.animation || !1);\n var h = this.stackTotalGroup = this.stackTotalGroup || e.g(\"stack-labels\").attr({\n zIndex: 6,\n opacity: 0\n }).add();\n h.translate(d.plotLeft, d.plotTop);\n y(f, function (b) {\n y(b, function (b) {\n b.render(h);\n });\n });\n h.animate({\n opacity: 1\n }, b);\n };\n\n return b;\n }();\n\n e.Additions = h;\n })(t || (t = {}));\n\n return t;\n });\n K(l, \"Extensions/Stacking.js\", [l[\"Core/Axis/Axis.js\"], l[\"Core/Chart/Chart.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Axis/StackingAxis.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G) {\n var B = l.format,\n y = G.correctFloat,\n t = G.defined,\n h = G.destroyObjectProperties,\n d = G.isArray,\n b = G.isNumber,\n p = G.objectEach,\n q = G.pick,\n r = function () {\n function d(b, d, e, f, h) {\n var k = b.chart.inverted;\n this.axis = b;\n this.isNegative = e;\n this.options = d = d || {};\n this.x = f;\n this.total = null;\n this.points = {};\n this.hasValidPoints = !1;\n this.stack = h;\n this.rightCliff = this.leftCliff = 0;\n this.alignOptions = {\n align: d.align || (k ? e ? \"left\" : \"right\" : \"center\"),\n verticalAlign: d.verticalAlign || (k ? \"middle\" : e ? \"bottom\" : \"top\"),\n y: d.y,\n x: d.x\n };\n this.textAlign = d.textAlign || (k ? e ? \"right\" : \"left\" : \"center\");\n }\n\n d.prototype.destroy = function () {\n h(this, this.axis);\n };\n\n d.prototype.render = function (b) {\n var d = this.axis.chart,\n e = this.options,\n f = e.format;\n f = f ? B(f, this, d) : e.formatter.call(this);\n this.label ? this.label.attr({\n text: f,\n visibility: \"hidden\"\n }) : (this.label = d.renderer.label(f, null, null, e.shape, null, null, e.useHTML, !1, \"stack-labels\"), f = {\n r: e.borderRadius || 0,\n text: f,\n rotation: e.rotation,\n padding: q(e.padding, 5),\n visibility: \"hidden\"\n }, d.styledMode || (f.fill = e.backgroundColor, f.stroke = e.borderColor, f[\"stroke-width\"] = e.borderWidth, this.label.css(e.style)), this.label.attr(f), this.label.added || this.label.add(b));\n this.label.labelrank = d.plotSizeY;\n };\n\n d.prototype.setOffset = function (d, e, f, h, m) {\n var k = this.axis,\n a = k.chart;\n h = k.translate(k.stacking.usePercentage ? 100 : h ? h : this.total, 0, 0, 0, 1);\n f = k.translate(f ? f : 0);\n f = t(h) && Math.abs(h - f);\n d = q(m, a.xAxis[0].translate(this.x)) + d;\n k = t(h) && this.getStackBox(a, this, d, h, e, f, k);\n e = this.label;\n f = this.isNegative;\n d = \"justify\" === q(this.options.overflow, \"justify\");\n var g = this.textAlign;\n e && k && (m = e.getBBox(), h = e.padding, g = \"left\" === g ? a.inverted ? -h : h : \"right\" === g ? m.width : a.inverted && \"center\" === g ? m.width / 2 : a.inverted ? f ? m.width + h : -h : m.width / 2, f = a.inverted ? m.height / 2 : f ? -h : m.height, this.alignOptions.x = q(this.options.x, 0), this.alignOptions.y = q(this.options.y, 0), k.x -= g, k.y -= f, e.align(this.alignOptions, null, k), a.isInsidePlot(e.alignAttr.x + g - this.alignOptions.x, e.alignAttr.y + f - this.alignOptions.y) ? e.show() : (e.hide(), d = !1), d && v.prototype.justifyDataLabel.call(this.axis, e, this.alignOptions, e.alignAttr, m, k), e.attr({\n x: e.alignAttr.x,\n y: e.alignAttr.y\n }), q(!d && this.options.crop, !0) && ((a = b(e.x) && b(e.y) && a.isInsidePlot(e.x - h + e.width, e.y) && a.isInsidePlot(e.x + h, e.y)) || e.hide()));\n };\n\n d.prototype.getStackBox = function (b, d, e, f, h, k, a) {\n var g = d.axis.reversed,\n c = b.inverted,\n m = a.height + a.pos - (c ? b.plotLeft : b.plotTop);\n d = d.isNegative && !g || !d.isNegative && g;\n return {\n x: c ? d ? f - a.right : f - k + a.pos - b.plotLeft : e + b.xAxis[0].transB - b.plotLeft,\n y: c ? a.height - e - h : d ? m - f - k : m - f,\n width: c ? k : h,\n height: c ? h : k\n };\n };\n\n return d;\n }();\n\n e.prototype.getStacks = function () {\n var b = this,\n d = b.inverted;\n b.yAxis.forEach(function (b) {\n b.stacking && b.stacking.stacks && b.hasVisibleSeries && (b.stacking.oldStacks = b.stacking.stacks);\n });\n b.series.forEach(function (e) {\n var f = e.xAxis && e.xAxis.options || {};\n !e.options.stacking || !0 !== e.visible && !1 !== b.options.chart.ignoreHiddenSeries || (e.stackKey = [e.type, q(e.options.stack, \"\"), d ? f.top : f.left, d ? f.height : f.width].join());\n });\n };\n\n E.compose(f);\n\n v.prototype.setGroupedPoints = function () {\n var b = this.yAxis.stacking;\n this.options.centerInCategory && (this.is(\"column\") || this.is(\"columnrange\")) && !this.options.stacking && 1 < this.chart.series.length ? v.prototype.setStackedPoints.call(this, \"group\") : b && p(b.stacks, function (d, e) {\n \"group\" === e.slice(-5) && (p(d, function (b) {\n return b.destroy();\n }), delete b.stacks[e]);\n });\n };\n\n v.prototype.setStackedPoints = function (b) {\n var e = b || this.options.stacking;\n\n if (e && (!0 === this.visible || !1 === this.chart.options.chart.ignoreHiddenSeries)) {\n var f = this.processedXData,\n h = this.processedYData,\n n = [],\n m = h.length,\n k = this.options,\n a = k.threshold,\n g = q(k.startFromThreshold && a, 0);\n k = k.stack;\n b = b ? \"\" + this.type + \",\".concat(e) : this.stackKey;\n var c = \"-\" + b,\n p = this.negStacks,\n l = this.yAxis,\n u = l.stacking.stacks,\n v = l.stacking.oldStacks,\n B,\n C;\n l.stacking.stacksTouched += 1;\n\n for (C = 0; C < m; C++) {\n var M = f[C];\n var G = h[C];\n var E = this.getStackIndicator(E, M, this.index);\n var I = E.key;\n var H = (B = p && G < (g ? 0 : a)) ? c : b;\n u[H] || (u[H] = {});\n u[H][M] || (v[H] && v[H][M] ? (u[H][M] = v[H][M], u[H][M].total = null) : u[H][M] = new r(l, l.options.stackLabels, B, M, k));\n H = u[H][M];\n null !== G ? (H.points[I] = H.points[this.index] = [q(H.cumulative, g)], t(H.cumulative) || (H.base = I), H.touched = l.stacking.stacksTouched, 0 < E.index && !1 === this.singleStacks && (H.points[I][0] = H.points[this.index + \",\" + M + \",0\"][0])) : H.points[I] = H.points[this.index] = null;\n \"percent\" === e ? (B = B ? b : c, p && u[B] && u[B][M] ? (B = u[B][M], H.total = B.total = Math.max(B.total, H.total) + Math.abs(G) || 0) : H.total = y(H.total + (Math.abs(G) || 0))) : \"group\" === e ? (d(G) && (G = G[0]), null !== G && (H.total = (H.total || 0) + 1)) : H.total = y(H.total + (G || 0));\n H.cumulative = \"group\" === e ? (H.total || 1) - 1 : q(H.cumulative, g) + (G || 0);\n null !== G && (H.points[I].push(H.cumulative), n[C] = H.cumulative, H.hasValidPoints = !0);\n }\n\n \"percent\" === e && (l.stacking.usePercentage = !0);\n \"group\" !== e && (this.stackedYData = n);\n l.stacking.oldStacks = {};\n }\n };\n\n v.prototype.modifyStacks = function () {\n var b = this,\n d = b.stackKey,\n e = b.yAxis.stacking.stacks,\n f = b.processedXData,\n h,\n m = b.options.stacking;\n b[m + \"Stacker\"] && [d, \"-\" + d].forEach(function (d) {\n for (var a = f.length, g, c; a--;) if (g = f[a], h = b.getStackIndicator(h, g, b.index, d), c = (g = e[d] && e[d][g]) && g.points[h.key]) b[m + \"Stacker\"](c, g, a);\n });\n };\n\n v.prototype.percentStacker = function (b, d, e) {\n d = d.total ? 100 / d.total : 0;\n b[0] = y(b[0] * d);\n b[1] = y(b[1] * d);\n this.stackedYData[e] = b[1];\n };\n\n v.prototype.getStackIndicator = function (b, d, e, f) {\n !t(b) || b.x !== d || f && b.stackKey !== f ? b = {\n x: d,\n index: 0,\n key: f,\n stackKey: f\n } : b.index++;\n b.key = [e, d, b.index].join();\n return b;\n };\n\n C.StackItem = r;\n \"\";\n return C.StackItem;\n });\n K(l, \"Series/Line/LineSeries.js\", [l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var e = function (f, l) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, f) {\n e.__proto__ = f;\n } || function (e, f) {\n for (var d in f) f.hasOwnProperty(d) && (e[d] = f[d]);\n };\n\n return e(f, l);\n };\n\n return function (f, l) {\n function t() {\n this.constructor = f;\n }\n\n e(f, l);\n f.prototype = null === l ? Object.create(l) : (t.prototype = l.prototype, new t());\n };\n }(),\n v = l.defined,\n E = l.merge;\n\n l = function (e) {\n function l() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n C(l, e);\n\n l.prototype.drawGraph = function () {\n var e = this,\n f = this.options,\n h = (this.gappedPath || this.getGraphPath).call(this),\n d = this.chart.styledMode,\n b = [[\"graph\", \"highcharts-graph\"]];\n d || b[0].push(f.lineColor || this.color || \"#cccccc\", f.dashStyle);\n b = e.getZonesGraphs(b);\n b.forEach(function (b, l) {\n var p = b[0],\n n = e[p],\n q = n ? \"animate\" : \"attr\";\n n ? (n.endX = e.preventGraphAnimation ? null : h.xMap, n.animate({\n d: h\n })) : h.length && (e[p] = n = e.chart.renderer.path(h).addClass(b[1]).attr({\n zIndex: 1\n }).add(e.group));\n n && !d && (p = {\n stroke: b[2],\n \"stroke-width\": f.lineWidth,\n fill: e.fillGraph && e.color || \"none\"\n }, b[3] ? p.dashstyle = b[3] : \"square\" !== f.linecap && (p[\"stroke-linecap\"] = p[\"stroke-linejoin\"] = \"round\"), n[q](p).shadow(2 > l && f.shadow));\n n && (n.startX = h.xMap, n.isArea = h.isArea);\n });\n };\n\n l.prototype.getGraphPath = function (e, f, h) {\n var d = this,\n b = d.options,\n p = [],\n l = [],\n r,\n n = b.step;\n e = e || d.points;\n var t = e.reversed;\n t && e.reverse();\n (n = {\n right: 1,\n center: 2\n }[n] || n && 3) && t && (n = 4 - n);\n e = this.getValidPoints(e, !1, !(b.connectNulls && !f && !h));\n e.forEach(function (q, t) {\n var x = q.plotX,\n m = q.plotY,\n k = e[t - 1];\n (q.leftCliff || k && k.rightCliff) && !h && (r = !0);\n q.isNull && !v(f) && 0 < t ? r = !b.connectNulls : q.isNull && !f ? r = !0 : (0 === t || r ? t = [[\"M\", q.plotX, q.plotY]] : d.getPointSpline ? t = [d.getPointSpline(e, q, t)] : n ? (t = 1 === n ? [[\"L\", k.plotX, m]] : 2 === n ? [[\"L\", (k.plotX + x) / 2, k.plotY], [\"L\", (k.plotX + x) / 2, m]] : [[\"L\", x, k.plotY]], t.push([\"L\", x, m])) : t = [[\"L\", x, m]], l.push(q.x), n && (l.push(q.x), 2 === n && l.push(q.x)), p.push.apply(p, t), r = !1);\n });\n p.xMap = l;\n return d.graphPath = p;\n };\n\n l.prototype.getZonesGraphs = function (e) {\n this.zones.forEach(function (f, h) {\n h = [\"zone-graph-\" + h, \"highcharts-graph highcharts-zone-graph-\" + h + \" \" + (f.className || \"\")];\n this.chart.styledMode || h.push(f.color || this.color, f.dashStyle || this.options.dashStyle);\n e.push(h);\n }, this);\n return e;\n };\n\n l.defaultOptions = E(f.defaultOptions, {});\n return l;\n }(f);\n\n e.registerSeriesType(\"line\", l);\n \"\";\n return l;\n });\n K(l, \"Series/Area/AreaSeries.js\", [l[\"Core/Color/Color.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = this && this.__extends || function () {\n var e = function (d, b) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(d, b);\n };\n\n return function (d, b) {\n function f() {\n this.constructor = d;\n }\n\n e(d, b);\n d.prototype = null === b ? Object.create(b) : (f.prototype = b.prototype, new f());\n };\n }(),\n E = f.parse,\n G = l.seriesTypes.line;\n\n f = C.extend;\n var B = C.merge,\n y = C.objectEach,\n t = C.pick;\n\n C = function (e) {\n function d() {\n var b = null !== e && e.apply(this, arguments) || this;\n b.data = void 0;\n b.options = void 0;\n b.points = void 0;\n return b;\n }\n\n v(d, e);\n\n d.prototype.drawGraph = function () {\n this.areaPath = [];\n e.prototype.drawGraph.apply(this);\n var b = this,\n d = this.areaPath,\n f = this.options,\n h = [[\"area\", \"highcharts-area\", this.color, f.fillColor]];\n this.zones.forEach(function (d, e) {\n h.push([\"zone-area-\" + e, \"highcharts-area highcharts-zone-area-\" + e + \" \" + d.className, d.color || b.color, d.fillColor || f.fillColor]);\n });\n h.forEach(function (e) {\n var h = e[0],\n p = {},\n n = b[h],\n l = n ? \"animate\" : \"attr\";\n n ? (n.endX = b.preventGraphAnimation ? null : d.xMap, n.animate({\n d: d\n })) : (p.zIndex = 0, n = b[h] = b.chart.renderer.path(d).addClass(e[1]).add(b.group), n.isArea = !0);\n b.chart.styledMode || (p.fill = t(e[3], E(e[2]).setOpacity(t(f.fillOpacity, .75)).get()));\n n[l](p);\n n.startX = d.xMap;\n n.shiftUnit = f.step ? 2 : 1;\n });\n };\n\n d.prototype.getGraphPath = function (b) {\n var d = G.prototype.getGraphPath,\n e = this.options,\n f = e.stacking,\n h = this.yAxis,\n l = [],\n w = [],\n z = this.index,\n x = h.stacking.stacks[this.stackKey],\n m = e.threshold,\n k = Math.round(h.getThreshold(e.threshold));\n e = t(e.connectNulls, \"percent\" === f);\n\n var a = function (a, c, d) {\n var e = b[a];\n a = f && x[e.x].points[z];\n var g = e[d + \"Null\"] || 0;\n d = e[d + \"Cliff\"] || 0;\n e = !0;\n\n if (d || g) {\n var p = (g ? a[0] : a[1]) + d;\n var n = a[0] + d;\n e = !!g;\n } else !f && b[c] && b[c].isNull && (p = n = m);\n\n \"undefined\" !== typeof p && (w.push({\n plotX: A,\n plotY: null === p ? k : h.getThreshold(p),\n isNull: e,\n isCliff: !0\n }), l.push({\n plotX: A,\n plotY: null === n ? k : h.getThreshold(n),\n doCurve: !1\n }));\n };\n\n b = b || this.points;\n f && (b = this.getStackPoints(b));\n\n for (var g = 0, c = b.length; g < c; ++g) {\n f || (b[g].leftCliff = b[g].rightCliff = b[g].leftNull = b[g].rightNull = void 0);\n var D = b[g].isNull;\n var A = t(b[g].rectPlotX, b[g].plotX);\n var u = f ? t(b[g].yBottom, k) : k;\n if (!D || e) e || a(g, g - 1, \"left\"), D && !f && e || (w.push(b[g]), l.push({\n x: g,\n plotX: A,\n plotY: u\n })), e || a(g, g + 1, \"right\");\n }\n\n a = d.call(this, w, !0, !0);\n l.reversed = !0;\n D = d.call(this, l, !0, !0);\n (u = D[0]) && \"M\" === u[0] && (D[0] = [\"L\", u[1], u[2]]);\n D = a.concat(D);\n D.length && D.push([\"Z\"]);\n d = d.call(this, w, !1, e);\n D.xMap = a.xMap;\n this.areaPath = D;\n return d;\n };\n\n d.prototype.getStackPoints = function (b) {\n var d = this,\n e = [],\n f = [],\n h = this.xAxis,\n l = this.yAxis,\n w = l.stacking.stacks[this.stackKey],\n z = {},\n x = l.series,\n m = x.length,\n k = l.options.reversedStacks ? 1 : -1,\n a = x.indexOf(d);\n b = b || this.points;\n\n if (this.options.stacking) {\n for (var g = 0; g < b.length; g++) b[g].leftNull = b[g].rightNull = void 0, z[b[g].x] = b[g];\n\n y(w, function (a, c) {\n null !== a.total && f.push(c);\n });\n f.sort(function (a, c) {\n return a - c;\n });\n var c = x.map(function (a) {\n return a.visible;\n });\n f.forEach(function (b, g) {\n var p = 0,\n n,\n q;\n if (z[b] && !z[b].isNull) e.push(z[b]), [-1, 1].forEach(function (e) {\n var h = 1 === e ? \"rightNull\" : \"leftNull\",\n p = w[f[g + e]],\n l = 0;\n if (p) for (var r = a; 0 <= r && r < m;) {\n var u = x[r].index;\n n = p.points[u];\n n || (u === d.index ? z[b][h] = !0 : c[r] && (q = w[b].points[u]) && (l -= q[1] - q[0]));\n r += k;\n }\n z[b][1 === e ? \"rightCliff\" : \"leftCliff\"] = l;\n });else {\n for (var r = a; 0 <= r && r < m;) {\n if (n = w[b].points[x[r].index]) {\n p = n[1];\n break;\n }\n\n r += k;\n }\n\n p = t(p, 0);\n p = l.translate(p, 0, 1, 0, 1);\n e.push({\n isNull: !0,\n plotX: h.translate(b, 0, 0, 0, 1),\n x: b,\n plotY: p,\n yBottom: p\n });\n }\n });\n }\n\n return e;\n };\n\n d.defaultOptions = B(G.defaultOptions, {\n threshold: 0\n });\n return d;\n }(G);\n\n f(C.prototype, {\n singleStacks: !1,\n drawLegendSymbol: e.drawRectangle\n });\n l.registerSeriesType(\"area\", C);\n \"\";\n return C;\n });\n K(l, \"Series/Spline/SplineSeries.js\", [l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = this && this.__extends || function () {\n var e = function (f, l) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, f) {\n e.__proto__ = f;\n } || function (e, f) {\n for (var d in f) f.hasOwnProperty(d) && (e[d] = f[d]);\n };\n\n return e(f, l);\n };\n\n return function (f, l) {\n function t() {\n this.constructor = f;\n }\n\n e(f, l);\n f.prototype = null === l ? Object.create(l) : (t.prototype = l.prototype, new t());\n };\n }(),\n C = f.seriesTypes.line,\n v = e.merge,\n E = e.pick;\n\n e = function (e) {\n function f() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n l(f, e);\n\n f.prototype.getPointSpline = function (e, f, h) {\n var d = f.plotX || 0,\n b = f.plotY || 0,\n p = e[h - 1];\n h = e[h + 1];\n\n if (p && !p.isNull && !1 !== p.doCurve && !f.isCliff && h && !h.isNull && !1 !== h.doCurve && !f.isCliff) {\n e = p.plotY || 0;\n var l = h.plotX || 0;\n h = h.plotY || 0;\n var r = 0;\n var n = (1.5 * d + (p.plotX || 0)) / 2.5;\n var t = (1.5 * b + e) / 2.5;\n l = (1.5 * d + l) / 2.5;\n var w = (1.5 * b + h) / 2.5;\n l !== n && (r = (w - t) * (l - d) / (l - n) + b - w);\n t += r;\n w += r;\n t > e && t > b ? (t = Math.max(e, b), w = 2 * b - t) : t < e && t < b && (t = Math.min(e, b), w = 2 * b - t);\n w > h && w > b ? (w = Math.max(h, b), t = 2 * b - w) : w < h && w < b && (w = Math.min(h, b), t = 2 * b - w);\n f.rightContX = l;\n f.rightContY = w;\n }\n\n f = [\"C\", E(p.rightContX, p.plotX, 0), E(p.rightContY, p.plotY, 0), E(n, d, 0), E(t, b, 0), d, b];\n p.rightContX = p.rightContY = void 0;\n return f;\n };\n\n f.defaultOptions = v(C.defaultOptions);\n return f;\n }(C);\n\n f.registerSeriesType(\"spline\", e);\n \"\";\n return e;\n });\n K(l, \"Series/AreaSpline/AreaSplineSeries.js\", [l[\"Series/Spline/SplineSeries.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = this && this.__extends || function () {\n var e = function (f, d) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(f, d);\n };\n\n return function (f, d) {\n function b() {\n this.constructor = f;\n }\n\n e(f, d);\n f.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b());\n };\n }(),\n E = l.seriesTypes,\n G = E.area;\n\n E = E.area.prototype;\n var B = C.extend,\n y = C.merge;\n\n C = function (e) {\n function h() {\n var d = null !== e && e.apply(this, arguments) || this;\n d.data = void 0;\n d.points = void 0;\n d.options = void 0;\n return d;\n }\n\n v(h, e);\n h.defaultOptions = y(f.defaultOptions, G.defaultOptions);\n return h;\n }(f);\n\n B(C.prototype, {\n getGraphPath: E.getGraphPath,\n getStackPoints: E.getStackPoints,\n drawGraph: E.drawGraph,\n drawLegendSymbol: e.drawRectangle\n });\n l.registerSeriesType(\"areaspline\", C);\n \"\";\n return C;\n });\n K(l, \"Series/Column/ColumnSeries.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G) {\n var B = this && this.__extends || function () {\n var b = function (d, a) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, c) {\n a.__proto__ = c;\n } || function (a, c) {\n for (var b in c) c.hasOwnProperty(b) && (a[b] = c[b]);\n };\n\n return b(d, a);\n };\n\n return function (d, a) {\n function e() {\n this.constructor = d;\n }\n\n b(d, a);\n d.prototype = null === a ? Object.create(a) : (e.prototype = a.prototype, new e());\n };\n }(),\n y = f.animObject,\n t = e.parse,\n h = l.hasTouch;\n\n f = l.noop;\n var d = G.clamp,\n b = G.css,\n p = G.defined,\n q = G.extend,\n r = G.fireEvent,\n n = G.isArray,\n J = G.isNumber,\n w = G.merge,\n z = G.pick,\n x = G.objectEach;\n\n G = function (e) {\n function f() {\n var a = null !== e && e.apply(this, arguments) || this;\n a.borderWidth = void 0;\n a.data = void 0;\n a.group = void 0;\n a.options = void 0;\n a.points = void 0;\n return a;\n }\n\n B(f, e);\n\n f.prototype.animate = function (a) {\n var b = this,\n c = this.yAxis,\n e = b.options,\n f = this.chart.inverted,\n k = {},\n h = f ? \"translateX\" : \"translateY\";\n if (a) k.scaleY = .001, a = d(c.toPixels(e.threshold), c.pos, c.pos + c.len), f ? k.translateX = a - c.len : k.translateY = a, b.clipBox && b.setClip(), b.group.attr(k);else {\n var m = Number(b.group.attr(h));\n b.group.animate({\n scaleY: 1\n }, q(y(b.options.animation), {\n step: function (a, d) {\n b.group && (k[h] = m + d.pos * (c.pos - m), b.group.attr(k));\n }\n }));\n }\n };\n\n f.prototype.init = function (a, b) {\n e.prototype.init.apply(this, arguments);\n var c = this;\n a = c.chart;\n a.hasRendered && a.series.forEach(function (a) {\n a.type === c.type && (a.isDirty = !0);\n });\n };\n\n f.prototype.getColumnMetrics = function () {\n var a = this,\n b = a.options,\n c = a.xAxis,\n d = a.yAxis,\n e = c.options.reversedStacks;\n e = c.reversed && !e || !c.reversed && e;\n var f = {},\n k,\n h = 0;\n !1 === b.grouping ? h = 1 : a.chart.series.forEach(function (b) {\n var c = b.yAxis,\n e = b.options;\n\n if (b.type === a.type && (b.visible || !a.chart.options.chart.ignoreHiddenSeries) && d.len === c.len && d.pos === c.pos) {\n if (e.stacking && \"group\" !== e.stacking) {\n k = b.stackKey;\n \"undefined\" === typeof f[k] && (f[k] = h++);\n var g = f[k];\n } else !1 !== e.grouping && (g = h++);\n\n b.columnIndex = g;\n }\n });\n var m = Math.min(Math.abs(c.transA) * (c.ordinal && c.ordinal.slope || b.pointRange || c.closestPointRange || c.tickInterval || 1), c.len),\n l = m * b.groupPadding,\n p = (m - 2 * l) / (h || 1);\n b = Math.min(b.maxPointWidth || c.len, z(b.pointWidth, p * (1 - 2 * b.pointPadding)));\n a.columnMetrics = {\n width: b,\n offset: (p - b) / 2 + (l + ((a.columnIndex || 0) + (e ? 1 : 0)) * p - m / 2) * (e ? -1 : 1),\n paddedWidth: p,\n columnCount: h\n };\n return a.columnMetrics;\n };\n\n f.prototype.crispCol = function (a, b, c, d) {\n var e = this.chart,\n g = this.borderWidth,\n f = -(g % 2 ? .5 : 0);\n g = g % 2 ? .5 : 1;\n e.inverted && e.renderer.isVML && (g += 1);\n this.options.crisp && (c = Math.round(a + c) + f, a = Math.round(a) + f, c -= a);\n d = Math.round(b + d) + g;\n f = .5 >= Math.abs(b) && .5 < d;\n b = Math.round(b) + g;\n d -= b;\n f && d && (--b, d += 1);\n return {\n x: a,\n y: b,\n width: c,\n height: d\n };\n };\n\n f.prototype.adjustForMissingColumns = function (a, b, c, d) {\n var e = this,\n g = this.options.stacking;\n\n if (!c.isNull && 1 < d.columnCount) {\n var f = this.yAxis.options.reversedStacks,\n k = 0,\n h = f ? 0 : -d.columnCount;\n x(this.yAxis.stacking && this.yAxis.stacking.stacks, function (a) {\n if (\"number\" === typeof c.x && (a = a[c.x.toString()])) {\n var b = a.points[e.index],\n d = a.total;\n g ? (b && (k = h), a.hasValidPoints && (f ? h++ : h--)) : n(b) && (k = b[1], h = d || 0);\n }\n });\n a = (c.plotX || 0) + ((h - 1) * d.paddedWidth + b) / 2 - b - k * d.paddedWidth;\n }\n\n return a;\n };\n\n f.prototype.translate = function () {\n var a = this,\n b = a.chart,\n c = a.options,\n e = a.dense = 2 > a.closestPointRange * a.xAxis.transA;\n e = a.borderWidth = z(c.borderWidth, e ? 0 : 1);\n var f = a.xAxis,\n k = a.yAxis,\n h = c.threshold,\n m = a.translatedThreshold = k.getThreshold(h),\n l = z(c.minPointLength, 5),\n n = a.getColumnMetrics(),\n q = n.width,\n r = a.pointXOffset = n.offset,\n t = a.dataMin,\n x = a.dataMax,\n w = a.barW = Math.max(q, 1 + 2 * e);\n b.inverted && (m -= .5);\n c.pointPadding && (w = Math.ceil(w));\n v.prototype.translate.apply(a);\n a.points.forEach(function (e) {\n var g = z(e.yBottom, m),\n u = 999 + Math.abs(g),\n A = e.plotX || 0;\n u = d(e.plotY, -u, k.len + u);\n var v = Math.min(u, g),\n y = Math.max(u, g) - v,\n D = q,\n B = A + r,\n C = w;\n l && Math.abs(y) < l && (y = l, A = !k.reversed && !e.negative || k.reversed && e.negative, J(h) && J(x) && e.y === h && x <= h && (k.min || 0) < h && (t !== x || (k.max || 0) <= h) && (A = !A), v = Math.abs(v - m) > l ? g - l : m - (A ? l : 0));\n p(e.options.pointWidth) && (D = C = Math.ceil(e.options.pointWidth), B -= Math.round((D - q) / 2));\n c.centerInCategory && (B = a.adjustForMissingColumns(B, D, e, n));\n e.barX = B;\n e.pointWidth = D;\n e.tooltipPos = b.inverted ? [d(k.len + k.pos - b.plotLeft - u, k.pos - b.plotLeft, k.len + k.pos - b.plotLeft), f.len + f.pos - b.plotTop - B - C / 2, y] : [f.left - b.plotLeft + B + C / 2, d(u + k.pos - b.plotTop, k.pos - b.plotTop, k.len + k.pos - b.plotTop), y];\n e.shapeType = a.pointClass.prototype.shapeType || \"rect\";\n e.shapeArgs = a.crispCol.apply(a, e.isNull ? [B, m, C, 0] : [B, v, C, y]);\n });\n };\n\n f.prototype.drawGraph = function () {\n this.group[this.dense ? \"addClass\" : \"removeClass\"](\"highcharts-dense-data\");\n };\n\n f.prototype.pointAttribs = function (a, b) {\n var c = this.options,\n d = this.pointAttrToOptions || {},\n e = d.stroke || \"borderColor\",\n g = d[\"stroke-width\"] || \"borderWidth\",\n f = a && a.color || this.color,\n k = a && a[e] || c[e] || f;\n d = a && a.options.dashStyle || c.dashStyle;\n var h = a && a[g] || c[g] || this[g] || 0,\n m = z(a && a.opacity, c.opacity, 1);\n\n if (a && this.zones.length) {\n var l = a.getZone();\n f = a.options.color || l && (l.color || a.nonZonedColor) || this.color;\n l && (k = l.borderColor || k, d = l.dashStyle || d, h = l.borderWidth || h);\n }\n\n b && a && (a = w(c.states[b], a.options.states && a.options.states[b] || {}), b = a.brightness, f = a.color || \"undefined\" !== typeof b && t(f).brighten(a.brightness).get() || f, k = a[e] || k, h = a[g] || h, d = a.dashStyle || d, m = z(a.opacity, m));\n e = {\n fill: f,\n stroke: k,\n \"stroke-width\": h,\n opacity: m\n };\n d && (e.dashstyle = d);\n return e;\n };\n\n f.prototype.drawPoints = function () {\n var a = this,\n b = this.chart,\n c = a.options,\n d = b.renderer,\n e = c.animationLimit || 250,\n f;\n a.points.forEach(function (g) {\n var k = g.graphic,\n h = !!k,\n m = k && b.pointCount < e ? \"animate\" : \"attr\";\n\n if (J(g.plotY) && null !== g.y) {\n f = g.shapeArgs;\n k && g.hasNewShapeType() && (k = k.destroy());\n a.enabledDataSorting && (g.startXPos = a.xAxis.reversed ? -(f ? f.width || 0 : 0) : a.xAxis.width);\n k || (g.graphic = k = d[g.shapeType](f).add(g.group || a.group)) && a.enabledDataSorting && b.hasRendered && b.pointCount < e && (k.attr({\n x: g.startXPos\n }), h = !0, m = \"animate\");\n if (k && h) k[m](w(f));\n if (c.borderRadius) k[m]({\n r: c.borderRadius\n });\n b.styledMode || k[m](a.pointAttribs(g, g.selected && \"select\")).shadow(!1 !== g.allowShadow && c.shadow, null, c.stacking && !c.borderRadius);\n k && (k.addClass(g.getClassName(), !0), k.attr({\n visibility: g.visible ? \"inherit\" : \"hidden\"\n }));\n } else k && (g.graphic = k.destroy());\n });\n };\n\n f.prototype.drawTracker = function () {\n var a = this,\n d = a.chart,\n c = d.pointer,\n e = function (a) {\n var b = c.getPointFromEvent(a);\n \"undefined\" !== typeof b && (c.isDirectTouch = !0, b.onMouseOver(a));\n },\n f;\n\n a.points.forEach(function (a) {\n f = n(a.dataLabels) ? a.dataLabels : a.dataLabel ? [a.dataLabel] : [];\n a.graphic && (a.graphic.element.point = a);\n f.forEach(function (b) {\n b.div ? b.div.point = a : b.element.point = a;\n });\n });\n a._hasTracking || (a.trackerGroups.forEach(function (g) {\n if (a[g]) {\n a[g].addClass(\"highcharts-tracker\").on(\"mouseover\", e).on(\"mouseout\", function (a) {\n c.onTrackerMouseOut(a);\n });\n if (h) a[g].on(\"touchstart\", e);\n !d.styledMode && a.options.cursor && a[g].css(b).css({\n cursor: a.options.cursor\n });\n }\n }), a._hasTracking = !0);\n r(this, \"afterDrawTracker\");\n };\n\n f.prototype.remove = function () {\n var a = this,\n b = a.chart;\n b.hasRendered && b.series.forEach(function (b) {\n b.type === a.type && (b.isDirty = !0);\n });\n v.prototype.remove.apply(a, arguments);\n };\n\n f.defaultOptions = w(v.defaultOptions, {\n borderRadius: 0,\n centerInCategory: !1,\n groupPadding: .2,\n marker: null,\n pointPadding: .1,\n minPointLength: 0,\n cropThreshold: 50,\n pointRange: null,\n states: {\n hover: {\n halo: !1,\n brightness: .1\n },\n select: {\n color: \"#cccccc\",\n borderColor: \"#000000\"\n }\n },\n dataLabels: {\n align: void 0,\n verticalAlign: void 0,\n y: void 0\n },\n startFromThreshold: !0,\n stickyTracking: !1,\n tooltip: {\n distance: 6\n },\n threshold: 0,\n borderColor: \"#ffffff\"\n });\n return f;\n }(v);\n\n q(G.prototype, {\n cropShoulder: 0,\n directTouch: !0,\n drawLegendSymbol: C.drawRectangle,\n getSymbol: f,\n negStacks: !0,\n trackerGroups: [\"group\", \"dataLabelsGroup\"]\n });\n E.registerSeriesType(\"column\", G);\n \"\";\n \"\";\n return G;\n });\n K(l, \"Core/Series/DataLabel.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = f.getDeferredAnimation,\n v = e.format,\n E = l.defined,\n G = l.extend,\n B = l.fireEvent,\n y = l.isArray,\n t = l.merge,\n h = l.objectEach,\n d = l.pick,\n b = l.splat,\n p;\n\n (function (e) {\n function f(b, a, e, c, f) {\n var g = this,\n k = this.chart,\n h = this.isCartesian && k.inverted,\n m = this.enabledDataSorting,\n l = d(b.dlBox && b.dlBox.centerX, b.plotX),\n p = b.plotY,\n n = e.rotation,\n q = e.align,\n r = E(l) && E(p) && k.isInsidePlot(l, Math.round(p), {\n inverted: h,\n paneCoordinates: !0,\n series: g\n }),\n t = function (c) {\n m && g.xAxis && !x && g.setDataLabelStartPos(b, a, f, r, c);\n },\n x = \"justify\" === d(e.overflow, m ? \"none\" : \"justify\"),\n z = this.visible && !1 !== b.visible && (b.series.forceDL || m && !x || r || d(e.inside, !!this.options.stacking) && c && k.isInsidePlot(l, h ? c.x + 1 : c.y + c.height - 1, {\n inverted: h,\n paneCoordinates: !0,\n series: g\n }));\n\n if (z && E(l) && E(p)) {\n n && a.attr({\n align: q\n });\n q = a.getBBox(!0);\n var w = [0, 0];\n var v = k.renderer.fontMetrics(k.styledMode ? void 0 : e.style.fontSize, a).b;\n c = G({\n x: h ? this.yAxis.len - p : l,\n y: Math.round(h ? this.xAxis.len - l : p),\n width: 0,\n height: 0\n }, c);\n G(e, {\n width: q.width,\n height: q.height\n });\n n ? (x = !1, w = k.renderer.rotCorr(v, n), l = {\n x: c.x + (e.x || 0) + c.width / 2 + w.x,\n y: c.y + (e.y || 0) + {\n top: 0,\n middle: .5,\n bottom: 1\n }[e.verticalAlign] * c.height\n }, w = [q.x - Number(a.attr(\"x\")), q.y - Number(a.attr(\"y\"))], t(l), a[f ? \"attr\" : \"animate\"](l)) : (t(c), a.align(e, void 0, c), l = a.alignAttr);\n x && 0 <= c.height ? this.justifyDataLabel(a, e, l, q, c, f) : d(e.crop, !0) && (c = l.x, t = l.y, c += w[0], t += w[1], z = k.isInsidePlot(c, t, {\n paneCoordinates: !0,\n series: g\n }) && k.isInsidePlot(c + q.width, t + q.height, {\n paneCoordinates: !0,\n series: g\n }));\n if (e.shape && !n) a[f ? \"attr\" : \"animate\"]({\n anchorX: h ? k.plotWidth - b.plotY : b.plotX,\n anchorY: h ? k.plotHeight - b.plotX : b.plotY\n });\n }\n\n f && m && (a.placed = !1);\n z || m && !x ? a.show() : (a.hide(), a.placed = !1);\n }\n\n function l(b, a) {\n var d = a.filter;\n return d ? (a = d.operator, b = b[d.property], d = d.value, \">\" === a && b > d || \"<\" === a && b < d || \">=\" === a && b >= d || \"<=\" === a && b <= d || \"==\" === a && b == d || \"===\" === a && b === d ? !0 : !1) : !0;\n }\n\n function p() {\n var e = this,\n a = e.chart,\n g = e.options,\n c = e.points,\n f = e.hasRendered || 0,\n m = a.renderer,\n p = g.dataLabels,\n n,\n q = p.animation;\n q = p.defer ? C(a, q, e) : {\n defer: 0,\n duration: 0\n };\n p = z(z(a.options.plotOptions && a.options.plotOptions.series && a.options.plotOptions.series.dataLabels, a.options.plotOptions && a.options.plotOptions[e.type] && a.options.plotOptions[e.type].dataLabels), p);\n B(this, \"drawDataLabels\");\n\n if (y(p) || p.enabled || e._hasPointLabels) {\n var r = e.plotGroup(\"dataLabelsGroup\", \"data-labels\", f ? \"inherit\" : \"hidden\", p.zIndex || 6);\n r.attr({\n opacity: +f\n });\n !f && (f = e.dataLabelsGroup) && (e.visible && r.show(), f[g.animation ? \"animate\" : \"attr\"]({\n opacity: 1\n }, q));\n c.forEach(function (c) {\n n = b(z(p, c.dlOptions || c.options && c.options.dataLabels));\n n.forEach(function (b, f) {\n var k = b.enabled && (!c.isNull || c.dataLabelOnNull) && l(c, b),\n p = c.connectors ? c.connectors[f] : c.connector,\n n = c.dataLabels ? c.dataLabels[f] : c.dataLabel,\n q = !n,\n t = d(b.distance, c.labelDistance);\n\n if (k) {\n var u = c.getLabelConfig();\n var x = d(b[c.formatPrefix + \"Format\"], b.format);\n u = E(x) ? v(x, u, a) : (b[c.formatPrefix + \"Formatter\"] || b.formatter).call(u, b);\n x = b.style;\n var z = b.rotation;\n a.styledMode || (x.color = d(b.color, x.color, e.color, \"#000000\"), \"contrast\" === x.color ? (c.contrastColor = m.getContrast(c.color || e.color), x.color = !E(t) && b.inside || 0 > t || g.stacking ? c.contrastColor : \"#000000\") : delete c.contrastColor, g.cursor && (x.cursor = g.cursor));\n var w = {\n r: b.borderRadius || 0,\n rotation: z,\n padding: b.padding,\n zIndex: 1\n };\n a.styledMode || (w.fill = b.backgroundColor, w.stroke = b.borderColor, w[\"stroke-width\"] = b.borderWidth);\n h(w, function (a, b) {\n \"undefined\" === typeof a && delete w[b];\n });\n }\n\n !n || k && E(u) && !!n.div === !!b.useHTML && (n.rotation && b.rotation || n.rotation === b.rotation) || (q = !0, c.dataLabel = n = c.dataLabel && c.dataLabel.destroy(), c.dataLabels && (1 === c.dataLabels.length ? delete c.dataLabels : delete c.dataLabels[f]), f || delete c.dataLabel, p && (c.connector = c.connector.destroy(), c.connectors && (1 === c.connectors.length ? delete c.connectors : delete c.connectors[f])));\n k && E(u) ? (n ? w.text = u : (c.dataLabels = c.dataLabels || [], n = c.dataLabels[f] = z ? m.text(u, 0, 0, b.useHTML).addClass(\"highcharts-data-label\") : m.label(u, 0, 0, b.shape, null, null, b.useHTML, null, \"data-label\"), f || (c.dataLabel = n), n.addClass(\" highcharts-data-label-color-\" + c.colorIndex + \" \" + (b.className || \"\") + (b.useHTML ? \" highcharts-tracker\" : \"\"))), n.options = b, n.attr(w), a.styledMode || n.css(x).shadow(b.shadow), n.added || n.add(r), b.textPath && !b.useHTML && (n.setTextPath(c.getDataLabelPath && c.getDataLabelPath(n) || c.graphic, b.textPath), c.dataLabelPath && !b.textPath.enabled && (c.dataLabelPath = c.dataLabelPath.destroy())), e.alignDataLabel(c, n, b, null, q)) : n && n.hide();\n });\n });\n }\n\n B(this, \"afterDrawDataLabels\");\n }\n\n function q(b, a, d, c, e, f) {\n var g = this.chart,\n k = a.align,\n h = a.verticalAlign,\n m = b.box ? 0 : b.padding || 0,\n l = a.x;\n l = void 0 === l ? 0 : l;\n var n = a.y;\n n = void 0 === n ? 0 : n;\n var p = (d.x || 0) + m;\n\n if (0 > p) {\n \"right\" === k && 0 <= l ? (a.align = \"left\", a.inside = !0) : l -= p;\n var q = !0;\n }\n\n p = (d.x || 0) + c.width - m;\n p > g.plotWidth && (\"left\" === k && 0 >= l ? (a.align = \"right\", a.inside = !0) : l += g.plotWidth - p, q = !0);\n p = d.y + m;\n 0 > p && (\"bottom\" === h && 0 <= n ? (a.verticalAlign = \"top\", a.inside = !0) : n -= p, q = !0);\n p = (d.y || 0) + c.height - m;\n p > g.plotHeight && (\"top\" === h && 0 >= n ? (a.verticalAlign = \"bottom\", a.inside = !0) : n += g.plotHeight - p, q = !0);\n q && (a.x = l, a.y = n, b.placed = !f, b.align(a, void 0, e));\n return q;\n }\n\n function z(b, a) {\n var d = [],\n c;\n if (y(b) && !y(a)) d = b.map(function (b) {\n return t(b, a);\n });else if (y(a) && !y(b)) d = a.map(function (a) {\n return t(b, a);\n });else if (y(b) || y(a)) for (c = Math.max(b.length, a.length); c--;) d[c] = t(b[c], a[c]);else d = t(b, a);\n return d;\n }\n\n function x(b, a, d, c, e) {\n var g = this.chart,\n f = g.inverted,\n h = this.xAxis,\n k = h.reversed,\n m = f ? a.height / 2 : a.width / 2;\n b = (b = b.pointWidth) ? b / 2 : 0;\n a.startXPos = f ? e.x : k ? -m - b : h.width - m + b;\n a.startYPos = f ? k ? this.yAxis.height - m + b : -m - b : e.y;\n c ? \"hidden\" === a.visibility && (a.show(), a.attr({\n opacity: 0\n }).animate({\n opacity: 1\n })) : a.attr({\n opacity: 1\n }).animate({\n opacity: 0\n }, void 0, a.hide);\n g.hasRendered && (d && a.attr({\n x: a.startXPos,\n y: a.startYPos\n }), a.placed = !0);\n }\n\n var m = [];\n\n e.compose = function (b) {\n if (-1 === m.indexOf(b)) {\n var a = b.prototype;\n m.push(b);\n a.alignDataLabel = f;\n a.drawDataLabels = p;\n a.justifyDataLabel = q;\n a.setDataLabelStartPos = x;\n }\n };\n })(p || (p = {}));\n\n \"\";\n return p;\n });\n K(l, \"Series/Column/ColumnDataLabel.js\", [l[\"Core/Series/DataLabel.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = e.series,\n v = l.merge,\n E = l.pick,\n G;\n\n (function (e) {\n function l(e, d, b, f, l) {\n var h = this.chart.inverted,\n n = e.series,\n p = (n.xAxis ? n.xAxis.len : this.chart.plotSizeX) || 0;\n n = (n.yAxis ? n.yAxis.len : this.chart.plotSizeY) || 0;\n var q = e.dlBox || e.shapeArgs,\n t = E(e.below, e.plotY > E(this.translatedThreshold, n)),\n x = E(b.inside, !!this.options.stacking);\n q && (f = v(q), 0 > f.y && (f.height += f.y, f.y = 0), q = f.y + f.height - n, 0 < q && q < f.height && (f.height -= q), h && (f = {\n x: n - f.y - f.height,\n y: p - f.x - f.width,\n width: f.height,\n height: f.width\n }), x || (h ? (f.x += t ? 0 : f.width, f.width = 0) : (f.y += t ? f.height : 0, f.height = 0)));\n b.align = E(b.align, !h || x ? \"center\" : t ? \"right\" : \"left\");\n b.verticalAlign = E(b.verticalAlign, h || x ? \"middle\" : t ? \"top\" : \"bottom\");\n C.prototype.alignDataLabel.call(this, e, d, b, f, l);\n b.inside && e.contrastColor && d.css({\n color: e.contrastColor\n });\n }\n\n var t = [];\n\n e.compose = function (e) {\n f.compose(C);\n -1 === t.indexOf(e) && (t.push(e), e.prototype.alignDataLabel = l);\n };\n })(G || (G = {}));\n\n return G;\n });\n K(l, \"Series/Bar/BarSeries.js\", [l[\"Series/Column/ColumnSeries.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var e = function (f, l) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, f) {\n e.__proto__ = f;\n } || function (e, f) {\n for (var d in f) f.hasOwnProperty(d) && (e[d] = f[d]);\n };\n\n return e(f, l);\n };\n\n return function (f, l) {\n function t() {\n this.constructor = f;\n }\n\n e(f, l);\n f.prototype = null === l ? Object.create(l) : (t.prototype = l.prototype, new t());\n };\n }(),\n v = l.extend,\n E = l.merge;\n\n l = function (e) {\n function l() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n C(l, e);\n l.defaultOptions = E(f.defaultOptions, {});\n return l;\n }(f);\n\n v(l.prototype, {\n inverted: !0\n });\n e.registerSeriesType(\"bar\", l);\n \"\";\n return l;\n });\n K(l, \"Series/Scatter/ScatterSeries.js\", [l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = this && this.__extends || function () {\n var e = function (f, h) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var e in b) b.hasOwnProperty(e) && (d[e] = b[e]);\n };\n\n return e(f, h);\n };\n\n return function (f, h) {\n function d() {\n this.constructor = f;\n }\n\n e(f, h);\n f.prototype = null === h ? Object.create(h) : (d.prototype = h.prototype, new d());\n };\n }(),\n C = f.seriesTypes,\n v = C.column,\n E = C.line;\n\n C = e.addEvent;\n var G = e.extend,\n B = e.merge;\n\n e = function (e) {\n function f() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n l(f, e);\n\n f.prototype.applyJitter = function () {\n var e = this,\n d = this.options.jitter,\n b = this.points.length;\n d && this.points.forEach(function (f, h) {\n [\"x\", \"y\"].forEach(function (l, n) {\n var p = \"plot\" + l.toUpperCase();\n\n if (d[l] && !f.isNull) {\n var q = e[l + \"Axis\"];\n var r = d[l] * q.transA;\n\n if (q && !q.isLog) {\n var t = Math.max(0, f[p] - r);\n q = Math.min(q.len, f[p] + r);\n n = 1E4 * Math.sin(h + n * b);\n f[p] = t + (q - t) * (n - Math.floor(n));\n \"x\" === l && (f.clientX = f.plotX);\n }\n }\n });\n });\n };\n\n f.prototype.drawGraph = function () {\n this.options.lineWidth ? e.prototype.drawGraph.call(this) : this.graph && (this.graph = this.graph.destroy());\n };\n\n f.defaultOptions = B(E.defaultOptions, {\n lineWidth: 0,\n findNearestPointBy: \"xy\",\n jitter: {\n x: 0,\n y: 0\n },\n marker: {\n enabled: !0\n },\n tooltip: {\n headerFormat: '\\u25cf {series.name}
',\n pointFormat: \"x: {point.x}
y: {point.y}
\"\n }\n });\n return f;\n }(E);\n\n G(e.prototype, {\n drawTracker: v.prototype.drawTracker,\n sorted: !1,\n requireSorting: !1,\n noSharedTooltip: !0,\n trackerGroups: [\"group\", \"markerGroup\", \"dataLabelsGroup\"],\n takeOrdinalPosition: !1\n });\n C(e, \"afterTranslate\", function () {\n this.applyJitter();\n });\n f.registerSeriesType(\"scatter\", e);\n \"\";\n return e;\n });\n K(l, \"Series/CenteredUtilities.js\", [l[\"Core/Globals.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = f.deg2rad,\n v = l.fireEvent,\n E = l.isNumber,\n G = l.pick,\n B = l.relativeLength,\n y;\n\n (function (f) {\n f.getCenter = function () {\n var f = this.options,\n d = this.chart,\n b = 2 * (f.slicedOffset || 0),\n l = d.plotWidth - 2 * b,\n q = d.plotHeight - 2 * b,\n r = f.center,\n n = Math.min(l, q),\n t = f.thickness,\n w = f.size,\n z = f.innerSize || 0;\n \"string\" === typeof w && (w = parseFloat(w));\n \"string\" === typeof z && (z = parseFloat(z));\n f = [G(r[0], \"50%\"), G(r[1], \"50%\"), G(w && 0 > w ? void 0 : f.size, \"100%\"), G(z && 0 > z ? void 0 : f.innerSize || 0, \"0%\")];\n !d.angular || this instanceof e || (f[3] = 0);\n\n for (r = 0; 4 > r; ++r) w = f[r], d = 2 > r || 2 === r && /%$/.test(w), f[r] = B(w, [l, q, n, f[2]][r]) + (d ? b : 0);\n\n f[3] > f[2] && (f[3] = f[2]);\n E(t) && 2 * t < f[2] && 0 < t && (f[3] = f[2] - 2 * t);\n v(this, \"afterGetCenter\", {\n positions: f\n });\n return f;\n };\n\n f.getStartAndEndRadians = function (e, d) {\n e = E(e) ? e : 0;\n d = E(d) && d > e && 360 > d - e ? d : e + 360;\n return {\n start: C * (e + -90),\n end: C * (d + -90)\n };\n };\n })(y || (y = {}));\n\n \"\";\n return y;\n });\n K(l, \"Series/Pie/PiePoint.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var e = function (d, b) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(d, b);\n };\n\n return function (d, b) {\n function f() {\n this.constructor = d;\n }\n\n e(d, b);\n d.prototype = null === b ? Object.create(b) : (f.prototype = b.prototype, new f());\n };\n }(),\n v = f.setAnimation,\n E = l.addEvent,\n G = l.defined;\n\n f = l.extend;\n var B = l.isNumber,\n y = l.pick,\n t = l.relativeLength;\n\n e = function (e) {\n function d() {\n var b = null !== e && e.apply(this, arguments) || this;\n b.labelDistance = void 0;\n b.options = void 0;\n b.series = void 0;\n return b;\n }\n\n C(d, e);\n\n d.prototype.getConnectorPath = function () {\n var b = this.labelPosition,\n d = this.series.options.dataLabels,\n e = this.connectorShapes,\n f = d.connectorShape;\n e[f] && (f = e[f]);\n return f.call(this, {\n x: b.final.x,\n y: b.final.y,\n alignment: b.alignment\n }, b.connectorPosition, d);\n };\n\n d.prototype.getTranslate = function () {\n return this.sliced ? this.slicedTranslation : {\n translateX: 0,\n translateY: 0\n };\n };\n\n d.prototype.haloPath = function (b) {\n var d = this.shapeArgs;\n return this.sliced || !this.visible ? [] : this.series.chart.renderer.symbols.arc(d.x, d.y, d.r + b, d.r + b, {\n innerR: d.r - 1,\n start: d.start,\n end: d.end\n });\n };\n\n d.prototype.init = function () {\n var b = this;\n e.prototype.init.apply(this, arguments);\n this.name = y(this.name, \"Slice\");\n\n var d = function (d) {\n b.slice(\"select\" === d.type);\n };\n\n E(this, \"select\", d);\n E(this, \"unselect\", d);\n return this;\n };\n\n d.prototype.isValid = function () {\n return B(this.y) && 0 <= this.y;\n };\n\n d.prototype.setVisible = function (b, d) {\n var e = this,\n f = this.series,\n h = f.chart,\n l = f.options.ignoreHiddenPoint;\n d = y(d, l);\n b !== this.visible && (this.visible = this.options.visible = b = \"undefined\" === typeof b ? !this.visible : b, f.options.data[f.data.indexOf(this)] = this.options, [\"graphic\", \"dataLabel\", \"connector\", \"shadowGroup\"].forEach(function (d) {\n if (e[d]) e[d][b ? \"show\" : \"hide\"](b);\n }), this.legendItem && h.legend.colorizeItem(this, b), b || \"hover\" !== this.state || this.setState(\"\"), l && (f.isDirty = !0), d && h.redraw());\n };\n\n d.prototype.slice = function (b, d, e) {\n var f = this.series;\n v(e, f.chart);\n y(d, !0);\n this.sliced = this.options.sliced = G(b) ? b : !this.sliced;\n f.options.data[f.data.indexOf(this)] = this.options;\n this.graphic && this.graphic.animate(this.getTranslate());\n this.shadowGroup && this.shadowGroup.animate(this.getTranslate());\n };\n\n return d;\n }(e);\n\n f(e.prototype, {\n connectorShapes: {\n fixedOffset: function (e, d, b) {\n var f = d.breakAt;\n d = d.touchingSliceAt;\n return [[\"M\", e.x, e.y], b.softConnector ? [\"C\", e.x + (\"left\" === e.alignment ? -5 : 5), e.y, 2 * f.x - d.x, 2 * f.y - d.y, f.x, f.y] : [\"L\", f.x, f.y], [\"L\", d.x, d.y]];\n },\n straight: function (e, d) {\n d = d.touchingSliceAt;\n return [[\"M\", e.x, e.y], [\"L\", d.x, d.y]];\n },\n crookedLine: function (e, d, b) {\n d = d.touchingSliceAt;\n var f = this.series,\n h = f.center[0],\n l = f.chart.plotWidth,\n n = f.chart.plotLeft;\n f = e.alignment;\n var v = this.shapeArgs.r;\n b = t(b.crookDistance, 1);\n l = \"left\" === f ? h + v + (l + n - h - v) * (1 - b) : n + (h - v) * b;\n b = [\"L\", l, e.y];\n h = !0;\n if (\"left\" === f ? l > e.x || l < d.x : l < e.x || l > d.x) h = !1;\n e = [[\"M\", e.x, e.y]];\n h && e.push(b);\n e.push([\"L\", d.x, d.y]);\n return e;\n }\n }\n });\n return e;\n });\n K(l, \"Series/Pie/PieSeries.js\", [l[\"Series/CenteredUtilities.js\"], l[\"Series/Column/ColumnSeries.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Series/Pie/PiePoint.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Renderer/SVG/Symbols.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B, y) {\n var t = this && this.__extends || function () {\n var b = function (d, e) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return b(d, e);\n };\n\n return function (d, e) {\n function f() {\n this.constructor = d;\n }\n\n b(d, e);\n d.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f());\n };\n }(),\n h = f.getStartAndEndRadians;\n\n l = l.noop;\n var d = y.clamp,\n b = y.extend,\n p = y.fireEvent,\n q = y.merge,\n r = y.pick,\n n = y.relativeLength;\n\n y = function (b) {\n function e() {\n var d = null !== b && b.apply(this, arguments) || this;\n d.center = void 0;\n d.data = void 0;\n d.maxLabelDistance = void 0;\n d.options = void 0;\n d.points = void 0;\n return d;\n }\n\n t(e, b);\n\n e.prototype.animate = function (b) {\n var d = this,\n e = d.points,\n f = d.startAngleRad;\n b || e.forEach(function (a) {\n var b = a.graphic,\n c = a.shapeArgs;\n b && c && (b.attr({\n r: r(a.startR, d.center && d.center[3] / 2),\n start: f,\n end: f\n }), b.animate({\n r: c.r,\n start: c.start,\n end: c.end\n }, d.options.animation));\n });\n };\n\n e.prototype.drawEmpty = function () {\n var b = this.startAngleRad,\n d = this.endAngleRad,\n e = this.options;\n\n if (0 === this.total && this.center) {\n var f = this.center[0];\n var a = this.center[1];\n this.graph || (this.graph = this.chart.renderer.arc(f, a, this.center[1] / 2, 0, b, d).addClass(\"highcharts-empty-series\").add(this.group));\n this.graph.attr({\n d: B.arc(f, a, this.center[2] / 2, 0, {\n start: b,\n end: d,\n innerR: this.center[3] / 2\n })\n });\n this.chart.styledMode || this.graph.attr({\n \"stroke-width\": e.borderWidth,\n fill: e.fillColor || \"none\",\n stroke: e.color || \"#cccccc\"\n });\n } else this.graph && (this.graph = this.graph.destroy());\n };\n\n e.prototype.drawPoints = function () {\n var b = this.chart.renderer;\n this.points.forEach(function (d) {\n d.graphic && d.hasNewShapeType() && (d.graphic = d.graphic.destroy());\n d.graphic || (d.graphic = b[d.shapeType](d.shapeArgs).add(d.series.group), d.delayedRendering = !0);\n });\n };\n\n e.prototype.generatePoints = function () {\n b.prototype.generatePoints.call(this);\n this.updateTotals();\n };\n\n e.prototype.getX = function (b, e, f) {\n var k = this.center,\n a = this.radii ? this.radii[f.index] || 0 : k[2] / 2;\n b = Math.asin(d((b - k[1]) / (a + f.labelDistance), -1, 1));\n return k[0] + (e ? -1 : 1) * Math.cos(b) * (a + f.labelDistance) + (0 < f.labelDistance ? (e ? -1 : 1) * this.options.dataLabels.padding : 0);\n };\n\n e.prototype.hasData = function () {\n return !!this.processedXData.length;\n };\n\n e.prototype.redrawPoints = function () {\n var b = this,\n d = b.chart,\n e = d.renderer,\n f = b.options.shadow,\n a,\n g,\n c,\n h;\n this.drawEmpty();\n !f || b.shadowGroup || d.styledMode || (b.shadowGroup = e.g(\"shadow\").attr({\n zIndex: -1\n }).add(b.group));\n b.points.forEach(function (k) {\n var l = {};\n g = k.graphic;\n\n if (!k.isNull && g) {\n var m = void 0;\n h = k.shapeArgs;\n a = k.getTranslate();\n d.styledMode || (m = k.shadowGroup, f && !m && (m = k.shadowGroup = e.g(\"shadow\").add(b.shadowGroup)), m && m.attr(a), c = b.pointAttribs(k, k.selected && \"select\"));\n k.delayedRendering ? (g.setRadialReference(b.center).attr(h).attr(a), d.styledMode || g.attr(c).attr({\n \"stroke-linejoin\": \"round\"\n }).shadow(f, m), k.delayedRendering = !1) : (g.setRadialReference(b.center), d.styledMode || q(!0, l, c), q(!0, l, h, a), g.animate(l));\n g.attr({\n visibility: k.visible ? \"inherit\" : \"hidden\"\n });\n g.addClass(k.getClassName(), !0);\n } else g && (k.graphic = g.destroy());\n });\n };\n\n e.prototype.sortByAngle = function (b, d) {\n b.sort(function (b, e) {\n return \"undefined\" !== typeof b.angle && (e.angle - b.angle) * d;\n });\n };\n\n e.prototype.translate = function (b) {\n p(this, \"translate\");\n this.generatePoints();\n var d = this.options,\n e = d.slicedOffset,\n f = e + (d.borderWidth || 0),\n a = h(d.startAngle, d.endAngle),\n g = this.startAngleRad = a.start;\n a = (this.endAngleRad = a.end) - g;\n var c = this.points,\n l = d.dataLabels.distance;\n d = d.ignoreHiddenPoint;\n var q = c.length,\n t,\n v = 0;\n b || (this.center = b = this.getCenter());\n\n for (t = 0; t < q; t++) {\n var w = c[t];\n var z = g + v * a;\n !w.isValid() || d && !w.visible || (v += w.percentage / 100);\n var y = g + v * a;\n var B = {\n x: b[0],\n y: b[1],\n r: b[2] / 2,\n innerR: b[3] / 2,\n start: Math.round(1E3 * z) / 1E3,\n end: Math.round(1E3 * y) / 1E3\n };\n w.shapeType = \"arc\";\n w.shapeArgs = B;\n w.labelDistance = r(w.options.dataLabels && w.options.dataLabels.distance, l);\n w.labelDistance = n(w.labelDistance, B.r);\n this.maxLabelDistance = Math.max(this.maxLabelDistance || 0, w.labelDistance);\n y = (y + z) / 2;\n y > 1.5 * Math.PI ? y -= 2 * Math.PI : y < -Math.PI / 2 && (y += 2 * Math.PI);\n w.slicedTranslation = {\n translateX: Math.round(Math.cos(y) * e),\n translateY: Math.round(Math.sin(y) * e)\n };\n B = Math.cos(y) * b[2] / 2;\n var C = Math.sin(y) * b[2] / 2;\n w.tooltipPos = [b[0] + .7 * B, b[1] + .7 * C];\n w.half = y < -Math.PI / 2 || y > Math.PI / 2 ? 1 : 0;\n w.angle = y;\n z = Math.min(f, w.labelDistance / 5);\n w.labelPosition = {\n natural: {\n x: b[0] + B + Math.cos(y) * w.labelDistance,\n y: b[1] + C + Math.sin(y) * w.labelDistance\n },\n \"final\": {},\n alignment: 0 > w.labelDistance ? \"center\" : w.half ? \"right\" : \"left\",\n connectorPosition: {\n breakAt: {\n x: b[0] + B + Math.cos(y) * z,\n y: b[1] + C + Math.sin(y) * z\n },\n touchingSliceAt: {\n x: b[0] + B,\n y: b[1] + C\n }\n }\n };\n }\n\n p(this, \"afterTranslate\");\n };\n\n e.prototype.updateTotals = function () {\n var b = this.points,\n d = b.length,\n e = this.options.ignoreHiddenPoint,\n f,\n a = 0;\n\n for (f = 0; f < d; f++) {\n var g = b[f];\n !g.isValid() || e && !g.visible || (a += g.y);\n }\n\n this.total = a;\n\n for (f = 0; f < d; f++) g = b[f], g.percentage = 0 < a && (g.visible || !e) ? g.y / a * 100 : 0, g.total = a;\n };\n\n e.defaultOptions = q(E.defaultOptions, {\n center: [null, null],\n clip: !1,\n colorByPoint: !0,\n dataLabels: {\n allowOverlap: !0,\n connectorPadding: 5,\n connectorShape: \"fixedOffset\",\n crookDistance: \"70%\",\n distance: 30,\n enabled: !0,\n formatter: function () {\n return this.point.isNull ? void 0 : this.point.name;\n },\n softConnector: !0,\n x: 0\n },\n fillColor: void 0,\n ignoreHiddenPoint: !0,\n inactiveOtherPoints: !0,\n legendType: \"point\",\n marker: null,\n size: null,\n showInLegend: !1,\n slicedOffset: 10,\n stickyTracking: !1,\n tooltip: {\n followPointer: !0\n },\n borderColor: \"#ffffff\",\n borderWidth: 1,\n lineWidth: void 0,\n states: {\n hover: {\n brightness: .1\n }\n }\n });\n return e;\n }(E);\n\n b(y.prototype, {\n axisTypes: [],\n directTouch: !0,\n drawGraph: void 0,\n drawLegendSymbol: C.drawRectangle,\n drawTracker: e.prototype.drawTracker,\n getCenter: f.getCenter,\n getSymbol: l,\n isCartesian: !1,\n noSharedTooltip: !0,\n pointAttribs: e.prototype.pointAttribs,\n pointClass: v,\n requireSorting: !1,\n searchPoint: l,\n trackerGroups: [\"group\", \"dataLabelsGroup\"]\n });\n G.registerSeriesType(\"pie\", y);\n \"\";\n return y;\n });\n K(l, \"Series/Pie/PieDataLabel.js\", [l[\"Core/Series/DataLabel.js\"], l[\"Core/Globals.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var E = e.noop,\n G = l.distribute,\n B = C.series,\n y = v.arrayMax,\n t = v.clamp,\n h = v.defined,\n d = v.merge,\n b = v.pick,\n p = v.relativeLength,\n q;\n\n (function (e) {\n function l() {\n var e = this,\n f = e.data,\n a = e.chart,\n g = e.options.dataLabels || {},\n c = g.connectorPadding,\n l = a.plotWidth,\n n = a.plotHeight,\n p = a.plotLeft,\n q = Math.round(a.chartWidth / 3),\n r = e.center,\n t = r[2] / 2,\n x = r[1],\n v = [[], []],\n w = [0, 0, 0, 0],\n z = e.dataLabelPositioners,\n C,\n E,\n J,\n K,\n P,\n F,\n T,\n N,\n V,\n W,\n X,\n Q;\n e.visible && (g.enabled || e._hasPointLabels) && (f.forEach(function (a) {\n a.dataLabel && a.visible && a.dataLabel.shortened && (a.dataLabel.attr({\n width: \"auto\"\n }).css({\n width: \"auto\",\n textOverflow: \"clip\"\n }), a.dataLabel.shortened = !1);\n }), B.prototype.drawDataLabels.apply(e), f.forEach(function (a) {\n a.dataLabel && (a.visible ? (v[a.half].push(a), a.dataLabel._pos = null, !h(g.style.width) && !h(a.options.dataLabels && a.options.dataLabels.style && a.options.dataLabels.style.width) && a.dataLabel.getBBox().width > q && (a.dataLabel.css({\n width: Math.round(.7 * q) + \"px\"\n }), a.dataLabel.shortened = !0)) : (a.dataLabel = a.dataLabel.destroy(), a.dataLabels && 1 === a.dataLabels.length && delete a.dataLabels));\n }), v.forEach(function (d, f) {\n var k = d.length,\n m = [],\n q;\n\n if (k) {\n e.sortByAngle(d, f - .5);\n\n if (0 < e.maxLabelDistance) {\n var u = Math.max(0, x - t - e.maxLabelDistance);\n var v = Math.min(x + t + e.maxLabelDistance, a.plotHeight);\n d.forEach(function (b) {\n 0 < b.labelDistance && b.dataLabel && (b.top = Math.max(0, x - t - b.labelDistance), b.bottom = Math.min(x + t + b.labelDistance, a.plotHeight), q = b.dataLabel.getBBox().height || 21, b.distributeBox = {\n target: b.labelPosition.natural.y - b.top + q / 2,\n size: q,\n rank: b.y\n }, m.push(b.distributeBox));\n });\n u = v + q - u;\n G(m, u, u / 5);\n }\n\n for (X = 0; X < k; X++) {\n C = d[X];\n F = C.labelPosition;\n K = C.dataLabel;\n W = !1 === C.visible ? \"hidden\" : \"inherit\";\n V = u = F.natural.y;\n m && h(C.distributeBox) && (\"undefined\" === typeof C.distributeBox.pos ? W = \"hidden\" : (T = C.distributeBox.size, V = z.radialDistributionY(C)));\n delete C.positionIndex;\n if (g.justify) N = z.justify(C, t, r);else switch (g.alignTo) {\n case \"connectors\":\n N = z.alignToConnectors(d, f, l, p);\n break;\n\n case \"plotEdges\":\n N = z.alignToPlotEdges(K, f, l, p);\n break;\n\n default:\n N = z.radialDistributionX(e, C, V, u);\n }\n K._attr = {\n visibility: W,\n align: F.alignment\n };\n Q = C.options.dataLabels || {};\n K._pos = {\n x: N + b(Q.x, g.x) + ({\n left: c,\n right: -c\n }[F.alignment] || 0),\n y: V + b(Q.y, g.y) - 10\n };\n F.final.x = N;\n F.final.y = V;\n b(g.crop, !0) && (P = K.getBBox().width, u = null, N - P < c && 1 === f ? (u = Math.round(P - N + c), w[3] = Math.max(u, w[3])) : N + P > l - c && 0 === f && (u = Math.round(N + P - l + c), w[1] = Math.max(u, w[1])), 0 > V - T / 2 ? w[0] = Math.max(Math.round(-V + T / 2), w[0]) : V + T / 2 > n && (w[2] = Math.max(Math.round(V + T / 2 - n), w[2])), K.sideOverflow = u);\n }\n }\n }), 0 === y(w) || this.verifyDataLabelOverflow(w)) && (this.placeDataLabels(), this.points.forEach(function (c) {\n Q = d(g, c.options.dataLabels);\n\n if (E = b(Q.connectorWidth, 1)) {\n var f;\n J = c.connector;\n\n if ((K = c.dataLabel) && K._pos && c.visible && 0 < c.labelDistance) {\n W = K._attr.visibility;\n if (f = !J) c.connector = J = a.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\" + c.colorIndex + (c.className ? \" \" + c.className : \"\")).add(e.dataLabelsGroup), a.styledMode || J.attr({\n \"stroke-width\": E,\n stroke: Q.connectorColor || c.color || \"#666666\"\n });\n J[f ? \"attr\" : \"animate\"]({\n d: c.getConnectorPath()\n });\n J.attr(\"visibility\", W);\n } else J && (c.connector = J.destroy());\n }\n }));\n }\n\n function q() {\n this.points.forEach(function (b) {\n var d = b.dataLabel,\n a;\n d && b.visible && ((a = d._pos) ? (d.sideOverflow && (d._attr.width = Math.max(d.getBBox().width - d.sideOverflow, 0), d.css({\n width: d._attr.width + \"px\",\n textOverflow: (this.options.dataLabels.style || {}).textOverflow || \"ellipsis\"\n }), d.shortened = !0), d.attr(d._attr), d[d.moved ? \"animate\" : \"attr\"](a), d.moved = !0) : d && d.attr({\n y: -9999\n }));\n delete b.distributeBox;\n }, this);\n }\n\n function r(b) {\n var d = this.center,\n a = this.options,\n e = a.center,\n c = a.minSize || 80,\n f = null !== a.size;\n\n if (!f) {\n if (null !== e[0]) var h = Math.max(d[2] - Math.max(b[1], b[3]), c);else h = Math.max(d[2] - b[1] - b[3], c), d[0] += (b[3] - b[1]) / 2;\n null !== e[1] ? h = t(h, c, d[2] - Math.max(b[0], b[2])) : (h = t(h, c, d[2] - b[0] - b[2]), d[1] += (b[0] - b[2]) / 2);\n h < d[2] ? (d[2] = h, d[3] = Math.min(a.thickness ? Math.max(0, h - 2 * a.thickness) : Math.max(0, p(a.innerSize || 0, h)), h), this.translate(d), this.drawDataLabels && this.drawDataLabels()) : f = !0;\n }\n\n return f;\n }\n\n var v = [],\n x = {\n radialDistributionY: function (b) {\n return b.top + b.distributeBox.pos;\n },\n radialDistributionX: function (b, d, a, e) {\n return b.getX(a < d.top + 2 || a > d.bottom - 2 ? e : a, d.half, d);\n },\n justify: function (b, d, a) {\n return a[0] + (b.half ? -1 : 1) * (d + b.labelDistance);\n },\n alignToPlotEdges: function (b, d, a, e) {\n b = b.getBBox().width;\n return d ? b + e : a - b - e;\n },\n alignToConnectors: function (b, d, a, e) {\n var c = 0,\n f;\n b.forEach(function (a) {\n f = a.dataLabel.getBBox().width;\n f > c && (c = f);\n });\n return d ? c + e : a - c - e;\n }\n };\n\n e.compose = function (b) {\n f.compose(B);\n -1 === v.indexOf(b) && (v.push(b), b = b.prototype, b.dataLabelPositioners = x, b.alignDataLabel = E, b.drawDataLabels = l, b.placeDataLabels = q, b.verifyDataLabelOverflow = r);\n };\n })(q || (q = {}));\n\n return q;\n });\n K(l, \"Extensions/OverlappingDataLabels.js\", [l[\"Core/Chart/Chart.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n function l(e, f) {\n var d = !1;\n\n if (e) {\n var b = e.newOpacity;\n e.oldOpacity !== b && (e.alignAttr && e.placed ? (e[b ? \"removeClass\" : \"addClass\"](\"highcharts-data-label-hidden\"), d = !0, e.alignAttr.opacity = b, e[e.isOld ? \"animate\" : \"attr\"](e.alignAttr, null, function () {\n f.styledMode || e.css({\n pointerEvents: b ? \"auto\" : \"none\"\n });\n }), v(f, \"afterHideOverlappingLabel\")) : e.attr({\n opacity: b\n }));\n e.isOld = !0;\n }\n\n return d;\n }\n\n var C = e.addEvent,\n v = e.fireEvent,\n E = e.isArray,\n G = e.isNumber,\n B = e.objectEach,\n y = e.pick;\n C(f, \"render\", function () {\n var e = this,\n f = [];\n (this.labelCollectors || []).forEach(function (d) {\n f = f.concat(d());\n });\n (this.yAxis || []).forEach(function (d) {\n d.stacking && d.options.stackLabels && !d.options.stackLabels.allowOverlap && B(d.stacking.stacks, function (b) {\n B(b, function (b) {\n b.label && f.push(b.label);\n });\n });\n });\n (this.series || []).forEach(function (d) {\n var b = d.options.dataLabels;\n d.visible && (!1 !== b.enabled || d._hasPointLabels) && (b = function (b) {\n return b.forEach(function (b) {\n b.visible && (E(b.dataLabels) ? b.dataLabels : b.dataLabel ? [b.dataLabel] : []).forEach(function (d) {\n var h = d.options;\n d.labelrank = y(h.labelrank, b.labelrank, b.shapeArgs && b.shapeArgs.height);\n h.allowOverlap ? (d.oldOpacity = d.opacity, d.newOpacity = 1, l(d, e)) : f.push(d);\n });\n });\n }, b(d.nodes || []), b(d.points));\n });\n this.hideOverlappingLabels(f);\n });\n\n f.prototype.hideOverlappingLabels = function (e) {\n var f = this,\n d = e.length,\n b = f.renderer,\n p,\n q,\n r,\n n = !1;\n\n var t = function (d) {\n var e,\n f = d.box ? 0 : d.padding || 0,\n a = e = 0,\n g;\n\n if (d && (!d.alignAttr || d.placed)) {\n var c = d.alignAttr || {\n x: d.attr(\"x\"),\n y: d.attr(\"y\")\n };\n var h = d.parentGroup;\n d.width || (e = d.getBBox(), d.width = e.width, d.height = e.height, e = b.fontMetrics(null, d.element).h);\n var l = d.width - 2 * f;\n (g = {\n left: \"0\",\n center: \"0.5\",\n right: \"1\"\n }[d.alignValue]) ? a = +g * l : G(d.x) && Math.round(d.x) !== d.translateX && (a = d.x - d.translateX);\n return {\n x: c.x + (h.translateX || 0) + f - (a || 0),\n y: c.y + (h.translateY || 0) + f - e,\n width: d.width - 2 * f,\n height: d.height - 2 * f\n };\n }\n };\n\n for (q = 0; q < d; q++) if (p = e[q]) p.oldOpacity = p.opacity, p.newOpacity = 1, p.absoluteBox = t(p);\n\n e.sort(function (b, d) {\n return (d.labelrank || 0) - (b.labelrank || 0);\n });\n\n for (q = 0; q < d; q++) {\n var w = (t = e[q]) && t.absoluteBox;\n\n for (p = q + 1; p < d; ++p) {\n var z = (r = e[p]) && r.absoluteBox;\n !w || !z || t === r || 0 === t.newOpacity || 0 === r.newOpacity || \"hidden\" === t.visibility || \"hidden\" === r.visibility || z.x >= w.x + w.width || z.x + z.width <= w.x || z.y >= w.y + w.height || z.y + z.height <= w.y || ((t.labelrank < r.labelrank ? t : r).newOpacity = 0);\n }\n }\n\n e.forEach(function (b) {\n l(b, f) && (n = !0);\n });\n n && v(f, \"afterHideAllOverlappingLabels\");\n };\n });\n K(l, \"Core/Responsive.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.extend,\n l = f.find,\n C = f.isArray,\n v = f.isObject,\n E = f.merge,\n G = f.objectEach,\n B = f.pick,\n y = f.splat,\n t = f.uniqueKey,\n h;\n\n (function (d) {\n var b = [];\n\n d.compose = function (d) {\n -1 === b.indexOf(d) && (b.push(d), e(d.prototype, f.prototype));\n return d;\n };\n\n var f = function () {\n function b() {}\n\n b.prototype.currentOptions = function (b) {\n function d(b, f, h, k) {\n var a;\n G(b, function (b, c) {\n if (!k && -1 < e.collectionsWithUpdate.indexOf(c) && f[c]) for (b = y(b), h[c] = [], a = 0; a < Math.max(b.length, f[c].length); a++) f[c][a] && (void 0 === b[a] ? h[c][a] = f[c][a] : (h[c][a] = {}, d(b[a], f[c][a], h[c][a], k + 1)));else v(b) ? (h[c] = C(b) ? [] : {}, d(b, f[c] || {}, h[c], k + 1)) : h[c] = \"undefined\" === typeof f[c] ? null : f[c];\n });\n }\n\n var e = this,\n f = {};\n d(b, this.options, f, 0);\n return f;\n };\n\n b.prototype.matchResponsiveRule = function (b, d) {\n var e = b.condition;\n (e.callback || function () {\n return this.chartWidth <= B(e.maxWidth, Number.MAX_VALUE) && this.chartHeight <= B(e.maxHeight, Number.MAX_VALUE) && this.chartWidth >= B(e.minWidth, 0) && this.chartHeight >= B(e.minHeight, 0);\n }).call(this) && d.push(b._id);\n };\n\n b.prototype.setResponsive = function (b, d) {\n var e = this,\n f = this.options.responsive,\n h = this.currentResponsive,\n n = [];\n !d && f && f.rules && f.rules.forEach(function (b) {\n \"undefined\" === typeof b._id && (b._id = t());\n e.matchResponsiveRule(b, n);\n }, this);\n d = E.apply(void 0, n.map(function (b) {\n return l((f || {}).rules || [], function (d) {\n return d._id === b;\n });\n }).map(function (b) {\n return b && b.chartOptions;\n }));\n d.isResponsiveOptions = !0;\n n = n.toString() || void 0;\n n !== (h && h.ruleIds) && (h && this.update(h.undoOptions, b, !0), n ? (h = this.currentOptions(d), h.isResponsiveOptions = !0, this.currentResponsive = {\n ruleIds: n,\n mergedOptions: d,\n undoOptions: h\n }, this.update(d, b, !0)) : this.currentResponsive = void 0);\n };\n\n return b;\n }();\n })(h || (h = {}));\n\n \"\";\n \"\";\n return h;\n });\n K(l, \"masters/highcharts.src.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Animation/Fx.js\"], l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Renderer/SVG/SVGRenderer.js\"], l[\"Core/Renderer/HTML/HTMLElement.js\"], l[\"Core/Renderer/HTML/HTMLRenderer.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/Axis/DateTimeAxis.js\"], l[\"Core/Axis/LogarithmicAxis.js\"], l[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"], l[\"Core/Axis/Tick.js\"], l[\"Core/Tooltip.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Pointer.js\"], l[\"Core/MSPointer.js\"], l[\"Core/Legend/Legend.js\"], l[\"Core/Chart/Chart.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Series/Column/ColumnSeries.js\"], l[\"Series/Column/ColumnDataLabel.js\"], l[\"Series/Pie/PieSeries.js\"], l[\"Series/Pie/PieDataLabel.js\"], l[\"Core/Series/DataLabel.js\"], l[\"Core/Responsive.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Time.js\"]], function (f, e, l, C, v, E, G, B, y, t, h, d, b, p, q, r, n, J, w, z, x, m, k, a, g, c, D, A, u, K, S, R, M) {\n f.animate = v.animate;\n f.animObject = v.animObject;\n f.getDeferredAnimation = v.getDeferredAnimation;\n f.setAnimation = v.setAnimation;\n f.stop = v.stop;\n f.timers = C.timers;\n f.AST = E;\n f.Axis = b;\n f.Chart = k;\n f.chart = k.chart;\n f.Fx = C;\n f.Legend = m;\n f.PlotLineOrBand = r;\n f.Point = w;\n f.Pointer = x.isRequired() ? x : z;\n f.Series = a;\n f.SVGElement = y;\n f.SVGRenderer = t;\n f.Tick = n;\n f.Time = M;\n f.Tooltip = J;\n f.Color = R;\n f.color = R.parse;\n d.compose(t);\n h.compose(y);\n f.defaultOptions = l.defaultOptions;\n f.getOptions = l.getOptions;\n f.time = l.defaultTime;\n f.setOptions = l.setOptions;\n f.dateFormat = G.dateFormat;\n f.format = G.format;\n f.numberFormat = G.numberFormat;\n f.addEvent = e.addEvent;\n f.arrayMax = e.arrayMax;\n f.arrayMin = e.arrayMin;\n f.attr = e.attr;\n f.clearTimeout = e.clearTimeout;\n f.correctFloat = e.correctFloat;\n f.createElement = e.createElement;\n f.css = e.css;\n f.defined = e.defined;\n f.destroyObjectProperties = e.destroyObjectProperties;\n f.discardElement = e.discardElement;\n f.distribute = B.distribute;\n f.erase = e.erase;\n f.error = e.error;\n f.extend = e.extend;\n f.extendClass = e.extendClass;\n f.find = e.find;\n f.fireEvent = e.fireEvent;\n f.getMagnitude = e.getMagnitude;\n f.getStyle = e.getStyle;\n f.inArray = e.inArray;\n f.isArray = e.isArray;\n f.isClass = e.isClass;\n f.isDOMElement = e.isDOMElement;\n f.isFunction = e.isFunction;\n f.isNumber = e.isNumber;\n f.isObject = e.isObject;\n f.isString = e.isString;\n f.keys = e.keys;\n f.merge = e.merge;\n f.normalizeTickInterval = e.normalizeTickInterval;\n f.objectEach = e.objectEach;\n f.offset = e.offset;\n f.pad = e.pad;\n f.pick = e.pick;\n f.pInt = e.pInt;\n f.relativeLength = e.relativeLength;\n f.removeEvent = e.removeEvent;\n f.seriesType = g.seriesType;\n f.splat = e.splat;\n f.stableSort = e.stableSort;\n f.syncTimeout = e.syncTimeout;\n f.timeUnits = e.timeUnits;\n f.uniqueKey = e.uniqueKey;\n f.useSerialIds = e.useSerialIds;\n f.wrap = e.wrap;\n D.compose(c);\n K.compose(a);\n p.compose(b);\n q.compose(b);\n u.compose(A);\n r.compose(b);\n S.compose(k);\n return f;\n });\n l[\"masters/highcharts.src.js\"]._modules = l;\n return l[\"masters/highcharts.src.js\"];\n});","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n Data module\n\n (c) 2012-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function (a) {\n \"object\" === typeof module && module.exports ? (a[\"default\"] = a, module.exports = a) : \"function\" === typeof define && define.amd ? define(\"highcharts/modules/data\", [\"highcharts\"], function (r) {\n a(r);\n a.Highcharts = r;\n return a;\n }) : a(\"undefined\" !== typeof Highcharts ? Highcharts : void 0);\n})(function (a) {\n function r(a, c, y, r) {\n a.hasOwnProperty(c) || (a[c] = r.apply(null, y), \"function\" === typeof CustomEvent && window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: c,\n module: a[c]\n }\n })));\n }\n\n a = a ? a._modules : {};\n r(a, \"Core/HttpUtilities.js\", [a[\"Core/Globals.js\"], a[\"Core/Utilities.js\"]], function (a, c) {\n var r = a.doc,\n t = c.createElement,\n D = c.discardElement,\n u = c.merge,\n C = c.objectEach,\n G = {\n ajax: function (a) {\n var c = {\n json: \"application/json\",\n xml: \"application/xml\",\n text: \"text/plain\",\n octet: \"application/octet-stream\"\n },\n m = new XMLHttpRequest();\n if (!a.url) return !1;\n m.open((a.type || \"get\").toUpperCase(), a.url, !0);\n a.headers && a.headers[\"Content-Type\"] || m.setRequestHeader(\"Content-Type\", c[a.dataType || \"json\"] || c.text);\n C(a.headers, function (a, c) {\n m.setRequestHeader(c, a);\n });\n a.responseType && (m.responseType = a.responseType);\n\n m.onreadystatechange = function () {\n if (4 === m.readyState) {\n if (200 === m.status) {\n if (\"blob\" !== a.responseType) {\n var c = m.responseText;\n if (\"json\" === a.dataType) try {\n c = JSON.parse(c);\n } catch (z) {\n if (z instanceof Error) {\n a.error && a.error(m, z);\n return;\n }\n }\n }\n\n return a.success && a.success(c, m);\n }\n\n a.error && a.error(m, m.responseText);\n }\n };\n\n a.data && \"string\" !== typeof a.data && (a.data = JSON.stringify(a.data));\n m.send(a.data);\n },\n getJSON: function (a, c) {\n G.ajax({\n url: a,\n success: c,\n dataType: \"json\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n },\n post: function (a, c, m) {\n var y = t(\"form\", u({\n method: \"post\",\n action: a,\n enctype: \"multipart/form-data\"\n }, m), {\n display: \"none\"\n }, r.body);\n C(c, function (a, c) {\n t(\"input\", {\n type: \"hidden\",\n name: c,\n value: a\n }, void 0, y);\n });\n y.submit();\n D(y);\n }\n };\n \"\";\n return G;\n });\n r(a, \"Extensions/Data.js\", [a[\"Core/Chart/Chart.js\"], a[\"Core/Globals.js\"], a[\"Core/HttpUtilities.js\"], a[\"Core/Series/Point.js\"], a[\"Core/Series/SeriesRegistry.js\"], a[\"Core/Utilities.js\"], a[\"Core/DefaultOptions.js\"]], function (a, c, r, K, D, u, C) {\n function t(a) {\n return !(!a || !(a.rowsURL || a.csvURL || a.columnsURL));\n }\n\n var y = c.doc,\n F = r.ajax,\n m = D.seriesTypes,\n L = C.getOptions;\n c = u.addEvent;\n\n var z = u.defined,\n M = u.extend,\n N = u.fireEvent,\n H = u.isNumber,\n B = u.merge,\n O = u.objectEach,\n E = u.pick,\n P = u.splat,\n J = function () {\n function a(b, g, f) {\n void 0 === g && (g = {});\n this.rowsToColumns = a.rowsToColumns;\n this.dateFormats = {\n \"YYYY/mm/dd\": {\n regex: /^([0-9]{4})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[1], b[2] - 1, +b[3]) : NaN;\n }\n },\n \"dd/mm/YYYY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{4})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[3], b[2] - 1, +b[1]) : NaN;\n },\n alternative: \"mm/dd/YYYY\"\n },\n \"mm/dd/YYYY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{4})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[3], b[1] - 1, +b[2]) : NaN;\n }\n },\n \"dd/mm/YY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{2})$/,\n parser: function (b) {\n if (!b) return NaN;\n var d = +b[3];\n d = d > new Date().getFullYear() - 2E3 ? d + 1900 : d + 2E3;\n return Date.UTC(d, b[2] - 1, +b[1]);\n },\n alternative: \"mm/dd/YY\"\n },\n \"mm/dd/YY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{2})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[3] + 2E3, b[1] - 1, +b[2]) : NaN;\n }\n }\n };\n this.chart = f;\n this.chartOptions = g;\n this.options = b;\n this.rawColumns = [];\n this.init(b, g, f);\n }\n\n a.data = function (b, g, f) {\n void 0 === g && (g = {});\n return new a(b, g, f);\n };\n\n a.rowsToColumns = function (b) {\n var g, f;\n\n if (b) {\n var a = [];\n var d = b.length;\n\n for (g = 0; g < d; g++) {\n var k = b[g].length;\n\n for (f = 0; f < k; f++) a[f] || (a[f] = []), a[f][g] = b[g][f];\n }\n }\n\n return a;\n };\n\n a.prototype.init = function (b, g, a) {\n var f = b.decimalPoint;\n g && (this.chartOptions = g);\n a && (this.chart = a);\n \".\" !== f && \",\" !== f && (f = void 0);\n this.options = b;\n this.columns = b.columns || this.rowsToColumns(b.rows) || [];\n this.firstRowAsNames = E(b.firstRowAsNames, this.firstRowAsNames, !0);\n this.decimalRegex = f && new RegExp(\"^(-?[0-9]+)\" + f + \"([0-9]+)$\");\n void 0 !== this.liveDataTimeout && clearTimeout(this.liveDataTimeout);\n this.rawColumns = [];\n\n if (this.columns.length) {\n this.dataFound();\n var d = !t(b);\n }\n\n d || (d = this.fetchLiveData());\n d || (d = !!this.parseCSV().length);\n d || (d = !!this.parseTable().length);\n d || (d = this.parseGoogleSpreadsheet());\n !d && b.afterComplete && b.afterComplete();\n };\n\n a.prototype.getColumnDistribution = function () {\n var b = this.chartOptions,\n g = this.options,\n a = [],\n e = function (b) {\n return (m[b || \"line\"].prototype.pointArrayMap || [0]).length;\n },\n d = b && b.chart && b.chart.type,\n k = [],\n h = [];\n\n g = g && g.seriesMapping || b && b.series && b.series.map(function () {\n return {\n x: 0\n };\n }) || [];\n var x = 0,\n p;\n (b && b.series || []).forEach(function (b) {\n k.push(e(b.type || d));\n });\n g.forEach(function (b) {\n a.push(b.x || 0);\n });\n 0 === a.length && a.push(0);\n g.forEach(function (g) {\n var a = new I(),\n f = k[x] || e(d),\n l = (b && b.series || [])[x] || {},\n c = m[l.type || d || \"line\"].prototype.pointArrayMap,\n v = c || [\"y\"];\n (z(g.x) || l.isCartesian || !c) && a.addColumnReader(g.x, \"x\");\n O(g, function (b, g) {\n \"x\" !== g && a.addColumnReader(b, g);\n });\n\n for (p = 0; p < f; p++) a.hasReader(v[p]) || a.addColumnReader(void 0, v[p]);\n\n h.push(a);\n x++;\n });\n g = m[d || \"line\"].prototype.pointArrayMap;\n \"undefined\" === typeof g && (g = [\"y\"]);\n this.valueCount = {\n global: e(d),\n xColumns: a,\n individual: k,\n seriesBuilders: h,\n globalPointArrayMap: g\n };\n };\n\n a.prototype.dataFound = function () {\n this.options.switchRowsAndColumns && (this.columns = this.rowsToColumns(this.columns));\n this.getColumnDistribution();\n this.parseTypes();\n !1 !== this.parsed() && this.complete();\n };\n\n a.prototype.parseCSV = function (b) {\n function g(b, g, a, d) {\n function f(g) {\n h = b[g];\n c = b[g - 1];\n m = b[g + 1];\n }\n\n function e(b) {\n l.length < w + 1 && l.push([b]);\n l[w][l[w].length - 1] !== b && l[w].push(b);\n }\n\n function n() {\n x > t || t > p ? (++t, q = \"\") : (!isNaN(parseFloat(q)) && isFinite(q) ? (q = parseFloat(q), e(\"number\")) : isNaN(Date.parse(q)) ? e(\"string\") : (q = q.replace(/\\//g, \"-\"), e(\"date\")), k.length < w + 1 && k.push([]), a || (k[w][g] = q), q = \"\", ++w, ++t);\n }\n\n var A = 0,\n h = \"\",\n c = \"\",\n m = \"\",\n q = \"\",\n t = 0,\n w = 0;\n\n if (b.trim().length && \"#\" !== b.trim()[0]) {\n for (; A < b.length; A++) if (f(A), '\"' === h) for (f(++A); A < b.length && ('\"' !== h || '\"' === c || '\"' === m);) {\n if ('\"' !== h || '\"' === h && '\"' !== c) q += h;\n f(++A);\n } else d && d[h] ? d[h](h, q) && n() : h === v ? n() : q += h;\n\n n();\n }\n }\n\n function a(b) {\n var g = 0,\n a = 0,\n f = !1;\n b.some(function (b, d) {\n var f = !1,\n e = \"\";\n if (13 < d) return !0;\n\n for (var h = 0; h < b.length; h++) {\n d = b[h];\n var k = b[h + 1];\n var c = b[h - 1];\n if (\"#\" === d) break;\n if ('\"' === d) {\n if (f) {\n if ('\"' !== c && '\"' !== k) {\n for (; \" \" === k && h < b.length;) k = b[++h];\n\n \"undefined\" !== typeof n[k] && n[k]++;\n f = !1;\n }\n } else f = !0;\n } else \"undefined\" !== typeof n[d] ? (e = e.trim(), isNaN(Date.parse(e)) ? !isNaN(e) && isFinite(e) || n[d]++ : n[d]++, e = \"\") : e += d;\n \",\" === d && a++;\n \".\" === d && g++;\n }\n });\n f = n[\";\"] > n[\",\"] ? \";\" : \",\";\n h.decimalPoint || (h.decimalPoint = g > a ? \".\" : \",\", d.decimalRegex = new RegExp(\"^(-?[0-9]+)\" + h.decimalPoint + \"([0-9]+)$\"));\n return f;\n }\n\n function e(b, g) {\n var a = [],\n f = [],\n e = [],\n k = 0,\n n = !1,\n c;\n if (!g || g > b.length) g = b.length;\n\n for (; k < g; k++) if (\"undefined\" !== typeof b[k] && b[k] && b[k].length) {\n var l = b[k].trim().replace(/\\//g, \" \").replace(/\\-/g, \" \").replace(/\\./g, \" \").split(\" \");\n e = [\"\", \"\", \"\"];\n\n for (c = 0; c < l.length; c++) c < e.length && (l[c] = parseInt(l[c], 10), l[c] && (f[c] = !f[c] || f[c] < l[c] ? l[c] : f[c], \"undefined\" !== typeof a[c] ? a[c] !== l[c] && (a[c] = !1) : a[c] = l[c], 31 < l[c] ? e[c] = 100 > l[c] ? \"YY\" : \"YYYY\" : 12 < l[c] && 31 >= l[c] ? (e[c] = \"dd\", n = !0) : e[c].length || (e[c] = \"mm\")));\n }\n\n if (n) {\n for (c = 0; c < a.length; c++) !1 !== a[c] ? 12 < f[c] && \"YY\" !== e[c] && \"YYYY\" !== e[c] && (e[c] = \"YY\") : 12 < f[c] && \"mm\" === e[c] && (e[c] = \"dd\");\n\n 3 === e.length && \"dd\" === e[1] && \"dd\" === e[2] && (e[2] = \"YY\");\n b = e.join(\"/\");\n return (h.dateFormats || d.dateFormats)[b] ? b : (N(\"deduceDateFailed\"), \"YYYY/mm/dd\");\n }\n\n return \"YYYY/mm/dd\";\n }\n\n var d = this,\n k = this.columns = [],\n h = b || this.options,\n x = \"undefined\" !== typeof h.startColumn && h.startColumn ? h.startColumn : 0,\n p = h.endColumn || Number.MAX_VALUE,\n l = [],\n n = {\n \",\": 0,\n \";\": 0,\n \"\\t\": 0\n },\n c = h.csv;\n b = \"undefined\" !== typeof h.startRow && h.startRow ? h.startRow : 0;\n var m = h.endRow || Number.MAX_VALUE,\n q = 0;\n c && h.beforeParse && (c = h.beforeParse.call(this, c));\n\n if (c) {\n c = c.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").split(h.lineDelimiter || \"\\n\");\n if (!b || 0 > b) b = 0;\n if (!m || m >= c.length) m = c.length - 1;\n if (h.itemDelimiter) var v = h.itemDelimiter;else v = null, v = a(c);\n var t = 0;\n\n for (q = b; q <= m; q++) \"#\" === c[q][0] ? t++ : g(c[q], q - b - t);\n\n h.columnTypes && 0 !== h.columnTypes.length || !l.length || !l[0].length || \"date\" !== l[0][1] || h.dateFormat || (h.dateFormat = e(k[0]));\n this.dataFound();\n }\n\n return k;\n };\n\n a.prototype.parseTable = function () {\n var b = this.options,\n g = this.columns || [],\n a = b.startRow || 0,\n e = b.endRow || Number.MAX_VALUE,\n d = b.startColumn || 0,\n c = b.endColumn || Number.MAX_VALUE;\n b.table && (b = b.table, \"string\" === typeof b && (b = y.getElementById(b)), [].forEach.call(b.getElementsByTagName(\"tr\"), function (b, f) {\n f >= a && f <= e && [].forEach.call(b.children, function (b, e) {\n var k = g[e - d],\n h = 1;\n if ((\"TD\" === b.tagName || \"TH\" === b.tagName) && e >= d && e <= c) for (g[e - d] || (g[e - d] = []), g[e - d][f - a] = b.innerHTML; f - a >= h && void 0 === k[f - a - h];) k[f - a - h] = null, h++;\n });\n }), this.dataFound());\n return g;\n };\n\n a.prototype.fetchLiveData = function () {\n function b(g) {\n function k(c, k, l) {\n function n() {\n d && f.liveDataURL === c && (a.liveDataTimeout = setTimeout(b, x));\n }\n\n if (!c || !/^(http|\\/|\\.\\/|\\.\\.\\/)/.test(c)) return c && e.error && e.error(\"Invalid URL\"), !1;\n g && (clearTimeout(a.liveDataTimeout), f.liveDataURL = c);\n F({\n url: c,\n dataType: l || \"json\",\n success: function (b) {\n f && f.series && k(b);\n n();\n },\n error: function (b, a) {\n 3 > ++h && n();\n return e.error && e.error(a, b);\n }\n });\n return !0;\n }\n\n k(c.csvURL, function (b) {\n f.update({\n data: {\n csv: b\n }\n });\n }, \"text\") || k(c.rowsURL, function (b) {\n f.update({\n data: {\n rows: b\n }\n });\n }) || k(c.columnsURL, function (b) {\n f.update({\n data: {\n columns: b\n }\n });\n });\n }\n\n var a = this,\n f = this.chart,\n e = this.options,\n d = e.enablePolling,\n c = B(e),\n h = 0,\n x = 1E3 * (e.dataRefreshRate || 2);\n if (!t(e)) return !1;\n 1E3 > x && (x = 1E3);\n delete e.csvURL;\n delete e.rowsURL;\n delete e.columnsURL;\n b(!0);\n return t(e);\n };\n\n a.prototype.parseGoogleSpreadsheet = function () {\n function b(g) {\n var d = [\"https://sheets.googleapis.com/v4/spreadsheets\", c, \"values\", h(), \"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key=\" + f.googleAPIKey].join(\"/\");\n F({\n url: d,\n dataType: \"json\",\n success: function (d) {\n g(d);\n f.enablePolling && (a.liveDataTimeout = setTimeout(function () {\n b(g);\n }, k));\n },\n error: function (b, a) {\n return f.error && f.error(a, b);\n }\n });\n }\n\n var a = this,\n f = this.options,\n c = f.googleSpreadsheetKey,\n d = this.chart,\n k = Math.max(1E3 * (f.dataRefreshRate || 2), 4E3),\n h = function () {\n if (f.googleSpreadsheetRange) return f.googleSpreadsheetRange;\n var b = (\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".charAt(f.startColumn || 0) || \"A\") + ((f.startRow || 0) + 1),\n a = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".charAt(E(f.endColumn, -1)) || \"ZZ\";\n z(f.endRow) && (a += f.endRow + 1);\n return \"\" + b + \":\".concat(a);\n };\n\n c && (delete f.googleSpreadsheetKey, b(function (b) {\n b = b.values;\n if (!b || 0 === b.length) return !1;\n var g = b.reduce(function (b, a) {\n return Math.max(b, a.length);\n }, 0);\n b.forEach(function (b) {\n for (var a = 0; a < g; a++) \"undefined\" === typeof b[a] && (b[a] = null);\n });\n d && d.series ? d.update({\n data: {\n columns: b\n }\n }) : (a.columns = b, a.dataFound());\n }));\n return !1;\n };\n\n a.prototype.trim = function (b, a) {\n \"string\" === typeof b && (b = b.replace(/^\\s+|\\s+$/g, \"\"), a && /^[0-9\\s]+$/.test(b) && (b = b.replace(/\\s/g, \"\")), this.decimalRegex && (b = b.replace(this.decimalRegex, \"$1.$2\")));\n return b;\n };\n\n a.prototype.parseTypes = function () {\n for (var b = this.columns || [], a = b.length; a--;) this.parseColumn(b[a], a);\n };\n\n a.prototype.parseColumn = function (b, a) {\n var f = this.rawColumns,\n c = this.columns,\n d = this.firstRowAsNames,\n g = -1 !== this.valueCount.xColumns.indexOf(a),\n h = [],\n m = this.chartOptions,\n p = (this.options.columnTypes || [])[a];\n m = g && (m && m.xAxis && \"category\" === P(m.xAxis)[0].type || \"string\" === p);\n var l = z(b.name),\n n = b.length,\n t,\n r;\n\n for (f[a] || (f[a] = []); n--;) {\n var q = h[n] || b[n];\n var v = this.trim(q);\n var u = this.trim(q, !0);\n var w = parseFloat(u);\n \"undefined\" === typeof f[a][n] && (f[a][n] = v);\n m || 0 === n && d && !l ? b[n] = \"\" + v : +u === w ? (b[n] = w, 31536E6 < w && \"float\" !== p ? b.isDatetime = !0 : b.isNumeric = !0, \"undefined\" !== typeof b[n + 1] && (r = w > b[n + 1])) : (v && v.length && (t = this.parseDate(q)), g && H(t) && \"float\" !== p ? (h[n] = q, b[n] = t, b.isDatetime = !0, \"undefined\" !== typeof b[n + 1] && (q = t > b[n + 1], q !== r && \"undefined\" !== typeof r && (this.alternativeFormat ? (this.dateFormat = this.alternativeFormat, n = b.length, this.alternativeFormat = this.dateFormats[this.dateFormat].alternative) : b.unsorted = !0), r = q)) : (b[n] = \"\" === v ? null : v, 0 !== n && (b.isDatetime || b.isNumeric) && (b.mixed = !0)));\n }\n\n g && b.mixed && (c[a] = f[a]);\n if (g && r && this.options.sort) for (a = 0; a < c.length; a++) c[a].reverse(), d && c[a].unshift(c[a].pop());\n };\n\n a.prototype.parseDate = function (b) {\n var a = this.options.parseDate,\n c,\n e = this.options.dateFormat || this.dateFormat,\n d;\n if (a) var k = a(b);else if (\"string\" === typeof b) {\n if (e) (a = this.dateFormats[e]) || (a = this.dateFormats[\"YYYY/mm/dd\"]), (d = b.match(a.regex)) && (k = a.parser(d));else for (c in this.dateFormats) if (a = this.dateFormats[c], d = b.match(a.regex)) {\n this.dateFormat = c;\n this.alternativeFormat = a.alternative;\n k = a.parser(d);\n break;\n }\n d || (b.match(/:.+(GMT|UTC|[Z+-])/) && (b = b.replace(/\\s*(?:GMT|UTC)?([+-])(\\d\\d)(\\d\\d)$/, \"$1$2:$3\").replace(/(?:\\s+|GMT|UTC)([+-])/, \"$1\").replace(/(\\d)\\s*(?:GMT|UTC|Z)$/, \"$1+00:00\")), d = Date.parse(b), \"object\" === typeof d && null !== d && d.getTime ? k = d.getTime() - 6E4 * d.getTimezoneOffset() : H(d) && (k = d - 6E4 * new Date(d).getTimezoneOffset()));\n }\n return k;\n };\n\n a.prototype.getData = function () {\n if (this.columns) return this.rowsToColumns(this.columns).slice(1);\n };\n\n a.prototype.parsed = function () {\n if (this.options.parsed) return this.options.parsed.call(this, this.columns);\n };\n\n a.prototype.complete = function () {\n var b = this.columns,\n a = this.options,\n c = [],\n e,\n d,\n k;\n\n if (a.complete || a.afterComplete) {\n if (this.firstRowAsNames) for (d = 0; d < b.length; d++) {\n var h = b[d];\n z(h.name) || (h.name = E(h.shift(), \"\").toString());\n }\n h = [];\n var m = b.length;\n var p = this.valueCount.seriesBuilders;\n d = [];\n var l = [];\n\n for (k = 0; k < m; k += 1) d.push(!0);\n\n for (m = 0; m < p.length; m += 1) {\n var n = p[m].getReferencedColumnIndexes();\n\n for (k = 0; k < n.length; k += 1) d[n[k]] = !1;\n }\n\n for (k = 0; k < d.length; k += 1) d[k] && l.push(k);\n\n for (d = 0; d < this.valueCount.seriesBuilders.length; d++) p = this.valueCount.seriesBuilders[d], p.populateColumns(l) && c.push(p);\n\n for (; 0 < l.length;) {\n p = new I();\n p.addColumnReader(0, \"x\");\n d = l.indexOf(0);\n -1 !== d && l.splice(d, 1);\n\n for (d = 0; d < this.valueCount.global; d++) p.addColumnReader(void 0, this.valueCount.globalPointArrayMap[d]);\n\n p.populateColumns(l) && c.push(p);\n }\n\n 0 < c.length && 0 < c[0].readers.length && (l = b[c[0].readers[0].columnIndex], \"undefined\" !== typeof l && (l.isDatetime ? e = \"datetime\" : l.isNumeric || (e = \"category\")));\n if (\"category\" === e) for (d = 0; d < c.length; d++) for (p = c[d], l = 0; l < p.readers.length; l++) \"x\" === p.readers[l].configName && (p.readers[l].configName = \"name\");\n\n for (d = 0; d < c.length; d++) {\n p = c[d];\n l = [];\n\n for (k = 0; k < b[0].length; k++) l[k] = p.read(b, k);\n\n h[d] = {\n data: l\n };\n p.name && (h[d].name = p.name);\n \"category\" === e && (h[d].turboThreshold = 0);\n }\n\n b = {\n series: h\n };\n e && (b.xAxis = {\n type: e\n }, \"category\" === e && (b.xAxis.uniqueNames = !1));\n a.complete && a.complete(b);\n a.afterComplete && a.afterComplete(b);\n }\n };\n\n a.prototype.update = function (b, a) {\n var c = this.chart,\n e = c.options;\n b && (b.afterComplete = function (b) {\n b && (b.xAxis && c.xAxis[0] && b.xAxis.type === c.xAxis[0].options.type && delete b.xAxis, c.update(b, a, !0));\n }, B(!0, e.data, b), e.data && e.data.googleSpreadsheetKey && !b.columns && delete e.data.columns, this.init(e.data));\n };\n\n return a;\n }();\n\n c(a, \"init\", function (a) {\n var b = this,\n c = a.args[1],\n f = L().data,\n e = a.args[0] || {};\n (f || e && e.data) && !b.hasDataDef && (b.hasDataDef = !0, f = B(f, e.data), b.data = new J(M(f, {\n afterComplete: function (a) {\n var d;\n if (Object.hasOwnProperty.call(e, \"series\")) if (\"object\" === typeof e.series) for (d = Math.max(e.series.length, a && a.series ? a.series.length : 0); d--;) {\n var f = e.series[d] || {};\n e.series[d] = B(f, a && a.series ? a.series[d] : {});\n } else delete e.series;\n e = B(a, e);\n b.init(e, c);\n }\n }), e, b), a.preventDefault());\n });\n\n var I = function () {\n function a() {\n this.readers = [];\n this.pointIsArray = !0;\n }\n\n a.prototype.populateColumns = function (b) {\n var a = !0;\n this.readers.forEach(function (a) {\n \"undefined\" === typeof a.columnIndex && (a.columnIndex = b.shift());\n });\n this.readers.forEach(function (b) {\n \"undefined\" === typeof b.columnIndex && (a = !1);\n });\n return a;\n };\n\n a.prototype.read = function (b, a) {\n var c = this.pointIsArray,\n e = c ? [] : {};\n this.readers.forEach(function (d) {\n var f = b[d.columnIndex][a];\n c ? e.push(f) : 0 < d.configName.indexOf(\".\") ? K.prototype.setNestedProperty(e, f, d.configName) : e[d.configName] = f;\n });\n\n if (\"undefined\" === typeof this.name && 2 <= this.readers.length) {\n var d = this.getReferencedColumnIndexes();\n 2 <= d.length && (d.shift(), d.sort(function (b, a) {\n return b - a;\n }), this.name = b[d.shift()].name);\n }\n\n return e;\n };\n\n a.prototype.addColumnReader = function (b, a) {\n this.readers.push({\n columnIndex: b,\n configName: a\n });\n \"x\" !== a && \"y\" !== a && \"undefined\" !== typeof a && (this.pointIsArray = !1);\n };\n\n a.prototype.getReferencedColumnIndexes = function () {\n var b = [],\n a;\n\n for (a = 0; a < this.readers.length; a += 1) {\n var c = this.readers[a];\n \"undefined\" !== typeof c.columnIndex && b.push(c.columnIndex);\n }\n\n return b;\n };\n\n a.prototype.hasReader = function (b) {\n var a;\n\n for (a = 0; a < this.readers.length; a += 1) {\n var c = this.readers[a];\n if (c.configName === b) return !0;\n }\n };\n\n return a;\n }();\n\n \"\";\n return J;\n });\n r(a, \"masters/modules/data.src.js\", [a[\"Core/Globals.js\"], a[\"Core/HttpUtilities.js\"], a[\"Extensions/Data.js\"]], function (a, c, r) {\n a.ajax = c.ajax;\n a.data = r.data;\n a.getJSON = c.getJSON;\n a.post = c.post;\n a.Data = r;\n a.HttpUtilities = c;\n });\n});","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n Highcharts Drilldown module\n\n Author: Torstein Honsi\n License: www.highcharts.com/license\n\n*/\n(function (a) {\n \"object\" === typeof module && module.exports ? (a[\"default\"] = a, module.exports = a) : \"function\" === typeof define && define.amd ? define(\"highcharts/modules/drilldown\", [\"highcharts\"], function (x) {\n a(x);\n a.Highcharts = x;\n return a;\n }) : a(\"undefined\" !== typeof Highcharts ? Highcharts : void 0);\n})(function (a) {\n function x(a, w, m, q) {\n a.hasOwnProperty(w) || (a[w] = q.apply(null, m), \"function\" === typeof CustomEvent && window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: w,\n module: a[w]\n }\n })));\n }\n\n a = a ? a._modules : {};\n x(a, \"Extensions/Breadcrumbs.js\", [a[\"Core/Chart/Chart.js\"], a[\"Core/Globals.js\"], a[\"Core/DefaultOptions.js\"], a[\"Core/Utilities.js\"], a[\"Core/FormatUtilities.js\"]], function (a, w, m, q, p) {\n var x = p.format;\n p = q.addEvent;\n var C = q.objectEach,\n G = q.extend,\n z = q.fireEvent,\n A = q.merge,\n y = q.pick,\n H = q.defined,\n E = q.isString;\n G(m.defaultOptions.lang, {\n mainBreadcrumb: \"Main\"\n });\n\n m = function () {\n function a(b, d) {\n this.group = void 0;\n this.list = [];\n this.elementList = {};\n this.isDirty = !0;\n this.level = 0;\n this.options = void 0;\n d = A(b.options.drilldown && b.options.drilldown.drillUpButton, a.defaultBreadcrumbsOptions, b.options.navigation && b.options.navigation.breadcrumbs, d);\n this.chart = b;\n this.options = d || {};\n }\n\n a.prototype.updateProperties = function (b) {\n this.setList(b);\n this.setLevel();\n this.isDirty = !0;\n };\n\n a.prototype.setList = function (b) {\n this.list = b;\n };\n\n a.prototype.setLevel = function () {\n this.level = this.list.length && this.list.length - 1;\n };\n\n a.prototype.getLevel = function () {\n return this.level;\n };\n\n a.prototype.getButtonText = function (b) {\n var a = this.chart,\n e = this.options,\n h = a.options.lang,\n g = y(e.format, e.showFullPath ? \"{level.name}\" : \"\\u2190 {level.name}\");\n h = h && y(h.drillUpText, h.mainBreadcrumb);\n b = e.formatter && e.formatter(b) || x(g, {\n level: b.levelOptions\n }, a) || \"\";\n (E(b) && !b.length || \"\\u2190 \" === b) && H(h) && (b = e.showFullPath ? h : \"\\u2190 \" + h);\n return b;\n };\n\n a.prototype.redraw = function () {\n this.isDirty && this.render();\n this.group && this.group.align();\n this.isDirty = !1;\n };\n\n a.prototype.render = function () {\n var a = this.chart,\n d = this.options;\n !this.group && d && (this.group = a.renderer.g(\"breadcrumbs-group\").addClass(\"highcharts-no-tooltip highcharts-breadcrumbs\").attr({\n zIndex: d.zIndex\n }).add());\n d.showFullPath ? this.renderFullPathButtons() : this.renderSingleButton();\n this.alignBreadcrumbsGroup();\n };\n\n a.prototype.renderFullPathButtons = function () {\n this.destroySingleButton();\n this.resetElementListState();\n this.updateListElements();\n this.destroyListElements();\n };\n\n a.prototype.renderSingleButton = function () {\n var a = this.chart,\n d = this.list,\n e = this.options.buttonSpacing;\n this.destroyListElements();\n var h = this.group ? this.group.getBBox().width : e;\n d = d[d.length - 2];\n !a.drillUpButton && 0 < this.level ? a.drillUpButton = this.renderButton(d, h, e) : a.drillUpButton && (0 < this.level ? this.updateSingleButton() : this.destroySingleButton());\n };\n\n a.prototype.alignBreadcrumbsGroup = function (a) {\n if (this.group) {\n var b = this.options,\n e = b.buttonTheme,\n h = b.position,\n g = \"chart\" === b.relativeTo || \"spacingBox\" === b.relativeTo ? void 0 : \"scrollablePlotBox\",\n k = this.group.getBBox();\n b = 2 * (e.padding || 0) + b.buttonSpacing;\n h.width = k.width + b;\n h.height = k.height + b;\n k = A(h);\n a && (k.x += a);\n this.options.rtl && (k.x += h.width);\n k.y = y(k.y, this.yOffset, 0);\n this.group.align(k, !0, g);\n }\n };\n\n a.prototype.renderButton = function (a, d, e) {\n var b = this,\n g = this.chart,\n k = b.options,\n u = A(k.buttonTheme);\n d = g.renderer.button(b.getButtonText(a), d, e, function (d) {\n var e = k.events && k.events.click,\n g;\n e && (g = e.call(b, d, a));\n !1 !== g && (d.newLevel = k.showFullPath ? a.level : b.level - 1, z(b, \"up\", d));\n }, u).addClass(\"highcharts-breadcrumbs-button\").add(b.group);\n g.styledMode || d.attr(k.style);\n return d;\n };\n\n a.prototype.renderSeparator = function (a, d) {\n var b = this.chart,\n h = this.options.separator;\n a = b.renderer.label(h.text, a, d, void 0, void 0, void 0, !1).addClass(\"highcharts-breadcrumbs-separator\").add(this.group);\n b.styledMode || a.css(h.style);\n return a;\n };\n\n a.prototype.update = function (a) {\n A(!0, this.options, a);\n this.destroy();\n this.isDirty = !0;\n };\n\n a.prototype.updateSingleButton = function () {\n var a = this.chart,\n d = this.list[this.level - 1];\n a.drillUpButton && a.drillUpButton.attr({\n text: this.getButtonText(d)\n });\n };\n\n a.prototype.destroy = function () {\n this.destroySingleButton();\n this.destroyListElements(!0);\n this.group && this.group.destroy();\n this.group = void 0;\n };\n\n a.prototype.destroyListElements = function (a) {\n var b = this.elementList;\n C(b, function (d, h) {\n if (a || !b[h].updated) d = b[h], d.button && d.button.destroy(), d.separator && d.separator.destroy(), delete d.button, delete d.separator, delete b[h];\n });\n a && (this.elementList = {});\n };\n\n a.prototype.destroySingleButton = function () {\n this.chart.drillUpButton && (this.chart.drillUpButton.destroy(), this.chart.drillUpButton = void 0);\n };\n\n a.prototype.resetElementListState = function () {\n C(this.elementList, function (a) {\n a.updated = !1;\n });\n };\n\n a.prototype.updateListElements = function () {\n var a = this,\n d = a.elementList,\n e = a.options.buttonSpacing,\n h = a.list,\n g = a.options.rtl,\n u = g ? -1 : 1,\n m = function (a, b) {\n return u * a.getBBox().width + u * b;\n },\n r = a.group ? m(a.group, e) : e,\n t;\n\n h.forEach(function (b, k) {\n k = k === h.length - 1;\n\n if (d[b.level]) {\n t = d[b.level];\n var p = t.button;\n if (t.separator || k) t.separator && k && (t.separator.destroy(), delete t.separator);else {\n r += u * e;\n t.separator = a.renderSeparator(r, e);\n\n if (g) {\n var q = t.separator;\n q.translate(r - q.getBBox().width, e);\n }\n\n r += m(t.separator, e);\n }\n d[b.level].updated = !0;\n } else p = a.renderButton(b, r, e), g && p.translate(r - p.getBBox().width, e), r += m(p, e), k || (q = a.renderSeparator(r, e), g && q.translate(r - q.getBBox().width, e), r += m(q, e)), d[b.level] = {\n button: p,\n separator: q,\n updated: !0\n };\n\n p && p.setState(k ? 2 : 0);\n });\n };\n\n a.defaultBreadcrumbsOptions = {\n buttonTheme: {\n fill: \"none\",\n height: 18,\n padding: 2,\n \"stroke-width\": 0,\n zIndex: 7,\n states: {\n select: {\n fill: \"none\"\n }\n },\n style: {\n color: \"#335cad\"\n }\n },\n buttonSpacing: 5,\n floating: !1,\n format: void 0,\n relativeTo: \"plotBox\",\n rtl: !1,\n position: {\n align: \"left\",\n verticalAlign: \"top\",\n x: 0,\n y: void 0\n },\n separator: {\n text: \"/\",\n style: {\n color: \"#666666\"\n }\n },\n showFullPath: !0,\n style: {},\n useHTML: !1,\n zIndex: 7\n };\n return a;\n }();\n\n w.Breadcrumbs || (w.Breadcrumbs = m, p(a, \"getMargins\", function () {\n var a = this.breadcrumbs;\n\n if (a && !a.options.floating && a.level) {\n var b = a.options,\n d = b.buttonTheme;\n d = (d.height || 0) + 2 * (d.padding || 0) + b.buttonSpacing;\n b = b.position.verticalAlign;\n \"bottom\" === b ? (this.marginBottom = (this.marginBottom || 0) + d, a.yOffset = d) : \"middle\" !== b ? (this.plotTop += d, a.yOffset = -d) : a.yOffset = void 0;\n }\n }), p(a, \"redraw\", function () {\n this.breadcrumbs && this.breadcrumbs.redraw();\n }), p(a, \"destroy\", function () {\n this.breadcrumbs && (this.breadcrumbs.destroy(), this.breadcrumbs = void 0);\n }), p(a, \"afterShowResetZoom\", function () {\n if (this.breadcrumbs) {\n var a = this.resetZoomButton && this.resetZoomButton.getBBox(),\n b = this.breadcrumbs.options;\n a && \"right\" === b.position.align && \"plotBox\" === b.relativeTo && this.breadcrumbs.alignBreadcrumbsGroup(-a.width - b.buttonSpacing);\n }\n }), p(a, \"selection\", function (a) {\n !0 === a.resetSelection && this.breadcrumbs && this.breadcrumbs.alignBreadcrumbsGroup();\n }));\n \"\";\n return m;\n });\n x(a, \"Extensions/Drilldown.js\", [a[\"Core/Animation/AnimationUtilities.js\"], a[\"Core/Axis/Axis.js\"], a[\"Core/Chart/Chart.js\"], a[\"Core/Color/Color.js\"], a[\"Series/Column/ColumnSeries.js\"], a[\"Core/FormatUtilities.js\"], a[\"Core/Globals.js\"], a[\"Core/DefaultOptions.js\"], a[\"Core/Series/Point.js\"], a[\"Core/Series/Series.js\"], a[\"Core/Series/SeriesRegistry.js\"], a[\"Core/Renderer/SVG/SVGRenderer.js\"], a[\"Core/Axis/Tick.js\"], a[\"Core/Utilities.js\"], a[\"Extensions/Breadcrumbs.js\"]], function (a, w, m, q, p, x, C, N, z, A, y, H, E, u, b) {\n function d(a) {\n var f = e(this.chart.options.drilldown.animation);\n a && (a.hide(), J(function () {\n a && a.added && a.fadeIn();\n }, Math.max(f.duration - 50, 0)));\n }\n\n var e = a.animObject,\n h = C.noop;\n a = N.defaultOptions;\n var g = u.addEvent,\n k = u.removeEvent,\n B = u.extend,\n r = u.fireEvent,\n t = u.merge,\n G = u.objectEach,\n D = u.pick,\n J = u.syncTimeout;\n y = y.seriesTypes.pie;\n var K = 1;\n B(a.lang, {});\n a.drilldown = {\n activeAxisLabelStyle: {\n cursor: \"pointer\",\n color: \"#003399\",\n fontWeight: \"bold\",\n textDecoration: \"underline\"\n },\n activeDataLabelStyle: {\n cursor: \"pointer\",\n color: \"#003399\",\n fontWeight: \"bold\",\n textDecoration: \"underline\"\n },\n animation: {\n duration: 500\n },\n drillUpButton: {\n position: {\n align: \"right\",\n x: -10,\n y: 10\n }\n }\n };\n\n H.prototype.Element.prototype.fadeIn = function (a) {\n this.attr({\n opacity: .1,\n visibility: \"inherit\"\n }).animate({\n opacity: D(this.newOpacity, 1)\n }, a || {\n duration: 250\n });\n };\n\n m.prototype.addSeriesAsDrilldown = function (a, c) {\n this.addSingleSeriesAsDrilldown(a, c);\n this.applyDrilldown();\n };\n\n m.prototype.addSingleSeriesAsDrilldown = function (a, c) {\n var f = a.series,\n l = f.xAxis,\n b = f.yAxis,\n v = [],\n d = [],\n n;\n var F = this.styledMode ? {\n colorIndex: D(a.colorIndex, f.colorIndex)\n } : {\n color: a.color || f.color\n };\n this.drilldownLevels || (this.drilldownLevels = []);\n var e = f.options._levelNumber || 0;\n (n = this.drilldownLevels[this.drilldownLevels.length - 1]) && n.levelNumber !== e && (n = void 0);\n c = B(B({\n _ddSeriesId: K++\n }, F), c);\n var g = f.points.indexOf(a);\n f.chart.series.forEach(function (a) {\n a.xAxis !== l || a.isDrilling || (a.options._ddSeriesId = a.options._ddSeriesId || K++, a.options._colorIndex = a.userOptions._colorIndex, a.options._levelNumber = a.options._levelNumber || e, n ? (v = n.levelSeries, d = n.levelSeriesOptions) : (v.push(a), a.purgedOptions = t({\n _ddSeriesId: a.options._ddSeriesId,\n _levelNumber: a.options._levelNumber,\n selected: a.options.selected\n }, a.userOptions), d.push(a.purgedOptions)));\n });\n a = B({\n levelNumber: e,\n seriesOptions: f.options,\n seriesPurgedOptions: f.purgedOptions,\n levelSeriesOptions: d,\n levelSeries: v,\n shapeArgs: a.shapeArgs,\n bBox: a.graphic ? a.graphic.getBBox() : {},\n color: a.isNull ? q.parse(F.color).setOpacity(0).get() : F.color,\n lowerSeriesOptions: c,\n pointOptions: f.options.data[g],\n pointIndex: g,\n oldExtremes: {\n xMin: l && l.userMin,\n xMax: l && l.userMax,\n yMin: b && b.userMin,\n yMax: b && b.userMax\n },\n resetZoomButton: this.resetZoomButton\n }, F);\n this.drilldownLevels.push(a);\n l && l.names && (l.names.length = 0);\n c = a.lowerSeries = this.addSeries(c, !1);\n c.options._levelNumber = e + 1;\n l && (l.oldPos = l.pos, l.userMin = l.userMax = null, b.userMin = b.userMax = null);\n f.type === c.type && (c.animate = c.animateDrilldown || h, c.options.animation = !0);\n };\n\n m.prototype.applyDrilldown = function () {\n var a = this.drilldownLevels;\n\n if (a && 0 < a.length) {\n var c = a[a.length - 1].levelNumber;\n this.drilldownLevels.forEach(function (a) {\n a.levelNumber === c && a.levelSeries.forEach(function (a) {\n a.options && a.options._levelNumber === c && a.remove(!1);\n });\n });\n }\n\n this.resetZoomButton && (this.resetZoomButton.hide(), delete this.resetZoomButton);\n this.pointer.reset();\n r(this, \"afterDrilldown\");\n this.redraw();\n r(this, \"afterApplyDrilldown\");\n };\n\n var L = function (a) {\n var c = [];\n (a = a.drilldownLevels) && a.length && (c[0] || c.push({\n level: 0,\n levelOptions: a[0].seriesOptions\n }), a.forEach(function (a, f) {\n a.levelNumber + 1 > c[c.length - 1].level && c.push({\n level: a.levelNumber + 1,\n levelOptions: t({\n name: a.lowerSeries.name\n }, a.pointOptions)\n });\n }));\n return c;\n };\n\n m.prototype.drillUp = function () {\n if (this.drilldownLevels && 0 !== this.drilldownLevels.length) {\n r(this, \"beforeDrillUp\");\n\n for (var a = this, c = a.drilldownLevels, b = c[c.length - 1].levelNumber, l = c.length, d = a.series, v, e, n, g, h = function (c) {\n d.forEach(function (a) {\n a.options._ddSeriesId === c._ddSeriesId && (f = a);\n });\n var f = f || a.addSeries(c, !1);\n f.type === n.type && f.animateDrillupTo && (f.animate = f.animateDrillupTo);\n c === e.seriesPurgedOptions && (g = f);\n }, k = a.drilldownLevels.length; l--;) if (e = c[l], e.levelNumber === b) {\n c.pop();\n n = e.lowerSeries;\n if (!n.chart) for (v = d.length; v--;) if (d[v].options.id === e.lowerSeriesOptions.id && d[v].options._levelNumber === b + 1) {\n n = d[v];\n break;\n }\n n.xData = [];\n n.xAxis && n.xAxis.names && (0 === k || l === k) && (n.xAxis.names.length = 0);\n e.levelSeriesOptions.forEach(h);\n r(a, \"drillup\", {\n seriesOptions: e.seriesPurgedOptions || e.seriesOptions\n });\n g.type === n.type && (g.drilldownLevel = e, g.options.animation = a.options.drilldown.animation, n.animateDrillupFrom && n.chart && n.animateDrillupFrom(e));\n g.options._levelNumber = b;\n n.remove(!1);\n g.xAxis && (v = e.oldExtremes, g.xAxis.setExtremes(v.xMin, v.xMax, !1), g.yAxis.setExtremes(v.yMin, v.yMax, !1));\n e.resetZoomButton && (a.resetZoomButton = e.resetZoomButton);\n }\n\n r(a, \"afterDrillUp\");\n this.redraw();\n this.ddDupes && (this.ddDupes.length = 0);\n r(a, \"drillupall\");\n }\n };\n\n g(m, \"afterInit\", function () {\n var a = this;\n a.drilldown = {\n chart: a,\n fadeInGroup: d,\n update: function (c, f) {\n t(!0, a.options.drilldown, c);\n D(f, !0) && a.redraw();\n }\n };\n });\n g(m, \"render\", function () {\n (this.xAxis || []).forEach(function (a) {\n a.ddPoints = {};\n a.series.forEach(function (c) {\n var f,\n b = c.xData || [],\n d = c.points;\n\n for (f = 0; f < b.length; f++) {\n var e = c.options.data[f];\n \"number\" !== typeof e && (e = c.pointClass.prototype.optionsToObject.call({\n series: c\n }, e), e.drilldown && (a.ddPoints[b[f]] || (a.ddPoints[b[f]] = []), e = f - (c.cropStart || 0), a.ddPoints[b[f]].push(d && 0 <= e && e < d.length ? d[e] : !0)));\n }\n });\n G(a.ticks, E.prototype.drillable);\n });\n });\n g(C.Breadcrumbs, \"up\", function (a) {\n var c = this.chart;\n a = this.getLevel() - a.newLevel;\n\n for (var f = 0; f < a; f++) c.drillUp();\n });\n g(m, \"afterDrilldown\", function () {\n var a = this.options.drilldown;\n a = a && a.breadcrumbs;\n this.breadcrumbs || (this.breadcrumbs = new b(this, a));\n this.breadcrumbs.updateProperties(L(this));\n });\n g(m, \"afterDrillUp\", function () {\n this.breadcrumbs && this.breadcrumbs.updateProperties(L(this));\n });\n g(m, \"update\", function (a) {\n var c = this.breadcrumbs,\n b = a.options.drilldown && a.options.drilldown.breadcrumbs;\n c && b && c.update(a.options.drilldown.breadcrumbs);\n });\n\n p.prototype.animateDrillupTo = function (a) {\n if (!a) {\n var c = this,\n b = c.drilldownLevel;\n this.points.forEach(function (a) {\n var c = a.dataLabel;\n a.graphic && a.graphic.hide();\n c && (c.hidden = \"hidden\" === c.attr(\"visibility\"), c.hidden || (c.hide(), a.connector && a.connector.hide()));\n });\n J(function () {\n if (c.points) {\n var a = [];\n c.data.forEach(function (c) {\n a.push(c);\n });\n c.nodes && (a = a.concat(c.nodes));\n a.forEach(function (a, c) {\n c = c === (b && b.pointIndex) ? \"show\" : \"fadeIn\";\n var f = \"show\" === c ? !0 : void 0,\n d = a.dataLabel;\n if (a.graphic) a.graphic[c](f);\n d && !d.hidden && (d.fadeIn(), a.connector && a.connector.fadeIn());\n });\n }\n }, Math.max(this.chart.options.drilldown.animation.duration - 50, 0));\n delete this.animate;\n }\n };\n\n p.prototype.animateDrilldown = function (a) {\n var c = this,\n b = this.chart,\n f = b.drilldownLevels,\n d,\n g = e(b.options.drilldown.animation),\n h = this.xAxis,\n n = b.styledMode;\n a || (f.forEach(function (a) {\n c.options._ddSeriesId === a.lowerSeriesOptions._ddSeriesId && (d = a.shapeArgs, n || (d.fill = a.color));\n }), d.x += D(h.oldPos, h.pos) - h.pos, this.points.forEach(function (a) {\n var b = a.shapeArgs;\n n || (b.fill = a.color);\n a.graphic && a.graphic.attr(d).animate(B(a.shapeArgs, {\n fill: a.color || c.color\n }), g);\n }), b.drilldown && b.drilldown.fadeInGroup(this.dataLabelsGroup), delete this.animate);\n };\n\n p.prototype.animateDrillupFrom = function (a) {\n var c = e(this.chart.options.drilldown.animation),\n b = this.group,\n d = b !== this.chart.columnGroup,\n f = this;\n f.trackerGroups.forEach(function (a) {\n if (f[a]) f[a].on(\"mouseover\");\n });\n d && delete this.group;\n this.points.forEach(function (e) {\n var g = e.graphic,\n l = a.shapeArgs,\n h = function () {\n g.destroy();\n b && d && (b = b.destroy());\n };\n\n g && l && (delete e.graphic, f.chart.styledMode || (l.fill = a.color), c.duration ? g.animate(l, t(c, {\n complete: h\n })) : (g.attr(l), h()));\n });\n };\n\n y && B(y.prototype, {\n animateDrillupTo: p.prototype.animateDrillupTo,\n animateDrillupFrom: p.prototype.animateDrillupFrom,\n animateDrilldown: function (a) {\n var c = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1],\n b = this.chart.options.drilldown.animation;\n this.is(\"item\") && (b.duration = 0);\n\n if (this.center) {\n var d = c.shapeArgs,\n f = d.start,\n e = (d.end - f) / this.points.length,\n g = this.chart.styledMode;\n a || (this.points.forEach(function (a, l) {\n var h = a.shapeArgs;\n g || (d.fill = c.color, h.fill = a.color);\n if (a.graphic) a.graphic.attr(t(d, {\n start: f + l * e,\n end: f + (l + 1) * e\n }))[b ? \"animate\" : \"attr\"](h, b);\n }), this.chart.drilldown && this.chart.drilldown.fadeInGroup(this.dataLabelsGroup), delete this.animate);\n }\n }\n });\n\n z.prototype.doDrilldown = function () {\n this.runDrilldown();\n };\n\n z.prototype.runDrilldown = function (a, c, b) {\n var d = this.series.chart,\n f = d.options.drilldown,\n e = (f.series || []).length;\n d.ddDupes || (d.ddDupes = []);\n\n for (; e-- && !g;) if (f.series[e].id === this.drilldown && -1 === d.ddDupes.indexOf(this.drilldown)) {\n var g = f.series[e];\n d.ddDupes.push(this.drilldown);\n }\n\n r(d, \"drilldown\", {\n point: this,\n seriesOptions: g,\n category: c,\n originalEvent: b,\n points: \"undefined\" !== typeof c && this.series.xAxis.getDDPoints(c).slice(0)\n }, function (c) {\n var b = c.point.series && c.point.series.chart,\n d = c.seriesOptions;\n b && d && (a ? b.addSingleSeriesAsDrilldown(c.point, d) : b.addSeriesAsDrilldown(c.point, d));\n });\n };\n\n w.prototype.drilldownCategory = function (a, c) {\n this.getDDPoints(a).forEach(function (b) {\n b && b.series && b.series.visible && b.runDrilldown && b.runDrilldown(!0, a, c);\n });\n this.chart.applyDrilldown();\n };\n\n w.prototype.getDDPoints = function (a) {\n return this.ddPoints && this.ddPoints[a] || [];\n };\n\n E.prototype.drillable = function () {\n var a = this.pos,\n c = this.label,\n b = this.axis,\n d = \"xAxis\" === b.coll && b.getDDPoints,\n e = d && b.getDDPoints(a),\n h = b.chart.styledMode;\n d && (c && e && e.length ? (c.drillable = !0, c.basicStyles || h || (c.basicStyles = t(c.styles)), c.addClass(\"highcharts-drilldown-axis-label\"), c.removeOnDrillableClick && k(c.element, \"click\"), c.removeOnDrillableClick = g(c.element, \"click\", function (c) {\n c.preventDefault();\n b.drilldownCategory(a, c);\n }), h || c.css(b.chart.options.drilldown.activeAxisLabelStyle)) : c && c.drillable && c.removeOnDrillableClick && (h || (c.styles = {}, c.css(c.basicStyles)), c.removeOnDrillableClick(), c.removeClass(\"highcharts-drilldown-axis-label\")));\n };\n\n g(z, \"afterInit\", function () {\n this.drilldown && !this.unbindDrilldownClick && (this.unbindDrilldownClick = g(this, \"click\", M));\n return this;\n });\n g(z, \"update\", function (a) {\n a = a.options || {};\n a.drilldown && !this.unbindDrilldownClick ? this.unbindDrilldownClick = g(this, \"click\", M) : !a.drilldown && void 0 !== a.drilldown && this.unbindDrilldownClick && (this.unbindDrilldownClick = this.unbindDrilldownClick());\n });\n\n var M = function (a) {\n var c = this.series;\n c.xAxis && !1 === c.chart.options.drilldown.allowPointDrilldown ? c.xAxis.drilldownCategory(this.x, a) : this.runDrilldown(void 0, void 0, a);\n };\n\n g(A, \"afterDrawDataLabels\", function () {\n var a = this.chart.options.drilldown.activeDataLabelStyle,\n c = this.chart.renderer,\n b = this.chart.styledMode;\n this.points.forEach(function (d) {\n var e = d.options.dataLabels,\n f = D(d.dlOptions, e && e.style, {});\n d.drilldown && d.dataLabel && (\"contrast\" !== a.color || b || (f.color = c.getContrast(d.color || this.color)), e && e.color && (f.color = e.color), d.dataLabel.addClass(\"highcharts-drilldown-data-label\"), b || d.dataLabel.css(a).css(f));\n }, this);\n });\n\n var I = function (a, b, d, e) {\n a[d ? \"addClass\" : \"removeClass\"](\"highcharts-drilldown-point\");\n e || a.css({\n cursor: b\n });\n };\n\n g(A, \"afterDrawTracker\", function () {\n var a = this.chart.styledMode;\n this.points.forEach(function (b) {\n b.drilldown && b.graphic && I(b.graphic, \"pointer\", !0, a);\n });\n });\n g(z, \"afterSetState\", function () {\n var a = this.series.chart.styledMode;\n this.drilldown && this.series.halo && \"hover\" === this.state ? I(this.series.halo, \"pointer\", !0, a) : this.series.halo && I(this.series.halo, \"auto\", !1, a);\n });\n g(m, \"drillup\", function () {\n this.resetZoomButton && (this.resetZoomButton = this.resetZoomButton.destroy());\n });\n g(m, \"drillupall\", function () {\n this.resetZoomButton && this.showResetZoom();\n });\n });\n x(a, \"masters/modules/drilldown.src.js\", [], function () {});\n});","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function (elem) {\n return elem === docElem;\n },\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var siblings = function (n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n promise.promise(deferred); // Call given func if any\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function () {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = typeof value; // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function (value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n callback = callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"