{"version":3,"file":"static/js/main.707bb7ab.js","mappings":"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","sources":["../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Email.js","../node_modules/@mui/icons-material/Event.js","../node_modules/@mui/icons-material/ExpandMore.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/@mui/icons-material/LocationCity.js","../node_modules/@mui/icons-material/LocationOn.js","../node_modules/@mui/icons-material/Menu.js","../node_modules/@mui/icons-material/People.js","../node_modules/@mui/icons-material/Phone.js","../node_modules/@mui/icons-material/Send.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/debounce.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/classnames/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/countup.js/dist/countUp.min.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-countup/build/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/jss/node_modules/is-in-browser/dist/module.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@mui/styles/mergeClasses/mergeClasses.js","../node_modules/@mui/styles/makeStyles/multiKeyStore.js","../node_modules/@mui/private-theming/ThemeProvider/nested.js","../node_modules/@mui/styles/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/node_modules/is-in-browser/dist/module.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@mui/styles/StylesProvider/StylesProvider.js","../node_modules/@mui/styles/jssPreset/jssPreset.js","../node_modules/@mui/styles/makeStyles/indexCounter.js","../node_modules/@mui/styles/propsToClassKey/propsToClassKey.js","../node_modules/@mui/styles/getStylesCreator/getStylesCreator.js","../node_modules/@mui/styles/getStylesCreator/noopTheme.js","../node_modules/@mui/styles/makeStyles/makeStyles.js","components/sections/utils.ts","../node_modules/@mui/material/useScrollTrigger/useScrollTrigger.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Zoom/Zoom.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/CssBaseline/CssBaseline.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@mui/base/ModalUnstyled/ModalManager.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/base/FocusTrap/FocusTrap.js","../node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","../node_modules/@mui/material/AppBar/appBarClasses.js","../node_modules/@mui/material/AppBar/AppBar.js","../node_modules/@mui/material/Toolbar/toolbarClasses.js","../node_modules/@mui/material/Toolbar/Toolbar.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/material/Fab/fabClasses.js","../node_modules/@mui/material/Fab/Fab.js","components/sections/Navbar.tsx","components/images/newSplashScreen.svg","components/images/img2_new.svg","components/sections/Phone.tsx","../node_modules/@mui/material/Grow/Grow.js","components/sections/FadeIn.tsx","components/images/snap.svg","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/@mui/system/esm/styled.js","../node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/material/Container/Container.js","components/images/playstore.svg","components/images/appstore.svg","components/images/stethoscope.svg","components/images/review.svg","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","components/sections/Download.tsx","components/sections/Frame.tsx","components/images/ai.svg","components/images/control.svg","components/images/nintyfive.svg","components/sections/Start.tsx","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@react-spring/rafz/dist/react-spring-rafz.esm.js","../node_modules/@react-spring/shared/dist/react-spring-shared.esm.js","../node_modules/@react-spring/animated/dist/react-spring-animated.esm.js","../node_modules/@react-spring/core/dist/react-spring-core.esm.js","../node_modules/@react-spring/web/dist/react-spring-web.esm.js","components/images/quote.svg","components/sections/Slide.tsx","components/sections/VerticalCarousel.tsx","components/sections/Slider.tsx","components/sections/Testimonial.tsx","components/images/instagram-icon.svg","components/images/facebook-icon.svg","components/images/linkedin-icon.svg","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/ListItemText/ListItemText.js","components/sections/Footer2.tsx","components/sections/People.tsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.ts","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.ts","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.bubble.js","../node_modules/chart.js/src/controllers/controller.doughnut.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/controllers/controller.polarArea.js","../node_modules/chart.js/src/controllers/controller.pie.js","../node_modules/chart.js/src/controllers/controller.radar.js","../node_modules/chart.js/src/controllers/controller.scatter.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/elements/element.arc.ts","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.filler/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.title.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/chart.js/src/scales/scale.timeseries.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","../node_modules/@mui/system/esm/createBox.js","components/images/consult.svg","../node_modules/@mui/material/Box/Box.js","components/images/quiz.svg","components/images/search.svg","components/images/type.svg","context/ModelContext/modelContext.tsx","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/ProgressBar.js","components/sections/feat.jsx","components/AdsComponent.js","components/AdsComponent3.jsx","components/pages/Home.tsx","components/AdsComponent2.jsx","components/pages/About.tsx","../node_modules/@mui/material/internal/svg-icons/Person.js","../node_modules/@mui/material/Avatar/avatarClasses.js","../node_modules/@mui/material/Avatar/Avatar.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","components/sections/Number.tsx","components/pages/Careers.tsx","components/sections/Contact.tsx","components/pages/ContactPage.tsx","../node_modules/@mui/material/styles/adaptV4Theme.js","../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","../node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","components/pages/FAQs.tsx","components/pages/Policy.tsx","../node_modules/@mui/material/CardMedia/cardMediaClasses.js","../node_modules/@mui/material/CardMedia/CardMedia.js","../node_modules/@mui/material/CardContent/cardContentClasses.js","../node_modules/@mui/material/CardContent/CardContent.js","components/images/interns.svg","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/Card.js","components/pages/CallForInternshipPage.tsx","components/pages/InternRegistrationForm.tsx","components/sections/BlogInfoSection.tsx","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","components/sections/BlogItem.tsx","metadata/blogdata.js","components/pages/Blogs.tsx","components/sections/BlogContent.tsx","components/pages/Terms.tsx","components/pages/Refund.tsx","App.tsx","serviceWorker.ts","context/ModelContext/ModelState.tsx","index.tsx"],"sourcesContent":["/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z\"\n}), 'Email');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Event');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"\n}), 'KeyboardArrowUp');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\n}), 'LocationCity');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"\n}), 'LocationOn');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n}), 'Menu');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\"\n}), 'People');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"\n}), 'Phone');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z\"\n}), 'Send');\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport { deepmerge } from '@mui/utils';\nimport { darken, getContrastRatio, lighten } from '@mui/system';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport { deepmerge } from '@mui/utils';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport { createTheme as systemCreateTheme, unstable_defaultSxConfig as defaultSxConfig, unstable_styleFunctionSx as styleFunctionSx } from '@mui/system';\nimport generateUtilityClass from '../generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","import createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","import { createStyled, shouldForwardProp } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport const rootShouldForwardProp = prop => shouldForwardProp(prop) && prop !== 'classes';\nexport const slotShouldForwardProp = shouldForwardProp;\nconst styled = createStyled({\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import { useThemeProps as systemUseThemeProps } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme\n });\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$transitions2$d, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette$ownerState$c2, _palette2, _palette2$action, _palette3, _palette3$action;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null ? void 0 : (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null ? void 0 : (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null ? void 0 : (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null ? void 0 : (_palette$ownerState$c2 = _palette[ownerState.color]) == null ? void 0 : _palette$ownerState$c2.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null ? void 0 : (_palette2$action = _palette2.action) == null ? void 0 : _palette2$action.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null ? void 0 : (_palette3$action = _palette3.action) == null ? void 0 : _palette3$action.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, {\n ownerState: ownerState,\n children: [children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_useId as useId } from '@mui/utils';\nexport default useId;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","import { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nlet hadFocusVisibleRecentlyTimeout;\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {\n hadFocusVisibleRecently = false;\n }, 100);\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","import { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","/**\n * @mui/styled-engine v5.11.8\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\n\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return Math.min(Math.max(min, value), max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return private_safeEmphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nfunction isEmpty(string) {\n return string.length === 0;\n}\n\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created.\n */\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"],\n _excluded2 = [\"theme\"],\n _excluded3 = [\"theme\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { getDisplayName } from '@mui/utils';\nimport createTheme from './createTheme';\nimport propsToClassKey from './propsToClassKey';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\nconst getStyleOverrides = (name, theme) => {\n if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {\n return theme.components[name].styleOverrides;\n }\n return null;\n};\nconst getVariantStyles = (name, theme) => {\n let variants = [];\n if (theme && theme.components && theme.components[name] && theme.components[name].variants) {\n variants = theme.components[name].variants;\n }\n const variantsStyles = {};\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n return variantsStyles;\n};\nconst variantsResolver = (props, styles, theme, name) => {\n var _theme$components, _theme$components$nam;\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n const themeVariants = theme == null ? void 0 : (_theme$components = theme.components) == null ? void 0 : (_theme$components$nam = _theme$components[name]) == null ? void 0 : _theme$components$nam.variants;\n if (themeVariants) {\n themeVariants.forEach(themeVariant => {\n let isMatch = true;\n Object.keys(themeVariant.props).forEach(key => {\n if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) {\n isMatch = false;\n }\n });\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(themeVariant.props)]);\n }\n });\n }\n return variantsStyles;\n};\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nexport default function createStyled(input = {}) {\n const {\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return styleFunctionSx(_extends({}, props, {\n theme\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n overridesResolver\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n if (componentSlot === 'Root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const muiStyledResolver = (styleArg, ...expressions) => {\n const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? _ref => {\n let {\n theme: themeInput\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded2);\n return stylesArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n } : stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n const styleOverrides = getStyleOverrides(componentName, theme);\n if (styleOverrides) {\n const resolvedStyleOverrides = {};\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {\n theme\n })) : slotStyle;\n });\n return overridesResolver(props, resolvedStyleOverrides);\n }\n return null;\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n } else if (typeof styleArg === 'function' &&\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n styleArg.__emotion_real !== styleArg) {\n // If the type is function, we need to define the default theme.\n transformedStyleArg = _ref2 => {\n let {\n theme: themeInput\n } = _ref2,\n other = _objectWithoutPropertiesLoose(_ref2, _excluded3);\n return styleArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n };\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${componentSlot || ''}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","import { createUnarySpacing } from '../spacing';\n/* tslint:enable:unified-signatures */\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { deepmerge } from '@mui/utils';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\n\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nexport const border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport const borderTopColor = style({\n prop: 'borderTopColor',\n themeKey: 'palette'\n});\nexport const borderRightColor = style({\n prop: 'borderRightColor',\n themeKey: 'palette'\n});\nexport const borderBottomColor = style({\n prop: 'borderBottomColor',\n themeKey: 'palette'\n});\nexport const borderLeftColor = style({\n prop: 'borderLeftColor',\n themeKey: 'palette'\n});\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme$breakpoi, _props$theme$breakpoi2;\n const breakpoint = ((_props$theme = props.theme) == null ? void 0 : (_props$theme$breakpoi = _props$theme.breakpoints) == null ? void 0 : (_props$theme$breakpoi2 = _props$theme$breakpoi.values) == null ? void 0 : _props$theme$breakpoi2[propValue]) || breakpointsValues[propValue];\n return {\n maxWidth: breakpoint || sizingTransform(propValue)\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","import { useTheme as muiUseTheme } from '@mui/private-theming';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = muiUseTheme();\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","import createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","import getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme\n}) {\n const theme = useTheme(defaultTheme);\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","import { internal_resolveProps as resolveProps } from '@mui/utils';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"./formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","export default function composeClasses(slots, getUtilityClass, classes) {\n const output = {};\n Object.keys(slots).forEach(\n // `Objet.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n acc.push(getUtilityClass(key));\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function isPlainObject(item) {\n return item !== null && typeof item === 'object' && item.constructor === Object;\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\nconst globalStateClassesMapping = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClassesMapping[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","import * as React from 'react';\nimport useEnhancedEffect from './useEnhancedEffect';\n\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n */\nexport default function useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) =>\n // @ts-expect-error hide `this`\n // tslint:disable-next-line:ban-comma-operator\n (0, ref.current)(...args), []);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","import * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ts.endVal;s.frameVal=n?s.endVal:s.frameVal,s.frameVal=Number(s.frameVal.toFixed(s.options.decimalPlaces)),s.printValue(s.frameVal),i1?s.options.decimal+o[1]:\"\",s.options.useGrouping){e=\"\";for(var l=3,h=0,u=0,p=n.length;uwindow.scrollY&&t.paused?(t.paused=!1,setTimeout(function(){return t.start()},t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>a||s>i)&&!t.paused&&t.reset()}},t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);this.el&&(\"INPUT\"===this.el.tagName?this.el.value=i:\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i)},t.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();export{CountUp};","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\r\n})(this, (function () { 'use strict';\r\n\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n var locationHref = '';\r\n var _useWebWorker = false;\r\n var initialDefaultFrame = -999999;\r\n\r\n var setWebWorker = function setWebWorker(flag) {\r\n _useWebWorker = !!flag;\r\n };\r\n\r\n var getWebWorker = function getWebWorker() {\r\n return _useWebWorker;\r\n };\r\n\r\n var setLocationHref = function setLocationHref(value) {\r\n locationHref = value;\r\n };\r\n\r\n var getLocationHref = function getLocationHref() {\r\n return locationHref;\r\n };\r\n\r\n function createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n }\r\n\r\n function extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n }\r\n\r\n function getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n }\r\n\r\n function createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n }\r\n\r\n // import Howl from '../../3rd_party/howler';\r\n var audioControllerFactory = function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function addAudio(audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function pause() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function resume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function setRate(rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function createAudio(assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n }\r\n\r\n if (window.Howl) {\r\n return new window.Howl({\r\n src: [assetPath]\r\n });\r\n }\r\n\r\n return {\r\n isPlaying: false,\r\n play: function play() {\r\n this.isPlaying = true;\r\n },\r\n seek: function seek() {\r\n this.isPlaying = false;\r\n },\r\n playing: function playing() {},\r\n rate: function rate() {},\r\n setVolume: function setVolume() {}\r\n };\r\n },\r\n setAudioFactory: function setAudioFactory(audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function setVolume(value) {\r\n this._volume = value;\r\n\r\n this._updateVolume();\r\n },\r\n mute: function mute() {\r\n this._isMuted = true;\r\n\r\n this._updateVolume();\r\n },\r\n unmute: function unmute() {\r\n this._isMuted = false;\r\n\r\n this._updateVolume();\r\n },\r\n getVolume: function getVolume() {\r\n return this._volume;\r\n },\r\n _updateVolume: function _updateVolume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n }\r\n };\r\n return function () {\r\n return new AudioController();\r\n };\r\n }();\r\n\r\n var createTypedArray = function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n }\r\n\r\n if (type === 'int16') {\r\n return new Int16Array(len);\r\n }\r\n\r\n if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n\r\n return createRegularArray(type, len);\r\n }\r\n\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n\r\n return createRegularArray;\r\n }();\r\n\r\n function createSizedArray(len) {\r\n return Array.apply(null, {\r\n length: len\r\n });\r\n }\r\n\r\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\r\n var subframeEnabled = true;\r\n var expressionsPlugin = null;\r\n var expressionsInterfaces = null;\r\n var idPrefix$1 = '';\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n var _shouldRoundValues = false;\r\n var bmPow = Math.pow;\r\n var bmSqrt = Math.sqrt;\r\n var bmFloor = Math.floor;\r\n var bmMax = Math.max;\r\n var bmMin = Math.min;\r\n var BMMath = {};\r\n\r\n (function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n })();\r\n\r\n function ProjectInterface$1() {\r\n return {};\r\n }\r\n\r\n BMMath.random = Math.random;\r\n\r\n BMMath.abs = function (val) {\r\n var tOfVal = _typeof$6(val);\r\n\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n\r\n return absArr;\r\n }\r\n\r\n return Math.abs(val);\r\n };\r\n\r\n var defaultCurveSegments = 150;\r\n var degToRads = Math.PI / 180;\r\n var roundCorner = 0.5519;\r\n\r\n function roundValues(flag) {\r\n _shouldRoundValues = !!flag;\r\n }\r\n\r\n function bmRnd(value) {\r\n if (_shouldRoundValues) {\r\n return Math.round(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n }\r\n\r\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n }\r\n\r\n function BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n }\r\n\r\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n }\r\n\r\n function BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n }\r\n\r\n function BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n }\r\n\r\n var createElementID = function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix$1 + '__lottie_element_' + _count;\r\n };\r\n }();\r\n\r\n function HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [r, g, b];\r\n }\r\n\r\n function RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = max === 0 ? 0 : d / max;\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min:\r\n h = 0;\r\n break;\r\n\r\n case r:\r\n h = g - b + d * (g < b ? 6 : 0);\r\n h /= 6 * d;\r\n break;\r\n\r\n case g:\r\n h = b - r + d * 2;\r\n h /= 6 * d;\r\n break;\r\n\r\n case b:\r\n h = r - g + d * 4;\r\n h /= 6 * d;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [h, s, v];\r\n }\r\n\r\n function addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n var rgbToHex = function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n }();\r\n\r\n var setSubframeEnabled = function setSubframeEnabled(flag) {\r\n subframeEnabled = !!flag;\r\n };\r\n\r\n var getSubframeEnabled = function getSubframeEnabled() {\r\n return subframeEnabled;\r\n };\r\n\r\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\r\n expressionsPlugin = value;\r\n };\r\n\r\n var getExpressionsPlugin = function getExpressionsPlugin() {\r\n return expressionsPlugin;\r\n };\r\n\r\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\r\n expressionsInterfaces = value;\r\n };\r\n\r\n var getExpressionInterfaces = function getExpressionInterfaces() {\r\n return expressionsInterfaces;\r\n };\r\n\r\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\r\n defaultCurveSegments = value;\r\n };\r\n\r\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\r\n return defaultCurveSegments;\r\n };\r\n\r\n var setIdPrefix = function setIdPrefix(value) {\r\n idPrefix$1 = value;\r\n };\r\n\r\n var getIdPrefix = function getIdPrefix() {\r\n return idPrefix$1;\r\n };\r\n\r\n function createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n }\r\n\r\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\r\n\r\n var dataManager = function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function onmessage() {},\r\n postMessage: function postMessage(path) {\r\n workerFn({\r\n data: path\r\n });\r\n }\r\n };\r\n var _workerSelf = {\r\n postMessage: function postMessage(data) {\r\n workerProxy.onmessage({\r\n data: data\r\n });\r\n }\r\n };\r\n\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && getWebWorker()) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\r\n type: 'text/javascript'\r\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n function dataFunctionManager() {\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if ('ks' in layerData && !layerData.completed) {\r\n layerData.completed = true;\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function completeChars(chars, assets) {\r\n if (chars) {\r\n var i = 0;\r\n var len = chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (chars[i].t === 1) {\r\n // var compData = findComp(chars[i].data.refId, assets);\r\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\r\n // chars[i].data.op = 99999;\r\n // chars[i].data.st = 0;\r\n // chars[i].data.sr = 1;\r\n // chars[i].w = compData.w;\r\n // chars[i].data.ks = {\r\n // a: { k: [0, 0, 0], a: 0 },\r\n // p: { k: [0, -compData.h, 0], a: 0 },\r\n // r: { k: 0, a: 0 },\r\n // s: { k: [100, 100], a: 0 },\r\n // o: { k: 100, a: 0 },\r\n // };\r\n\r\n completeLayers(chars[i].data.layers, assets);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findComp(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n return comps[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var comp = findComp(id, comps);\r\n\r\n if (comp) {\r\n if (!comp.layers.__used) {\r\n comp.layers.__used = true;\r\n return comp.layers;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(comp.layers));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var checkText = function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [{\r\n s: documentData,\r\n t: 0\r\n }]\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkChars = function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var charData = animationData.chars[i];\r\n\r\n if (charData.data && charData.data.shapes) {\r\n completeShapes(charData.data.shapes);\r\n charData.data.ip = 0;\r\n charData.data.op = 99999;\r\n charData.data.st = 0;\r\n charData.data.sr = 1;\r\n charData.data.ks = {\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n }\r\n };\r\n\r\n if (!animationData.chars[i].t) {\r\n charData.data.shapes.push({\r\n ty: 'no'\r\n });\r\n charData.data.shapes[0].it.push({\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n },\r\n sk: {\r\n k: 0,\r\n a: 0\r\n },\r\n sa: {\r\n k: 0,\r\n a: 0\r\n },\r\n ty: 'tr'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkPathProperties = function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a\r\n };\r\n }\r\n\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p\r\n };\r\n }\r\n\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkColors = function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkShapes = function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n completeChars(animationData.chars, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n return moduleOb;\r\n }\r\n\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n }\r\n\r\n if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\r\n\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), path, true);\r\n } catch (error) {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\r\n }\r\n\r\n xhr.send();\r\n }\r\n\r\n return {\r\n load: loadAsset\r\n };\r\n }();\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n\r\n _workerSelf.dataManager.completeData(animation);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success'\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation\r\n };\r\n }();\r\n\r\n var ImagePreloader = function () {\r\n var proxyImage = function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }();\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n\r\n clearInterval(intervalId);\r\n }\r\n\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType\r\n };\r\n return ImagePreloaderFactory;\r\n }();\r\n\r\n function BaseEvent() {}\r\n\r\n BaseEvent.prototype = {\r\n triggerEvent: function triggerEvent(eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function addEventListener(eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function removeEventListener(eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n\r\n i -= 1;\r\n len -= 1;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var markerParser = function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr\r\n };\r\n\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i].cm\r\n };\r\n }\r\n }\r\n\r\n markers.push(markerData);\r\n }\r\n\r\n return markers;\r\n };\r\n }();\r\n\r\n var ProjectInterface = function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n\r\n return this.compositions[i].compInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n return _thisProjectFunction;\r\n };\r\n }();\r\n\r\n var renderers = {};\r\n\r\n var registerRenderer = function registerRenderer(key, value) {\r\n renderers[key] = value;\r\n };\r\n\r\n function getRenderer(key) {\r\n return renderers[key];\r\n }\r\n\r\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\r\n\r\n var AnimationItem = function AnimationItem() {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = getSubframeEnabled();\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\r\n };\r\n\r\n extendPrototype([BaseEvent], AnimationItem);\r\n\r\n AnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n\r\n var animType = 'svg';\r\n\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n\r\n var RendererClass = getRenderer(animType);\r\n this.renderer = new RendererClass(this, params.rendererSettings);\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n\r\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n };\r\n\r\n AnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(data, this.configAnimation);\r\n };\r\n\r\n AnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (_typeof$4(animationData) !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\r\n\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\r\n params.autoplay = autoplay !== 'false';\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n\r\n this.setParams(params);\r\n };\r\n\r\n AnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n\r\n if (data.assets) {\r\n len = data.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\r\n };\r\n\r\n AnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n };\r\n\r\n AnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n\r\n this.renderer.configAnimation(animData);\r\n\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\r\n this.isLoaded = true;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resize = function (width, height) {\r\n // Adding this validation for backwards compatibility in case an event object was being passed down\r\n var _width = typeof width === 'number' ? width : undefined;\r\n\r\n var _height = typeof height === 'number' ? height : undefined;\r\n\r\n this.renderer.updateContainerSize(_width, _height);\r\n };\r\n\r\n AnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n };\r\n\r\n AnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n };\r\n\r\n AnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.trigger('_pause');\r\n this.audioController.resume();\r\n\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this.trigger('_play');\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n };\r\n\r\n AnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n\r\n this.pause();\r\n };\r\n\r\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n\r\n this.play();\r\n };\r\n\r\n AnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\r\n\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n };\r\n\r\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n\r\n this.trigger('segmentStart');\r\n };\r\n\r\n AnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n\r\n if (_typeof$4(arr[0]) === 'object') {\r\n var i;\r\n var len = arr.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n AnimationItem.prototype.destroy = function (name) {\r\n if (name && this.name !== name || !this.renderer) {\r\n return;\r\n }\r\n\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n };\r\n\r\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n };\r\n\r\n AnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setLoop = function (isLooping) {\r\n this.loop = isLooping;\r\n };\r\n\r\n AnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.setVolume(val);\r\n };\r\n\r\n AnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n };\r\n\r\n AnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.mute();\r\n };\r\n\r\n AnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.unmute();\r\n };\r\n\r\n AnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n };\r\n\r\n AnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n };\r\n\r\n AnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n };\r\n\r\n AnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n };\r\n\r\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\r\n try {\r\n var element = this.renderer.getElementByPath(path);\r\n element.updateDocumentData(documentData, index);\r\n } catch (error) {// TODO: decide how to handle catch case\r\n }\r\n };\r\n\r\n AnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n\r\n case 'drawnFrame':\r\n this.drawnFrameEvent.currentTime = this.currentFrame;\r\n this.drawnFrameEvent.totalTime = this.totalFrames;\r\n this.drawnFrameEvent.direction = this.frameModifier;\r\n this.triggerEvent(name, this.drawnFrameEvent);\r\n break;\r\n\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n var animationManager = function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n var i = 0;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({\r\n elem: element,\r\n animation: animItem\r\n });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n\r\n initTime = nowTime;\r\n\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize; // moduleOb.start = start;\r\n\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n }();\r\n\r\n /* eslint-disable */\r\n var BezierFactory = function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n\r\n\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) {\r\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n }\r\n\r\n function B(aA1, aA2) {\r\n return 3.0 * aA2 - 6.0 * aA1;\r\n }\r\n\r\n function C(aA1) {\r\n return 3.0 * aA1;\r\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n\r\n\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n\r\n\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n\r\n return aGuessT;\r\n }\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n\r\n\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n get: function get(x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n // Private part\r\n _precompute: function _precompute() {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n\r\n if (mX1 !== mY1 || mX2 !== mY2) {\r\n this._calcSampleValues();\r\n }\r\n },\r\n _calcSampleValues: function _calcSampleValues() {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function _getTForX(aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n\r\n --currentSample; // Interpolate to provide an initial guess for t\r\n\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n }\r\n\r\n if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n };\r\n return ob;\r\n }();\r\n\r\n var pooling = function () {\r\n function _double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n \"double\": _double\r\n };\r\n }();\r\n\r\n var poolFactory = function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n var ob = {\r\n newElement: newElement,\r\n release: release\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n if (_release) {\r\n _release(element);\r\n }\r\n\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n }();\r\n\r\n var bezierLengthPool = function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', getDefaultCurveSegments()),\r\n lengths: createTypedArray('float32', getDefaultCurveSegments())\r\n };\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n var segmentsLengthPool = function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n }();\r\n\r\n function bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n\r\n lastPoint[i] = point[i];\r\n }\r\n\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }();\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = function () {\r\n var storedData = {};\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n\r\n if (!storedData[bezierName]) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n\r\n return storedData[bezierName];\r\n };\r\n }();\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n\r\n flag = false;\r\n }\r\n }\r\n\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\r\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0t0 = t0 * t0 * t0; //\r\n\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0t1 = t0 * t0 * t1; //\r\n\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1t1 = t0 * t1 * t1; //\r\n\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1t1 = t1 * t1 * t1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D\r\n };\r\n }\r\n\r\n var bez = bezFunction();\r\n\r\n var PropertyFactory = function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n\r\n iterationIndex = 0;\r\n break;\r\n }\r\n\r\n if (nextKeyData.t - offsetTime > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n\r\n var bezierData = keyframeMetadata.bezierData;\r\n\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n } // caching._lastKeyframeIndex = -1;\r\n\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n var segmentPerc;\r\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\r\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n } // based on @Toji's https://github.com/toji/gl-matrix/\r\n\r\n\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n\r\n if (1.0 - cosom > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n\r\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: 0,\r\n _lastKeyframeIndex: -1\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n\r\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: createTypedArray('float32', arrLen)\r\n };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof data.k[0] === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n }();\r\n\r\n function DynamicPropertyContainer() {}\r\n\r\n DynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function iterateDynamicProperties() {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n }\r\n };\r\n\r\n var pointPool = function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n function ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n };\r\n\r\n ShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n this._length = len;\r\n };\r\n\r\n ShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n };\r\n\r\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n\r\n if (!arr[pos] || arr[pos] && !replace) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n };\r\n\r\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n };\r\n\r\n ShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n var i;\r\n\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n\r\n return newPath;\r\n };\r\n\r\n ShapePath.prototype.length = function () {\r\n return this._length;\r\n };\r\n\r\n var shapePool = function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\r\n }\r\n\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n return factory;\r\n }();\r\n\r\n function ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n };\r\n\r\n ShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n\r\n this._length = 0;\r\n };\r\n\r\n var shapeCollectionPool = function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release\r\n };\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePropertyFactory = function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n\r\n if (nextKeyData.t - this.offsetTime > frameNum) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\r\n }\r\n\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n\r\n keyPropS = keyData.s[0];\r\n }\r\n\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n\r\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n\r\n var i;\r\n var len = shape1._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n\r\n var i;\r\n var len = this.effectsSequence.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0\r\n };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function convertEllToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n\r\n var _cw = this.d !== 3;\r\n\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n return EllShapePropertyFactory;\r\n }();\r\n\r\n var StarShapeProperty = function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function convertStarToPath() {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = Math.PI * 2 / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\r\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function convertPolygonToPath() {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = Math.PI * 2 / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n return StarShapePropertyFactory;\r\n }();\r\n\r\n var RectShapeProperty = function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function convertRectToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n return RectShapePropertyFactory;\r\n }();\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n }();\r\n\r\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\n var Matrix = function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2; // }\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n\r\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\r\n return _rnd(val * v) / v;\r\n }\r\n\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n\r\n var _a = roundMatrixProperty(props[0]);\r\n\r\n var _b = roundMatrixProperty(props[1]);\r\n\r\n var _c = roundMatrixProperty(props[4]);\r\n\r\n var _d = roundMatrixProperty(props[5]);\r\n\r\n var _e = roundMatrixProperty(props[12]);\r\n\r\n var _f = roundMatrixProperty(props[13]);\r\n\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n }();\r\n\r\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\r\n var lottie = {};\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n\r\n function setLocation(href) {\r\n setLocationHref(href);\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n setSubframeEnabled(flag);\r\n }\r\n\r\n function setPrefix(prefix) {\r\n setIdPrefix(prefix);\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n setDefaultCurveSegments(200);\r\n break;\r\n\r\n default:\r\n case 'medium':\r\n setDefaultCurveSegments(50);\r\n break;\r\n\r\n case 'low':\r\n setDefaultCurveSegments(10);\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n setDefaultCurveSegments(value);\r\n }\r\n\r\n if (getDefaultCurveSegments() >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n setExpressionsPlugin(plugin);\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n\r\n case 'matrix':\r\n return Matrix;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n lottie.play = animationManager.play;\r\n lottie.pause = animationManager.pause;\r\n lottie.setLocationHref = setLocation;\r\n lottie.togglePause = animationManager.togglePause;\r\n lottie.setSpeed = animationManager.setSpeed;\r\n lottie.setDirection = animationManager.setDirection;\r\n lottie.stop = animationManager.stop;\r\n lottie.searchAnimations = searchAnimations;\r\n lottie.registerAnimation = animationManager.registerAnimation;\r\n lottie.loadAnimation = loadAnimation;\r\n lottie.setSubframeRendering = setSubframeRendering;\r\n lottie.resize = animationManager.resize; // lottie.start = start;\r\n\r\n lottie.goToAndStop = animationManager.goToAndStop;\r\n lottie.destroy = animationManager.destroy;\r\n lottie.setQuality = setQuality;\r\n lottie.inBrowser = inBrowser;\r\n lottie.installPlugin = installPlugin;\r\n lottie.freeze = animationManager.freeze;\r\n lottie.unfreeze = animationManager.unfreeze;\r\n lottie.setVolume = animationManager.setVolume;\r\n lottie.mute = animationManager.mute;\r\n lottie.unmute = animationManager.unmute;\r\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottie.useWebWorker = setWebWorker;\r\n lottie.setIDPrefix = setPrefix;\r\n lottie.__getFactory = getFactory;\r\n lottie.version = '5.10.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var queryString = '';\r\n\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\r\n\r\n renderer = getQueryVariable('renderer');\r\n }\r\n\r\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\r\n\r\n try {\r\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\r\n ) {\r\n window.bodymovin = lottie;\r\n }\r\n } catch (err) {//\r\n }\r\n\r\n var ShapeModifiers = function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function ShapeModifier() {}\r\n\r\n ShapeModifier.prototype.initModifierProperties = function () {};\r\n\r\n ShapeModifier.prototype.addShapeToModifier = function () {};\r\n\r\n ShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = {\r\n shape: data.sh,\r\n data: data,\r\n localShapeCollection: shapeCollectionPool.newShapeCollection()\r\n };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n function TrimModifier() {}\r\n\r\n extendPrototype([ShapeModifier], TrimModifier);\r\n\r\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n };\r\n\r\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n };\r\n\r\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n\r\n return shapeSegments;\r\n };\r\n\r\n TrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n\r\n pathsData.length = 0;\r\n return pathsData;\r\n };\r\n\r\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var o = this.o.v % 360 / 360;\r\n\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n\r\n jLen = edges.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n\r\n shapes.push(shapePath);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n\r\n return shapes;\r\n };\r\n\r\n function PuckerAndBloatModifier() {}\r\n\r\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\n\r\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n var TransformPropertyFactory = function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\r\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\r\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {//\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix(); // Precalculated matrix with non animated properties\r\n\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n }\r\n\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\r\n\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n }\r\n\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: [100, 100, 100]\r\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = {\r\n _mdf: false,\r\n v: 1\r\n };\r\n }\r\n\r\n this._isDirty = true;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient\r\n };\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty\r\n };\r\n }();\r\n\r\n function RepeaterModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n };\r\n\r\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n };\r\n\r\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n\r\n while (pos > 0) {\r\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\r\n\r\n this._elements.unshift(arr[pos]);\r\n }\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n };\r\n\r\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr'\r\n };\r\n group.it.push({\r\n a: {\r\n a: 0,\r\n ix: 1,\r\n k: [0, 0]\r\n },\r\n nm: 'Transform',\r\n o: {\r\n a: 0,\r\n ix: 7,\r\n k: 100\r\n },\r\n p: {\r\n a: 0,\r\n ix: 2,\r\n k: [0, 0]\r\n },\r\n r: {\r\n a: 1,\r\n ix: 6,\r\n k: [{\r\n s: 0,\r\n e: 0,\r\n t: 0\r\n }, {\r\n s: 0,\r\n e: 0,\r\n t: 1\r\n }]\r\n },\r\n s: {\r\n a: 0,\r\n ix: 3,\r\n k: [100, 100]\r\n },\r\n sa: {\r\n a: 0,\r\n ix: 5,\r\n k: 0\r\n },\r\n sk: {\r\n a: 0,\r\n ix: 4,\r\n k: 0\r\n },\r\n ty: 'tr'\r\n });\r\n this.arr.splice(0, 0, group);\r\n\r\n this._groups.splice(0, 0, group);\r\n\r\n this._currentCopies += 1;\r\n }\r\n\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n\r\n cont = 0;\r\n var renderFlag;\r\n\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies; /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n\r\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\r\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\r\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n\r\n return hasReloaded;\r\n };\r\n\r\n RepeaterModifier.prototype.addShape = function () {};\r\n\r\n function RoundCornersModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RoundCornersModifier);\r\n\r\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n };\r\n\r\n RoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function floatEqual(a, b) {\r\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\r\n }\r\n\r\n function floatZero(f) {\r\n return Math.abs(f) <= 0.00001;\r\n }\r\n\r\n function lerp(p0, p1, amount) {\r\n return p0 * (1 - amount) + p1 * amount;\r\n }\r\n\r\n function lerpPoint(p0, p1, amount) {\r\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\r\n }\r\n\r\n function quadRoots(a, b, c) {\r\n // no root\r\n if (a === 0) return [];\r\n var s = b * b - 4 * a * c; // Complex roots\r\n\r\n if (s < 0) return [];\r\n var singleRoot = -b / (2 * a); // 1 root\r\n\r\n if (s === 0) return [singleRoot];\r\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\r\n\r\n return [singleRoot - delta, singleRoot + delta];\r\n }\r\n\r\n function polynomialCoefficients(p0, p1, p2, p3) {\r\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\r\n }\r\n\r\n function singlePoint(p) {\r\n return new PolynomialBezier(p, p, p, p, false);\r\n }\r\n\r\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\r\n if (linearize && pointEqual(p0, p1)) {\r\n p1 = lerpPoint(p0, p3, 1 / 3);\r\n }\r\n\r\n if (linearize && pointEqual(p2, p3)) {\r\n p2 = lerpPoint(p0, p3, 2 / 3);\r\n }\r\n\r\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\r\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\r\n this.a = [coeffx[0], coeffy[0]];\r\n this.b = [coeffx[1], coeffy[1]];\r\n this.c = [coeffx[2], coeffy[2]];\r\n this.d = [coeffx[3], coeffy[3]];\r\n this.points = [p0, p1, p2, p3];\r\n }\r\n\r\n PolynomialBezier.prototype.point = function (t) {\r\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.derivative = function (t) {\r\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.tangentAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[1], p[0]);\r\n };\r\n\r\n PolynomialBezier.prototype.normalAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[0], p[1]);\r\n };\r\n\r\n PolynomialBezier.prototype.inflectionPoints = function () {\r\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n if (floatZero(denom)) return [];\r\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\r\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\r\n if (square < 0) return [];\r\n var root = Math.sqrt(square);\r\n\r\n if (floatZero(root)) {\r\n if (root > 0 && root < 1) return [tcusp];\r\n return [];\r\n }\r\n\r\n return [tcusp - root, tcusp + root].filter(function (r) {\r\n return r > 0 && r < 1;\r\n });\r\n };\r\n\r\n PolynomialBezier.prototype.split = function (t) {\r\n if (t <= 0) return [singlePoint(this.points[0]), this];\r\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\r\n var p10 = lerpPoint(this.points[0], this.points[1], t);\r\n var p11 = lerpPoint(this.points[1], this.points[2], t);\r\n var p12 = lerpPoint(this.points[2], this.points[3], t);\r\n var p20 = lerpPoint(p10, p11, t);\r\n var p21 = lerpPoint(p11, p12, t);\r\n var p3 = lerpPoint(p20, p21, t);\r\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\r\n };\r\n\r\n function extrema(bez, comp) {\r\n var min = bez.points[0][comp];\r\n var max = bez.points[bez.points.length - 1][comp];\r\n\r\n if (min > max) {\r\n var e = max;\r\n max = min;\r\n min = e;\r\n } // Derivative roots to find min/max\r\n\r\n\r\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\r\n\r\n for (var i = 0; i < f.length; i += 1) {\r\n if (f[i] > 0 && f[i] < 1) {\r\n var val = bez.point(f[i])[comp];\r\n if (val < min) min = val;else if (val > max) max = val;\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n\r\n PolynomialBezier.prototype.bounds = function () {\r\n return {\r\n x: extrema(this, 0),\r\n y: extrema(this, 1)\r\n };\r\n };\r\n\r\n PolynomialBezier.prototype.boundingBox = function () {\r\n var bounds = this.bounds();\r\n return {\r\n left: bounds.x.min,\r\n right: bounds.x.max,\r\n top: bounds.y.min,\r\n bottom: bounds.y.max,\r\n width: bounds.x.max - bounds.x.min,\r\n height: bounds.y.max - bounds.y.min,\r\n cx: (bounds.x.max + bounds.x.min) / 2,\r\n cy: (bounds.y.max + bounds.y.min) / 2\r\n };\r\n };\r\n\r\n function intersectData(bez, t1, t2) {\r\n var box = bez.boundingBox();\r\n return {\r\n cx: box.cx,\r\n cy: box.cy,\r\n width: box.width,\r\n height: box.height,\r\n bez: bez,\r\n t: (t1 + t2) / 2,\r\n t1: t1,\r\n t2: t2\r\n };\r\n }\r\n\r\n function splitData(data) {\r\n var split = data.bez.split(0.5);\r\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\r\n }\r\n\r\n function boxIntersect(b1, b2) {\r\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\r\n }\r\n\r\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\r\n if (!boxIntersect(d1, d2)) return;\r\n\r\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\r\n intersections.push([d1.t, d2.t]);\r\n return;\r\n }\r\n\r\n var d1s = splitData(d1);\r\n var d2s = splitData(d2);\r\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n }\r\n\r\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\r\n if (tolerance === undefined) tolerance = 2;\r\n if (maxRecursion === undefined) maxRecursion = 7;\r\n var intersections = [];\r\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\r\n return intersections;\r\n };\r\n\r\n PolynomialBezier.shapeSegment = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\r\n };\r\n\r\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\r\n };\r\n\r\n function crossProduct(a, b) {\r\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\r\n }\r\n\r\n function lineIntersection(start1, end1, start2, end2) {\r\n var v1 = [start1[0], start1[1], 1];\r\n var v2 = [end1[0], end1[1], 1];\r\n var v3 = [start2[0], start2[1], 1];\r\n var v4 = [end2[0], end2[1], 1];\r\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\r\n if (floatZero(r[2])) return null;\r\n return [r[0] / r[2], r[1] / r[2]];\r\n }\r\n\r\n function polarOffset(p, angle, length) {\r\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\r\n }\r\n\r\n function pointDistance(p1, p2) {\r\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\r\n }\r\n\r\n function pointEqual(p1, p2) {\r\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\r\n }\r\n\r\n function ZigZagModifier() {}\r\n\r\n extendPrototype([ShapeModifier], ZigZagModifier);\r\n\r\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\r\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\r\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\r\n };\r\n\r\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\r\n var angO = angle - Math.PI / 2;\r\n var angI = angle + Math.PI / 2;\r\n var px = point[0] + Math.cos(angle) * direction * amplitude;\r\n var py = point[1] - Math.sin(angle) * direction * amplitude;\r\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\r\n }\r\n\r\n function getPerpendicularVector(pt1, pt2) {\r\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\r\n var rot = -Math.PI * 0.5;\r\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\r\n return rotatedVector;\r\n }\r\n\r\n function getProjectingAngle(path, cur) {\r\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\r\n var nextIndex = (cur + 1) % path.length();\r\n var prevPoint = path.v[prevIndex];\r\n var nextPoint = path.v[nextIndex];\r\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\r\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\r\n }\r\n\r\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\r\n var angle = getProjectingAngle(path, cur);\r\n var point = path.v[cur % path._length];\r\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\r\n var nextPoint = path.v[(cur + 1) % path._length];\r\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\r\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\r\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\r\n }\r\n\r\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\r\n for (var i = 0; i < frequency; i += 1) {\r\n var t = (i + 1) / (frequency + 1);\r\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\r\n var angle = segment.normalAngle(t);\r\n var point = segment.point(t);\r\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\r\n direction = -direction;\r\n }\r\n\r\n return direction;\r\n }\r\n\r\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\r\n var count = path._length;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n\r\n if (!path.c) {\r\n count -= 1;\r\n }\r\n\r\n if (count === 0) return clonedPath;\r\n var direction = -1;\r\n var segment = PolynomialBezier.shapeSegment(path, 0);\r\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\r\n\r\n for (var i = 0; i < count; i += 1) {\r\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\r\n\r\n if (i === count - 1 && !path.c) {\r\n segment = null;\r\n } else {\r\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\r\n }\r\n\r\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amplitude = this.amplitude.v;\r\n var frequency = Math.max(0, Math.round(this.frequency.v));\r\n var pointType = this.pointsType.v;\r\n\r\n if (amplitude !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function linearOffset(p1, p2, amount) {\r\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\r\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\r\n }\r\n\r\n function offsetSegment(segment, amount) {\r\n var p0;\r\n var p1a;\r\n var p1b;\r\n var p2b;\r\n var p2a;\r\n var p3;\r\n var e;\r\n e = linearOffset(segment.points[0], segment.points[1], amount);\r\n p0 = e[0];\r\n p1a = e[1];\r\n e = linearOffset(segment.points[1], segment.points[2], amount);\r\n p1b = e[0];\r\n p2b = e[1];\r\n e = linearOffset(segment.points[2], segment.points[3], amount);\r\n p2a = e[0];\r\n p3 = e[1];\r\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\r\n if (p1 === null) p1 = p1a;\r\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\r\n if (p2 === null) p2 = p2a;\r\n return new PolynomialBezier(p0, p1, p2, p3);\r\n }\r\n\r\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\r\n var p0 = seg1.points[3];\r\n var p1 = seg2.points[0]; // Bevel\r\n\r\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\r\n\r\n if (pointEqual(p0, p1)) return p0; // Round\r\n\r\n if (lineJoin === 2) {\r\n var angleOut = -seg1.tangentAngle(1);\r\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\r\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\r\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\r\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\r\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\r\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\r\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\r\n return p1;\r\n } // Miter\r\n\r\n\r\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\r\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\r\n var intersection = lineIntersection(t0, p0, p1, t1);\r\n\r\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\r\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\r\n return intersection;\r\n }\r\n\r\n return p0;\r\n }\r\n\r\n function getIntersection(a, b) {\r\n var intersect = a.intersections(b);\r\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\r\n if (intersect.length) return intersect[0];\r\n return null;\r\n }\r\n\r\n function pruneSegmentIntersection(a, b) {\r\n var outa = a.slice();\r\n var outb = b.slice();\r\n var intersect = getIntersection(a[a.length - 1], b[0]);\r\n\r\n if (intersect) {\r\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\r\n outb[0] = b[0].split(intersect[1])[1];\r\n }\r\n\r\n if (a.length > 1 && b.length > 1) {\r\n intersect = getIntersection(a[0], b[b.length - 1]);\r\n\r\n if (intersect) {\r\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\r\n }\r\n }\r\n\r\n return [outa, outb];\r\n }\r\n\r\n function pruneIntersections(segments) {\r\n var e;\r\n\r\n for (var i = 1; i < segments.length; i += 1) {\r\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\r\n segments[i - 1] = e[0];\r\n segments[i] = e[1];\r\n }\r\n\r\n if (segments.length > 1) {\r\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\r\n segments[segments.length - 1] = e[0];\r\n segments[0] = e[1];\r\n }\r\n\r\n return segments;\r\n }\r\n\r\n function offsetSegmentSplit(segment, amount) {\r\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\r\n var flex = segment.inflectionPoints();\r\n var left;\r\n var right;\r\n var split;\r\n var mid;\r\n\r\n if (flex.length === 0) {\r\n return [offsetSegment(segment, amount)];\r\n }\r\n\r\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\r\n split = split[1].split(t);\r\n mid = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n function OffsetPathModifier() {}\r\n\r\n extendPrototype([ShapeModifier], OffsetPathModifier);\r\n\r\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\r\n this.lineJoin = data.lj;\r\n this._isAnimated = this.amount.effectsSequence.length !== 0;\r\n };\r\n\r\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\r\n var outputBezier = shapePool.newElement();\r\n outputBezier.c = inputBezier.c;\r\n var count = inputBezier.length();\r\n\r\n if (!inputBezier.c) {\r\n count -= 1;\r\n }\r\n\r\n var i;\r\n var j;\r\n var segment;\r\n var multiSegments = [];\r\n\r\n for (i = 0; i < count; i += 1) {\r\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n\r\n if (!inputBezier.c) {\r\n for (i = count - 1; i >= 0; i -= 1) {\r\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n }\r\n\r\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\r\n\r\n var lastPoint = null;\r\n var lastSeg = null;\r\n\r\n for (i = 0; i < multiSegments.length; i += 1) {\r\n var multiSegment = multiSegments[i];\r\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\r\n lastSeg = multiSegment[multiSegment.length - 1];\r\n\r\n for (j = 0; j < multiSegment.length; j += 1) {\r\n segment = multiSegment[j];\r\n\r\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\r\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\r\n } else {\r\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\r\n }\r\n\r\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\r\n lastPoint = segment.points[3];\r\n }\r\n }\r\n\r\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\r\n return outputBezier;\r\n };\r\n\r\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n var miterLimit = this.miterLimit.v;\r\n var lineJoin = this.lineJoin;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n var fWeight = 'normal';\r\n var fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight\r\n };\r\n }\r\n\r\n var FontManager = function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n data: {\r\n shapes: []\r\n }\r\n };\r\n var combinedCharacters = []; // Hindi characters\r\n\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span'); // Node is invisible to screen readers.\r\n\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span'); // Characters that vary significantly among different fonts\r\n\r\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\r\n\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\r\n\r\n parentNode.style.fontSize = '300px'; // Reset any font properties\r\n\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode); // Remember width with no applied web font\r\n\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return {\r\n node: node,\r\n w: width,\r\n parent: parentNode\r\n };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(fontData, def) {\r\n var engine = document.body && def ? 'svg' : 'canvas';\r\n var helper;\r\n var fontProps = getFontProperties(fontData);\r\n\r\n if (engine === 'svg') {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n\r\n def.appendChild(tHelper);\r\n helper = tHelper;\r\n } else {\r\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\r\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\r\n helper = tCanvasHelper;\r\n }\r\n\r\n function measure(text) {\r\n if (engine === 'svg') {\r\n helper.textContent = text;\r\n return helper.getComputedTextLength();\r\n }\r\n\r\n return helper.measureText(text).width;\r\n }\r\n\r\n return {\r\n measureText: measure\r\n };\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n if (!document.body) {\r\n this.isLoaded = true;\r\n fontData.list.forEach(function (data) {\r\n data.helper = createHelper(data);\r\n data.cache = {};\r\n });\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n\r\n fontArr[i].helper = createHelper(fontArr[i], defs);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(_char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n\r\n while (i < len) {\r\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\r\n && !this._warned) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\r\n }\r\n\r\n return emptyChar;\r\n }\r\n\r\n function measureText(_char2, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n\r\n var index = _char2.charCodeAt(0);\r\n\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n\r\n if (_char2 === ' ') {\r\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\r\n var singleSize = tHelper.measureText('||');\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\r\n }\r\n }\r\n\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(_char3) {\r\n return combinedCharacters.indexOf(_char3) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function Font() {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded\r\n };\r\n Font.prototype = fontPrototype;\r\n return Font;\r\n }();\r\n\r\n function RenderableElement() {}\r\n\r\n RenderableElement.prototype = {\r\n initRenderable: function initRenderable() {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false; // layer's display state\r\n\r\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\r\n\r\n this.isTransparent = false; // list of animated components\r\n\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function addRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function removeRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function prepareRenderableFrame(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function checkTransparency() {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function checkLayerLimits(num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function renderRenderable() {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100\r\n };\r\n },\r\n getLayerSize: function getLayerSize() {\r\n if (this.data.ty === 5) {\r\n return {\r\n w: this.data.textData.width,\r\n h: this.data.textData.height\r\n };\r\n }\r\n\r\n return {\r\n w: this.data.width,\r\n h: this.data.height\r\n };\r\n }\r\n };\r\n\r\n var getBlendMode = function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity'\r\n };\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n }();\r\n\r\n function SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function NoValueEffect() {\r\n this.p = {};\r\n }\r\n\r\n function EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n }\r\n\r\n function GroupEffect(data, element) {\r\n this.init(data, element);\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], GroupEffect);\r\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\n GroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n };\r\n\r\n function BaseElement() {}\r\n\r\n BaseElement.prototype = {\r\n checkMasks: function checkMasks() {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n\r\n while (i < len) {\r\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\r\n return true;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return false;\r\n },\r\n initExpressions: function initExpressions() {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var LayerExpressionInterface = expressionsInterfaces('layer');\r\n var EffectsExpressionInterface = expressionsInterfaces('effects');\r\n var ShapeExpressionInterface = expressionsInterfaces('shape');\r\n var TextExpressionInterface = expressionsInterfaces('text');\r\n var CompExpressionInterface = expressionsInterfaces('comp');\r\n this.layerInterface = LayerExpressionInterface(this);\r\n\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function setBlendMode() {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function initBaseData(data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\r\n\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n } // effects manager\r\n\r\n\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function getType() {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {}\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n function FrameElement() {}\r\n\r\n FrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function initFrame() {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false; // list of animated properties\r\n\r\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\r\n\r\n this._mdf = false;\r\n },\r\n\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function prepareProperties(num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n };\r\n\r\n function FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n }\r\n\r\n FootageElement.prototype.prepareFrame = function () {};\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\n FootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n FootageElement.prototype.renderFrame = function () {};\r\n\r\n FootageElement.prototype.destroy = function () {};\r\n\r\n FootageElement.prototype.initExpressions = function () {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var FootageInterface = expressionsInterfaces('footage');\r\n this.layerInterface = FootageInterface(this);\r\n };\r\n\r\n FootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n };\r\n\r\n function AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this._volumeMultiplier = 1;\r\n this._volume = 1;\r\n this._previousVolume = null;\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\r\n k: [100]\r\n }, 1, 0.01, this);\r\n }\r\n\r\n AudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n\r\n this._volume = this.lv.v[0];\r\n var totalVolume = this._volume * this._volumeMultiplier;\r\n\r\n if (this._previousVolume !== totalVolume) {\r\n this._previousVolume = totalVolume;\r\n this.audio.volume(totalVolume);\r\n }\r\n };\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\n AudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n };\r\n\r\n AudioElement.prototype.show = function () {// this.audio.play()\r\n };\r\n\r\n AudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n };\r\n\r\n AudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n };\r\n\r\n AudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n };\r\n\r\n AudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n };\r\n\r\n AudioElement.prototype.volume = function (volumeValue) {\r\n this._volumeMultiplier = volumeValue;\r\n this._previousVolume = volumeValue * this._volume;\r\n this.audio.volume(this._previousVolume);\r\n };\r\n\r\n AudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n AudioElement.prototype.destroy = function () {};\r\n\r\n AudioElement.prototype.sourceRectAtTime = function () {};\r\n\r\n AudioElement.prototype.initExpressions = function () {};\r\n\r\n function BaseRenderer() {}\r\n\r\n BaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n\r\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\r\n this.buildItem(i);\r\n }\r\n }\r\n\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n\r\n case 0:\r\n return this.createComp(layer);\r\n\r\n case 1:\r\n return this.createSolid(layer);\r\n\r\n case 3:\r\n return this.createNull(layer);\r\n\r\n case 4:\r\n return this.createShape(layer);\r\n\r\n case 5:\r\n return this.createText(layer);\r\n\r\n case 6:\r\n return this.createAudio(layer);\r\n\r\n case 13:\r\n return this.createCamera(layer);\r\n\r\n case 15:\r\n return this.createFootage(layer);\r\n\r\n default:\r\n return this.createNull(layer);\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n };\r\n\r\n BaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n\r\n j += 1;\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n };\r\n\r\n BaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n\r\n while (i < len) {\r\n if (layers[i].ind == parentName) {\r\n // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n };\r\n\r\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.getElementById = function (ind) {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.ind === ind) {\r\n return this.elements[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n BaseRenderer.prototype.getElementByPath = function (path) {\r\n var pathValue = path.shift();\r\n var element;\r\n\r\n if (typeof pathValue === 'number') {\r\n element = this.elements[pathValue];\r\n } else {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.nm === pathValue) {\r\n element = this.elements[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (path.length === 0) {\r\n return element;\r\n }\r\n\r\n return element.getElementByPath(path);\r\n };\r\n\r\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h\r\n };\r\n };\r\n\r\n function TransformElement() {}\r\n\r\n TransformElement.prototype = {\r\n initTransform: function initTransform() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\r\n o: 0\r\n },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n } // TODO: check TYPE 11: Guided elements\r\n\r\n\r\n if (this.data.ty !== 11) {// this.createElements();\r\n }\r\n },\r\n renderTransform: function renderTransform() {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function globalToLocal(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n };\r\n\r\n function MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: ''\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0\r\n };\r\n\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect\r\n };\r\n\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n len = currentMasks.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n MaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n };\r\n\r\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\r\n }\r\n\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n MaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n };\r\n\r\n MaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n };\r\n\r\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\r\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n\r\n\r\n if (pathNodes.c && len > 1) {\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n } // pathNodes.__renderedString = pathString;\r\n\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n\r\n viewData.lastPath = pathString;\r\n }\r\n };\r\n\r\n MaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n };\r\n\r\n var filtersFactory = function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var featureSupport = function () {\r\n var ob = {\r\n maskType: true,\r\n svgLumaHidden: true,\r\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\r\n };\r\n\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n\r\n if (/firefox/i.test(navigator.userAgent)) {\r\n ob.svgLumaHidden = false;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var registeredEffects = {};\r\n var idPrefix = 'filter_result_';\r\n\r\n function SVGEffects(elem) {\r\n var i;\r\n var source = 'SourceGraphic';\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n var type = elem.data.ef[i].ty;\r\n\r\n if (registeredEffects[type]) {\r\n var Effect = registeredEffects[type].effect;\r\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\r\n source = idPrefix + count;\r\n\r\n if (registeredEffects[type].countsAsEffect) {\r\n count += 1;\r\n }\r\n }\r\n\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n };\r\n\r\n function registerEffect(id, effect, countsAsEffect) {\r\n registeredEffects[id] = {\r\n effect: effect,\r\n countsAsEffect: countsAsEffect\r\n };\r\n }\r\n\r\n function SVGBaseElement() {}\r\n\r\n SVGBaseElement.prototype = {\r\n initRendererElement: function initRendererElement() {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null; // If this layer acts as a mask for the following layer\r\n\r\n if (this.data.td) {\r\n this.matteMasks = {};\r\n var gg = createNS('g');\r\n gg.setAttribute('id', this.layerId);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(gg);\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n\r\n\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n }\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function destroyBaseElement() {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function getBaseElement() {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n getMatte: function getMatte(matteType) {\r\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\r\n // It solves animations that have two consecutive layers marked as matte masks.\r\n // Which is an undefined behavior in AE.\r\n if (!this.matteMasks) {\r\n this.matteMasks = {};\r\n }\r\n\r\n if (!this.matteMasks[matteType]) {\r\n var id = this.layerId + '_' + matteType;\r\n var filId;\r\n var fil;\r\n var useElement;\r\n var gg;\r\n\r\n if (matteType === 1 || matteType === 3) {\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', id);\r\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n masker.appendChild(useElement);\r\n this.globalData.defs.appendChild(masker);\r\n\r\n if (!featureSupport.maskType && matteType === 1) {\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(useElement);\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n } else if (matteType === 2) {\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', id);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId); /// /\r\n\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc); /// /\r\n\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n maskGrouper.appendChild(useElement);\r\n\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n maskGrouper.appendChild(gg);\r\n }\r\n\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n\r\n this.matteMasks[matteType] = id;\r\n }\r\n\r\n return this.matteMasks[matteType];\r\n },\r\n setMatte: function setMatte(id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n\r\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n }\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n function HierarchyElement() {}\r\n\r\n HierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function initHierarchy() {\r\n // element's parent list\r\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\r\n\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\r\n setHierarchy: function setHierarchy(hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function setAsParent() {\r\n this._isParent = true;\r\n },\r\n\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function checkParenting() {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n }\r\n };\r\n\r\n function RenderableDOMElement() {}\r\n\r\n (function () {\r\n var _prototype = {\r\n initElement: function initElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function hide() {\r\n // console.log('HIDE', this);\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function show() {\r\n // console.log('SHOW', this);\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function renderInnerContent() {},\r\n prepareFrame: function prepareFrame(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function destroy() {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n })();\r\n\r\n function IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0,\r\n left: 0,\r\n width: this.assetData.w,\r\n height: this.assetData.h\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\n IImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.innerElem);\r\n };\r\n\r\n IImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n };\r\n\r\n function ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n }\r\n\r\n function IShapeElement() {}\r\n\r\n IShapeElement.prototype = {\r\n addShapeToModifiers: function addShapeToModifiers(data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n renderModifiers: function renderModifiers() {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len = this.shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n searchProcessedElement: function searchProcessedElement(elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return 0;\r\n },\r\n addProcessedElement: function addProcessedElement(elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n\r\n while (i) {\r\n i -= 1;\r\n\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function prepareFrame(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n };\r\n\r\n var lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square'\r\n };\r\n var lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel'\r\n };\r\n\r\n function SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n\r\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\r\n\r\n var i = 0;\r\n var len = transformers.length;\r\n\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n SVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n };\r\n\r\n function SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n }\r\n\r\n SVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n };\r\n\r\n function DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = {\r\n n: data[i].n,\r\n p: prop\r\n };\r\n }\r\n\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = this.k;\r\n }\r\n\r\n DashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n function SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n function SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n function SVGNoStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\r\n\r\n function GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n }\r\n\r\n GradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n\r\n this._mdf = !forceRender;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n function SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n }\r\n\r\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\r\n\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n function ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n }\r\n\r\n function SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n }\r\n\r\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n\r\n return shapeString;\r\n };\r\n\r\n var SVGElementsRenderer = function () {\r\n var _identityMatrix = new Matrix();\r\n\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n\r\n case 'gf':\r\n return renderGradient;\r\n\r\n case 'gs':\r\n return renderGradientStroke;\r\n\r\n case 'st':\r\n return renderStroke;\r\n\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n\r\n case 'tr':\r\n return renderContentTransform;\r\n\r\n case 'no':\r\n return renderNoop;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderNoop() {}\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n } // gfill.setAttribute('fy','200');\r\n\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\n SVGShapeElement.prototype.initSecondaryElement = function () {};\r\n\r\n SVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\n SVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n };\r\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\r\n\r\n\r\n SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n var pathElement = styleOb.pElem;\r\n\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\r\n }\r\n } else if (data.ty === 'no') {\r\n elementData = new SVGNoStyleData(this, data, styleOb);\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n };\r\n\r\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n };\r\n\r\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n len = ownStyles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\r\n\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n };\r\n\r\n function LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true\r\n };\r\n }\r\n\r\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n };\r\n\r\n function TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n }\r\n\r\n TextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\n TextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n TextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n };\r\n\r\n TextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n TextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0;\r\n var len = textKeys.length;\r\n\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n\r\n return this.data.d.k[this.keysIndex].s;\r\n };\r\n\r\n TextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return charactersArray;\r\n };\r\n\r\n TextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i;\r\n var len;\r\n var newLineFlag;\r\n var index = 0;\r\n var val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0;\r\n var currentPos = 0;\r\n var currentLine = 0;\r\n var lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j;\r\n var jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData;\r\n var cLength = 0;\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var charCode;\r\n\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight;\r\n var finalText;\r\n\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n\r\n currentHeight += fontData.ascent * documentData.finalSize / 100;\r\n\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n } //\r\n\r\n\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n\r\n letters.push({\r\n l: cLength,\r\n an: cLength,\r\n add: currentSize,\r\n n: newLineFlag,\r\n anIndexes: [],\r\n val: val,\r\n line: currentLine,\r\n animatorJustifyOffset: 0\r\n });\r\n\r\n if (anchorGrouping == 2) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n\r\n documentData.lineWidths = lineWidths;\r\n var animators = data.a;\r\n var animatorData;\r\n var letterData;\r\n jLen = animators.length;\r\n var based;\r\n var ind;\r\n var indexes = [];\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n\r\n ind = 0;\r\n based = animatorData.s.b;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n\r\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\r\n // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n\r\n ind += 1;\r\n }\r\n }\r\n\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1;\r\n var newInd;\r\n\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n\r\n if (currentInd != letterData.anIndexes[j]) {\r\n // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\r\n };\r\n\r\n TextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n };\r\n\r\n TextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n var TextSelectorProp = function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: 0\r\n }, 0, 0, this);\r\n\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = {\r\n v: 100\r\n };\r\n }\r\n\r\n this.o = PropertyFactory.getProp(elem, data.o || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || {\r\n k: 100\r\n }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function getMult(ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - x * x / (a * a));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\r\n }\r\n\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n\r\n\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n\r\n var threshold = 0.5 - smoothness * 0.5;\r\n\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n\r\n return mult * this.a.v;\r\n },\r\n getValue: function getValue(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = this.e.v / divisor + o;\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n }();\r\n\r\n function TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = {\r\n propType: false\r\n };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\r\n };\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n }\r\n\r\n function TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {}\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n }\r\n\r\n TextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n };\r\n\r\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n\r\n\r\n pathInfo = {\r\n tLength: 0,\r\n segments: []\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n i = len;\r\n\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n this._pathData.pi = pathInfo;\r\n }\r\n\r\n pathInfo = this._pathData.pi;\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n jLen = animators.length;\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO; //\r\n\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n\r\n isNewLine = false;\r\n }\r\n }\r\n\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n } //\r\n\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n currentLine = letters[i].line;\r\n }\r\n\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n\r\n currentLength += alignment[0] * letters[i].an * 0.005;\r\n var animatorOffset = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n\r\n flag = true; // Force alignment only works with a single line for now\r\n\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\r\n\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\r\n } else {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\r\n\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\r\n\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n\r\n matrixHelper.rotate(-rot * Math.PI / 180);\r\n }\r\n\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= alignment[0] * letters[i].an * 0.005;\r\n\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\r\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n };\r\n\r\n TextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n TextAnimatorProperty.prototype.mHelper = new Matrix();\r\n TextAnimatorProperty.prototype.defaultPropsArray = [];\r\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n function ITextElement() {}\r\n\r\n ITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n };\r\n\r\n ITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n };\r\n\r\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n }\r\n\r\n return shapeStr;\r\n };\r\n\r\n ITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n };\r\n\r\n ITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n };\r\n\r\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n };\r\n\r\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(xPos, yPos, 0);\r\n };\r\n\r\n ITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n };\r\n\r\n ITextElement.prototype.emptyProp = new LetterProps();\r\n\r\n ITextElement.prototype.destroy = function () {};\r\n\r\n var emptyShapeData = {\r\n shapes: []\r\n };\r\n\r\n function SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\n SVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\r\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\r\n // but since text internal content gets only rendered once and then it's never rerendered,\r\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\r\n // Avoiding cloning is preferred since cloning each character shape data is expensive\r\n if (data.shapes && data.shapes.length) {\r\n var shape = data.shapes[0];\r\n\r\n if (shape.it) {\r\n var shapeItem = shape.it[shape.it.length - 1];\r\n\r\n if (shapeItem.s) {\r\n shapeItem.s.k[0] = scale;\r\n shapeItem.s.k[1] = scale;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildNewText = function () {\r\n this.addDynamicProperty(this);\r\n var i;\r\n var len;\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i].span || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var charData;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n childSpan: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\r\n\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i].span = tSpan;\r\n\r\n if (usesGlyphs) {\r\n var childSpan = createNS('g');\r\n tSpan.appendChild(childSpan);\r\n this.textSpans[i].childSpan = childSpan;\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\r\n\r\n if (charData.t === 1) {\r\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\r\n } else {\r\n var data = emptyShapeData;\r\n\r\n if (charData.data && charData.data.shapes) {\r\n data = this.buildShapeData(charData.data, documentData.finalSize);\r\n }\r\n\r\n glyphElement = new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n if (this.textSpans[i].glyph) {\r\n var glyph = this.textSpans[i].glyph;\r\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\r\n glyph.destroy();\r\n }\r\n\r\n this.textSpans[i].glyph = glyphElement;\r\n glyphElement._debug = true;\r\n glyphElement.prepareFrame(0);\r\n glyphElement.renderFrame();\r\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\r\n // this might have issues with strokes and might need a different solution\r\n\r\n if (charData.t === 1) {\r\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n } //\r\n\r\n }\r\n\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].span.style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n };\r\n\r\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n\r\n return this.bbox;\r\n };\r\n\r\n SVGTextLottieElement.prototype.getValue = function () {\r\n var i;\r\n var len = this.textSpans.length;\r\n var glyphElement;\r\n this.renderedFrame = this.comp.renderedFrame;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n\r\n if (glyphElement._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape || this._mdf) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var glyphElement;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i].span;\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.renderFrame();\r\n }\r\n\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([IImageElement], ISolidElement);\r\n\r\n ISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n }\r\n\r\n NullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n NullElement.prototype.renderFrame = function () {};\r\n\r\n NullElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n NullElement.prototype.destroy = function () {};\r\n\r\n NullElement.prototype.sourceRectAtTime = function () {};\r\n\r\n NullElement.prototype.hide = function () {};\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n function SVGRendererBase() {}\r\n\r\n extendPrototype([BaseRenderer], SVGRendererBase);\r\n\r\n SVGRendererBase.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n\r\n if (this.renderConfig.width) {\r\n this.svgElement.setAttribute('width', this.renderConfig.width);\r\n }\r\n\r\n if (this.renderConfig.height) {\r\n this.svgElement.setAttribute('height', this.renderConfig.height);\r\n }\r\n\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n\r\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\r\n\r\n var defs = this.globalData.defs;\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n };\r\n\r\n SVGRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n SVGRendererBase.prototype.updateContainerSize = function () {};\r\n\r\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\r\n var i = 0;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ind === ind) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n SVGRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n elements[pos] = element;\r\n\r\n if (getExpressionsPlugin()) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n\r\n element.initExpressions();\r\n }\r\n\r\n this.appendElementInPos(element, pos);\r\n\r\n if (this.layers[pos].tt) {\r\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\r\n\r\n if (elementIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\r\n this.buildItem(elementIndex);\r\n this.addPendingElement(element);\r\n } else {\r\n var matteElement = elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\r\n element.setMatte(matteMask);\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\r\n var matteElement = this.elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[i].tt);\r\n element.setMatte(matteMask);\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n } // console.log('-------');\r\n // console.log('FRAME ',num);\r\n\r\n\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n\r\n if (!newElement) {\r\n return;\r\n }\r\n\r\n var i = 0;\r\n var nextElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n };\r\n\r\n SVGRendererBase.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n };\r\n\r\n function ICompElement() {}\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\n ICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n\r\n this.hide();\r\n };\r\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\r\n\r\n\r\n ICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n\r\n var i;\r\n var len = this.elements.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n } // This iteration needs to be backwards because of how expressions connect between each other\r\n\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n };\r\n\r\n ICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n };\r\n\r\n ICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n };\r\n\r\n function SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n SVGCompElement.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n viewBoxOnly: config && config.viewBoxOnly || false,\r\n viewBoxSize: config && config.viewBoxSize || false,\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '100%',\r\n height: config && config.filterSize && config.filterSize.height || '100%',\r\n x: config && config.filterSize && config.filterSize.x || '0%',\r\n y: config && config.filterSize && config.filterSize.y || '0%'\r\n },\r\n width: config && config.width,\r\n height: config && config.height,\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n }\r\n\r\n extendPrototype([SVGRendererBase], SVGRenderer);\r\n\r\n SVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = len;\r\n }\r\n\r\n CVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = newLength;\r\n };\r\n\r\n CVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n };\r\n\r\n CVContextData.prototype.popTransform = function () {\r\n var popped = this.saved[this.cArrPos];\r\n var i;\r\n var arr = this.cTr.props;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.popOpacity = function () {\r\n var popped = this.savedOp[this.cArrPos];\r\n this.cO = popped;\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.pop = function () {\r\n this.cArrPos -= 1;\r\n var transform = this.popTransform();\r\n var opacity = this.popOpacity();\r\n return {\r\n transform: transform,\r\n opacity: opacity\r\n };\r\n };\r\n\r\n CVContextData.prototype.push = function () {\r\n var props = this.cTr.props;\r\n\r\n if (this._length <= this.cArrPos) {\r\n this.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.saved[this.cArrPos];\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n\r\n this.savedOp[this.cArrPos] = this.cO;\r\n this.cArrPos += 1;\r\n };\r\n\r\n CVContextData.prototype.getTransform = function () {\r\n return this.cTr;\r\n };\r\n\r\n CVContextData.prototype.getOpacity = function () {\r\n return this.cO;\r\n };\r\n\r\n CVContextData.prototype.setOpacity = function (value) {\r\n this.cO = value;\r\n };\r\n\r\n function ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n }\r\n\r\n ShapeTransformManager.prototype = {\r\n addTransformSequence: function addTransformSequence(transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n\r\n var sequence = this.sequences[key];\r\n\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n\r\n return sequence;\r\n },\r\n processSequence: function processSequence(sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function processSequences(isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function getNewKey() {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n }\r\n };\r\n\r\n var lumaLoader = function lumaLoader() {\r\n var id = '__lottie_element_luma_buffer';\r\n var lumaBuffer = null;\r\n var lumaBufferCtx = null;\r\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\r\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\r\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\r\n // Naming it solution 2 to mark the extra comment lines.\r\n\r\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\r\n\r\n function createLumaSvgFilter() {\r\n var _svg = createNS('svg');\r\n\r\n var fil = createNS('filter');\r\n var matrix = createNS('feColorMatrix');\r\n fil.setAttribute('id', id);\r\n matrix.setAttribute('type', 'matrix');\r\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\r\n fil.appendChild(matrix);\r\n\r\n _svg.appendChild(fil);\r\n\r\n _svg.setAttribute('id', id + '_svg');\r\n\r\n if (featureSupport.svgLumaHidden) {\r\n _svg.style.display = 'none';\r\n }\r\n\r\n return _svg;\r\n }\r\n\r\n function loadLuma() {\r\n if (!lumaBuffer) {\r\n svg = createLumaSvgFilter();\r\n document.body.appendChild(svg);\r\n lumaBuffer = createTag('canvas');\r\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\r\n lumaBufferCtx.fillRect(0, 0, 1, 1);\r\n }\r\n }\r\n\r\n function getLuma(canvas) {\r\n if (!lumaBuffer) {\r\n loadLuma();\r\n }\r\n\r\n lumaBuffer.width = canvas.width;\r\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n return lumaBuffer;\r\n }\r\n\r\n return {\r\n load: loadLuma,\r\n get: getLuma\r\n };\r\n };\r\n\r\n function createCanvas(width, height) {\r\n if (featureSupport.offscreenCanvas) {\r\n return new OffscreenCanvas(width, height);\r\n }\r\n\r\n var canvas = createTag('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n }\r\n\r\n var assetLoader = function () {\r\n return {\r\n loadLumaCanvas: lumaLoader.load,\r\n getLumaCanvas: lumaLoader.get,\r\n createCanvas: createCanvas\r\n };\r\n }();\r\n\r\n function CVEffects() {}\r\n\r\n CVEffects.prototype.renderFrame = function () {};\r\n\r\n function CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n\r\n this.hasMasks = hasMasks;\r\n\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n CVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n };\r\n\r\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\n CVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n };\r\n\r\n function CVBaseElement() {}\r\n\r\n var operationsMap = {\r\n 1: 'source-in',\r\n 2: 'source-out',\r\n 3: 'source-in',\r\n 4: 'source-out'\r\n };\r\n CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n // If the layer is masked we will use two buffers to store each different states of the drawing\r\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\r\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\r\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\r\n // It might be challenging because the layer most likely is transformed in some way\r\n if (this.data.tt >= 1) {\r\n this.buffers = [];\r\n var canvasContext = this.globalData.canvasContext;\r\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas);\r\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas2);\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n assetLoader.loadLumaCanvas();\r\n }\r\n }\r\n\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.transformCanvas = this.globalData.transformCanvas;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function createContent() {},\r\n setBlendMode: function setBlendMode() {\r\n var globalData = this.globalData;\r\n\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function hideElement() {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function showElement() {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n clearCanvas: function clearCanvas(canvasContext) {\r\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\r\n },\r\n prepareLayer: function prepareLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[0];\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\r\n\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\r\n // TODO: Check if there is a way to clear the canvas without resetting the transform\r\n\r\n this.currentTransform = this.canvasContext.getTransform();\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform);\r\n }\r\n },\r\n exitLayer: function exitLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\r\n // that only contains the content of this layer\r\n // (if it is a composition, it also includes the nested layers)\r\n\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx);\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\r\n\r\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\r\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\r\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\r\n // that applies the rgb values to the alpha channel\r\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n var lumaBufferCtx = lumaBuffer.getContext('2d');\r\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\r\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\r\n\r\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\r\n }\r\n\r\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\r\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\r\n // We use destination-over to draw the global drawing below the current layer\r\n\r\n this.canvasContext.globalCompositeOperation = 'destination-over';\r\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\r\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\r\n\r\n this.canvasContext.globalCompositeOperation = 'source-over';\r\n }\r\n },\r\n renderFrame: function renderFrame(forceRender) {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n\r\n if (this.data.td === 1 && !forceRender) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.prepareLayer();\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n this.exitLayer();\r\n\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix()\r\n };\r\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n function CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n }\r\n\r\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n function CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n CVShapeElement.prototype.transformHelper = {\r\n opacity: 1,\r\n _opMdf: false\r\n };\r\n CVShapeElement.prototype.dashResetter = [];\r\n\r\n CVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n };\r\n\r\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n\r\n if (data.lj == 1) {\r\n // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem[\"do\"] = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\r\n }\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n };\r\n\r\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n };\r\n\r\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type; // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n\r\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle[\"do\"];\r\n }\r\n }\r\n\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n\r\n renderer.restore();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {//\r\n }\r\n }\r\n\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n\r\n styleElem.grd = grd;\r\n }\r\n\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n };\r\n\r\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem[\"do\"] = d.dashoffset[0];\r\n }\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n };\r\n\r\n function CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\n CVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var hasFill = false;\r\n\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\r\n\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n\r\n commands = createSizedArray(jLen - 1);\r\n var commandsCounter = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[commandsCounter] = pathArr;\r\n commandsCounter += 1;\r\n }\r\n }\r\n\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = {\r\n elem: commands\r\n };\r\n }\r\n\r\n cnt += 1;\r\n }\r\n };\r\n\r\n CVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n\r\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n };\r\n\r\n CVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n };\r\n\r\n CVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n };\r\n\r\n function CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\r\n };\r\n\r\n function CanvasRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || ''\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([BaseRenderer], CanvasRendererBase);\r\n\r\n CanvasRendererBase.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n CanvasRendererBase.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n } // Resetting the canvas transform matrix to the new transform\r\n\r\n\r\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\r\n\r\n var currentTransform = this.contextData.getTransform();\r\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\r\n\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // Storing the new transformed value in the stored transform\r\n\r\n currentTransform.cloneFromProps(this.transformMat.props);\r\n var trProps = currentTransform.props; // Applying the new transform to the canvas\r\n\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n };\r\n\r\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n var currentOpacity = this.contextData.getOpacity();\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n return;\r\n }\r\n\r\n currentOpacity *= op < 0 ? 0 : op;\r\n this.contextData.setOpacity(currentOpacity);\r\n\r\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\r\n this.canvasContext.globalAlpha = currentOpacity;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n this.contextData.reset();\r\n };\r\n\r\n CanvasRendererBase.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n\r\n this.contextData.push();\r\n };\r\n\r\n CanvasRendererBase.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n\r\n var popped = this.contextData.pop();\r\n var transform = popped.transform;\r\n var opacity = popped.opacity;\r\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\r\n\r\n if (this.globalData.currentGlobalAlpha !== opacity) {\r\n this.canvasContext.globalAlpha = opacity;\r\n this.globalData.currentGlobalAlpha = opacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n this.updateContainerSize();\r\n };\r\n\r\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n\r\n if (width) {\r\n elementWidth = width;\r\n elementHeight = height;\r\n this.canvasContext.canvas.width = elementWidth;\r\n this.canvasContext.canvas.height = elementHeight;\r\n } else {\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width;\r\n elementHeight = this.canvasContext.canvas.height;\r\n }\r\n\r\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\r\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\r\n }\r\n\r\n var elementRel;\r\n var animationRel;\r\n\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n\r\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n\r\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n };\r\n\r\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\r\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\r\n return;\r\n }\r\n\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\r\n // console.log('NEW: ',num);\r\n\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n };\r\n\r\n CanvasRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n };\r\n\r\n CanvasRendererBase.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n };\r\n\r\n function CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\r\n\r\n CVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n CVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.layers = null;\r\n this.elements = null;\r\n };\r\n\r\n CVCompElement.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([CanvasRendererBase], CanvasRenderer);\r\n\r\n CanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HBaseElement() {}\r\n\r\n HBaseElement.prototype = {\r\n checkBlendMode: function checkBlendMode() {},\r\n initRendererElement: function initRendererElement() {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function addEffects() {},\r\n setMatte: function setMatte() {}\r\n };\r\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\r\n\r\n function HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\n HSolidElement.prototype.createContent = function () {\r\n var rect;\r\n\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\n HShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n };\r\n\r\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n\r\n return point;\r\n };\r\n\r\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n\r\n if (len <= 1) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n };\r\n\r\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n };\r\n\r\n HShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n HShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n\r\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\r\n // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n b |= 0; // eslint-disable-line no-bitwise\r\n\r\n a |= 0; // eslint-disable-line no-bitwise\r\n\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {//\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n };\r\n\r\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\r\n };\r\n\r\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\r\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\r\n }\r\n }\r\n };\r\n\r\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\r\n var width = 0;\r\n\r\n if (widthProperty.keyframes) {\r\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\r\n var kfw = widthProperty.keyframes[i].s;\r\n\r\n if (kfw > width) {\r\n width = kfw;\r\n }\r\n }\r\n\r\n width *= widthProperty.mult;\r\n } else {\r\n width = widthProperty.v * widthProperty.mult;\r\n }\r\n\r\n boundingBox.x -= width;\r\n boundingBox.xMax += width;\r\n boundingBox.y -= width;\r\n boundingBox.yMax += width;\r\n };\r\n\r\n HShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n };\r\n\r\n HShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\r\n\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n\r\n var changed = false;\r\n\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n };\r\n\r\n function HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\n HTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n };\r\n\r\n HTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n } // tSpan.setAttribute('visibility', 'hidden');\r\n\r\n\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent); //\r\n\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } //\r\n\r\n\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n };\r\n\r\n HTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n\r\n\r\n textSpan.style.opacity = renderedLetter.o;\r\n\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n\r\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n };\r\n\r\n function HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n\r\n this.finalTransform = {\r\n mProp: this\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\n HCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n };\r\n\r\n HCameraElement.prototype.createElements = function () {};\r\n\r\n HCameraElement.prototype.hide = function () {};\r\n\r\n HCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n\r\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n\r\n if (this.a) {\r\n var diffVector;\r\n\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\r\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n\r\n this._isFirstFrame = false;\r\n };\r\n\r\n HCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n HCameraElement.prototype.destroy = function () {};\r\n\r\n HCameraElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n function HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\n HImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n };\r\n\r\n function HybridRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([BaseRenderer], HybridRendererBase);\r\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\n HybridRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n\r\n var layer = this.layers[pos];\r\n\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n return new HShapeElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n\r\n return new HTextElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n };\r\n\r\n HybridRendererBase.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n\r\n return new HImageElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n\r\n return new HSolidElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\r\n\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n };\r\n\r\n HybridRendererBase.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n\r\n len = this.threeDElements.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n wrapper.appendChild(resizerElem);\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData; // Mask animation\r\n\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n };\r\n\r\n HybridRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n HybridRendererBase.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / this.globalData.compSize.w;\r\n sy = elementWidth / this.globalData.compSize.w;\r\n tx = 0;\r\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\r\n } else {\r\n sx = elementHeight / this.globalData.compSize.h;\r\n sy = elementHeight / this.globalData.compSize.h;\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n };\r\n\r\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\n HybridRendererBase.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n };\r\n\r\n HybridRendererBase.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n };\r\n\r\n HybridRendererBase.prototype.initItems = function () {\r\n this.buildAllItems();\r\n\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n function HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\r\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\n HCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n };\r\n\r\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n };\r\n\r\n HCompElement.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n },\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([HybridRendererBase], HybridRenderer);\r\n\r\n HybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n var CompExpressionInterface = function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null; // return {active:false};\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, '_name', {\r\n value: comp.data.nm\r\n });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var Expressions = function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var MaskManagerInterface = function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function get() {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n\r\n return this._mask.prop;\r\n }\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function get() {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n\r\n return this._mask.op.v * 100;\r\n }\r\n });\r\n\r\n var MaskManager = function MaskManager(maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n\r\n var i;\r\n var len = maskManager.viewData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function maskFunction(name) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return maskFunction;\r\n };\r\n\r\n return MaskManager;\r\n }();\r\n\r\n var ExpressionPropertyInterface = function () {\r\n var defaultUnidimensionalValue = {\r\n pv: 0,\r\n v: 0,\r\n mult: 1\r\n };\r\n var defaultMultidimensionalValue = {\r\n pv: [0, 0, 0],\r\n v: [0, 0, 0],\r\n mult: 1\r\n };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function get() {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n }\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n\r\n var value = '';\r\n\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n val = property.v * mult;\r\n\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var len = property.data && property.data.l || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n\r\n return expressionValue;\r\n };\r\n } // TODO: try to avoid using this getter\r\n\r\n\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n }\r\n\r\n if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n }();\r\n\r\n var TransformExpressionInterface = function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz)\r\n });\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r)\r\n });\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx)\r\n });\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry)\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s)\r\n });\r\n\r\n var _px;\r\n\r\n var _py;\r\n\r\n var _pz;\r\n\r\n var _transformFactory;\r\n\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function get() {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n\r\n return [_px(), _py(), _pz ? _pz() : 0];\r\n }\r\n });\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px)\r\n });\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py)\r\n });\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz)\r\n });\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a)\r\n });\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o)\r\n });\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk)\r\n });\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa)\r\n });\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or)\r\n });\r\n return _thisFunction;\r\n };\r\n }();\r\n\r\n var LayerExpressionInterface = function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function get() {\r\n return elem.hierarchy.length;\r\n }\r\n },\r\n parent: {\r\n get: function get() {\r\n return elem.hierarchy[0].layerInterface;\r\n }\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function get() {\r\n return transformInterface;\r\n }\r\n },\r\n active: {\r\n get: function get() {\r\n return elem.isInRange;\r\n }\r\n }\r\n });\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var propertyGroupFactory = function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n }();\r\n\r\n var PropertyInterface = function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n }();\r\n\r\n var EffectsExpressionInterface = function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n\r\n var groupInterface = function groupInterface(name) {\r\n i = 0;\r\n len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function get() {\r\n return effects.length;\r\n }\r\n });\r\n return groupInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n\r\n return effectElements[i]();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n throw new Error();\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function get() {\r\n return effectElements[0]();\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function get() {\r\n return data.np;\r\n }\r\n },\r\n _name: {\r\n value: data.nm\r\n },\r\n propertyGroup: {\r\n value: _propertyGroup\r\n }\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePathInterface = function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n shape: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n ix: {\r\n value: shape.ix\r\n },\r\n propertyIndex: {\r\n value: shape.ix\r\n },\r\n mn: {\r\n value: shape.mn\r\n },\r\n propertyGroup: {\r\n value: propertyGroup\r\n }\r\n });\r\n return interfaceFunction;\r\n };\r\n }();\r\n\r\n var ShapeExpressionInterface = function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function get() {\r\n return shape.nm;\r\n }\r\n }); // interfaceFunction.content = interfaceFunction;\r\n\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n type: {\r\n get: function get() {\r\n return 'a';\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\r\n });\r\n }\r\n\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w)\r\n },\r\n dash: {\r\n get: function get() {\r\n return dashOb;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n\r\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n\r\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p)\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a)\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r)\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt)\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or)\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os)\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir)\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n\r\n return interfaces[value - 1];\r\n }\r\n\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var TextExpressionInterface = function () {\r\n return function (elem) {\r\n var _prevValue;\r\n\r\n var _sourceText;\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function get() {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n\r\n if (stringValue !== _prevValue) {\r\n _prevValue = elem.textProperty.currentData.t;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n\r\n Object.defineProperty(_sourceText, 'style', {\r\n get: function get() {\r\n return {\r\n fillColor: elem.textProperty.currentData.fc\r\n };\r\n }\r\n });\r\n }\r\n\r\n return _sourceText;\r\n }\r\n });\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\r\n\r\n var FootageInterface = function () {\r\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return init;\r\n };\r\n\r\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var interfaces = {\r\n layer: LayerExpressionInterface,\r\n effects: EffectsExpressionInterface,\r\n comp: CompExpressionInterface,\r\n shape: ShapeExpressionInterface,\r\n text: TextExpressionInterface,\r\n footage: FootageInterface\r\n };\r\n\r\n function getInterface(type) {\r\n return interfaces[type] || null;\r\n }\r\n\r\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\r\n\r\n /* eslint-disable */\r\n\r\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n function seedRandom(pool, math) {\r\n //\r\n // The following constants are related to IEEE 754 limits.\r\n //\r\n var global = this,\r\n width = 256,\r\n // each RC4 output is 0 <= x < 256\r\n chunks = 6,\r\n // at least six RC4 outputs for each double\r\n digits = 52,\r\n // there are 52 significant digits in a double\r\n rngname = 'random',\r\n // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n //\r\n // seedrandom()\r\n // This is the seedrandom function described above.\r\n //\r\n\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = options === true ? {\r\n entropy: true\r\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\r\n\r\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\r\n\r\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n\r\n var prng = function prng() {\r\n var n = arc4.g(chunks),\r\n // Start with a numerator n < 2 ^ 48\r\n d = startdenom,\r\n // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n\r\n while (n < significance) {\r\n // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n\r\n d *= width; // denominator and generating a\r\n\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n\r\n while (n >= overflow) {\r\n // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n\r\n d /= 2; // right using integer math until\r\n\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function () {\r\n return arc4.g(4) | 0;\r\n };\r\n\r\n prng.quick = function () {\r\n return arc4.g(4) / 0x100000000;\r\n };\r\n\r\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\r\n\r\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\r\n\r\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) {\r\n copy(state, arc4);\r\n } // Only provide the .state method if requested via options.state.\r\n\r\n\r\n prng.state = function () {\r\n return copy(arc4, {});\r\n };\r\n } // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n\r\n\r\n if (is_math_call) {\r\n math[rngname] = prng;\r\n return seed;\r\n } // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\r\n }\r\n\r\n math['seed' + rngname] = seedrandom; //\r\n // ARC4\r\n //\r\n // An ARC4 implementation. The constructor takes a key in the form of\r\n // an array of at most (width) integers that should be 0 <= x < (width).\r\n //\r\n // The g(count) method returns a pseudorandom integer that concatenates\r\n // the next (count) outputs from ARC4. Its return value is a number x\r\n // that is in the range 0 <= x < (width ^ count).\r\n //\r\n\r\n function ARC4(key) {\r\n var t,\r\n keylen = key.length,\r\n me = this,\r\n i = 0,\r\n j = me.i = me.j = 0,\r\n s = me.S = []; // The empty key [] is treated as [0].\r\n\r\n if (!keylen) {\r\n key = [keylen++];\r\n } // Set up S using the standard key scheduling algorithm.\r\n\r\n\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\r\n s[j] = t;\r\n } // The \"g\" method returns the next (count) outputs as one number.\r\n\r\n\r\n me.g = function (count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t,\r\n r = 0,\r\n i = me.i,\r\n j = me.j,\r\n s = me.S;\r\n\r\n while (count--) {\r\n t = s[i = mask & i + 1];\r\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\r\n }\r\n\r\n me.i = i;\r\n me.j = j;\r\n return r; // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n } //\r\n // copy()\r\n // Copies internal state of ARC4 to or from a plain object.\r\n //\r\n\r\n\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n } //\r\n // flatten()\r\n // Converts an object tree to nested arrays of strings.\r\n //\r\n\r\n\r\n function flatten(obj, depth) {\r\n var result = [],\r\n typ = _typeof$1(obj),\r\n prop;\r\n\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try {\r\n result.push(flatten(obj[prop], depth - 1));\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\r\n } //\r\n // mixkey()\r\n // Mixes a string seed into a key that is an array of integers, and\r\n // returns a shortened string seed that is equivalent to the result key.\r\n //\r\n\r\n\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '',\r\n smear,\r\n j = 0;\r\n\r\n while (j < stringseed.length) {\r\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\r\n }\r\n\r\n return tostring(key);\r\n } //\r\n // autoseed()\r\n // Returns an object for autoseeding, using window.crypto and Node crypto\r\n // module if available.\r\n //\r\n\r\n\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) {\r\n return tostring(nodecrypto.randomBytes(width));\r\n }\r\n\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n } //\r\n // tostring()\r\n // Converts an array of charcodes to a string\r\n //\r\n\r\n\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n } //\r\n // When seedrandom.js is loaded, we immediately mix a few bits\r\n // from the built-in RNG into the entropy pool. Because we do\r\n // not want to interfere with deterministic PRNG state later,\r\n // seedrandom will not call math.random on its own again after\r\n // initialization.\r\n //\r\n\r\n\r\n mixkey(math.random(), pool); //\r\n // Nodejs and AMD support: export the implementation as a module using\r\n // either convention.\r\n //\r\n // End anonymous scope, and pass initial values.\r\n }\r\n\r\n ;\r\n\r\n function initialize$2(BMMath) {\r\n seedRandom([], BMMath);\r\n }\r\n\r\n var propTypes = {\r\n SHAPE: 'shape'\r\n };\r\n\r\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\r\n\r\n var ExpressionManager = function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n initialize$2(BMMath);\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = _typeof(a);\r\n\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a - b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a % b;\r\n }\r\n\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n\r\n var degrees_to_radians = radiansToDegrees;\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0];\r\n var g = val[1];\r\n var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n\r\n b = l; // achromatic\r\n\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n\r\n if (t <= tMin) {\r\n return value1;\r\n }\r\n\r\n if (t >= tMax) {\r\n return value2;\r\n }\r\n\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n // Bail out if we don't want expressions\r\n function noOp(_value) {\r\n return _value;\r\n }\r\n\r\n if (!elem.globalData.renderConfig.runExpressions) {\r\n return noOp;\r\n }\r\n\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function get() {\r\n return thisProperty.v;\r\n }\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n\r\n var numKeys = property.kf ? data.k.length : 0;\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n\r\n iWiggle += 1;\r\n } // var rnd2 = BMMath.random();\r\n\r\n\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n\r\n var mult = fn(t);\r\n\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: []\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n lenKey = arr.length;\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n\r\n return value.substring(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n\r\n return value.substr(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n // Changed this to a ternary operation because Rollup failed compiling it correctly\r\n\r\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\r\n return scoped_bm_rt;\r\n } // Bundlers will see these as dead code and unless we reference them\r\n\r\n\r\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\r\n return ob;\r\n }();\r\n\r\n var expressionHelpers = function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n\r\n if (v1.length) {\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n\r\n var delta = -0.001; // frameNum += this.elem.data.st;\r\n\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty\r\n };\r\n }();\r\n\r\n function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\r\n }\r\n\r\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n\r\n var sampleValue;\r\n\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix()\r\n };\r\n } /// /\r\n\r\n\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\r\n }\r\n\r\n return matrix; /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n\r\n ShapeExpressions.prototype = {\r\n vertices: function vertices(prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n\r\n return arr;\r\n },\r\n points: function points(time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function inTangents(time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function outTangents(time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function isClosed() {\r\n return this.v.c;\r\n },\r\n pointOnPath: function pointOnPath(perc, time) {\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n\r\n return pt;\r\n },\r\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) {\r\n // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) {\r\n // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function tangentOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function normalOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n }\r\n\r\n function initialize$1() {\r\n addPropertyDecorator();\r\n }\r\n\r\n function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n }\r\n\r\n function initialize() {\r\n addDecorator();\r\n }\r\n\r\n function SVGComposableEffect() {}\r\n\r\n SVGComposableEffect.prototype = {\r\n createMergeNode: function createMergeNode(resultId, ins) {\r\n var feMerge = createNS('feMerge');\r\n feMerge.setAttribute('result', resultId);\r\n var feMergeNode;\r\n var i;\r\n\r\n for (i = 0; i < ins.length; i += 1) {\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', ins[i]);\r\n feMerge.appendChild(feMergeNode);\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n\r\n return feMerge;\r\n }\r\n };\r\n\r\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\r\n\r\n function SVGTintFilter(filter, filterManager, elem, id, source) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\r\n this.linearFilter = feColorMatrix;\r\n feColorMatrix.setAttribute('result', id + '_tint_1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id + '_tint_2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\r\n filter.appendChild(feMerge);\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGTintFilter);\r\n\r\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\r\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\r\n }\r\n };\r\n\r\n function SVGFillFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id);\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n }\r\n\r\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n };\r\n\r\n function SVGStrokeEffect(fil, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n }\r\n\r\n SVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({\r\n p: path,\r\n m: i\r\n });\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n };\r\n\r\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n };\r\n\r\n function SVGTritoneFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n }\r\n };\r\n\r\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n } // Green\r\n\r\n\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n } // Blue\r\n\r\n\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n } // Alpha\r\n\r\n\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n } // RGB\r\n\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n }\r\n\r\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n };\r\n\r\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, {\r\n length: segments\r\n });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\r\n }\r\n\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n\r\n return table.join(' ');\r\n };\r\n\r\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n };\r\n\r\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\r\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n var filterSize = filterManager.data.fs || globalFilterSize;\r\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\r\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\r\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\r\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', id + '_drop_shadow_1');\r\n feOffset.setAttribute('result', id + '_drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', id + '_drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', id + '_drop_shadow_3');\r\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', id + '_drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\r\n filter.appendChild(feMerge); //\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\r\n\r\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n }\r\n };\r\n\r\n var _svgMatteSymbols = [];\r\n\r\n function SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n }\r\n\r\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var nextChild;\r\n\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n };\r\n\r\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n\r\n _svgMatteSymbols.push(mask);\r\n\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n\r\n elem.setMatte(mask.layerId);\r\n };\r\n\r\n SVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.initialized = true;\r\n };\r\n\r\n SVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('result', id);\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n }\r\n\r\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n\r\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n };\r\n\r\n registerRenderer('canvas', CanvasRenderer);\r\n registerRenderer('html', HybridRenderer);\r\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\r\n\r\n ShapeModifiers.registerModifier('tm', TrimModifier);\r\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\r\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\r\n\r\n setExpressionsPlugin(Expressions);\r\n setExpressionInterfaces(getInterface);\r\n initialize$1();\r\n initialize(); // Registering svg effects\r\n\r\n registerEffect(20, SVGTintFilter, true);\r\n registerEffect(21, SVGFillFilter, true);\r\n registerEffect(22, SVGStrokeEffect, false);\r\n registerEffect(23, SVGTritoneFilter, true);\r\n registerEffect(24, SVGProLevelsFilter, true);\r\n registerEffect(25, SVGDropShadowEffect, true);\r\n registerEffect(28, SVGMatte3Effect, false);\r\n registerEffect(29, SVGGaussianBlurEffect, true);\r\n\r\n return lottie;\r\n\r\n}));\r\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\nvar countup_js = require('countup.js');\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\n/**\n * Silence SSR Warnings.\n * Borrowed from Formik v2.1.1, Licensed MIT.\n *\n * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE\n */\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Create a stable reference to a callback which is updated after each render is committed.\n * Typed version borrowed from Formik v2.2.1. Licensed MIT.\n *\n * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE\n */\nfunction useEventCallback(fn) {\n var ref = React.useRef(fn);\n\n // we copy a ref to the callback scoped to the current state/props on each render\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nvar createCountUpInstance = function createCountUpInstance(el, props) {\n var decimal = props.decimal,\n decimals = props.decimals,\n duration = props.duration,\n easingFn = props.easingFn,\n end = props.end,\n formattingFn = props.formattingFn,\n numerals = props.numerals,\n prefix = props.prefix,\n separator = props.separator,\n start = props.start,\n suffix = props.suffix,\n useEasing = props.useEasing,\n enableScrollSpy = props.enableScrollSpy,\n scrollSpyDelay = props.scrollSpyDelay,\n scrollSpyOnce = props.scrollSpyOnce;\n return new countup_js.CountUp(el, end, {\n startVal: start,\n duration: duration,\n decimal: decimal,\n decimalPlaces: decimals,\n easingFn: easingFn,\n formattingFn: formattingFn,\n numerals: numerals,\n separator: separator,\n prefix: prefix,\n suffix: suffix,\n useEasing: useEasing,\n useGrouping: !!separator,\n enableScrollSpy: enableScrollSpy,\n scrollSpyDelay: scrollSpyDelay,\n scrollSpyOnce: scrollSpyOnce\n });\n};\n\nvar _excluded$1 = [\"ref\", \"startOnMount\", \"enableReinitialize\", \"delay\", \"onEnd\", \"onStart\", \"onPauseResume\", \"onReset\", \"onUpdate\"];\nvar DEFAULTS = {\n decimal: '.',\n delay: null,\n prefix: '',\n suffix: '',\n duration: 2,\n start: 0,\n startOnMount: true,\n enableReinitialize: true\n};\nvar useCountUp = function useCountUp(props) {\n var _useMemo = React.useMemo(function () {\n return _objectSpread2(_objectSpread2({}, DEFAULTS), props);\n }, [props]),\n ref = _useMemo.ref,\n startOnMount = _useMemo.startOnMount,\n enableReinitialize = _useMemo.enableReinitialize,\n delay = _useMemo.delay,\n onEnd = _useMemo.onEnd,\n onStart = _useMemo.onStart,\n onPauseResume = _useMemo.onPauseResume,\n onReset = _useMemo.onReset,\n onUpdate = _useMemo.onUpdate,\n instanceProps = _objectWithoutProperties(_useMemo, _excluded$1);\n var countUpRef = React.useRef();\n var timerRef = React.useRef();\n var isInitializedRef = React.useRef(false);\n var createInstance = useEventCallback(function () {\n return createCountUpInstance(typeof ref === 'string' ? ref : ref.current, instanceProps);\n });\n var getCountUp = useEventCallback(function (recreate) {\n var countUp = countUpRef.current;\n if (countUp && !recreate) {\n return countUp;\n }\n var newCountUp = createInstance();\n countUpRef.current = newCountUp;\n return newCountUp;\n });\n var start = useEventCallback(function () {\n var run = function run() {\n return getCountUp(true).start(function () {\n onEnd === null || onEnd === void 0 ? void 0 : onEnd({\n pauseResume: pauseResume,\n reset: reset,\n start: restart,\n update: update\n });\n });\n };\n if (delay && delay > 0) {\n timerRef.current = setTimeout(run, delay * 1000);\n } else {\n run();\n }\n onStart === null || onStart === void 0 ? void 0 : onStart({\n pauseResume: pauseResume,\n reset: reset,\n update: update\n });\n });\n var pauseResume = useEventCallback(function () {\n getCountUp().pauseResume();\n onPauseResume === null || onPauseResume === void 0 ? void 0 : onPauseResume({\n reset: reset,\n start: restart,\n update: update\n });\n });\n var reset = useEventCallback(function () {\n // Quick fix for https://github.com/glennreyes/react-countup/issues/736 - should be investigated\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (getCountUp().el) {\n timerRef.current && clearTimeout(timerRef.current);\n getCountUp().reset();\n onReset === null || onReset === void 0 ? void 0 : onReset({\n pauseResume: pauseResume,\n start: restart,\n update: update\n });\n }\n });\n var update = useEventCallback(function (newEnd) {\n getCountUp().update(newEnd);\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate({\n pauseResume: pauseResume,\n reset: reset,\n start: restart\n });\n });\n var restart = useEventCallback(function () {\n reset();\n start();\n });\n var maybeInitialize = useEventCallback(function (shouldReset) {\n if (startOnMount) {\n if (shouldReset) {\n reset();\n }\n start();\n }\n });\n React.useEffect(function () {\n if (!isInitializedRef.current) {\n isInitializedRef.current = true;\n maybeInitialize();\n } else if (enableReinitialize) {\n maybeInitialize(true);\n }\n }, [enableReinitialize, isInitializedRef, maybeInitialize, delay, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.formattingFn]);\n React.useEffect(function () {\n return function () {\n reset();\n };\n }, [reset]);\n return {\n start: restart,\n pauseResume: pauseResume,\n reset: reset,\n update: update,\n getCountUp: getCountUp\n };\n};\n\nvar _excluded = [\"className\", \"redraw\", \"containerProps\", \"children\", \"style\"];\nvar CountUp = function CountUp(props) {\n var className = props.className,\n redraw = props.redraw,\n containerProps = props.containerProps,\n children = props.children,\n style = props.style,\n useCountUpProps = _objectWithoutProperties(props, _excluded);\n var containerRef = React.useRef(null);\n var isInitializedRef = React.useRef(false);\n var _useCountUp = useCountUp(_objectSpread2(_objectSpread2({}, useCountUpProps), {}, {\n ref: containerRef,\n startOnMount: typeof children !== 'function' || props.delay === 0,\n // component manually restarts\n enableReinitialize: false\n })),\n start = _useCountUp.start,\n reset = _useCountUp.reset,\n updateCountUp = _useCountUp.update,\n pauseResume = _useCountUp.pauseResume,\n getCountUp = _useCountUp.getCountUp;\n var restart = useEventCallback(function () {\n start();\n });\n var update = useEventCallback(function (end) {\n if (!props.preserveValue) {\n reset();\n }\n updateCountUp(end);\n });\n var initializeOnMount = useEventCallback(function () {\n if (typeof props.children === 'function') {\n // Warn when user didn't use containerRef at all\n if (!(containerRef.current instanceof Element)) {\n console.error(\"Couldn't find attached element to hook the CountUp instance into! Try to attach \\\"containerRef\\\" from the render prop to a an Element, eg. .\");\n return;\n }\n }\n\n // unlike the hook, the CountUp component initializes on mount\n getCountUp();\n });\n React.useEffect(function () {\n initializeOnMount();\n }, [initializeOnMount]);\n React.useEffect(function () {\n if (isInitializedRef.current) {\n update(props.end);\n }\n }, [props.end, update]);\n var redrawDependencies = redraw && props;\n\n // if props.redraw, call this effect on every props change\n React.useEffect(function () {\n if (redraw && isInitializedRef.current) {\n restart();\n }\n }, [restart, redraw, redrawDependencies]);\n\n // if not props.redraw, call this effect only when certain props are changed\n React.useEffect(function () {\n if (!redraw && isInitializedRef.current) {\n restart();\n }\n }, [restart, redraw, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.className, props.formattingFn]);\n React.useEffect(function () {\n isInitializedRef.current = true;\n }, []);\n if (typeof children === 'function') {\n // TypeScript forces functional components to return JSX.Element | null.\n return children({\n countUpRef: containerRef,\n start: start,\n reset: reset,\n update: updateCountUp,\n pauseResume: pauseResume,\n getCountUp: getCountUp\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: className,\n ref: containerRef,\n style: style\n }, containerProps), typeof props.start !== 'undefined' ? getCountUp().formattingFn(props.start) : '');\n};\n\nexports.default = CountUp;\nexports.useCountUp = useCountUp;\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value) {\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@container|@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n ;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n\n if (oldRule) {\n this.remove(oldRule);\n }\n\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */\n ;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value);\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n var indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1;\n var cssValueWithoutImportantFlag = indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue;\n cssRule.style.setProperty(prop, cssValueWithoutImportantFlag, indexOfImportantFlag > -1 ? 'important' : '');\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.10.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@mui/utils';\nexport default function mergeClasses(options = {}) {\n const {\n baseClasses,\n newClasses,\n Component\n } = options;\n if (!newClasses) {\n return baseClasses;\n }\n const nextClasses = _extends({}, baseClasses);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([`MUI: The value \\`${newClasses}\\` ` + `provided to the classes prop of ${getDisplayName(Component)} is incorrect.`, 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n Object.keys(newClasses).forEach(key => {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([`MUI: The key \\`${key}\\` ` + `provided to the classes prop is not implemented in ${getDisplayName(Component)}.`, `You can only override one of the following: ${Object.keys(baseClasses).join(',')}.`].join('\\n'));\n }\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([`MUI: The key \\`${key}\\` ` + `provided to the classes prop is not valid for ${getDisplayName(Component)}.`, `You need to provide a non empty string instead of: ${newClasses[key]}.`].join('\\n'));\n }\n }\n if (newClasses[key]) {\n nextClasses[key] = `${baseClasses[key]} ${newClasses[key]}`;\n }\n });\n return nextClasses;\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\n\nconst multiKeyStore = {\n set: (cache, key1, key2, value) => {\n let subCache = cache.get(key1);\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n subCache.set(key2, value);\n },\n get: (cache, key1, key2) => {\n const subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: (cache, key1, key2) => {\n const subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import { unstable_nested as nested } from '@mui/private-theming/ThemeProvider';\n\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously defined styles as well as\n * being untouched by simple user overrides.\n */\nconst stateClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n// Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\nexport default function createGenerateClassName(options = {}) {\n const {\n disableGlobal = false,\n productionPrefix = 'jss',\n seed = ''\n } = options;\n const seedPrefix = seed === '' ? '' : `${seed}-`;\n let ruleCounter = 0;\n const getNextCounterId = () => {\n ruleCounter += 1;\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['MUI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n return ruleCounter;\n };\n return (rule, styleSheet) => {\n const name = styleSheet.options.name;\n\n // Is a global static MUI style?\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (stateClasses.indexOf(rule.key) !== -1) {\n return `Mui-${rule.key}`;\n }\n const prefix = `${seedPrefix}${name}-${rule.key}`;\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n return `${prefix}-${getNextCounterId()}`;\n }\n if (process.env.NODE_ENV === 'production') {\n return `${seedPrefix}${productionPrefix}${getNextCounterId()}`;\n }\n const suffix = `${rule.key}-${getNextCounterId()}`;\n\n // Help with debuggability.\n if (styleSheet.options.classNamePrefix) {\n return `${seedPrefix}${styleSheet.options.classNamePrefix}-${suffix}`;\n }\n return `${seedPrefix}${suffix}`;\n };\n}","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"injectFirst\", \"disableGeneration\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport { create } from 'jss';\nimport createGenerateClassName from '../createGenerateClassName';\nimport jssPreset from '../jssPreset';\n\n// Default JSS instance.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultJSS = create(jssPreset());\n\n// Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\nconst defaultGenerateClassName = createGenerateClassName();\nconst defaultSheetsManager = new Map();\n// Exported for test purposes\nexport { defaultSheetsManager as sheetsManager };\nconst defaultOptions = {\n disableGeneration: false,\n generateClassName: defaultGenerateClassName,\n jss: defaultJSS,\n sheetsCache: null,\n sheetsManager: defaultSheetsManager,\n sheetsRegistry: null\n};\nexport const StylesContext = /*#__PURE__*/React.createContext(defaultOptions);\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\nlet injectFirstNode;\nexport default function StylesProvider(props) {\n const {\n children,\n injectFirst = false,\n disableGeneration = false\n } = props,\n localOptions = _objectWithoutPropertiesLoose(props, _excluded);\n const outerOptions = React.useContext(StylesContext);\n const {\n generateClassName,\n jss,\n serverGenerateClassName,\n sheetsCache,\n sheetsManager,\n sheetsRegistry\n } = _extends({}, outerOptions, localOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('MUI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n const value = React.useMemo(() => {\n const context = {\n disableGeneration,\n generateClassName,\n jss,\n serverGenerateClassName,\n sheetsCache,\n sheetsManager,\n sheetsRegistry\n };\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('MUI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('MUI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n const head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n return context;\n }, [injectFirst, disableGeneration, generateClassName, jss, serverGenerateClassName, sheetsCache, sheetsManager, sheetsRegistry]);\n return /*#__PURE__*/_jsx(StylesContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: PropTypes.bool,\n /**\n * JSS's class name generator.\n */\n generateClassName: PropTypes.func,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool,\n /**\n * JSS's instance.\n */\n jss: PropTypes.object,\n /**\n * @ignore\n */\n serverGenerateClassName: PropTypes.func,\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: PropTypes.object,\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: PropTypes.object,\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: PropTypes.object\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = exactProp(StylesProvider.propTypes) : void 0;\n}","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort';\n\n// Subset of jss-preset-default with only the plugins the MUI components are using.\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(),\n // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nlet indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['MUI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n return indexCounter;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nfunction isEmpty(string) {\n return string.length === 0;\n}\n\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created\n */\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { deepmerge } from '@mui/utils';\nimport propsToClassKey from '../propsToClassKey';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n const themingEnabled = typeof stylesOrCreator === 'function';\n if (process.env.NODE_ENV !== 'production') {\n if (typeof stylesOrCreator !== 'object' && !themingEnabled) {\n console.error(['MUI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n return {\n create: (theme, name) => {\n let styles;\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['MUI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n throw err;\n }\n if (!name || !theme.components || !theme.components[name] || !theme.components[name].styleOverrides && !theme.components[name].variants) {\n return styles;\n }\n const overrides = theme.components[name].styleOverrides || {};\n const variants = theme.components[name].variants || [];\n const stylesWithOverrides = _extends({}, styles);\n Object.keys(overrides).forEach(key => {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['MUI: You are trying to override a style that does not exist.', `Fix the \\`${key}\\` key of \\`theme.components.${name}.styleOverrides\\`.`, '', `If you intentionally wanted to add a new key, please use the theme.components[${name}].variants option.`].join('\\n'));\n }\n }\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key] || {}, overrides[key]);\n });\n variants.forEach(definition => {\n const classKey = propsToClassKey(definition.props);\n stylesWithOverrides[classKey] = deepmerge(stylesWithOverrides[classKey] || {}, definition.style);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nconst noopTheme = {};\nexport default noopTheme;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"];\nimport * as React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\nfunction getClasses({\n state,\n stylesOptions\n}, classes, Component) {\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n }\n\n // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n let generate = false;\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component\n });\n }\n return state.cacheClasses.value;\n}\nfunction attach({\n state,\n theme,\n stylesOptions,\n stylesCreator,\n name\n}, props) {\n if (stylesOptions.disableGeneration) {\n return;\n }\n let sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n const options = _extends({}, stylesCreator.options, stylesOptions, {\n theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n const sheetsRegistry = stylesOptions.sheetsRegistry;\n if (sheetManager.refs === 0) {\n let staticSheet;\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n const styles = stylesCreator.create(theme, name);\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n if (sheetManager.dynamicStyles) {\n const dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n sheetManager.refs += 1;\n}\nfunction update({\n state\n}, props) {\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\nfunction detach({\n state,\n theme,\n stylesOptions,\n stylesCreator\n}) {\n if (stylesOptions.disableGeneration) {\n return;\n }\n const sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n const sheetsRegistry = stylesOptions.sheetsRegistry;\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\nfunction useSynchronousEffect(func, values) {\n const key = React.useRef([]);\n let output;\n\n // Store \"generation\" key. Just returns a new object every time\n const currentKey = React.useMemo(() => ({}), values); // eslint-disable-line react-hooks/exhaustive-deps\n\n // \"the first render\", or \"memo dropped the value\"\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n React.useEffect(() => () => {\n if (output) {\n output();\n }\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator, options = {}) {\n const {\n // alias for classNamePrefix, if provided will listen to theme (required for theme.components[name].styleOverrides)\n name,\n // Help with debuggability.\n classNamePrefix: classNamePrefixOption,\n Component,\n defaultTheme = noopTheme\n } = options,\n stylesOptions2 = _objectWithoutPropertiesLoose(options, _excluded);\n const stylesCreator = getStylesCreator(stylesOrCreator);\n const classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name,\n meta: classNamePrefix,\n classNamePrefix\n };\n const useStyles = (props = {}) => {\n const theme = useTheme() || defaultTheme;\n const stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n const instance = React.useRef();\n const shouldUpdate = React.useRef();\n useSynchronousEffect(() => {\n const current = {\n name,\n state: {},\n stylesCreator,\n stylesOptions,\n theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return () => {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(() => {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n shouldUpdate.current = true;\n });\n const classes = getClasses(instance.current, props.classes, Component);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n if (process.env.NODE_ENV !== 'production') {\n const supportedComponents = ['MuiAvatar', 'MuiBadge', 'MuiButton', 'MuiButtonGroup', 'MuiChip', 'MuiDivider', 'MuiFab', 'MuiPaper', 'MuiToolbar', 'MuiTypography', 'MuiAlert', 'MuiPagination', 'MuiPaginationItem', 'MuiSkeleton', 'MuiTimelineDot'];\n if (name && supportedComponents.indexOf(name) >= 0 && props.variant && !classes[props.variant]) {\n console.error([`MUI: You are using a variant value \\`${props.variant}\\` for which you didn't define styles.`, `Please create a new variant matcher in your theme for this variant. To learn more about matchers visit https://mui.com/r/custom-component-variants.`].join('\\n'));\n }\n }\n return classes;\n };\n return useStyles;\n}","export const menu: { text: string; link: string }[] = [\n { text: \"Home\", link: \"/\" },\n // { text: \"About\", link: \"/about\" },\n // { text: \"Careers\", link: \"/careers\" },\n // { text: \"Blogs\", link: \"/blogs\" },\n // { text: \"Gyan@AiM4u\", link: \"/gyan-at-aim4u/\" },\n { text: \"About\", link: \"/about\" },\n { text: \"FAQs\", link: \"/faqs\" },\n { text: \"Contact\", link: \"/contact\" },\n // { text: \"Privacy-Policy\", link: \"/privacy-policy\" },\n];\n\nexport const menu2: { text: string; link: string }[] = [\n // { text: \"Home\", link: \"/\" },\n { text: \"About\", link: \"/about\" },\n { text: \"Careers\", link: \"/careers\" },\n // { text: \"Blogs\", link: \"/blogs\" },\n { text: \"Contact\", link: \"/contact\" },\n { text: \"FAQs\", link: \"/faqs\" },\n];\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"getTrigger\", \"target\"];\nimport * as React from 'react';\nfunction defaultTrigger(store, options) {\n const {\n disableHysteresis = false,\n threshold = 100,\n target\n } = options;\n const previous = store.current;\n if (target) {\n // Get vertical scroll\n store.current = target.pageYOffset !== undefined ? target.pageYOffset : target.scrollTop;\n }\n if (!disableHysteresis && previous !== undefined) {\n if (store.current < previous) {\n return false;\n }\n }\n return store.current > threshold;\n}\nconst defaultTarget = typeof window !== 'undefined' ? window : null;\nexport default function useScrollTrigger(options = {}) {\n const {\n getTrigger = defaultTrigger,\n target = defaultTarget\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const store = React.useRef();\n const [trigger, setTrigger] = React.useState(() => getTrigger(store, other));\n React.useEffect(() => {\n const handleScroll = () => {\n setTrigger(getTrigger(store, _extends({\n target\n }, other)));\n };\n handleScroll(); // Re-evaluate trigger when dependencies change\n target.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return () => {\n target.removeEventListener('scroll', handleScroll, {\n passive: true\n });\n };\n // See Option 3. https://github.com/facebook/react/issues/14476#issuecomment-471199055\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, getTrigger, JSON.stringify(other)]);\n return trigger;\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementAcceptingRef } from '@mui/utils';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n entering: {\n transform: 'none'\n },\n entered: {\n transform: 'none'\n }\n};\n\n/**\n * The Zoom transition can be used for the floating variant of the\n * [Button](/material-ui/react-button/#floating-action-buttons) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Zoom = /*#__PURE__*/React.forwardRef(function Zoom(props, ref) {\n const theme = useTheme();\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n transform: 'scale(0)',\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Zoom.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Zoom;","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import { createElement, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-6a883da9.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-6a883da9.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.5\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": \"./macro.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.10.5\",\n\t\t\"@emotion/cache\": \"^11.10.5\",\n\t\t\"@emotion/serialize\": \"^1.1.1\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.18.5\",\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.10.5\",\n\t\t\"@emotion/css-prettifier\": \"1.1.1\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.5\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": \"./macro.js\"\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = React.useRef(null);\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n React.useEffect(() => {\n return () => {\n clearTimeout(startTimer.current);\n };\n }, []);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n startTimer.current = setTimeout(() => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n clearTimeout(startTimer.current);\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(() => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@mui/utils';\nimport composeClasses from '@mui/base/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n \n
*/}\n
\n );\n};\n\ninterface NavbarProps {\n children: React.ReactNode;\n}\n\nconst Navbar: React.FC = (props) => {\n let history = useHistory();\n const classes = useStyles();\n const [isScroll, setIsScroll] = useState(false);\n const [open, setOpen] = useState(false);\n const toggleDrawer = () => setOpen((open) => !open);\n return (\n \n \n \n \n \n \n \n \"logo\"\n \n AiM4u\n \n
\n {menu.map((m, i) => (\n history.push(m.link)}\n >\n {m.text}\n \n ))}\n \n \n
\n
\n \n \n \n \n
\n \n
\n \n
\n \n
{props.children}
\n \n \n \n \n \n
\n );\n};\n\nexport default Navbar;\n","var _path, _g, _rect, _path2, _path3, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgNewSplashScreen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 1448,\n height: 2560,\n viewBox: \"0 0 1448 2560\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_324_163)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_324_163\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 1448,\n height: 2560\n }, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1448 0H0V2560H1448V0Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_324_163)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1448 0H0V2560H1448V0Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1448 1653.76H0V2561.21H1448V1653.76Z\",\n fill: \"#0640B5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.734 2449V2419.91H148.904C150.931 2419.91 152.602 2420.26 153.918 2420.96C155.235 2421.65 156.215 2422.58 156.859 2423.76C157.503 2424.92 157.825 2426.22 157.825 2427.64C157.825 2428.89 157.602 2429.92 157.157 2430.73C156.721 2431.55 156.144 2432.19 155.424 2432.66C154.714 2433.14 153.942 2433.49 153.109 2433.72V2434C153.999 2434.06 154.894 2434.37 155.793 2434.94C156.693 2435.51 157.446 2436.32 158.052 2437.38C158.658 2438.44 158.961 2439.74 158.961 2441.27C158.961 2442.73 158.629 2444.04 157.967 2445.21C157.304 2446.37 156.257 2447.3 154.827 2447.98C153.397 2448.66 151.537 2449 149.245 2449H138.734ZM142.256 2445.88H149.245C151.546 2445.88 153.18 2445.43 154.146 2444.54C155.121 2443.64 155.609 2442.55 155.609 2441.27C155.609 2440.29 155.358 2439.38 154.856 2438.55C154.354 2437.7 153.639 2437.03 152.711 2436.53C151.783 2436.02 150.684 2435.76 149.415 2435.76H142.256V2445.88ZM142.256 2432.69H148.79C149.851 2432.69 150.808 2432.48 151.66 2432.07C152.522 2431.65 153.203 2431.06 153.705 2430.31C154.217 2429.55 154.472 2428.66 154.472 2427.64C154.472 2426.36 154.027 2425.27 153.137 2424.38C152.247 2423.48 150.836 2423.03 148.904 2423.03H142.256V2432.69ZM166.454 2457.18C165.886 2457.18 165.379 2457.13 164.934 2457.04C164.489 2456.95 164.181 2456.87 164.011 2456.78L164.863 2453.83C165.677 2454.04 166.397 2454.11 167.022 2454.06C167.647 2454 168.201 2453.72 168.684 2453.22C169.176 2452.73 169.626 2451.93 170.033 2450.82L170.658 2449.11L162.59 2427.18H166.227L172.249 2444.57H172.477L178.499 2427.18H182.136L172.874 2452.18C172.458 2453.31 171.942 2454.24 171.326 2454.98C170.71 2455.73 169.996 2456.28 169.181 2456.64C168.376 2457 167.467 2457.18 166.454 2457.18ZM211.56 2440.08V2427.18H214.913V2449H211.56V2445.31H211.333C210.822 2446.41 210.026 2447.36 208.947 2448.13C207.867 2448.9 206.504 2449.28 204.856 2449.28C203.492 2449.28 202.28 2448.99 201.219 2448.39C200.159 2447.78 199.326 2446.87 198.719 2445.66C198.113 2444.44 197.81 2442.9 197.81 2441.05V2427.18H201.163V2440.82C201.163 2442.41 201.608 2443.68 202.498 2444.62C203.397 2445.57 204.543 2446.05 205.935 2446.05C206.769 2446.05 207.616 2445.83 208.478 2445.41C209.349 2444.98 210.078 2444.33 210.665 2443.45C211.262 2442.57 211.56 2441.44 211.56 2440.08ZM236.507 2432.07L233.496 2432.92C233.306 2432.42 233.027 2431.93 232.658 2431.46C232.298 2430.97 231.805 2430.58 231.18 2430.26C230.555 2429.95 229.755 2429.8 228.78 2429.8C227.445 2429.8 226.332 2430.1 225.442 2430.72C224.561 2431.32 224.121 2432.1 224.121 2433.03C224.121 2433.87 224.424 2434.53 225.03 2435.01C225.636 2435.49 226.583 2435.89 227.871 2436.22L231.109 2437.01C233.06 2437.48 234.514 2438.21 235.47 2439.18C236.427 2440.15 236.905 2441.4 236.905 2442.92C236.905 2444.17 236.545 2445.29 235.825 2446.27C235.115 2447.26 234.121 2448.03 232.842 2448.6C231.564 2449.17 230.077 2449.45 228.382 2449.45C226.157 2449.45 224.315 2448.97 222.857 2448.01C221.398 2447.04 220.475 2445.63 220.087 2443.77L223.268 2442.98C223.571 2444.15 224.144 2445.03 224.987 2445.62C225.839 2446.21 226.952 2446.5 228.325 2446.5C229.888 2446.5 231.128 2446.17 232.047 2445.51C232.975 2444.83 233.439 2444.03 233.439 2443.09C233.439 2442.33 233.174 2441.7 232.643 2441.19C232.113 2440.67 231.299 2440.28 230.2 2440.02L226.564 2439.17C224.566 2438.7 223.098 2437.96 222.161 2436.97C221.232 2435.96 220.768 2434.71 220.768 2433.2C220.768 2431.97 221.114 2430.88 221.805 2429.94C222.506 2428.99 223.458 2428.25 224.661 2427.71C225.873 2427.17 227.246 2426.9 228.78 2426.9C230.939 2426.9 232.634 2427.37 233.865 2428.32C235.106 2429.27 235.986 2430.52 236.507 2432.07ZM241.951 2449V2427.18H245.303V2449H241.951ZM243.656 2423.55C243.002 2423.55 242.439 2423.32 241.965 2422.88C241.501 2422.43 241.269 2421.9 241.269 2421.27C241.269 2420.65 241.501 2420.11 241.965 2419.67C242.439 2419.22 243.002 2419 243.656 2419C244.309 2419 244.868 2419.22 245.332 2419.67C245.805 2420.11 246.042 2420.65 246.042 2421.27C246.042 2421.9 245.805 2422.43 245.332 2422.88C244.868 2423.32 244.309 2423.55 243.656 2423.55ZM254.795 2435.88V2449H251.443V2427.18H254.682V2430.59H254.966C255.477 2429.48 256.254 2428.59 257.295 2427.92C258.337 2427.24 259.682 2426.9 261.33 2426.9C262.807 2426.9 264.099 2427.2 265.207 2427.81C266.315 2428.4 267.177 2429.31 267.793 2430.53C268.408 2431.75 268.716 2433.28 268.716 2435.14V2449H265.364V2435.36C265.364 2433.65 264.919 2432.31 264.028 2431.36C263.138 2430.39 261.917 2429.91 260.364 2429.91C259.294 2429.91 258.337 2430.14 257.494 2430.61C256.661 2431.07 256.003 2431.75 255.52 2432.64C255.037 2433.53 254.795 2434.61 254.795 2435.88ZM283.648 2457.64C282.029 2457.64 280.637 2457.43 279.472 2457.01C278.308 2456.6 277.337 2456.06 276.56 2455.39C275.793 2454.73 275.183 2454.02 274.728 2453.26L277.398 2451.39C277.701 2451.78 278.085 2452.24 278.549 2452.75C279.013 2453.27 279.647 2453.72 280.452 2454.1C281.267 2454.49 282.332 2454.68 283.648 2454.68C285.41 2454.68 286.863 2454.26 288.009 2453.4C289.155 2452.55 289.728 2451.22 289.728 2449.4V2444.97H289.444C289.198 2445.36 288.847 2445.86 288.393 2446.44C287.948 2447.02 287.304 2447.54 286.461 2447.99C285.628 2448.44 284.501 2448.66 283.08 2448.66C281.319 2448.66 279.737 2448.24 278.336 2447.41C276.944 2446.58 275.841 2445.36 275.026 2443.77C274.221 2442.18 273.819 2440.25 273.819 2437.98C273.819 2435.74 274.212 2433.8 274.998 2432.14C275.784 2430.47 276.878 2429.18 278.279 2428.28C279.681 2427.36 281.3 2426.9 283.137 2426.9C284.558 2426.9 285.684 2427.13 286.518 2427.61C287.361 2428.07 288.004 2428.6 288.45 2429.2C288.904 2429.79 289.254 2430.27 289.501 2430.65H289.842V2427.18H293.08V2449.62C293.08 2451.5 292.654 2453.02 291.802 2454.2C290.959 2455.38 289.823 2456.25 288.393 2456.8C286.972 2457.36 285.391 2457.64 283.648 2457.64ZM283.535 2445.65C284.879 2445.65 286.016 2445.34 286.944 2444.72C287.872 2444.11 288.577 2443.22 289.06 2442.07C289.543 2440.91 289.785 2439.53 289.785 2437.92C289.785 2436.35 289.548 2434.96 289.075 2433.76C288.601 2432.56 287.9 2431.61 286.972 2430.93C286.044 2430.25 284.898 2429.91 283.535 2429.91C282.114 2429.91 280.931 2430.27 279.984 2430.99C279.046 2431.71 278.341 2432.67 277.867 2433.89C277.403 2435.1 277.171 2436.44 277.171 2437.92C277.171 2439.44 277.408 2440.78 277.881 2441.94C278.364 2443.1 279.075 2444 280.012 2444.67C280.959 2445.32 282.133 2445.65 283.535 2445.65ZM319.898 2449H310.921V2419.91H320.296C323.118 2419.91 325.533 2420.49 327.54 2421.66C329.548 2422.81 331.087 2424.47 332.157 2426.64C333.227 2428.8 333.762 2431.39 333.762 2434.4C333.762 2437.43 333.222 2440.04 332.143 2442.22C331.063 2444.4 329.491 2446.08 327.427 2447.25C325.362 2448.42 322.853 2449 319.898 2449ZM314.444 2445.88H319.671C322.076 2445.88 324.07 2445.41 325.651 2444.48C327.233 2443.55 328.412 2442.23 329.188 2440.52C329.965 2438.81 330.353 2436.77 330.353 2434.4C330.353 2432.05 329.969 2430.03 329.202 2428.33C328.435 2426.63 327.29 2425.32 325.765 2424.41C324.24 2423.49 322.342 2423.03 320.069 2423.03H314.444V2445.88ZM348.364 2449.45C346.262 2449.45 344.449 2448.99 342.924 2448.06C341.409 2447.12 340.239 2445.82 339.415 2444.14C338.601 2442.46 338.194 2440.5 338.194 2438.26C338.194 2436.03 338.601 2434.06 339.415 2432.35C340.239 2430.64 341.385 2429.3 342.853 2428.35C344.33 2427.38 346.054 2426.9 348.023 2426.9C349.16 2426.9 350.282 2427.09 351.39 2427.47C352.498 2427.84 353.506 2428.46 354.415 2429.31C355.325 2430.16 356.049 2431.27 356.589 2432.66C357.129 2434.06 357.398 2435.77 357.398 2437.81V2439.23H340.58V2436.33H353.989C353.989 2435.1 353.743 2434 353.251 2433.03C352.768 2432.07 352.076 2431.31 351.177 2430.75C350.287 2430.19 349.236 2429.91 348.023 2429.91C346.688 2429.91 345.533 2430.24 344.558 2430.9C343.592 2431.56 342.848 2432.41 342.327 2433.46C341.807 2434.51 341.546 2435.64 341.546 2436.84V2438.77C341.546 2440.42 341.83 2441.82 342.398 2442.96C342.976 2444.1 343.776 2444.97 344.799 2445.56C345.822 2446.15 347.01 2446.44 348.364 2446.44C349.245 2446.44 350.04 2446.32 350.751 2446.07C351.47 2445.82 352.091 2445.44 352.612 2444.94C353.132 2444.43 353.535 2443.79 353.819 2443.03L357.058 2443.94C356.717 2445.04 356.144 2446.01 355.339 2446.84C354.534 2447.66 353.54 2448.31 352.356 2448.77C351.172 2449.23 349.842 2449.45 348.364 2449.45ZM362.498 2449V2427.18H365.737V2430.48H365.964C366.362 2429.4 367.081 2428.52 368.123 2427.85C369.165 2427.18 370.339 2426.84 371.646 2426.84C371.892 2426.84 372.2 2426.85 372.569 2426.86C372.938 2426.86 373.218 2426.88 373.407 2426.9V2430.31C373.293 2430.28 373.033 2430.24 372.626 2430.18C372.228 2430.11 371.807 2430.08 371.362 2430.08C370.301 2430.08 369.354 2430.3 368.521 2430.75C367.697 2431.18 367.043 2431.79 366.56 2432.57C366.087 2433.33 365.85 2434.21 365.85 2435.19V2449H362.498ZM377.381 2449V2427.18H380.619V2430.59H380.903C381.358 2429.43 382.092 2428.52 383.105 2427.88C384.118 2427.22 385.335 2426.9 386.756 2426.9C388.195 2426.9 389.393 2427.22 390.349 2427.88C391.315 2428.52 392.068 2429.43 392.608 2430.59H392.835C393.394 2429.46 394.232 2428.57 395.349 2427.91C396.467 2427.23 397.807 2426.9 399.369 2426.9C401.32 2426.9 402.916 2427.51 404.156 2428.73C405.397 2429.94 406.017 2431.83 406.017 2434.4V2449H402.665V2434.4C402.665 2432.79 402.224 2431.64 401.344 2430.95C400.463 2430.25 399.426 2429.91 398.233 2429.91C396.699 2429.91 395.51 2430.37 394.668 2431.3C393.825 2432.22 393.403 2433.38 393.403 2434.8V2449H389.994V2434.06C389.994 2432.82 389.592 2431.82 388.787 2431.06C387.982 2430.29 386.945 2429.91 385.676 2429.91C384.805 2429.91 383.991 2430.14 383.233 2430.61C382.485 2431.07 381.879 2431.71 381.415 2432.54C380.96 2433.35 380.733 2434.29 380.733 2435.36V2449H377.381ZM418.567 2449.51C417.184 2449.51 415.929 2449.25 414.803 2448.73C413.676 2448.2 412.781 2447.44 412.118 2446.44C411.455 2445.44 411.124 2444.23 411.124 2442.81C411.124 2441.56 411.37 2440.54 411.862 2439.77C412.355 2438.98 413.013 2438.37 413.837 2437.92C414.661 2437.48 415.57 2437.14 416.564 2436.93C417.568 2436.7 418.576 2436.52 419.589 2436.39C420.915 2436.22 421.99 2436.09 422.814 2436C423.647 2435.91 424.253 2435.75 424.632 2435.53C425.02 2435.32 425.214 2434.94 425.214 2434.4V2434.28C425.214 2432.88 424.831 2431.79 424.064 2431.02C423.306 2430.24 422.156 2429.85 420.612 2429.85C419.012 2429.85 417.757 2430.2 416.848 2430.9C415.939 2431.6 415.3 2432.35 414.93 2433.15L411.749 2432.01C412.317 2430.69 413.074 2429.65 414.021 2428.91C414.978 2428.17 416.019 2427.65 417.146 2427.35C418.283 2427.05 419.4 2426.9 420.499 2426.9C421.199 2426.9 422.004 2426.98 422.913 2427.15C423.832 2427.31 424.717 2427.65 425.57 2428.16C426.431 2428.67 427.146 2429.45 427.714 2430.48C428.283 2431.51 428.567 2432.89 428.567 2434.62V2449H425.214V2446.05H425.044C424.817 2446.52 424.438 2447.03 423.908 2447.57C423.377 2448.11 422.672 2448.56 421.791 2448.94C420.911 2449.32 419.836 2449.51 418.567 2449.51ZM419.078 2446.5C420.404 2446.5 421.521 2446.24 422.43 2445.72C423.349 2445.2 424.04 2444.53 424.504 2443.7C424.978 2442.88 425.214 2442.01 425.214 2441.1V2438.03C425.072 2438.2 424.76 2438.36 424.277 2438.5C423.804 2438.64 423.254 2438.75 422.629 2438.86C422.014 2438.95 421.412 2439.04 420.825 2439.11C420.248 2439.18 419.779 2439.24 419.419 2439.28C418.548 2439.4 417.733 2439.58 416.976 2439.84C416.228 2440.08 415.622 2440.46 415.158 2440.96C414.703 2441.45 414.476 2442.12 414.476 2442.98C414.476 2444.14 414.907 2445.02 415.768 2445.62C416.64 2446.21 417.743 2446.5 419.078 2446.5ZM438.038 2419.91V2449H434.685V2419.91H438.038ZM453.325 2449.45C451.223 2449.45 449.41 2448.99 447.885 2448.06C446.37 2447.12 445.2 2445.82 444.376 2444.14C443.562 2442.46 443.155 2440.5 443.155 2438.26C443.155 2436.03 443.562 2434.06 444.376 2432.35C445.2 2430.64 446.346 2429.3 447.814 2428.35C449.291 2427.38 451.015 2426.9 452.984 2426.9C454.121 2426.9 455.243 2427.09 456.351 2427.47C457.459 2427.84 458.467 2428.46 459.376 2429.31C460.286 2430.16 461.01 2431.27 461.55 2432.66C462.089 2434.06 462.359 2435.77 462.359 2437.81V2439.23H445.541V2436.33H458.95C458.95 2435.1 458.704 2434 458.212 2433.03C457.729 2432.07 457.037 2431.31 456.138 2430.75C455.248 2430.19 454.196 2429.91 452.984 2429.91C451.649 2429.91 450.494 2430.24 449.518 2430.9C448.553 2431.56 447.809 2432.41 447.288 2433.46C446.768 2434.51 446.507 2435.64 446.507 2436.84V2438.77C446.507 2440.42 446.791 2441.82 447.359 2442.96C447.937 2444.1 448.737 2444.97 449.76 2445.56C450.783 2446.15 451.971 2446.44 453.325 2446.44C454.206 2446.44 455.001 2446.32 455.712 2446.07C456.431 2445.82 457.052 2445.44 457.572 2444.94C458.093 2444.43 458.496 2443.79 458.78 2443.03L462.018 2443.94C461.678 2445.04 461.105 2446.01 460.3 2446.84C459.495 2447.66 458.5 2448.31 457.317 2448.77C456.133 2449.23 454.803 2449.45 453.325 2449.45ZM470.811 2435.88V2449H467.459V2427.18H470.697V2430.59H470.982C471.493 2429.48 472.269 2428.59 473.311 2427.92C474.353 2427.24 475.697 2426.9 477.345 2426.9C478.822 2426.9 480.115 2427.2 481.223 2427.81C482.331 2428.4 483.193 2429.31 483.808 2430.53C484.424 2431.75 484.732 2433.28 484.732 2435.14V2449H481.379V2435.36C481.379 2433.65 480.934 2432.31 480.044 2431.36C479.154 2430.39 477.932 2429.91 476.379 2429.91C475.309 2429.91 474.353 2430.14 473.51 2430.61C472.677 2431.07 472.018 2431.75 471.536 2432.64C471.053 2433.53 470.811 2434.61 470.811 2435.88ZM506.312 2432.07L503.3 2432.92C503.111 2432.42 502.832 2431.93 502.462 2431.46C502.103 2430.97 501.61 2430.58 500.985 2430.26C500.36 2429.95 499.56 2429.8 498.585 2429.8C497.249 2429.8 496.137 2430.1 495.246 2430.72C494.366 2431.32 493.925 2432.1 493.925 2433.03C493.925 2433.87 494.228 2434.53 494.835 2435.01C495.441 2435.49 496.388 2435.89 497.675 2436.22L500.914 2437.01C502.865 2437.48 504.318 2438.21 505.275 2439.18C506.231 2440.15 506.71 2441.4 506.71 2442.92C506.71 2444.17 506.35 2445.29 505.63 2446.27C504.92 2447.26 503.925 2448.03 502.647 2448.6C501.369 2449.17 499.882 2449.45 498.187 2449.45C495.961 2449.45 494.12 2448.97 492.661 2448.01C491.203 2447.04 490.28 2445.63 489.891 2443.77L493.073 2442.98C493.376 2444.15 493.949 2445.03 494.792 2445.62C495.644 2446.21 496.757 2446.5 498.13 2446.5C499.692 2446.5 500.933 2446.17 501.852 2445.51C502.78 2444.83 503.244 2444.03 503.244 2443.09C503.244 2442.33 502.978 2441.7 502.448 2441.19C501.918 2440.67 501.103 2440.28 500.005 2440.02L496.369 2439.17C494.371 2438.7 492.903 2437.96 491.965 2436.97C491.037 2435.96 490.573 2434.71 490.573 2433.2C490.573 2431.97 490.919 2430.88 491.61 2429.94C492.311 2428.99 493.263 2428.25 494.465 2427.71C495.677 2427.17 497.05 2426.9 498.585 2426.9C500.744 2426.9 502.439 2427.37 503.67 2428.32C504.91 2429.27 505.791 2430.52 506.312 2432.07ZM525.165 2457.18C524.597 2457.18 524.09 2457.13 523.645 2457.04C523.2 2456.95 522.892 2456.87 522.722 2456.78L523.574 2453.83C524.388 2454.04 525.108 2454.11 525.733 2454.06C526.358 2454 526.912 2453.72 527.395 2453.22C527.887 2452.73 528.337 2451.93 528.744 2450.82L529.369 2449.11L521.301 2427.18H524.938L530.96 2444.57H531.188L537.21 2427.18H540.847L531.585 2452.18C531.169 2453.31 530.652 2454.24 530.037 2454.98C529.421 2455.73 528.706 2456.28 527.892 2456.64C527.087 2457 526.178 2457.18 525.165 2457.18ZM553.354 2449.45C551.384 2449.45 549.656 2448.99 548.169 2448.05C546.692 2447.11 545.536 2445.8 544.703 2444.11C543.879 2442.43 543.467 2440.46 543.467 2438.2C543.467 2435.93 543.879 2433.95 544.703 2432.25C545.536 2430.56 546.692 2429.24 548.169 2428.3C549.656 2427.37 551.384 2426.9 553.354 2426.9C555.323 2426.9 557.047 2427.37 558.524 2428.3C560.011 2429.24 561.166 2430.56 561.99 2432.25C562.823 2433.95 563.24 2435.93 563.24 2438.2C563.24 2440.46 562.823 2442.43 561.99 2444.11C561.166 2445.8 560.011 2447.11 558.524 2448.05C557.047 2448.99 555.323 2449.45 553.354 2449.45ZM553.354 2446.44C554.85 2446.44 556.081 2446.06 557.047 2445.29C558.013 2444.53 558.728 2443.52 559.192 2442.27C559.656 2441.02 559.888 2439.66 559.888 2438.2C559.888 2436.75 559.656 2435.39 559.192 2434.13C558.728 2432.87 558.013 2431.85 557.047 2431.07C556.081 2430.3 554.85 2429.91 553.354 2429.91C551.857 2429.91 550.626 2430.3 549.661 2431.07C548.695 2431.85 547.98 2432.87 547.516 2434.13C547.052 2435.39 546.82 2436.75 546.82 2438.2C546.82 2439.66 547.052 2441.02 547.516 2442.27C547.98 2443.52 548.695 2444.53 549.661 2445.29C550.626 2446.06 551.857 2446.44 553.354 2446.44ZM582.107 2440.08V2427.18H585.46V2449H582.107V2445.31H581.88C581.369 2446.41 580.573 2447.36 579.494 2448.13C578.414 2448.9 577.05 2449.28 575.403 2449.28C574.039 2449.28 572.827 2448.99 571.766 2448.39C570.706 2447.78 569.872 2446.87 569.266 2445.66C568.66 2444.44 568.357 2442.9 568.357 2441.05V2427.18H571.71V2440.82C571.71 2442.41 572.155 2443.68 573.045 2444.62C573.944 2445.57 575.09 2446.05 576.482 2446.05C577.316 2446.05 578.163 2445.83 579.025 2445.41C579.896 2444.98 580.625 2444.33 581.212 2443.45C581.809 2442.57 582.107 2441.44 582.107 2440.08ZM609.27 2449.51C607.887 2449.51 606.633 2449.25 605.506 2448.73C604.379 2448.2 603.484 2447.44 602.821 2446.44C602.158 2445.44 601.827 2444.23 601.827 2442.81C601.827 2441.56 602.073 2440.54 602.565 2439.77C603.058 2438.98 603.716 2438.37 604.54 2437.92C605.364 2437.48 606.273 2437.14 607.267 2436.93C608.271 2436.7 609.279 2436.52 610.293 2436.39C611.618 2436.22 612.693 2436.09 613.517 2436C614.35 2435.91 614.956 2435.75 615.335 2435.53C615.723 2435.32 615.918 2434.94 615.918 2434.4V2434.28C615.918 2432.88 615.534 2431.79 614.767 2431.02C614.009 2430.24 612.859 2429.85 611.315 2429.85C609.715 2429.85 608.46 2430.2 607.551 2430.9C606.642 2431.6 606.003 2432.35 605.634 2433.15L602.452 2432.01C603.02 2430.69 603.777 2429.65 604.724 2428.91C605.681 2428.17 606.723 2427.65 607.849 2427.35C608.986 2427.05 610.103 2426.9 611.202 2426.9C611.902 2426.9 612.707 2426.98 613.616 2427.15C614.535 2427.31 615.42 2427.65 616.273 2428.16C617.134 2428.67 617.849 2429.45 618.418 2430.48C618.986 2431.51 619.27 2432.89 619.27 2434.62V2449H615.918V2446.05H615.747C615.52 2446.52 615.141 2447.03 614.611 2447.57C614.08 2448.11 613.375 2448.56 612.494 2448.94C611.614 2449.32 610.539 2449.51 609.27 2449.51ZM609.781 2446.5C611.107 2446.5 612.224 2446.24 613.134 2445.72C614.052 2445.2 614.743 2444.53 615.207 2443.7C615.681 2442.88 615.918 2442.01 615.918 2441.1V2438.03C615.776 2438.2 615.463 2438.36 614.98 2438.5C614.507 2438.64 613.957 2438.75 613.332 2438.86C612.717 2438.95 612.116 2439.04 611.528 2439.11C610.951 2439.18 610.482 2439.24 610.122 2439.28C609.251 2439.4 608.437 2439.58 607.679 2439.84C606.931 2440.08 606.325 2440.46 605.861 2440.96C605.406 2441.45 605.179 2442.12 605.179 2442.98C605.179 2444.14 605.61 2445.02 606.472 2445.62C607.343 2446.21 608.446 2446.5 609.781 2446.5ZM634.195 2457.64C632.576 2457.64 631.184 2457.43 630.019 2457.01C628.854 2456.6 627.884 2456.06 627.107 2455.39C626.34 2454.73 625.729 2454.02 625.275 2453.26L627.945 2451.39C628.248 2451.78 628.632 2452.24 629.096 2452.75C629.56 2453.27 630.194 2453.72 630.999 2454.1C631.814 2454.49 632.879 2454.68 634.195 2454.68C635.957 2454.68 637.41 2454.26 638.556 2453.4C639.702 2452.55 640.275 2451.22 640.275 2449.4V2444.97H639.991C639.745 2445.36 639.394 2445.86 638.94 2446.44C638.495 2447.02 637.851 2447.54 637.008 2447.99C636.174 2448.44 635.048 2448.66 633.627 2448.66C631.866 2448.66 630.284 2448.24 628.883 2447.41C627.491 2446.58 626.388 2445.36 625.573 2443.77C624.768 2442.18 624.366 2440.25 624.366 2437.98C624.366 2435.74 624.759 2433.8 625.545 2432.14C626.331 2430.47 627.424 2429.18 628.826 2428.28C630.228 2427.36 631.847 2426.9 633.684 2426.9C635.104 2426.9 636.231 2427.13 637.065 2427.61C637.907 2428.07 638.551 2428.6 638.996 2429.2C639.451 2429.79 639.801 2430.27 640.048 2430.65H640.388V2427.18H643.627V2449.62C643.627 2451.5 643.201 2453.02 642.349 2454.2C641.506 2455.38 640.37 2456.25 638.94 2456.8C637.519 2457.36 635.938 2457.64 634.195 2457.64ZM634.082 2445.65C635.426 2445.65 636.563 2445.34 637.491 2444.72C638.419 2444.11 639.124 2443.22 639.607 2442.07C640.09 2440.91 640.332 2439.53 640.332 2437.92C640.332 2436.35 640.095 2434.96 639.621 2433.76C639.148 2432.56 638.447 2431.61 637.519 2430.93C636.591 2430.25 635.445 2429.91 634.082 2429.91C632.661 2429.91 631.478 2430.27 630.531 2430.99C629.593 2431.71 628.888 2432.67 628.414 2433.89C627.95 2435.1 627.718 2436.44 627.718 2437.92C627.718 2439.44 627.955 2440.78 628.428 2441.94C628.911 2443.1 629.621 2444 630.559 2444.67C631.506 2445.32 632.68 2445.65 634.082 2445.65ZM649.763 2449V2427.18H653.002V2430.48H653.229C653.627 2429.4 654.347 2428.52 655.388 2427.85C656.43 2427.18 657.604 2426.84 658.911 2426.84C659.157 2426.84 659.465 2426.85 659.835 2426.86C660.204 2426.86 660.483 2426.88 660.673 2426.9V2430.31C660.559 2430.28 660.299 2430.24 659.891 2430.18C659.494 2430.11 659.072 2430.08 658.627 2430.08C657.567 2430.08 656.62 2430.3 655.786 2430.75C654.962 2431.18 654.309 2431.79 653.826 2432.57C653.353 2433.33 653.116 2434.21 653.116 2435.19V2449H649.763ZM673.13 2449.45C671.028 2449.45 669.214 2448.99 667.69 2448.06C666.174 2447.12 665.005 2445.82 664.181 2444.14C663.367 2442.46 662.96 2440.5 662.96 2438.26C662.96 2436.03 663.367 2434.06 664.181 2432.35C665.005 2430.64 666.151 2429.3 667.619 2428.35C669.096 2427.38 670.819 2426.9 672.789 2426.9C673.925 2426.9 675.048 2427.09 676.156 2427.47C677.263 2427.84 678.272 2428.46 679.181 2429.31C680.09 2430.16 680.815 2431.27 681.354 2432.66C681.894 2434.06 682.164 2435.77 682.164 2437.81V2439.23H665.346V2436.33H678.755C678.755 2435.1 678.509 2434 678.016 2433.03C677.533 2432.07 676.842 2431.31 675.942 2430.75C675.052 2430.19 674.001 2429.91 672.789 2429.91C671.454 2429.91 670.299 2430.24 669.323 2430.9C668.357 2431.56 667.614 2432.41 667.093 2433.46C666.572 2434.51 666.312 2435.64 666.312 2436.84V2438.77C666.312 2440.42 666.596 2441.82 667.164 2442.96C667.742 2444.1 668.542 2444.97 669.565 2445.56C670.587 2446.15 671.776 2446.44 673.13 2446.44C674.011 2446.44 674.806 2446.32 675.516 2446.07C676.236 2445.82 676.856 2445.44 677.377 2444.94C677.898 2444.43 678.3 2443.79 678.585 2443.03L681.823 2443.94C681.482 2445.04 680.909 2446.01 680.104 2446.84C679.299 2447.66 678.305 2448.31 677.121 2448.77C675.938 2449.23 674.607 2449.45 673.13 2449.45ZM696.411 2449.45C694.309 2449.45 692.496 2448.99 690.971 2448.06C689.456 2447.12 688.286 2445.82 687.462 2444.14C686.648 2442.46 686.241 2440.5 686.241 2438.26C686.241 2436.03 686.648 2434.06 687.462 2432.35C688.286 2430.64 689.432 2429.3 690.9 2428.35C692.377 2427.38 694.101 2426.9 696.07 2426.9C697.207 2426.9 698.329 2427.09 699.437 2427.47C700.545 2427.84 701.553 2428.46 702.462 2429.31C703.371 2430.16 704.096 2431.27 704.636 2432.66C705.175 2434.06 705.445 2435.77 705.445 2437.81V2439.23H688.627V2436.33H702.036C702.036 2435.1 701.79 2434 701.298 2433.03C700.815 2432.07 700.123 2431.31 699.224 2430.75C698.334 2430.19 697.282 2429.91 696.07 2429.91C694.735 2429.91 693.58 2430.24 692.604 2430.9C691.638 2431.56 690.895 2432.41 690.374 2433.46C689.853 2434.51 689.593 2435.64 689.593 2436.84V2438.77C689.593 2440.42 689.877 2441.82 690.445 2442.96C691.023 2444.1 691.823 2444.97 692.846 2445.56C693.869 2446.15 695.057 2446.44 696.411 2446.44C697.292 2446.44 698.087 2446.32 698.798 2446.07C699.517 2445.82 700.138 2445.44 700.658 2444.94C701.179 2444.43 701.582 2443.79 701.866 2443.03L705.104 2443.94C704.763 2445.04 704.191 2446.01 703.386 2446.84C702.581 2447.66 701.586 2448.31 700.403 2448.77C699.219 2449.23 697.888 2449.45 696.411 2449.45ZM726.738 2449L720.09 2427.18H723.613L728.329 2443.89H728.556L733.215 2427.18H736.795L741.397 2443.83H741.624L746.34 2427.18H749.863L743.215 2449H739.92L735.147 2432.24H734.806L730.033 2449H726.738ZM754.295 2449V2427.18H757.647V2449H754.295ZM755.999 2423.55C755.346 2423.55 754.782 2423.32 754.309 2422.88C753.845 2422.43 753.613 2421.9 753.613 2421.27C753.613 2420.65 753.845 2420.11 754.309 2419.67C754.782 2419.22 755.346 2419 755.999 2419C756.653 2419 757.211 2419.22 757.675 2419.67C758.149 2420.11 758.386 2420.65 758.386 2421.27C758.386 2421.9 758.149 2422.43 757.675 2422.88C757.211 2423.32 756.653 2423.55 755.999 2423.55ZM773.276 2427.18V2430.02H761.969V2427.18H773.276ZM765.264 2421.95H768.616V2442.75C768.616 2443.7 768.754 2444.41 769.028 2444.88C769.313 2445.34 769.672 2445.66 770.108 2445.82C770.553 2445.97 771.022 2446.05 771.514 2446.05C771.884 2446.05 772.187 2446.03 772.423 2445.99C772.66 2445.94 772.849 2445.9 772.991 2445.88L773.673 2448.89C773.446 2448.97 773.129 2449.06 772.722 2449.14C772.314 2449.24 771.798 2449.28 771.173 2449.28C770.226 2449.28 769.298 2449.08 768.389 2448.67C767.49 2448.27 766.741 2447.65 766.145 2446.81C765.558 2445.98 765.264 2444.93 765.264 2443.66V2421.95ZM782.139 2435.88V2449H778.787V2419.91H782.139V2430.59H782.423C782.935 2429.46 783.702 2428.57 784.724 2427.91C785.757 2427.23 787.13 2426.9 788.844 2426.9C790.33 2426.9 791.633 2427.2 792.75 2427.79C793.867 2428.38 794.734 2429.28 795.349 2430.51C795.974 2431.72 796.287 2433.26 796.287 2435.14V2449H792.935V2435.36C792.935 2433.63 792.485 2432.29 791.585 2431.34C790.695 2430.39 789.459 2429.91 787.878 2429.91C786.779 2429.91 785.795 2430.14 784.923 2430.61C784.062 2431.07 783.38 2431.75 782.878 2432.64C782.385 2433.53 782.139 2434.61 782.139 2435.88ZM822.533 2449.45C820.564 2449.45 818.835 2448.99 817.349 2448.05C815.871 2447.11 814.716 2445.8 813.883 2444.11C813.059 2442.43 812.647 2440.46 812.647 2438.2C812.647 2435.93 813.059 2433.95 813.883 2432.25C814.716 2430.56 815.871 2429.24 817.349 2428.3C818.835 2427.37 820.564 2426.9 822.533 2426.9C824.503 2426.9 826.227 2427.37 827.704 2428.3C829.191 2429.24 830.346 2430.56 831.17 2432.25C832.003 2433.95 832.42 2435.93 832.42 2438.2C832.42 2440.46 832.003 2442.43 831.17 2444.11C830.346 2445.8 829.191 2447.11 827.704 2448.05C826.227 2448.99 824.503 2449.45 822.533 2449.45ZM822.533 2446.44C824.03 2446.44 825.261 2446.06 826.227 2445.29C827.192 2444.53 827.907 2443.52 828.371 2442.27C828.835 2441.02 829.067 2439.66 829.067 2438.2C829.067 2436.75 828.835 2435.39 828.371 2434.13C827.907 2432.87 827.192 2431.85 826.227 2431.07C825.261 2430.3 824.03 2429.91 822.533 2429.91C821.037 2429.91 819.806 2430.3 818.84 2431.07C817.874 2431.85 817.159 2432.87 816.695 2434.13C816.231 2435.39 815.999 2436.75 815.999 2438.2C815.999 2439.66 816.231 2441.02 816.695 2442.27C817.159 2443.52 817.874 2444.53 818.84 2445.29C819.806 2446.06 821.037 2446.44 822.533 2446.44ZM851.287 2440.08V2427.18H854.639V2449H851.287V2445.31H851.06C850.548 2446.41 849.753 2447.36 848.673 2448.13C847.594 2448.9 846.23 2449.28 844.582 2449.28C843.219 2449.28 842.007 2448.99 840.946 2448.39C839.885 2447.78 839.052 2446.87 838.446 2445.66C837.84 2444.44 837.537 2442.9 837.537 2441.05V2427.18H840.889V2440.82C840.889 2442.41 841.334 2443.68 842.224 2444.62C843.124 2445.57 844.27 2446.05 845.662 2446.05C846.495 2446.05 847.343 2445.83 848.205 2445.41C849.076 2444.98 849.805 2444.33 850.392 2443.45C850.989 2442.57 851.287 2441.44 851.287 2440.08ZM860.779 2449V2427.18H864.018V2430.48H864.245C864.643 2429.4 865.362 2428.52 866.404 2427.85C867.446 2427.18 868.62 2426.84 869.927 2426.84C870.173 2426.84 870.481 2426.85 870.85 2426.86C871.219 2426.86 871.499 2426.88 871.688 2426.9V2430.31C871.575 2430.28 871.314 2430.24 870.907 2430.18C870.509 2430.11 870.088 2430.08 869.643 2430.08C868.582 2430.08 867.635 2430.3 866.802 2430.75C865.978 2431.18 865.325 2431.79 864.842 2432.57C864.368 2433.33 864.131 2434.21 864.131 2435.19V2449H860.779ZM885.264 2424.98V2419.91H909.156V2424.98H900.25V2449H894.17V2424.98H885.264ZM919.756 2449.43C917.512 2449.43 915.58 2448.97 913.961 2448.06C912.351 2447.14 911.111 2445.85 910.239 2444.17C909.368 2442.48 908.933 2440.49 908.933 2438.19C908.933 2435.95 909.368 2433.98 910.239 2432.28C911.111 2430.59 912.337 2429.27 913.918 2428.32C915.509 2427.37 917.375 2426.9 919.515 2426.9C920.954 2426.9 922.294 2427.13 923.535 2427.59C924.785 2428.05 925.874 2428.73 926.802 2429.65C927.739 2430.57 928.469 2431.73 928.989 2433.12C929.51 2434.5 929.771 2436.12 929.771 2437.98V2439.64H911.347V2435.89H924.075C924.075 2435.02 923.885 2434.25 923.506 2433.57C923.128 2432.9 922.602 2432.38 921.93 2432C921.267 2431.61 920.495 2431.41 919.614 2431.41C918.696 2431.41 917.881 2431.63 917.171 2432.05C916.47 2432.47 915.921 2433.03 915.523 2433.74C915.126 2434.45 914.922 2435.23 914.913 2436.09V2439.65C914.913 2440.73 915.112 2441.67 915.509 2442.45C915.916 2443.24 916.489 2443.84 917.228 2444.27C917.967 2444.7 918.843 2444.91 919.856 2444.91C920.528 2444.91 921.144 2444.81 921.702 2444.62C922.261 2444.44 922.739 2444.15 923.137 2443.77C923.535 2443.39 923.838 2442.93 924.046 2442.38L929.643 2442.75C929.359 2444.09 928.776 2445.27 927.896 2446.27C927.024 2447.27 925.897 2448.04 924.515 2448.6C923.142 2449.15 921.556 2449.43 919.756 2449.43ZM933.719 2449V2427.18H939.586V2430.99H939.813C940.211 2429.63 940.879 2428.61 941.816 2427.92C942.754 2427.22 943.833 2426.87 945.055 2426.87C945.358 2426.87 945.684 2426.89 946.035 2426.93C946.385 2426.96 946.693 2427.02 946.958 2427.08V2432.45C946.674 2432.37 946.281 2432.29 945.779 2432.22C945.277 2432.16 944.818 2432.12 944.401 2432.12C943.511 2432.12 942.716 2432.32 942.015 2432.71C941.324 2433.09 940.774 2433.62 940.367 2434.3C939.969 2434.98 939.771 2435.77 939.771 2436.66V2449H933.719ZM950.087 2449V2427.18H955.854V2431.03H956.109C956.564 2429.75 957.321 2428.74 958.382 2428.01C959.443 2427.27 960.712 2426.9 962.189 2426.9C963.685 2426.9 964.959 2427.27 966.01 2428.02C967.061 2428.76 967.762 2429.76 968.112 2431.03H968.339C968.785 2429.78 969.589 2428.78 970.754 2428.03C971.929 2427.28 973.316 2426.9 974.916 2426.9C976.952 2426.9 978.605 2427.55 979.874 2428.84C981.152 2430.13 981.791 2431.96 981.791 2434.33V2449H975.754V2435.52C975.754 2434.31 975.432 2433.4 974.788 2432.79C974.144 2432.19 973.339 2431.88 972.374 2431.88C971.275 2431.88 970.418 2432.23 969.803 2432.93C969.187 2433.63 968.879 2434.54 968.879 2435.68V2449H963.013V2435.39C963.013 2434.32 962.705 2433.47 962.089 2432.84C961.483 2432.2 960.683 2431.88 959.689 2431.88C959.017 2431.88 958.411 2432.05 957.871 2432.39C957.34 2432.73 956.919 2433.2 956.607 2433.8C956.294 2434.4 956.138 2435.1 956.138 2435.9V2449H950.087ZM1004.72 2433.4L999.185 2433.74C999.09 2433.27 998.886 2432.84 998.574 2432.47C998.261 2432.08 997.849 2431.77 997.338 2431.54C996.836 2431.31 996.235 2431.19 995.534 2431.19C994.597 2431.19 993.806 2431.39 993.162 2431.78C992.518 2432.17 992.196 2432.69 992.196 2433.35C992.196 2433.87 992.404 2434.31 992.821 2434.67C993.238 2435.03 993.953 2435.32 994.966 2435.53L998.915 2436.33C1001.04 2436.77 1002.62 2437.47 1003.66 2438.43C1004.7 2439.4 1005.22 2440.67 1005.22 2442.24C1005.22 2443.67 1004.8 2444.92 1003.96 2446C1003.12 2447.08 1001.98 2447.93 1000.52 2448.53C999.071 2449.13 997.4 2449.43 995.506 2449.43C992.617 2449.43 990.316 2448.82 988.602 2447.62C986.898 2446.41 985.899 2444.76 985.605 2442.68L991.557 2442.37C991.737 2443.25 992.172 2443.92 992.864 2444.38C993.555 2444.84 994.44 2445.07 995.52 2445.07C996.58 2445.07 997.433 2444.86 998.077 2444.45C998.73 2444.04 999.062 2443.5 999.071 2442.85C999.062 2442.3 998.83 2441.85 998.375 2441.5C997.92 2441.14 997.22 2440.87 996.273 2440.68L992.494 2439.92C990.364 2439.5 988.777 2438.76 987.736 2437.71C986.704 2436.66 986.188 2435.32 986.188 2433.69C986.188 2432.29 986.566 2431.08 987.324 2430.07C988.091 2429.05 989.166 2428.27 990.548 2427.72C991.94 2427.17 993.569 2426.9 995.435 2426.9C998.19 2426.9 1000.36 2427.48 1001.94 2428.64C1003.53 2429.81 1004.46 2431.4 1004.72 2433.4ZM1024.51 2449.41C1023.12 2449.41 1021.88 2449.17 1020.79 2448.69C1019.7 2448.2 1018.84 2447.47 1018.2 2446.51C1017.58 2445.55 1017.27 2444.35 1017.27 2442.91C1017.27 2441.69 1017.49 2440.68 1017.93 2439.85C1018.38 2439.03 1018.99 2438.37 1019.75 2437.86C1020.52 2437.36 1021.39 2436.98 1022.37 2436.73C1023.35 2436.47 1024.38 2436.29 1025.46 2436.19C1026.73 2436.05 1027.75 2435.93 1028.53 2435.82C1029.31 2435.7 1029.87 2435.52 1030.22 2435.28C1030.57 2435.04 1030.75 2434.69 1030.75 2434.23V2434.14C1030.75 2433.24 1030.46 2432.55 1029.89 2432.05C1029.34 2431.56 1028.54 2431.32 1027.51 2431.32C1026.42 2431.32 1025.55 2431.56 1024.91 2432.04C1024.27 2432.51 1023.84 2433.11 1023.63 2433.83L1018.03 2433.38C1018.32 2432.05 1018.88 2430.9 1019.71 2429.94C1020.54 2428.96 1021.62 2428.21 1022.93 2427.69C1024.26 2427.16 1025.79 2426.9 1027.54 2426.9C1028.75 2426.9 1029.91 2427.04 1031.02 2427.32C1032.13 2427.61 1033.12 2428.05 1033.99 2428.64C1034.86 2429.24 1035.54 2430.01 1036.05 2430.95C1036.55 2431.87 1036.8 2432.99 1036.8 2434.28V2449H1031.06V2445.97H1030.89C1030.54 2446.66 1030.07 2447.26 1029.48 2447.78C1028.9 2448.29 1028.19 2448.69 1027.37 2448.99C1026.54 2449.27 1025.59 2449.41 1024.51 2449.41ZM1026.24 2445.24C1027.13 2445.24 1027.92 2445.06 1028.6 2444.71C1029.28 2444.35 1029.82 2443.87 1030.21 2443.26C1030.6 2442.66 1030.79 2441.97 1030.79 2441.2V2438.89C1030.6 2439.01 1030.34 2439.12 1030.01 2439.23C1029.69 2439.32 1029.32 2439.41 1028.91 2439.5C1028.51 2439.57 1028.1 2439.64 1027.69 2439.71C1027.29 2439.77 1026.92 2439.82 1026.59 2439.87C1025.88 2439.97 1025.25 2440.14 1024.72 2440.36C1024.19 2440.59 1023.78 2440.9 1023.49 2441.29C1023.2 2441.67 1023.05 2442.14 1023.05 2442.71C1023.05 2443.53 1023.35 2444.16 1023.94 2444.6C1024.55 2445.02 1025.32 2445.24 1026.24 2445.24ZM1047.54 2436.39V2449H1041.49V2427.18H1047.26V2431.03H1047.52C1048 2429.76 1048.81 2428.76 1049.94 2428.02C1051.08 2427.27 1052.46 2426.9 1054.08 2426.9C1055.59 2426.9 1056.91 2427.23 1058.04 2427.89C1059.17 2428.55 1060.04 2429.5 1060.67 2430.73C1061.29 2431.95 1061.61 2433.41 1061.61 2435.11V2449H1055.56V2436.19C1055.56 2434.85 1055.22 2433.81 1054.53 2433.06C1053.84 2432.3 1052.89 2431.93 1051.68 2431.93C1050.86 2431.93 1050.14 2432.1 1049.52 2432.45C1048.9 2432.8 1048.42 2433.31 1048.07 2433.99C1047.73 2434.65 1047.55 2435.45 1047.54 2436.39ZM1074.42 2449.36C1072.76 2449.36 1071.26 2448.93 1069.91 2448.08C1068.58 2447.21 1067.52 2445.95 1066.73 2444.28C1065.95 2442.61 1065.57 2440.55 1065.57 2438.12C1065.57 2435.62 1065.97 2433.54 1066.77 2431.88C1067.58 2430.22 1068.65 2428.97 1069.98 2428.15C1071.33 2427.31 1072.8 2426.9 1074.4 2426.9C1075.62 2426.9 1076.64 2427.11 1077.46 2427.52C1078.28 2427.93 1078.94 2428.44 1079.44 2429.06C1079.96 2429.66 1080.34 2430.26 1080.61 2430.85H1080.79V2419.91H1086.83V2449H1080.86V2445.51H1080.61C1080.32 2446.11 1079.92 2446.71 1079.4 2447.31C1078.89 2447.9 1078.22 2448.38 1077.4 2448.77C1076.58 2449.16 1075.59 2449.36 1074.42 2449.36ZM1076.33 2444.54C1077.31 2444.54 1078.13 2444.27 1078.8 2443.74C1079.49 2443.2 1080.01 2442.45 1080.37 2441.49C1080.74 2440.52 1080.92 2439.39 1080.92 2438.09C1080.92 2436.79 1080.74 2435.67 1080.38 2434.71C1080.02 2433.75 1079.5 2433.02 1078.82 2432.49C1078.14 2431.97 1077.31 2431.71 1076.33 2431.71C1075.34 2431.71 1074.5 2431.98 1073.82 2432.52C1073.14 2433.06 1072.62 2433.81 1072.27 2434.77C1071.92 2435.72 1071.75 2436.83 1071.75 2438.09C1071.75 2439.36 1071.92 2440.48 1072.27 2441.46C1072.63 2442.42 1073.15 2443.18 1073.82 2443.73C1074.5 2444.27 1075.34 2444.54 1076.33 2444.54ZM1126.84 2430.09H1120.62C1120.51 2429.29 1120.28 2428.57 1119.93 2427.95C1119.58 2427.31 1119.13 2426.77 1118.58 2426.33C1118.03 2425.88 1117.39 2425.54 1116.67 2425.31C1115.96 2425.07 1115.19 2424.95 1114.36 2424.95C1112.85 2424.95 1111.54 2425.33 1110.42 2426.07C1109.31 2426.81 1108.44 2427.89 1107.82 2429.31C1107.21 2430.72 1106.9 2432.44 1106.9 2434.45C1106.9 2436.53 1107.21 2438.27 1107.82 2439.68C1108.45 2441.09 1109.32 2442.16 1110.44 2442.88C1111.56 2443.6 1112.85 2443.96 1114.32 2443.96C1115.14 2443.96 1115.9 2443.85 1116.6 2443.63C1117.31 2443.41 1117.94 2443.1 1118.49 2442.68C1119.04 2442.25 1119.5 2441.74 1119.86 2441.13C1120.23 2440.52 1120.48 2439.83 1120.62 2439.06L1126.84 2439.09C1126.68 2440.42 1126.28 2441.71 1125.64 2442.95C1125 2444.18 1124.15 2445.28 1123.07 2446.26C1122 2447.22 1120.72 2447.99 1119.23 2448.56C1117.75 2449.12 1116.08 2449.4 1114.22 2449.4C1111.62 2449.4 1109.3 2448.81 1107.26 2447.64C1105.22 2446.46 1103.61 2444.76 1102.43 2442.54C1101.25 2440.31 1100.67 2437.62 1100.67 2434.45C1100.67 2431.28 1101.26 2428.58 1102.46 2426.36C1103.65 2424.13 1105.27 2422.44 1107.31 2421.27C1109.36 2420.1 1111.66 2419.51 1114.22 2419.51C1115.9 2419.51 1117.46 2419.75 1118.9 2420.22C1120.35 2420.7 1121.64 2421.39 1122.75 2422.3C1123.87 2423.2 1124.78 2424.3 1125.48 2425.61C1126.19 2426.91 1126.65 2428.41 1126.84 2430.09ZM1141 2449.43C1138.79 2449.43 1136.88 2448.96 1135.27 2448.02C1133.67 2447.07 1132.44 2445.76 1131.57 2444.07C1130.7 2442.38 1130.26 2440.41 1130.26 2438.18C1130.26 2435.92 1130.7 2433.95 1131.57 2432.27C1132.44 2430.57 1133.67 2429.26 1135.27 2428.32C1136.88 2427.37 1138.79 2426.9 1141 2426.9C1143.21 2426.9 1145.11 2427.37 1146.71 2428.32C1148.32 2429.26 1149.56 2430.57 1150.43 2432.27C1151.3 2433.95 1151.74 2435.92 1151.74 2438.18C1151.74 2440.41 1151.3 2442.38 1150.43 2444.07C1149.56 2445.76 1148.32 2447.07 1146.71 2448.02C1145.11 2448.96 1143.21 2449.43 1141 2449.43ZM1141.03 2444.74C1142.03 2444.74 1142.87 2444.45 1143.54 2443.89C1144.21 2443.31 1144.72 2442.52 1145.06 2441.53C1145.41 2440.53 1145.59 2439.4 1145.59 2438.13C1145.59 2436.86 1145.41 2435.73 1145.06 2434.74C1144.72 2433.74 1144.21 2432.96 1143.54 2432.38C1142.87 2431.8 1142.03 2431.51 1141.03 2431.51C1140.01 2431.51 1139.16 2431.8 1138.47 2432.38C1137.79 2432.96 1137.27 2433.74 1136.92 2434.74C1136.58 2435.73 1136.41 2436.86 1136.41 2438.13C1136.41 2439.4 1136.58 2440.53 1136.92 2441.53C1137.27 2442.52 1137.79 2443.31 1138.47 2443.89C1139.16 2444.45 1140.01 2444.74 1141.03 2444.74ZM1161.72 2436.39V2449H1155.67V2427.18H1161.44V2431.03H1161.7C1162.18 2429.76 1162.99 2428.76 1164.12 2428.02C1165.26 2427.27 1166.64 2426.9 1168.26 2426.9C1169.77 2426.9 1171.09 2427.23 1172.22 2427.89C1173.35 2428.55 1174.22 2429.5 1174.85 2430.73C1175.47 2431.95 1175.79 2433.41 1175.79 2435.11V2449H1169.74V2436.19C1169.74 2434.85 1169.4 2433.81 1168.71 2433.06C1168.02 2432.3 1167.07 2431.93 1165.86 2431.93C1165.04 2431.93 1164.32 2432.1 1163.7 2432.45C1163.08 2432.8 1162.6 2433.31 1162.25 2433.99C1161.91 2434.65 1161.73 2435.45 1161.72 2436.39ZM1188.6 2449.36C1186.94 2449.36 1185.44 2448.93 1184.09 2448.08C1182.76 2447.21 1181.7 2445.95 1180.91 2444.28C1180.13 2442.61 1179.75 2440.55 1179.75 2438.12C1179.75 2435.62 1180.15 2433.54 1180.95 2431.88C1181.76 2430.22 1182.83 2428.97 1184.16 2428.15C1185.51 2427.31 1186.98 2426.9 1188.58 2426.9C1189.8 2426.9 1190.82 2427.11 1191.63 2427.52C1192.46 2427.93 1193.12 2428.44 1193.62 2429.06C1194.13 2429.66 1194.52 2430.26 1194.79 2430.85H1194.97V2419.91H1201.01V2449H1195.04V2445.51H1194.79C1194.5 2446.11 1194.1 2446.71 1193.58 2447.31C1193.07 2447.9 1192.4 2448.38 1191.58 2448.77C1190.76 2449.16 1189.77 2449.36 1188.6 2449.36ZM1190.51 2444.54C1191.49 2444.54 1192.31 2444.27 1192.98 2443.74C1193.67 2443.2 1194.19 2442.45 1194.55 2441.49C1194.92 2440.52 1195.1 2439.39 1195.1 2438.09C1195.1 2436.79 1194.92 2435.67 1194.56 2434.71C1194.2 2433.75 1193.68 2433.02 1193 2432.49C1192.32 2431.97 1191.49 2431.71 1190.51 2431.71C1189.52 2431.71 1188.68 2431.98 1188 2432.52C1187.32 2433.06 1186.8 2433.81 1186.45 2434.77C1186.1 2435.72 1185.92 2436.83 1185.92 2438.09C1185.92 2439.36 1186.1 2440.48 1186.45 2441.46C1186.81 2442.42 1187.33 2443.18 1188 2443.73C1188.68 2444.27 1189.52 2444.54 1190.51 2444.54ZM1205.99 2449V2427.18H1212.04V2449H1205.99ZM1209.02 2424.37C1208.13 2424.37 1207.35 2424.07 1206.71 2423.47C1206.08 2422.87 1205.76 2422.14 1205.76 2421.3C1205.76 2420.47 1206.08 2419.75 1206.71 2419.16C1207.35 2418.55 1208.13 2418.25 1209.02 2418.25C1209.92 2418.25 1210.69 2418.55 1211.33 2419.16C1211.97 2419.75 1212.29 2420.47 1212.29 2421.3C1212.29 2422.14 1211.97 2422.87 1211.33 2423.47C1210.69 2424.07 1209.92 2424.37 1209.02 2424.37ZM1228.49 2427.18V2431.73H1215.35V2427.18H1228.49ZM1218.33 2421.95H1224.38V2442.3C1224.38 2442.85 1224.47 2443.29 1224.64 2443.6C1224.81 2443.91 1225.05 2444.12 1225.35 2444.24C1225.66 2444.36 1226.02 2444.43 1226.43 2444.43C1226.71 2444.43 1227 2444.4 1227.28 2444.36C1227.57 2444.3 1227.78 2444.26 1227.93 2444.23L1228.89 2448.73C1228.58 2448.82 1228.16 2448.93 1227.61 2449.06C1227.06 2449.19 1226.39 2449.27 1225.61 2449.3C1224.15 2449.36 1222.87 2449.16 1221.77 2448.72C1220.68 2448.27 1219.83 2447.58 1219.23 2446.64C1218.62 2445.7 1218.32 2444.52 1218.33 2443.09V2421.95ZM1232.43 2449V2427.18H1238.48V2449H1232.43ZM1235.47 2424.37C1234.57 2424.37 1233.8 2424.07 1233.15 2423.47C1232.52 2422.87 1232.2 2422.14 1232.2 2421.3C1232.2 2420.47 1232.52 2419.75 1233.15 2419.16C1233.8 2418.55 1234.57 2418.25 1235.47 2418.25C1236.37 2418.25 1237.14 2418.55 1237.77 2419.16C1238.42 2419.75 1238.74 2420.47 1238.74 2421.3C1238.74 2422.14 1238.42 2422.87 1237.77 2423.47C1237.14 2424.07 1236.37 2424.37 1235.47 2424.37ZM1253.19 2449.43C1250.98 2449.43 1249.07 2448.96 1247.46 2448.02C1245.86 2447.07 1244.63 2445.76 1243.75 2444.07C1242.88 2442.38 1242.45 2440.41 1242.45 2438.18C1242.45 2435.92 1242.88 2433.95 1243.75 2432.27C1244.63 2430.57 1245.86 2429.26 1247.46 2428.32C1249.07 2427.37 1250.98 2426.9 1253.19 2426.9C1255.39 2426.9 1257.3 2427.37 1258.9 2428.32C1260.51 2429.26 1261.75 2430.57 1262.62 2432.27C1263.49 2433.95 1263.93 2435.92 1263.93 2438.18C1263.93 2440.41 1263.49 2442.38 1262.62 2444.07C1261.75 2445.76 1260.51 2447.07 1258.9 2448.02C1257.3 2448.96 1255.39 2449.43 1253.19 2449.43ZM1253.22 2444.74C1254.22 2444.74 1255.06 2444.45 1255.73 2443.89C1256.4 2443.31 1256.91 2442.52 1257.25 2441.53C1257.6 2440.53 1257.77 2439.4 1257.77 2438.13C1257.77 2436.86 1257.6 2435.73 1257.25 2434.74C1256.91 2433.74 1256.4 2432.96 1255.73 2432.38C1255.06 2431.8 1254.22 2431.51 1253.22 2431.51C1252.2 2431.51 1251.35 2431.8 1250.66 2432.38C1249.98 2432.96 1249.46 2433.74 1249.11 2434.74C1248.77 2435.73 1248.6 2436.86 1248.6 2438.13C1248.6 2439.4 1248.77 2440.53 1249.11 2441.53C1249.46 2442.52 1249.98 2443.31 1250.66 2443.89C1251.35 2444.45 1252.2 2444.74 1253.22 2444.74ZM1273.91 2436.39V2449H1267.86V2427.18H1273.63V2431.03H1273.88C1274.37 2429.76 1275.18 2428.76 1276.31 2428.02C1277.45 2427.27 1278.83 2426.9 1280.45 2426.9C1281.96 2426.9 1283.28 2427.23 1284.41 2427.89C1285.54 2428.55 1286.41 2429.5 1287.04 2430.73C1287.66 2431.95 1287.97 2433.41 1287.97 2435.11V2449H1281.92V2436.19C1281.93 2434.85 1281.59 2433.81 1280.9 2433.06C1280.21 2432.3 1279.26 2431.93 1278.04 2431.93C1277.23 2431.93 1276.51 2432.1 1275.89 2432.45C1275.27 2432.8 1274.79 2433.31 1274.44 2433.99C1274.1 2434.65 1273.92 2435.45 1273.91 2436.39ZM1310.9 2433.4L1305.36 2433.74C1305.26 2433.27 1305.06 2432.84 1304.75 2432.47C1304.43 2432.08 1304.02 2431.77 1303.51 2431.54C1303.01 2431.31 1302.41 2431.19 1301.71 2431.19C1300.77 2431.19 1299.98 2431.39 1299.33 2431.78C1298.69 2432.17 1298.37 2432.69 1298.37 2433.35C1298.37 2433.87 1298.58 2434.31 1298.99 2434.67C1299.41 2435.03 1300.12 2435.32 1301.14 2435.53L1305.09 2436.33C1307.21 2436.77 1308.79 2437.47 1309.83 2438.43C1310.87 2439.4 1311.39 2440.67 1311.39 2442.24C1311.39 2443.67 1310.97 2444.92 1310.13 2446C1309.3 2447.08 1308.15 2447.93 1306.69 2448.53C1305.24 2449.13 1303.57 2449.43 1301.68 2449.43C1298.79 2449.43 1296.49 2448.82 1294.77 2447.62C1293.07 2446.41 1292.07 2444.76 1291.78 2442.68L1297.73 2442.37C1297.91 2443.25 1298.34 2443.92 1299.04 2444.38C1299.73 2444.84 1300.61 2445.07 1301.69 2445.07C1302.75 2445.07 1303.6 2444.86 1304.25 2444.45C1304.9 2444.04 1305.23 2443.5 1305.24 2442.85C1305.23 2442.3 1305 2441.85 1304.55 2441.5C1304.09 2441.14 1303.39 2440.87 1302.44 2440.68L1298.67 2439.92C1296.54 2439.5 1294.95 2438.76 1293.91 2437.71C1292.88 2436.66 1292.36 2435.32 1292.36 2433.69C1292.36 2432.29 1292.74 2431.08 1293.5 2430.07C1294.26 2429.05 1295.34 2428.27 1296.72 2427.72C1298.11 2427.17 1299.74 2426.9 1301.61 2426.9C1304.36 2426.9 1306.53 2427.48 1308.11 2428.64C1309.7 2429.81 1310.63 2431.4 1310.9 2433.4ZM579.799 2509.4C577.886 2509.4 576.238 2509.05 574.856 2508.35C573.473 2507.65 572.408 2506.68 571.66 2505.46C570.912 2504.24 570.538 2502.84 570.538 2501.27C570.538 2500.06 570.793 2498.99 571.305 2498.05C571.826 2497.1 572.54 2496.23 573.45 2495.42C574.368 2494.61 575.424 2493.79 576.617 2492.98L580.822 2489.85C581.646 2489.31 582.304 2488.73 582.796 2488.12C583.298 2487.5 583.549 2486.7 583.549 2485.7C583.549 2484.97 583.222 2484.25 582.569 2483.56C581.925 2482.87 581.077 2482.52 580.026 2482.52C579.288 2482.52 578.634 2482.71 578.066 2483.09C577.507 2483.46 577.067 2483.93 576.745 2484.51C576.433 2485.08 576.276 2485.67 576.276 2486.27C576.276 2486.95 576.461 2487.65 576.83 2488.35C577.209 2489.04 577.687 2489.75 578.265 2490.48C578.852 2491.2 579.458 2491.94 580.083 2492.69L593.435 2509H589.401L578.379 2495.7C577.356 2494.47 576.428 2493.36 575.594 2492.35C574.761 2491.35 574.098 2490.36 573.606 2489.38C573.113 2488.41 572.867 2487.35 572.867 2486.22C572.867 2484.91 573.156 2483.76 573.734 2482.78C574.321 2481.78 575.14 2481.01 576.191 2480.46C577.252 2479.9 578.492 2479.62 579.913 2479.62C581.371 2479.62 582.626 2479.91 583.677 2480.48C584.728 2481.04 585.538 2481.78 586.106 2482.71C586.674 2483.63 586.958 2484.62 586.958 2485.7C586.958 2487.1 586.612 2488.3 585.921 2489.33C585.23 2490.35 584.288 2491.3 583.094 2492.18L577.299 2496.5C575.992 2497.47 575.107 2498.4 574.643 2499.31C574.179 2500.22 573.947 2500.87 573.947 2501.27C573.947 2502.18 574.183 2503.03 574.657 2503.82C575.13 2504.6 575.798 2505.24 576.66 2505.72C577.522 2506.2 578.53 2506.44 579.685 2506.44C580.784 2506.44 581.854 2506.21 582.896 2505.75C583.937 2505.27 584.879 2504.59 585.722 2503.7C586.575 2502.81 587.247 2501.74 587.739 2500.49C588.241 2499.24 588.492 2497.84 588.492 2496.27H591.731C591.731 2498.2 591.508 2499.78 591.063 2501C590.618 2502.22 590.116 2503.18 589.558 2503.87C588.999 2504.56 588.549 2505.08 588.208 2505.42C588.094 2505.56 587.99 2505.7 587.896 2505.85C587.801 2505.99 587.697 2506.13 587.583 2506.27C586.646 2507.32 585.462 2508.11 584.032 2508.63C582.602 2509.14 581.191 2509.4 579.799 2509.4ZM607.857 2509V2479.91H619.334C621.54 2479.91 623.42 2480.33 624.973 2481.17C626.526 2482.01 627.71 2483.17 628.524 2484.65C629.348 2486.13 629.76 2487.84 629.76 2489.77C629.76 2491.7 629.343 2493.4 628.51 2494.88C627.677 2496.36 626.469 2497.51 624.888 2498.33C623.316 2499.16 621.412 2499.57 619.178 2499.57H611.862V2494.64H618.183C619.367 2494.64 620.342 2494.44 621.109 2494.03C621.886 2493.61 622.464 2493.04 622.842 2492.31C623.231 2491.57 623.425 2490.72 623.425 2489.77C623.425 2488.8 623.231 2487.96 622.842 2487.24C622.464 2486.51 621.886 2485.95 621.109 2485.55C620.333 2485.14 619.348 2484.94 618.155 2484.94H614.007V2509H607.857ZM633.641 2509V2487.18H639.508V2490.99H639.735C640.133 2489.63 640.8 2488.61 641.738 2487.92C642.675 2487.22 643.755 2486.87 644.977 2486.87C645.28 2486.87 645.606 2486.89 645.957 2486.93C646.307 2486.96 646.615 2487.02 646.88 2487.08V2492.45C646.596 2492.37 646.203 2492.29 645.701 2492.22C645.199 2492.16 644.74 2492.12 644.323 2492.12C643.433 2492.12 642.638 2492.32 641.937 2492.71C641.246 2493.09 640.696 2493.62 640.289 2494.3C639.891 2494.98 639.692 2495.77 639.692 2496.66V2509H633.641ZM650.009 2509V2487.18H656.06V2509H650.009ZM653.048 2484.37C652.149 2484.37 651.377 2484.07 650.733 2483.47C650.098 2482.87 649.781 2482.14 649.781 2481.3C649.781 2480.47 650.098 2479.75 650.733 2479.16C651.377 2478.55 652.149 2478.25 653.048 2478.25C653.948 2478.25 654.715 2478.55 655.349 2479.16C655.993 2479.75 656.315 2480.47 656.315 2481.3C656.315 2482.14 655.993 2482.87 655.349 2483.47C654.715 2484.07 653.948 2484.37 653.048 2484.37ZM681.248 2487.18L673.62 2509H666.802L659.174 2487.18H665.566L670.097 2502.79H670.325L674.842 2487.18H681.248ZM689.98 2509.41C688.588 2509.41 687.348 2509.17 686.259 2508.69C685.17 2508.2 684.308 2507.47 683.673 2506.51C683.048 2505.55 682.736 2504.35 682.736 2502.91C682.736 2501.69 682.958 2500.68 683.403 2499.85C683.848 2499.03 684.455 2498.37 685.222 2497.86C685.989 2497.36 686.86 2496.98 687.835 2496.73C688.82 2496.47 689.852 2496.29 690.932 2496.19C692.201 2496.05 693.223 2495.93 694 2495.82C694.777 2495.7 695.34 2495.52 695.69 2495.28C696.041 2495.04 696.216 2494.69 696.216 2494.23V2494.14C696.216 2493.24 695.932 2492.55 695.364 2492.05C694.805 2491.56 694.009 2491.32 692.977 2491.32C691.888 2491.32 691.022 2491.56 690.378 2492.04C689.734 2492.51 689.308 2493.11 689.099 2493.83L683.503 2493.38C683.787 2492.05 684.346 2490.9 685.179 2489.94C686.012 2488.96 687.087 2488.21 688.403 2487.69C689.729 2487.16 691.263 2486.9 693.006 2486.9C694.218 2486.9 695.378 2487.04 696.486 2487.32C697.603 2487.61 698.593 2488.05 699.455 2488.64C700.326 2489.24 701.012 2490.01 701.514 2490.95C702.016 2491.87 702.267 2492.99 702.267 2494.28V2509H696.528V2505.97H696.358C696.008 2506.66 695.539 2507.26 694.952 2507.78C694.365 2508.29 693.659 2508.69 692.835 2508.99C692.011 2509.27 691.06 2509.41 689.98 2509.41ZM691.713 2505.24C692.603 2505.24 693.389 2505.06 694.071 2504.71C694.753 2504.35 695.288 2503.87 695.676 2503.26C696.064 2502.66 696.259 2501.97 696.259 2501.2V2498.89C696.069 2499.01 695.809 2499.12 695.477 2499.23C695.155 2499.32 694.791 2499.41 694.384 2499.5C693.976 2499.57 693.569 2499.64 693.162 2499.71C692.755 2499.77 692.385 2499.82 692.054 2499.87C691.344 2499.97 690.723 2500.14 690.193 2500.36C689.663 2500.59 689.251 2500.9 688.957 2501.29C688.664 2501.67 688.517 2502.14 688.517 2502.71C688.517 2503.53 688.815 2504.16 689.412 2504.6C690.018 2505.02 690.785 2505.24 691.713 2505.24ZM716.82 2509.43C714.585 2509.43 712.662 2508.95 711.053 2508.01C709.452 2507.05 708.221 2505.72 707.359 2504.03C706.507 2502.33 706.081 2500.38 706.081 2498.18C706.081 2495.94 706.512 2493.98 707.374 2492.3C708.245 2490.6 709.481 2489.28 711.081 2488.33C712.681 2487.38 714.585 2486.9 716.791 2486.9C718.695 2486.9 720.361 2487.24 721.791 2487.93C723.221 2488.63 724.353 2489.6 725.186 2490.85C726.019 2492.1 726.479 2493.56 726.564 2495.25H720.854C720.693 2494.16 720.267 2493.29 719.575 2492.62C718.893 2491.95 717.999 2491.61 716.891 2491.61C715.953 2491.61 715.134 2491.87 714.433 2492.38C713.742 2492.88 713.202 2493.62 712.814 2494.58C712.426 2495.55 712.232 2496.72 712.232 2498.09C712.232 2499.48 712.421 2500.67 712.8 2501.64C713.188 2502.62 713.732 2503.36 714.433 2503.87C715.134 2504.38 715.953 2504.64 716.891 2504.64C717.582 2504.64 718.202 2504.5 718.751 2504.21C719.31 2503.93 719.769 2503.52 720.129 2502.98C720.499 2502.43 720.74 2501.77 720.854 2501H726.564C726.469 2502.67 726.015 2504.14 725.2 2505.41C724.395 2506.67 723.283 2507.65 721.862 2508.36C720.442 2509.07 718.761 2509.43 716.82 2509.43ZM734.174 2517.18C733.407 2517.18 732.687 2517.12 732.015 2517C731.352 2516.88 730.803 2516.74 730.367 2516.56L731.731 2512.04C732.441 2512.26 733.08 2512.38 733.648 2512.39C734.226 2512.41 734.723 2512.28 735.14 2512C735.566 2511.71 735.912 2511.23 736.177 2510.55L736.532 2509.62L728.705 2487.18H735.069L739.586 2503.2H739.813L744.373 2487.18H750.779L742.299 2511.36C741.892 2512.53 741.338 2513.55 740.637 2514.43C739.946 2515.31 739.07 2515.98 738.009 2516.46C736.949 2516.94 735.67 2517.18 734.174 2517.18ZM763.247 2509V2479.91H774.724C776.931 2479.91 778.811 2480.33 780.364 2481.17C781.917 2482.01 783.1 2483.17 783.915 2484.65C784.739 2486.13 785.151 2487.84 785.151 2489.77C785.151 2491.7 784.734 2493.4 783.901 2494.88C783.067 2496.36 781.86 2497.51 780.278 2498.33C778.706 2499.16 776.803 2499.57 774.568 2499.57H767.253V2494.64H773.574C774.758 2494.64 775.733 2494.44 776.5 2494.03C777.277 2493.61 777.854 2493.04 778.233 2492.31C778.621 2491.57 778.815 2490.72 778.815 2489.77C778.815 2488.8 778.621 2487.96 778.233 2487.24C777.854 2486.51 777.277 2485.95 776.5 2485.55C775.723 2485.14 774.739 2484.94 773.545 2484.94H769.398V2509H763.247ZM798.538 2509.43C796.332 2509.43 794.424 2508.96 792.814 2508.02C791.214 2507.07 789.978 2505.76 789.107 2504.07C788.235 2502.38 787.8 2500.41 787.8 2498.18C787.8 2495.92 788.235 2493.95 789.107 2492.27C789.978 2490.57 791.214 2489.26 792.814 2488.32C794.424 2487.37 796.332 2486.9 798.538 2486.9C800.745 2486.9 802.648 2487.37 804.249 2488.32C805.858 2489.26 807.099 2490.57 807.97 2492.27C808.841 2493.95 809.277 2495.92 809.277 2498.18C809.277 2500.41 808.841 2502.38 807.97 2504.07C807.099 2505.76 805.858 2507.07 804.249 2508.02C802.648 2508.96 800.745 2509.43 798.538 2509.43ZM798.567 2504.74C799.571 2504.74 800.409 2504.45 801.081 2503.89C801.753 2503.31 802.26 2502.52 802.601 2501.53C802.951 2500.53 803.126 2499.4 803.126 2498.13C803.126 2496.86 802.951 2495.73 802.601 2494.74C802.26 2493.74 801.753 2492.96 801.081 2492.38C800.409 2491.8 799.571 2491.51 798.567 2491.51C797.554 2491.51 796.701 2491.8 796.01 2492.38C795.328 2492.96 794.812 2493.74 794.462 2494.74C794.121 2495.73 793.95 2496.86 793.95 2498.13C793.95 2499.4 794.121 2500.53 794.462 2501.53C794.812 2502.52 795.328 2503.31 796.01 2503.89C796.701 2504.45 797.554 2504.74 798.567 2504.74ZM819.263 2479.91V2509H813.212V2479.91H819.263ZM824.11 2509V2487.18H830.161V2509H824.11ZM827.15 2484.37C826.25 2484.37 825.478 2484.07 824.835 2483.47C824.2 2482.87 823.883 2482.14 823.883 2481.3C823.883 2480.47 824.2 2479.75 824.835 2479.16C825.478 2478.55 826.25 2478.25 827.15 2478.25C828.049 2478.25 828.817 2478.55 829.451 2479.16C830.095 2479.75 830.417 2480.47 830.417 2481.3C830.417 2482.14 830.095 2482.87 829.451 2483.47C828.817 2484.07 828.049 2484.37 827.15 2484.37ZM844.866 2509.43C842.632 2509.43 840.709 2508.95 839.099 2508.01C837.499 2507.05 836.268 2505.72 835.406 2504.03C834.554 2502.33 834.128 2500.38 834.128 2498.18C834.128 2495.94 834.559 2493.98 835.42 2492.3C836.292 2490.6 837.527 2489.28 839.128 2488.33C840.728 2487.38 842.632 2486.9 844.838 2486.9C846.741 2486.9 848.408 2487.24 849.838 2487.93C851.268 2488.63 852.4 2489.6 853.233 2490.85C854.066 2492.1 854.526 2493.56 854.611 2495.25H848.901C848.74 2494.16 848.313 2493.29 847.622 2492.62C846.94 2491.95 846.045 2491.61 844.938 2491.61C844 2491.61 843.181 2491.87 842.48 2492.38C841.789 2492.88 841.249 2493.62 840.861 2494.58C840.473 2495.55 840.278 2496.72 840.278 2498.09C840.278 2499.48 840.468 2500.67 840.847 2501.64C841.235 2502.62 841.779 2503.36 842.48 2503.87C843.181 2504.38 844 2504.64 844.938 2504.64C845.629 2504.64 846.249 2504.5 846.798 2504.21C847.357 2503.93 847.816 2503.52 848.176 2502.98C848.545 2502.43 848.787 2501.77 848.901 2501H854.611C854.516 2502.67 854.062 2504.14 853.247 2505.41C852.442 2506.67 851.33 2507.65 849.909 2508.36C848.489 2509.07 846.808 2509.43 844.866 2509.43ZM862.221 2517.18C861.454 2517.18 860.734 2517.12 860.062 2517C859.399 2516.88 858.85 2516.74 858.414 2516.56L859.778 2512.04C860.488 2512.26 861.127 2512.38 861.695 2512.39C862.273 2512.41 862.77 2512.28 863.187 2512C863.613 2511.71 863.959 2511.23 864.224 2510.55L864.579 2509.62L856.752 2487.18H863.116L867.633 2503.2H867.86L872.42 2487.18H878.826L870.346 2511.36C869.939 2512.53 869.385 2513.55 868.684 2514.43C867.993 2515.31 867.117 2515.98 866.056 2516.46C864.996 2516.94 863.717 2517.18 862.221 2517.18Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M887.906 2458H1315.27\",\n stroke: \"white\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M605.344 2520H877.85\",\n stroke: \"white\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M569.841 1895V1847.73H575.566V1889.92H597.54V1895H569.841ZM620.068 1895.74C616.868 1895.74 614.059 1894.98 611.643 1893.45C609.243 1891.93 607.365 1889.8 606.011 1887.06C604.672 1884.32 604.003 1881.12 604.003 1877.46C604.003 1873.76 604.672 1870.54 606.011 1867.79C607.365 1865.03 609.243 1862.89 611.643 1861.37C614.059 1859.85 616.868 1859.08 620.068 1859.08C623.269 1859.08 626.07 1859.85 628.47 1861.37C630.886 1862.89 632.764 1865.03 634.102 1867.79C635.457 1870.54 636.134 1873.76 636.134 1877.46C636.134 1881.12 635.457 1884.32 634.102 1887.06C632.764 1889.8 630.886 1891.93 628.47 1893.45C626.07 1894.98 623.269 1895.74 620.068 1895.74ZM620.068 1890.85C622.5 1890.85 624.5 1890.22 626.07 1888.98C627.639 1887.73 628.801 1886.09 629.555 1884.06C630.309 1882.03 630.686 1879.83 630.686 1877.46C630.686 1875.09 630.309 1872.88 629.555 1870.83C628.801 1868.79 627.639 1867.13 626.07 1865.87C624.5 1864.61 622.5 1863.98 620.068 1863.98C617.637 1863.98 615.637 1864.61 614.067 1865.87C612.497 1867.13 611.336 1868.79 610.582 1870.83C609.828 1872.88 609.451 1875.09 609.451 1877.46C609.451 1879.83 609.828 1882.03 610.582 1884.06C611.336 1886.09 612.497 1887.73 614.067 1888.98C615.637 1890.22 617.637 1890.85 620.068 1890.85ZM658.76 1909.03C656.129 1909.03 653.867 1908.7 651.974 1908.02C650.081 1907.36 648.504 1906.48 647.242 1905.39C645.996 1904.31 645.003 1903.16 644.265 1901.92L648.604 1898.88C649.096 1899.52 649.72 1900.26 650.474 1901.09C651.228 1901.94 652.259 1902.67 653.567 1903.29C654.89 1903.92 656.621 1904.23 658.76 1904.23C661.622 1904.23 663.985 1903.54 665.847 1902.16C667.709 1900.77 668.64 1898.6 668.64 1895.65V1888.44H668.178C667.778 1889.09 667.208 1889.89 666.47 1890.85C665.747 1891.78 664.7 1892.62 663.331 1893.36C661.976 1894.08 660.145 1894.45 657.837 1894.45C654.975 1894.45 652.405 1893.77 650.127 1892.41C647.865 1891.06 646.073 1889.09 644.749 1886.51C643.441 1883.92 642.787 1880.78 642.787 1877.09C642.787 1873.46 643.426 1870.29 644.703 1867.6C645.98 1864.89 647.758 1862.8 650.035 1861.32C652.313 1859.83 654.944 1859.08 657.929 1859.08C660.238 1859.08 662.069 1859.47 663.423 1860.24C664.792 1860.99 665.839 1861.85 666.562 1862.82C667.301 1863.78 667.87 1864.56 668.27 1865.18H668.824V1859.55H674.087V1896.02C674.087 1899.06 673.394 1901.54 672.01 1903.45C670.64 1905.37 668.793 1906.78 666.47 1907.67C664.162 1908.58 661.592 1909.03 658.76 1909.03ZM658.576 1889.55C660.761 1889.55 662.607 1889.05 664.115 1888.05C665.623 1887.05 666.77 1885.61 667.555 1883.74C668.339 1881.86 668.732 1879.61 668.732 1877C668.732 1874.44 668.347 1872.19 667.578 1870.23C666.808 1868.28 665.67 1866.75 664.162 1865.64C662.653 1864.53 660.792 1863.98 658.576 1863.98C656.267 1863.98 654.344 1864.56 652.805 1865.73C651.282 1866.9 650.135 1868.47 649.366 1870.44C648.612 1872.41 648.235 1874.6 648.235 1877C648.235 1879.46 648.619 1881.64 649.389 1883.53C650.174 1885.41 651.328 1886.88 652.851 1887.96C654.39 1889.02 656.298 1889.55 658.576 1889.55ZM684.059 1895V1859.55H689.506V1895H684.059ZM686.828 1853.64C685.767 1853.64 684.851 1853.27 684.082 1852.55C683.328 1851.83 682.951 1850.96 682.951 1849.94C682.951 1848.93 683.328 1848.06 684.082 1847.33C684.851 1846.61 685.767 1846.25 686.828 1846.25C687.89 1846.25 688.798 1846.61 689.552 1847.33C690.322 1848.06 690.706 1848.93 690.706 1849.94C690.706 1850.96 690.322 1851.83 689.552 1852.55C688.798 1853.27 687.89 1853.64 686.828 1853.64ZM704.931 1873.67V1895H699.483V1859.55H704.746V1865.09H705.208C706.039 1863.28 707.301 1861.84 708.993 1860.75C710.686 1859.64 712.871 1859.08 715.549 1859.08C717.949 1859.08 720.05 1859.58 721.85 1860.56C723.651 1861.53 725.051 1863.01 726.051 1864.99C727.051 1866.96 727.552 1869.46 727.552 1872.47V1895H722.104V1872.84C722.104 1870.06 721.381 1867.89 719.934 1866.33C718.488 1864.76 716.503 1863.98 713.979 1863.98C712.24 1863.98 710.686 1864.35 709.316 1865.11C707.962 1865.86 706.893 1866.96 706.108 1868.41C705.323 1869.86 704.931 1871.61 704.931 1873.67ZM763.82 1895L753.017 1859.55H758.742L766.405 1886.69H766.774L774.345 1859.55H780.162L787.641 1886.6H788.01L795.673 1859.55H801.398L790.595 1895H785.24L777.485 1867.76H776.931L769.175 1895H763.82ZM808.6 1895V1859.55H814.047V1895H808.6ZM811.369 1853.64C810.308 1853.64 809.392 1853.27 808.623 1852.55C807.869 1851.83 807.492 1850.96 807.492 1849.94C807.492 1848.93 807.869 1848.06 808.623 1847.33C809.392 1846.61 810.308 1846.25 811.369 1846.25C812.431 1846.25 813.339 1846.61 814.093 1847.33C814.863 1848.06 815.247 1848.93 815.247 1849.94C815.247 1850.96 814.863 1851.83 814.093 1852.55C813.339 1853.27 812.431 1853.64 811.369 1853.64ZM839.443 1859.55V1864.16H821.07V1859.55H839.443ZM826.425 1851.05H831.872V1884.84C831.872 1886.38 832.096 1887.54 832.542 1888.31C833.003 1889.06 833.588 1889.57 834.296 1889.83C835.019 1890.08 835.781 1890.2 836.581 1890.2C837.181 1890.2 837.674 1890.17 838.058 1890.11C838.443 1890.03 838.751 1889.97 838.982 1889.92L840.09 1894.82C839.72 1894.95 839.205 1895.09 838.543 1895.23C837.881 1895.38 837.043 1895.46 836.027 1895.46C834.488 1895.46 832.98 1895.13 831.503 1894.47C830.041 1893.81 828.826 1892.8 827.856 1891.45C826.902 1890.09 826.425 1888.38 826.425 1886.32V1851.05ZM853.847 1873.67V1895H848.399V1847.73H853.847V1865.09H854.308C855.139 1863.25 856.386 1861.8 858.048 1860.72C859.725 1859.63 861.956 1859.08 864.742 1859.08C867.158 1859.08 869.274 1859.57 871.089 1860.54C872.905 1861.49 874.313 1862.96 875.313 1864.95C876.329 1866.92 876.837 1869.42 876.837 1872.47V1895H871.389V1872.84C871.389 1870.02 870.658 1867.85 869.197 1866.31C867.75 1864.75 865.742 1863.98 863.172 1863.98C861.387 1863.98 859.787 1864.35 858.371 1865.11C856.971 1865.86 855.863 1866.96 855.047 1868.41C854.247 1869.86 853.847 1871.61 853.847 1873.67Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M968.134 1961.07H479.865C472.538 1961.07 466.599 1966.98 466.599 1974.26V2076.23C466.599 2083.52 472.538 2089.42 479.865 2089.42H968.134C975.461 2089.42 981.4 2083.52 981.4 2076.23V1974.26C981.4 1966.98 975.461 1961.07 968.134 1961.07Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M719.048 2014.68C718.625 2013.39 718.068 2012.23 717.377 2011.2C716.698 2010.16 715.885 2009.28 714.937 2008.55C714.002 2007.82 712.939 2007.26 711.748 2006.88C710.556 2006.49 709.25 2006.3 707.828 2006.3C705.497 2006.3 703.378 2006.9 701.469 2008.11C699.561 2009.31 698.043 2011.09 696.916 2013.43C695.789 2015.77 695.225 2018.65 695.225 2022.06C695.225 2025.46 695.795 2028.34 696.935 2030.68C698.075 2033.03 699.618 2034.8 701.565 2036C703.512 2037.21 705.702 2037.81 708.136 2037.81C710.39 2037.81 712.375 2037.33 714.091 2036.37C715.82 2035.4 717.165 2034.03 718.126 2032.26C719.099 2030.48 719.586 2028.38 719.586 2025.98L721.046 2026.28H709.212V2022.06H724.197V2026.28C724.197 2029.52 723.505 2032.34 722.122 2034.74C720.752 2037.13 718.856 2038.99 716.435 2040.31C714.027 2041.61 711.261 2042.27 708.136 2042.27C704.652 2042.27 701.591 2041.45 698.952 2039.81C696.327 2038.17 694.277 2035.84 692.805 2032.82C691.344 2029.79 690.614 2026.21 690.614 2022.06C690.614 2018.94 691.031 2016.15 691.863 2013.66C692.708 2011.16 693.9 2009.04 695.437 2007.28C696.974 2005.53 698.792 2004.18 700.893 2003.25C702.993 2002.31 705.305 2001.85 707.828 2001.85C709.903 2001.85 711.837 2002.16 713.63 2002.79C715.436 2003.4 717.044 2004.28 718.453 2005.42C719.874 2006.55 721.059 2007.9 722.007 2009.47C722.955 2011.04 723.608 2012.77 723.966 2014.68H719.048ZM743.731 2042.34C741.067 2042.34 738.729 2041.71 736.718 2040.44C734.72 2039.17 733.158 2037.4 732.031 2035.12C730.916 2032.84 730.359 2030.18 730.359 2027.13C730.359 2024.05 730.916 2021.37 732.031 2019.08C733.158 2016.79 734.72 2015.01 736.718 2013.74C738.729 2012.47 741.067 2011.84 743.731 2011.84C746.395 2011.84 748.726 2012.47 750.724 2013.74C752.735 2015.01 754.297 2016.79 755.412 2019.08C756.539 2021.37 757.102 2024.05 757.102 2027.13C757.102 2030.18 756.539 2032.84 755.412 2035.12C754.297 2037.4 752.735 2039.17 750.724 2040.44C748.726 2041.71 746.395 2042.34 743.731 2042.34ZM743.731 2038.27C745.754 2038.27 747.419 2037.75 748.726 2036.72C750.032 2035.68 750.999 2034.31 751.627 2032.62C752.254 2030.93 752.568 2029.1 752.568 2027.13C752.568 2025.16 752.254 2023.32 751.627 2021.61C750.999 2019.91 750.032 2018.53 748.726 2017.48C747.419 2016.43 745.754 2015.91 743.731 2015.91C741.707 2015.91 740.042 2016.43 738.736 2017.48C737.429 2018.53 736.462 2019.91 735.835 2021.61C735.207 2023.32 734.893 2025.16 734.893 2027.13C734.893 2029.1 735.207 2030.93 735.835 2032.62C736.462 2034.31 737.429 2035.68 738.736 2036.72C740.042 2037.75 741.707 2038.27 743.731 2038.27ZM776.012 2042.34C773.348 2042.34 771.01 2041.71 768.999 2040.44C767.001 2039.17 765.439 2037.4 764.312 2035.12C763.197 2032.84 762.64 2030.18 762.64 2027.13C762.64 2024.05 763.197 2021.37 764.312 2019.08C765.439 2016.79 767.001 2015.01 768.999 2013.74C771.01 2012.47 773.348 2011.84 776.012 2011.84C778.676 2011.84 781.007 2012.47 783.005 2013.74C785.016 2015.01 786.578 2016.79 787.693 2019.08C788.82 2021.37 789.383 2024.05 789.383 2027.13C789.383 2030.18 788.82 2032.84 787.693 2035.12C786.578 2037.4 785.016 2039.17 783.005 2040.44C781.007 2041.71 778.676 2042.34 776.012 2042.34ZM776.012 2038.27C778.035 2038.27 779.7 2037.75 781.007 2036.72C782.313 2035.68 783.28 2034.31 783.908 2032.62C784.535 2030.93 784.849 2029.1 784.849 2027.13C784.849 2025.16 784.535 2023.32 783.908 2021.61C783.28 2019.91 782.313 2018.53 781.007 2017.48C779.7 2016.43 778.035 2015.91 776.012 2015.91C773.988 2015.91 772.323 2016.43 771.017 2017.48C769.71 2018.53 768.743 2019.91 768.116 2021.61C767.488 2023.32 767.174 2025.16 767.174 2027.13C767.174 2029.1 767.488 2030.93 768.116 2032.62C768.743 2034.31 769.71 2035.68 771.017 2036.72C772.323 2037.75 773.988 2038.27 776.012 2038.27ZM808.216 2053.41C806.026 2053.41 804.143 2053.13 802.567 2052.57C800.992 2052.01 799.679 2051.28 798.629 2050.38C797.592 2049.48 796.765 2048.52 796.151 2047.49L799.763 2044.96C800.172 2045.5 800.691 2046.11 801.319 2046.8C801.946 2047.51 802.804 2048.11 803.893 2048.63C804.995 2049.15 806.435 2049.41 808.216 2049.41C810.598 2049.41 812.564 2048.84 814.114 2047.69C815.664 2046.53 816.439 2044.73 816.439 2042.27V2036.27H816.054C815.721 2036.81 815.247 2037.48 814.633 2038.27C814.031 2039.05 813.16 2039.75 812.02 2040.37C810.893 2040.97 809.369 2041.27 807.447 2041.27C805.065 2041.27 802.926 2040.71 801.031 2039.58C799.148 2038.45 797.656 2036.81 796.554 2034.66C795.465 2032.51 794.921 2029.9 794.921 2026.82C794.921 2023.8 795.453 2021.17 796.516 2018.93C797.579 2016.67 799.058 2014.93 800.954 2013.7C802.849 2012.46 805.039 2011.84 807.524 2011.84C809.445 2011.84 810.97 2012.16 812.097 2012.8C813.237 2013.42 814.107 2014.14 814.709 2014.95C815.324 2015.74 815.798 2016.4 816.131 2016.91H816.592V2012.22H820.973V2042.58C820.973 2045.11 820.396 2047.17 819.243 2048.76C818.104 2050.36 816.567 2051.53 814.633 2052.28C812.711 2053.03 810.572 2053.41 808.216 2053.41ZM808.062 2037.2C809.881 2037.2 811.418 2036.78 812.673 2035.95C813.928 2035.11 814.882 2033.92 815.536 2032.35C816.189 2030.79 816.515 2028.92 816.515 2026.74C816.515 2024.62 816.195 2022.74 815.555 2021.12C814.914 2019.49 813.967 2018.21 812.711 2017.29C811.456 2016.37 809.906 2015.91 808.062 2015.91C806.141 2015.91 804.54 2016.4 803.259 2017.37C801.991 2018.34 801.037 2019.65 800.397 2021.29C799.769 2022.93 799.455 2024.75 799.455 2026.74C799.455 2028.79 799.775 2030.61 800.416 2032.18C801.069 2033.74 802.03 2034.97 803.298 2035.87C804.578 2036.75 806.167 2037.2 808.062 2037.2ZM833.806 2002.38V2041.73H829.272V2002.38H833.806ZM854.483 2042.34C851.64 2042.34 849.187 2041.72 847.125 2040.46C845.076 2039.19 843.494 2037.43 842.38 2035.16C841.278 2032.88 840.727 2030.23 840.727 2027.21C840.727 2024.18 841.278 2021.52 842.38 2019.21C843.494 2016.9 845.044 2015.09 847.029 2013.8C849.027 2012.49 851.358 2011.84 854.022 2011.84C855.559 2011.84 857.077 2012.09 858.575 2012.6C860.074 2013.12 861.438 2013.95 862.667 2015.1C863.897 2016.24 864.877 2017.75 865.607 2019.64C866.337 2021.52 866.702 2023.84 866.702 2026.59V2028.51H843.955V2024.59H862.091C862.091 2022.93 861.758 2021.44 861.092 2020.14C860.439 2018.83 859.504 2017.8 858.287 2017.04C857.083 2016.29 855.661 2015.91 854.022 2015.91C852.216 2015.91 850.654 2016.36 849.334 2017.25C848.028 2018.14 847.022 2019.29 846.318 2020.71C845.614 2022.13 845.261 2023.66 845.261 2025.28V2027.9C845.261 2030.13 845.646 2032.01 846.414 2033.56C847.195 2035.1 848.278 2036.27 849.661 2037.08C851.044 2037.87 852.652 2038.27 854.483 2038.27C855.674 2038.27 856.75 2038.11 857.711 2037.77C858.684 2037.43 859.523 2036.91 860.227 2036.24C860.932 2035.54 861.476 2034.69 861.861 2033.66L866.241 2034.89C865.78 2036.38 865.005 2037.68 863.916 2038.81C862.828 2039.92 861.483 2040.79 859.882 2041.42C858.281 2042.04 856.481 2042.34 854.483 2042.34Z\",\n fill: \"#3F67F6\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M553.008 2025.25C553.004 2021.78 553.947 2018.37 555.737 2015.39V2003.14H543.423C538.535 2009.49 535.886 2017.25 535.886 2025.25C535.886 2033.24 538.535 2041.01 543.423 2047.35H555.737V2035.1C553.948 2032.12 553.005 2028.72 553.008 2025.25Z\",\n fill: \"#FBBD00\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M572.413 2044.54L563.852 2053.06L572.413 2061.57C580.451 2061.59 588.269 2058.95 594.635 2054.07V2041.84H582.334C579.332 2043.61 575.904 2044.55 572.413 2044.54Z\",\n fill: \"#0F9D58\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M555.737 2035.1L543.423 2047.35C544.399 2048.61 545.454 2049.8 546.585 2050.93C549.968 2054.31 553.994 2056.99 558.427 2058.82C562.86 2060.65 567.614 2061.58 572.412 2061.57V2044.54C569.049 2044.54 565.743 2043.67 562.82 2042.01C559.897 2040.36 557.456 2037.98 555.737 2035.1Z\",\n fill: \"#31AA52\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M608.939 2025.25C608.94 2023.04 608.739 2020.84 608.341 2018.67L608.02 2016.92H572.412V2033.95H589.741C588.084 2037.23 585.515 2039.97 582.338 2041.85L594.64 2054.08C595.908 2053.11 597.11 2052.06 598.241 2050.94C601.644 2047.57 604.342 2043.57 606.178 2039.16C608.015 2034.75 608.953 2030.02 608.939 2025.25Z\",\n fill: \"#3C79E6\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M586.138 2011.6L587.652 2013.1L599.759 2001.06L598.25 1999.56C594.866 1996.18 590.841 1993.49 586.408 1991.67C581.974 1989.84 577.22 1988.91 572.422 1988.92L563.861 1997.43L572.422 2005.95C574.97 2005.94 577.495 2006.44 579.849 2007.41C582.203 2008.38 584.341 2009.8 586.138 2011.6Z\",\n fill: \"#CF2D48\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M572.412 2005.95V1988.92C567.614 1988.91 562.86 1989.84 558.427 1991.67C553.994 1993.49 549.969 1996.18 546.585 1999.56C545.454 2000.69 544.398 2001.88 543.422 2003.14L555.737 2015.39C557.456 2012.51 559.897 2010.13 562.82 2008.48C565.744 2006.82 569.049 2005.95 572.412 2005.95Z\",\n fill: \"#EB4132\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.366 1169H219.381L233.801 1129.73H238.71L253.131 1169H248.145L236.409 1135.94H236.102L224.366 1169ZM226.207 1153.66H246.304V1157.88H226.207V1153.66ZM273.822 1180.05V1139.55H278.194V1144.22H278.731C279.063 1143.71 279.523 1143.06 280.112 1142.27C280.712 1141.46 281.569 1140.75 282.681 1140.12C283.806 1139.48 285.327 1139.16 287.245 1139.16C289.725 1139.16 291.911 1139.78 293.803 1141.02C295.695 1142.26 297.172 1144.02 298.233 1146.3C299.294 1148.57 299.825 1151.26 299.825 1154.35C299.825 1157.47 299.294 1160.17 298.233 1162.46C297.172 1164.74 295.702 1166.5 293.822 1167.75C291.943 1168.99 289.776 1169.61 287.322 1169.61C285.43 1169.61 283.915 1169.3 282.777 1168.67C281.639 1168.03 280.763 1167.31 280.15 1166.51C279.536 1165.69 279.063 1165.01 278.731 1164.47H278.347V1180.05H273.822ZM278.271 1154.27C278.271 1156.5 278.597 1158.46 279.249 1160.16C279.901 1161.85 280.853 1163.17 282.106 1164.13C283.359 1165.08 284.893 1165.55 286.708 1165.55C288.6 1165.55 290.179 1165.05 291.445 1164.05C292.723 1163.04 293.682 1161.69 294.321 1159.99C294.973 1158.27 295.299 1156.37 295.299 1154.27C295.299 1152.2 294.979 1150.34 294.34 1148.67C293.714 1147 292.761 1145.68 291.483 1144.7C290.217 1143.72 288.626 1143.23 286.708 1143.23C284.867 1143.23 283.32 1143.69 282.067 1144.63C280.815 1145.55 279.869 1146.84 279.229 1148.5C278.59 1150.15 278.271 1152.07 278.271 1154.27ZM306.728 1169V1139.55H311.1V1143.99H311.407C311.944 1142.54 312.915 1141.35 314.322 1140.45C315.728 1139.54 317.313 1139.09 319.077 1139.09C319.41 1139.09 319.825 1139.09 320.324 1139.1C320.822 1139.12 321.2 1139.14 321.455 1139.16V1143.76C321.302 1143.73 320.95 1143.67 320.401 1143.59C319.864 1143.5 319.295 1143.46 318.694 1143.46C317.262 1143.46 315.984 1143.76 314.859 1144.36C313.746 1144.95 312.864 1145.76 312.212 1146.81C311.573 1147.85 311.254 1149.03 311.254 1150.36V1169H306.728ZM337.889 1169.61C335.23 1169.61 332.897 1168.98 330.89 1167.72C328.896 1166.45 327.336 1164.68 326.211 1162.4C325.099 1160.13 324.543 1157.47 324.543 1154.43C324.543 1151.36 325.099 1148.68 326.211 1146.39C327.336 1144.1 328.896 1142.33 330.89 1141.06C332.897 1139.79 335.23 1139.16 337.889 1139.16C340.548 1139.16 342.875 1139.79 344.869 1141.06C346.876 1142.33 348.436 1144.1 349.548 1146.39C350.673 1148.68 351.236 1151.36 351.236 1154.43C351.236 1157.47 350.673 1160.13 349.548 1162.4C348.436 1164.68 346.876 1166.45 344.869 1167.72C342.875 1168.98 340.548 1169.61 337.889 1169.61ZM337.889 1165.55C339.909 1165.55 341.571 1165.03 342.875 1164C344.179 1162.96 345.144 1161.6 345.771 1159.91C346.397 1158.22 346.71 1156.39 346.71 1154.43C346.71 1152.46 346.397 1150.62 345.771 1148.92C345.144 1147.22 344.179 1145.85 342.875 1144.8C341.571 1143.75 339.909 1143.23 337.889 1143.23C335.869 1143.23 334.207 1143.75 332.903 1144.8C331.599 1145.85 330.634 1147.22 330.008 1148.92C329.381 1150.62 329.068 1152.46 329.068 1154.43C329.068 1156.39 329.381 1158.22 330.008 1159.91C330.634 1161.6 331.599 1162.96 332.903 1164C334.207 1165.03 335.869 1165.55 337.889 1165.55ZM369.266 1169.61C366.812 1169.61 364.645 1168.99 362.765 1167.75C360.886 1166.5 359.416 1164.74 358.355 1162.46C357.294 1160.17 356.763 1157.47 356.763 1154.35C356.763 1151.26 357.294 1148.57 358.355 1146.3C359.416 1144.02 360.893 1142.26 362.785 1141.02C364.677 1139.78 366.863 1139.16 369.343 1139.16C371.26 1139.16 372.775 1139.48 373.888 1140.12C375.013 1140.75 375.869 1141.46 376.457 1142.27C377.058 1143.06 377.525 1143.71 377.857 1144.22H378.241V1129.73H382.766V1169H378.394V1164.47H377.857C377.525 1165.01 377.052 1165.69 376.438 1166.51C375.824 1167.31 374.949 1168.03 373.811 1168.67C372.673 1169.3 371.158 1169.61 369.266 1169.61ZM369.88 1165.55C371.695 1165.55 373.229 1165.08 374.482 1164.13C375.735 1163.17 376.687 1161.85 377.339 1160.16C377.991 1158.46 378.317 1156.5 378.317 1154.27C378.317 1152.07 377.998 1150.15 377.358 1148.5C376.719 1146.84 375.773 1145.55 374.52 1144.63C373.268 1143.69 371.721 1143.23 369.88 1143.23C367.962 1143.23 366.364 1143.72 365.086 1144.7C363.82 1145.68 362.868 1147 362.229 1148.67C361.602 1150.34 361.289 1152.2 361.289 1154.27C361.289 1156.37 361.608 1158.27 362.248 1159.99C362.9 1161.69 363.858 1163.04 365.124 1164.05C366.403 1165.05 367.988 1165.55 369.88 1165.55ZM410.246 1156.96V1139.55H414.771V1169H410.246V1164.01H409.939C409.248 1165.51 408.175 1166.78 406.717 1167.83C405.26 1168.87 403.419 1169.38 401.194 1169.38C399.354 1169.38 397.717 1168.98 396.285 1168.18C394.854 1167.36 393.729 1166.13 392.91 1164.49C392.092 1162.84 391.683 1160.77 391.683 1158.26V1139.55H396.209V1157.95C396.209 1160.1 396.809 1161.82 398.011 1163.09C399.226 1164.37 400.773 1165.01 402.652 1165.01C403.777 1165.01 404.921 1164.72 406.084 1164.15C407.26 1163.57 408.245 1162.69 409.037 1161.5C409.843 1160.31 410.246 1158.8 410.246 1156.96ZM435.026 1169.61C432.265 1169.61 429.887 1168.96 427.892 1167.66C425.898 1166.35 424.364 1164.56 423.29 1162.27C422.216 1159.98 421.679 1157.37 421.679 1154.43C421.679 1151.43 422.229 1148.79 423.328 1146.51C424.441 1144.21 425.988 1142.41 427.969 1141.12C429.963 1139.81 432.29 1139.16 434.949 1139.16C437.02 1139.16 438.887 1139.55 440.549 1140.31C442.211 1141.08 443.572 1142.15 444.633 1143.53C445.694 1144.91 446.353 1146.53 446.608 1148.37H442.083C441.738 1147.02 440.971 1145.84 439.782 1144.8C438.605 1143.75 437.02 1143.23 435.026 1143.23C433.262 1143.23 431.715 1143.69 430.385 1144.61C429.069 1145.52 428.039 1146.8 427.298 1148.46C426.569 1150.11 426.205 1152.05 426.205 1154.27C426.205 1156.55 426.563 1158.53 427.279 1160.22C428.007 1161.9 429.03 1163.22 430.347 1164.15C431.676 1165.08 433.236 1165.55 435.026 1165.55C436.202 1165.55 437.27 1165.34 438.228 1164.93C439.187 1164.53 439.999 1163.94 440.664 1163.17C441.328 1162.4 441.801 1161.48 442.083 1160.41H446.608C446.353 1162.15 445.72 1163.71 444.71 1165.11C443.713 1166.49 442.39 1167.59 440.74 1168.41C439.104 1169.21 437.199 1169.61 435.026 1169.61ZM466.034 1139.55V1143.38H450.77V1139.55H466.034ZM455.218 1132.49H459.744V1160.56C459.744 1161.84 459.929 1162.8 460.3 1163.44C460.684 1164.07 461.169 1164.49 461.757 1164.7C462.358 1164.91 462.991 1165.01 463.656 1165.01C464.154 1165.01 464.564 1164.99 464.883 1164.93C465.203 1164.87 465.458 1164.82 465.65 1164.78L466.571 1168.85C466.264 1168.96 465.836 1169.08 465.286 1169.19C464.736 1169.32 464.039 1169.38 463.196 1169.38C461.917 1169.38 460.664 1169.11 459.437 1168.56C458.223 1168.01 457.213 1167.17 456.407 1166.05C455.615 1164.92 455.218 1163.5 455.218 1161.79V1132.49ZM488.642 1169V1129.73H493.168V1144.22H493.551C493.884 1143.71 494.344 1143.06 494.932 1142.27C495.533 1141.46 496.39 1140.75 497.502 1140.12C498.627 1139.48 500.148 1139.16 502.066 1139.16C504.546 1139.16 506.732 1139.78 508.624 1141.02C510.516 1142.26 511.993 1144.02 513.054 1146.3C514.115 1148.57 514.645 1151.26 514.645 1154.35C514.645 1157.47 514.115 1160.17 513.054 1162.46C511.993 1164.74 510.522 1166.5 508.643 1167.75C506.764 1168.99 504.597 1169.61 502.142 1169.61C500.25 1169.61 498.735 1169.3 497.598 1168.67C496.46 1168.03 495.584 1167.31 494.971 1166.51C494.357 1165.69 493.884 1165.01 493.551 1164.47H493.015V1169H488.642ZM493.091 1154.27C493.091 1156.5 493.417 1158.46 494.069 1160.16C494.721 1161.85 495.674 1163.17 496.926 1164.13C498.179 1165.08 499.713 1165.55 501.529 1165.55C503.421 1165.55 505 1165.05 506.265 1164.05C507.544 1163.04 508.502 1161.69 509.142 1159.99C509.794 1158.27 510.12 1156.37 510.12 1154.27C510.12 1152.2 509.8 1150.34 509.161 1148.67C508.534 1147 507.582 1145.68 506.304 1144.7C505.038 1143.72 503.446 1143.23 501.529 1143.23C499.688 1143.23 498.141 1143.69 496.888 1144.63C495.635 1145.55 494.689 1146.84 494.05 1148.5C493.411 1150.15 493.091 1152.07 493.091 1154.27ZM523.428 1180.05C522.661 1180.05 521.977 1179.98 521.376 1179.85C520.775 1179.74 520.36 1179.62 520.13 1179.51L521.28 1175.52C522.38 1175.8 523.351 1175.9 524.195 1175.83C525.039 1175.75 525.787 1175.37 526.439 1174.7C527.103 1174.03 527.711 1172.95 528.26 1171.45L529.104 1169.15L518.212 1139.55H523.121L531.252 1163.02H531.559L539.689 1139.55H544.598L532.096 1173.3C531.533 1174.82 530.836 1176.08 530.005 1177.07C529.174 1178.08 528.209 1178.83 527.11 1179.32C526.023 1179.8 524.796 1180.05 523.428 1180.05ZM567.984 1169H562.998L577.418 1129.73H582.327L596.748 1169H591.762L580.026 1135.94H579.719L567.984 1169ZM569.825 1153.66H589.921V1157.88H569.825V1153.66ZM602.568 1169V1139.55H607.093V1169H602.568ZM604.869 1134.64C603.987 1134.64 603.226 1134.34 602.587 1133.74C601.961 1133.13 601.647 1132.41 601.647 1131.57C601.647 1130.72 601.961 1130 602.587 1129.4C603.226 1128.8 603.987 1128.5 604.869 1128.5C605.751 1128.5 606.505 1128.8 607.132 1129.4C607.771 1130 608.091 1130.72 608.091 1131.57C608.091 1132.41 607.771 1133.13 607.132 1133.74C606.505 1134.34 605.751 1134.64 604.869 1134.64ZM615.382 1169V1139.55H619.754V1144.15H620.138C620.752 1142.58 621.742 1141.35 623.11 1140.49C624.478 1139.6 626.121 1139.16 628.039 1139.16C629.982 1139.16 631.599 1139.6 632.89 1140.49C634.194 1141.35 635.21 1142.58 635.939 1144.15H636.246C637 1142.63 638.132 1141.42 639.64 1140.52C641.149 1139.62 642.958 1139.16 645.067 1139.16C647.7 1139.16 649.855 1139.99 651.529 1141.64C653.204 1143.27 654.041 1145.82 654.041 1149.29V1169H649.516V1149.29C649.516 1147.11 648.921 1145.56 647.732 1144.63C646.544 1143.69 645.144 1143.23 643.533 1143.23C641.462 1143.23 639.857 1143.85 638.72 1145.11C637.582 1146.35 637.013 1147.92 637.013 1149.82V1169H632.411V1148.83C632.411 1147.15 631.867 1145.8 630.781 1144.78C629.694 1143.75 628.294 1143.23 626.581 1143.23C625.405 1143.23 624.306 1143.54 623.283 1144.17C622.273 1144.79 621.455 1145.66 620.828 1146.77C620.215 1147.87 619.908 1149.15 619.908 1150.59V1169H615.382ZM661.319 1160.95V1157.03L678.577 1129.73H681.415V1135.79H679.498L666.458 1156.42V1156.73H689.699V1160.95H661.319ZM679.805 1169V1159.76V1157.94V1129.73H684.33V1169H679.805ZM723.349 1129.73H728.104V1155.73C728.104 1158.41 727.472 1160.81 726.206 1162.92C724.953 1165.02 723.183 1166.67 720.894 1167.89C718.606 1169.09 715.921 1169.69 712.84 1169.69C709.759 1169.69 707.075 1169.09 704.786 1167.89C702.498 1166.67 700.721 1165.02 699.455 1162.92C698.202 1160.81 697.576 1158.41 697.576 1155.73V1129.73H702.332V1155.35C702.332 1157.26 702.754 1158.97 703.597 1160.47C704.441 1161.95 705.643 1163.12 707.202 1163.98C708.775 1164.82 710.654 1165.24 712.84 1165.24C715.026 1165.24 716.906 1164.82 718.478 1163.98C720.05 1163.12 721.252 1161.95 722.083 1160.47C722.927 1158.97 723.349 1157.26 723.349 1155.35V1129.73ZM774.266 1139.55C774.036 1137.6 773.103 1136.09 771.466 1135.02C769.83 1133.95 767.823 1133.41 765.445 1133.41C763.706 1133.41 762.185 1133.69 760.881 1134.25C759.59 1134.82 758.58 1135.59 757.851 1136.57C757.135 1137.56 756.778 1138.68 756.778 1139.93C756.778 1140.98 757.027 1141.88 757.525 1142.63C758.037 1143.37 758.689 1143.99 759.481 1144.49C760.274 1144.98 761.105 1145.38 761.974 1145.7C762.844 1146.01 763.643 1146.26 764.371 1146.45L768.36 1147.52C769.383 1147.79 770.52 1148.16 771.773 1148.63C773.039 1149.11 774.247 1149.75 775.398 1150.57C776.561 1151.38 777.52 1152.41 778.274 1153.68C779.028 1154.94 779.405 1156.5 779.405 1158.34C779.405 1160.46 778.849 1162.38 777.737 1164.09C776.638 1165.8 775.027 1167.17 772.905 1168.18C770.795 1169.19 768.232 1169.69 765.215 1169.69C762.403 1169.69 759.967 1169.24 757.909 1168.33C755.863 1167.42 754.253 1166.16 753.077 1164.53C751.913 1162.91 751.255 1161.02 751.101 1158.88H756.01C756.138 1160.36 756.637 1161.59 757.506 1162.56C758.388 1163.52 759.501 1164.23 760.843 1164.7C762.198 1165.16 763.655 1165.39 765.215 1165.39C767.03 1165.39 768.66 1165.1 770.105 1164.51C771.55 1163.91 772.694 1163.08 773.537 1162.02C774.381 1160.95 774.803 1159.69 774.803 1158.26C774.803 1156.96 774.439 1155.9 773.71 1155.08C772.981 1154.26 772.023 1153.6 770.834 1153.08C769.645 1152.57 768.36 1152.12 766.979 1151.74L762.147 1150.36C759.079 1149.48 756.65 1148.22 754.86 1146.58C753.07 1144.95 752.175 1142.81 752.175 1140.16C752.175 1137.96 752.77 1136.04 753.959 1134.41C755.16 1132.76 756.771 1131.48 758.791 1130.57C760.824 1129.65 763.093 1129.19 765.599 1129.19C768.13 1129.19 770.38 1129.64 772.349 1130.55C774.317 1131.45 775.877 1132.67 777.028 1134.23C778.191 1135.79 778.805 1137.56 778.868 1139.55H774.266ZM798.577 1169.61C795.918 1169.61 793.585 1168.98 791.577 1167.72C789.583 1166.45 788.023 1164.68 786.898 1162.4C785.786 1160.13 785.23 1157.47 785.23 1154.43C785.23 1151.36 785.786 1148.68 786.898 1146.39C788.023 1144.1 789.583 1142.33 791.577 1141.06C793.585 1139.79 795.918 1139.16 798.577 1139.16C801.236 1139.16 803.563 1139.79 805.557 1141.06C807.564 1142.33 809.124 1144.1 810.236 1146.39C811.361 1148.68 811.923 1151.36 811.923 1154.43C811.923 1157.47 811.361 1160.13 810.236 1162.4C809.124 1164.68 807.564 1166.45 805.557 1167.72C803.563 1168.98 801.236 1169.61 798.577 1169.61ZM798.577 1165.55C800.597 1165.55 802.259 1165.03 803.562 1164C804.866 1162.96 805.832 1161.6 806.458 1159.91C807.085 1158.22 807.398 1156.39 807.398 1154.43C807.398 1152.46 807.085 1150.62 806.458 1148.92C805.832 1147.22 804.866 1145.85 803.562 1144.8C802.259 1143.75 800.597 1143.23 798.577 1143.23C796.557 1143.23 794.895 1143.75 793.591 1144.8C792.287 1145.85 791.322 1147.22 790.695 1148.92C790.069 1150.62 789.756 1152.46 789.756 1154.43C789.756 1156.39 790.069 1158.22 790.695 1159.91C791.322 1161.6 792.287 1162.96 793.591 1164C794.895 1165.03 796.557 1165.55 798.577 1165.55ZM831.948 1139.55V1143.38H816.07V1139.55H831.948ZM820.826 1169V1135.48C820.826 1133.79 821.222 1132.39 822.015 1131.26C822.807 1130.14 823.836 1129.29 825.102 1128.73C826.368 1128.17 827.704 1127.89 829.11 1127.89C830.222 1127.89 831.13 1127.98 831.833 1128.15C832.536 1128.33 833.06 1128.5 833.405 1128.65L832.101 1132.57C831.871 1132.49 831.552 1132.39 831.143 1132.28C830.746 1132.16 830.222 1132.11 829.57 1132.11C828.074 1132.11 826.994 1132.48 826.329 1133.24C825.677 1133.99 825.351 1135.1 825.351 1136.55V1169H820.826ZM851.1 1139.55V1143.38H835.836V1139.55H851.1ZM840.285 1132.49H844.81V1160.56C844.81 1161.84 844.996 1162.8 845.366 1163.44C845.75 1164.07 846.236 1164.49 846.824 1164.7C847.425 1164.91 848.058 1165.01 848.722 1165.01C849.221 1165.01 849.63 1164.99 849.95 1164.93C850.269 1164.87 850.525 1164.82 850.717 1164.78L851.637 1168.85C851.33 1168.96 850.902 1169.08 850.352 1169.19C849.803 1169.32 849.106 1169.38 848.262 1169.38C846.984 1169.38 845.731 1169.11 844.504 1168.56C843.289 1168.01 842.279 1167.17 841.474 1166.05C840.681 1164.92 840.285 1163.5 840.285 1161.79V1132.49ZM864.581 1169L855.607 1139.55H860.362L866.729 1162.1H867.036L873.325 1139.55H878.158L884.371 1162.02H884.678L891.044 1139.55H895.8L886.825 1169H882.376L875.933 1146.37H875.473L869.03 1169H864.581ZM910.45 1169.69C908.584 1169.69 906.89 1169.34 905.369 1168.64C903.847 1167.92 902.639 1166.89 901.744 1165.55C900.849 1164.19 900.402 1162.56 900.402 1160.64C900.402 1158.95 900.734 1157.58 901.399 1156.54C902.064 1155.47 902.952 1154.64 904.065 1154.04C905.177 1153.44 906.404 1152.99 907.746 1152.7C909.102 1152.39 910.463 1152.15 911.831 1151.97C913.621 1151.74 915.072 1151.57 916.184 1151.45C917.309 1151.33 918.127 1151.12 918.638 1150.82C919.163 1150.53 919.425 1150.02 919.425 1149.29V1149.13C919.425 1147.24 918.907 1145.77 917.871 1144.72C916.849 1143.67 915.295 1143.15 913.212 1143.15C911.051 1143.15 909.357 1143.62 908.13 1144.57C906.903 1145.52 906.04 1146.53 905.541 1147.6L901.246 1146.07C902.013 1144.28 903.036 1142.88 904.314 1141.88C905.605 1140.87 907.011 1140.17 908.533 1139.78C910.067 1139.37 911.575 1139.16 913.058 1139.16C914.004 1139.16 915.091 1139.28 916.318 1139.51C917.558 1139.72 918.754 1140.18 919.904 1140.87C921.067 1141.56 922.033 1142.6 922.8 1143.99C923.567 1145.39 923.95 1147.25 923.95 1149.59V1169H919.425V1165.01H919.195C918.888 1165.65 918.376 1166.33 917.661 1167.06C916.945 1167.79 915.992 1168.41 914.803 1168.92C913.614 1169.43 912.163 1169.69 910.45 1169.69ZM911.141 1165.62C912.93 1165.62 914.439 1165.27 915.666 1164.57C916.906 1163.87 917.839 1162.96 918.466 1161.85C919.105 1160.74 919.425 1159.57 919.425 1158.34V1154.2C919.233 1154.43 918.811 1154.64 918.159 1154.83C917.52 1155.01 916.778 1155.17 915.935 1155.31C915.104 1155.44 914.292 1155.55 913.499 1155.65C912.719 1155.74 912.087 1155.82 911.601 1155.88C910.425 1156.04 909.325 1156.29 908.303 1156.63C907.293 1156.96 906.474 1157.47 905.848 1158.15C905.234 1158.81 904.928 1159.72 904.928 1160.87C904.928 1162.44 905.509 1163.63 906.673 1164.44C907.849 1165.23 909.338 1165.62 911.141 1165.62ZM932.21 1169V1139.55H936.583V1143.99H936.889C937.426 1142.54 938.398 1141.35 939.804 1140.45C941.21 1139.54 942.796 1139.09 944.56 1139.09C944.892 1139.09 945.308 1139.09 945.806 1139.1C946.305 1139.12 946.682 1139.14 946.938 1139.16V1143.76C946.784 1143.73 946.433 1143.67 945.883 1143.59C945.346 1143.5 944.777 1143.46 944.176 1143.46C942.744 1143.46 941.466 1143.76 940.341 1144.36C939.229 1144.95 938.347 1145.76 937.695 1146.81C937.056 1147.85 936.736 1149.03 936.736 1150.36V1169H932.21ZM963.755 1169.61C960.917 1169.61 958.469 1168.99 956.411 1167.73C954.365 1166.47 952.786 1164.7 951.674 1162.44C950.575 1160.17 950.025 1157.52 950.025 1154.5C950.025 1151.49 950.575 1148.83 951.674 1146.53C952.786 1144.21 954.333 1142.41 956.315 1141.12C958.309 1139.81 960.636 1139.16 963.295 1139.16C964.829 1139.16 966.344 1139.42 967.84 1139.93C969.335 1140.44 970.697 1141.27 971.924 1142.42C973.151 1143.56 974.129 1145.07 974.858 1146.95C975.587 1148.83 975.951 1151.14 975.951 1153.89V1155.81H953.247V1151.89H971.349C971.349 1150.23 971.017 1148.75 970.352 1147.45C969.7 1146.14 968.767 1145.11 967.552 1144.36C966.35 1143.6 964.931 1143.23 963.295 1143.23C961.492 1143.23 959.933 1143.67 958.616 1144.57C957.312 1145.45 956.308 1146.6 955.605 1148.02C954.902 1149.44 954.551 1150.96 954.551 1152.59V1155.19C954.551 1157.42 954.934 1159.3 955.701 1160.85C956.481 1162.38 957.561 1163.55 958.942 1164.36C960.323 1165.15 961.927 1165.55 963.755 1165.55C964.944 1165.55 966.018 1165.38 966.977 1165.05C967.948 1164.7 968.786 1164.19 969.489 1163.52C970.192 1162.83 970.735 1161.97 971.119 1160.95L975.491 1162.17C975.031 1163.66 974.257 1164.96 973.171 1166.09C972.084 1167.2 970.742 1168.07 969.144 1168.69C967.546 1169.31 965.749 1169.61 963.755 1169.61ZM1020.11 1139.55C1019.88 1137.6 1018.95 1136.09 1017.31 1135.02C1015.68 1133.95 1013.67 1133.41 1011.29 1133.41C1009.55 1133.41 1008.03 1133.69 1006.73 1134.25C1005.44 1134.82 1004.43 1135.59 1003.7 1136.57C1002.98 1137.56 1002.63 1138.68 1002.63 1139.93C1002.63 1140.98 1002.87 1141.88 1003.37 1142.63C1003.88 1143.37 1004.54 1143.99 1005.33 1144.49C1006.12 1144.98 1006.95 1145.38 1007.82 1145.7C1008.69 1146.01 1009.49 1146.26 1010.22 1146.45L1014.21 1147.52C1015.23 1147.79 1016.37 1148.16 1017.62 1148.63C1018.89 1149.11 1020.09 1149.75 1021.25 1150.57C1022.41 1151.38 1023.37 1152.41 1024.12 1153.68C1024.88 1154.94 1025.25 1156.5 1025.25 1158.34C1025.25 1160.46 1024.7 1162.38 1023.58 1164.09C1022.49 1165.8 1020.87 1167.17 1018.75 1168.18C1016.64 1169.19 1014.08 1169.69 1011.06 1169.69C1008.25 1169.69 1005.81 1169.24 1003.76 1168.33C1001.71 1167.42 1000.1 1166.16 998.924 1164.53C997.761 1162.91 997.102 1161.02 996.949 1158.88H1001.86C1001.99 1160.36 1002.48 1161.59 1003.35 1162.56C1004.24 1163.52 1005.35 1164.23 1006.69 1164.7C1008.05 1165.16 1009.5 1165.39 1011.06 1165.39C1012.88 1165.39 1014.51 1165.1 1015.95 1164.51C1017.4 1163.91 1018.54 1163.08 1019.39 1162.02C1020.23 1160.95 1020.65 1159.69 1020.65 1158.26C1020.65 1156.96 1020.29 1155.9 1019.56 1155.08C1018.83 1154.26 1017.87 1153.6 1016.68 1153.08C1015.49 1152.57 1014.21 1152.12 1012.83 1151.74L1007.99 1150.36C1004.93 1149.48 1002.5 1148.22 1000.71 1146.58C998.918 1144.95 998.023 1142.81 998.023 1140.16C998.023 1137.96 998.617 1136.04 999.806 1134.41C1001.01 1132.76 1002.62 1131.48 1004.64 1130.57C1006.67 1129.65 1008.94 1129.19 1011.45 1129.19C1013.98 1129.19 1016.23 1129.64 1018.2 1130.55C1020.16 1131.45 1021.72 1132.67 1022.88 1134.23C1024.04 1135.79 1024.65 1137.56 1024.72 1139.55H1020.11ZM1044.42 1169.61C1041.77 1169.61 1039.43 1168.98 1037.43 1167.72C1035.43 1166.45 1033.87 1164.68 1032.75 1162.4C1031.63 1160.13 1031.08 1157.47 1031.08 1154.43C1031.08 1151.36 1031.63 1148.68 1032.75 1146.39C1033.87 1144.1 1035.43 1142.33 1037.43 1141.06C1039.43 1139.79 1041.77 1139.16 1044.42 1139.16C1047.08 1139.16 1049.41 1139.79 1051.4 1141.06C1053.41 1142.33 1054.97 1144.1 1056.08 1146.39C1057.21 1148.68 1057.77 1151.36 1057.77 1154.43C1057.77 1157.47 1057.21 1160.13 1056.08 1162.4C1054.97 1164.68 1053.41 1166.45 1051.4 1167.72C1049.41 1168.98 1047.08 1169.61 1044.42 1169.61ZM1044.42 1165.55C1046.44 1165.55 1048.11 1165.03 1049.41 1164C1050.71 1162.96 1051.68 1161.6 1052.31 1159.91C1052.93 1158.22 1053.25 1156.39 1053.25 1154.43C1053.25 1152.46 1052.93 1150.62 1052.31 1148.92C1051.68 1147.22 1050.71 1145.85 1049.41 1144.8C1048.11 1143.75 1046.44 1143.23 1044.42 1143.23C1042.4 1143.23 1040.74 1143.75 1039.44 1144.8C1038.13 1145.85 1037.17 1147.22 1036.54 1148.92C1035.92 1150.62 1035.6 1152.46 1035.6 1154.43C1035.6 1156.39 1035.92 1158.22 1036.54 1159.91C1037.17 1161.6 1038.13 1162.96 1039.44 1164C1040.74 1165.03 1042.4 1165.55 1044.42 1165.55ZM1069.2 1129.73V1169H1064.68V1129.73H1069.2ZM1096.06 1156.96V1139.55H1100.58V1169H1096.06V1164.01H1095.75C1095.06 1165.51 1093.99 1166.78 1092.53 1167.83C1091.07 1168.87 1089.23 1169.38 1087 1169.38C1085.16 1169.38 1083.53 1168.98 1082.1 1168.18C1080.66 1167.36 1079.54 1166.13 1078.72 1164.49C1077.9 1162.84 1077.49 1160.77 1077.49 1158.26V1139.55H1082.02V1157.95C1082.02 1160.1 1082.62 1161.82 1083.82 1163.09C1085.04 1164.37 1086.58 1165.01 1088.46 1165.01C1089.59 1165.01 1090.73 1164.72 1091.89 1164.15C1093.07 1163.57 1094.06 1162.69 1094.85 1161.5C1095.65 1160.31 1096.06 1158.8 1096.06 1156.96ZM1121.68 1139.55V1143.38H1106.42V1139.55H1121.68ZM1110.86 1132.49H1115.39V1160.56C1115.39 1161.84 1115.58 1162.8 1115.95 1163.44C1116.33 1164.07 1116.82 1164.49 1117.4 1164.7C1118 1164.91 1118.64 1165.01 1119.3 1165.01C1119.8 1165.01 1120.21 1164.99 1120.53 1164.93C1120.85 1164.87 1121.1 1164.82 1121.3 1164.78L1122.22 1168.85C1121.91 1168.96 1121.48 1169.08 1120.93 1169.19C1120.38 1169.32 1119.69 1169.38 1118.84 1169.38C1117.56 1169.38 1116.31 1169.11 1115.08 1168.56C1113.87 1168.01 1112.86 1167.17 1112.05 1166.05C1111.26 1164.92 1110.86 1163.5 1110.86 1161.79V1132.49ZM1128.49 1169V1139.55H1133.01V1169H1128.49ZM1130.79 1134.64C1129.91 1134.64 1129.15 1134.34 1128.51 1133.74C1127.88 1133.13 1127.57 1132.41 1127.57 1131.57C1127.57 1130.72 1127.88 1130 1128.51 1129.4C1129.15 1128.8 1129.91 1128.5 1130.79 1128.5C1131.67 1128.5 1132.43 1128.8 1133.05 1129.4C1133.69 1130 1134.01 1130.72 1134.01 1131.57C1134.01 1132.41 1133.69 1133.13 1133.05 1133.74C1132.43 1134.34 1131.67 1134.64 1130.79 1134.64ZM1153.27 1169.61C1150.61 1169.61 1148.28 1168.98 1146.27 1167.72C1144.27 1166.45 1142.71 1164.68 1141.59 1162.4C1140.48 1160.13 1139.92 1157.47 1139.92 1154.43C1139.92 1151.36 1140.48 1148.68 1141.59 1146.39C1142.71 1144.1 1144.27 1142.33 1146.27 1141.06C1148.28 1139.79 1150.61 1139.16 1153.27 1139.16C1155.93 1139.16 1158.25 1139.79 1160.25 1141.06C1162.26 1142.33 1163.81 1144.1 1164.93 1146.39C1166.05 1148.68 1166.61 1151.36 1166.61 1154.43C1166.61 1157.47 1166.05 1160.13 1164.93 1162.4C1163.81 1164.68 1162.26 1166.45 1160.25 1167.72C1158.25 1168.98 1155.93 1169.61 1153.27 1169.61ZM1153.27 1165.55C1155.29 1165.55 1156.95 1165.03 1158.25 1164C1159.56 1162.96 1160.52 1161.6 1161.15 1159.91C1161.78 1158.22 1162.09 1156.39 1162.09 1154.43C1162.09 1152.46 1161.78 1150.62 1161.15 1148.92C1160.52 1147.22 1159.56 1145.85 1158.25 1144.8C1156.95 1143.75 1155.29 1143.23 1153.27 1143.23C1151.25 1143.23 1149.59 1143.75 1148.28 1144.8C1146.98 1145.85 1146.01 1147.22 1145.39 1148.92C1144.76 1150.62 1144.45 1152.46 1144.45 1154.43C1144.45 1156.39 1144.76 1158.22 1145.39 1159.91C1146.01 1161.6 1146.98 1162.96 1148.28 1164C1149.59 1165.03 1151.25 1165.55 1153.27 1165.55ZM1178.05 1151.28V1169H1173.52V1139.55H1177.9V1144.15H1178.28C1178.97 1142.65 1180.02 1141.45 1181.42 1140.54C1182.83 1139.62 1184.65 1139.16 1186.87 1139.16C1188.86 1139.16 1190.61 1139.57 1192.1 1140.39C1193.6 1141.19 1194.76 1142.42 1195.59 1144.07C1196.43 1145.71 1196.84 1147.78 1196.84 1150.28V1169H1192.32V1150.59C1192.32 1148.28 1191.71 1146.47 1190.51 1145.18C1189.31 1143.88 1187.66 1143.23 1185.57 1143.23C1184.12 1143.23 1182.83 1143.54 1181.69 1144.17C1180.57 1144.79 1179.68 1145.71 1179.03 1146.91C1178.37 1148.11 1178.05 1149.57 1178.05 1151.28ZM1225.97 1146.14L1221.91 1147.29C1221.65 1146.62 1221.28 1145.96 1220.78 1145.32C1220.29 1144.67 1219.63 1144.13 1218.78 1143.71C1217.94 1143.28 1216.86 1143.07 1215.54 1143.07C1213.74 1143.07 1212.24 1143.49 1211.04 1144.32C1209.85 1145.14 1209.25 1146.18 1209.25 1147.45C1209.25 1148.57 1209.66 1149.46 1210.48 1150.11C1211.3 1150.76 1212.58 1151.31 1214.32 1151.74L1218.69 1152.82C1221.32 1153.45 1223.28 1154.43 1224.57 1155.75C1225.87 1157.05 1226.51 1158.73 1226.51 1160.79C1226.51 1162.48 1226.03 1163.99 1225.05 1165.32C1224.1 1166.65 1222.75 1167.7 1221.03 1168.46C1219.3 1169.23 1217.29 1169.61 1215.01 1169.61C1212 1169.61 1209.51 1168.96 1207.55 1167.66C1205.58 1166.35 1204.33 1164.45 1203.81 1161.94L1208.1 1160.87C1208.51 1162.45 1209.28 1163.64 1210.42 1164.44C1211.57 1165.23 1213.08 1165.62 1214.93 1165.62C1217.04 1165.62 1218.71 1165.18 1219.95 1164.28C1221.21 1163.37 1221.83 1162.29 1221.83 1161.02C1221.83 1160 1221.47 1159.14 1220.76 1158.45C1220.04 1157.75 1218.94 1157.23 1217.46 1156.88L1212.55 1155.73C1209.85 1155.09 1207.87 1154.1 1206.61 1152.76C1205.35 1151.4 1204.73 1149.71 1204.73 1147.68C1204.73 1146.01 1205.19 1144.54 1206.13 1143.27C1207.07 1141.99 1208.36 1140.98 1209.98 1140.25C1211.62 1139.53 1213.47 1139.16 1215.54 1139.16C1218.46 1139.16 1220.75 1139.8 1222.41 1141.08C1224.08 1142.36 1225.27 1144.05 1225.97 1146.14Z\",\n fill: \"#AAAAAF\"\n }))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 422,\n y: 383,\n width: 603,\n height: 603,\n fill: \"url(#pattern0)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M449.406 1040.63C446.594 1040.63 444.172 1039.96 442.141 1038.63C440.109 1037.3 438.547 1035.48 437.453 1033.14C436.359 1030.81 435.813 1028.15 435.813 1025.16C435.813 1022.11 436.372 1019.42 437.492 1017.09C438.625 1014.75 440.201 1012.92 442.219 1011.6C444.25 1010.27 446.62 1009.61 449.328 1009.61C451.437 1009.61 453.339 1010 455.031 1010.78C456.724 1011.56 458.111 1012.66 459.191 1014.06C460.272 1015.47 460.943 1017.11 461.203 1018.98H456.594C456.242 1017.62 455.461 1016.41 454.25 1015.35C453.052 1014.28 451.438 1013.75 449.406 1013.75C447.609 1013.75 446.034 1014.22 444.68 1015.16C443.339 1016.08 442.29 1017.39 441.535 1019.08C440.793 1020.76 440.422 1022.73 440.422 1025C440.422 1027.32 440.786 1029.34 441.516 1031.05C442.258 1032.77 443.299 1034.11 444.641 1035.06C445.995 1036.01 447.583 1036.48 449.406 1036.48C450.604 1036.48 451.691 1036.28 452.668 1035.86C453.645 1035.44 454.471 1034.84 455.148 1034.06C455.826 1033.28 456.307 1032.34 456.594 1031.25H461.203C460.943 1033.02 460.298 1034.62 459.27 1036.04C458.254 1037.44 456.906 1038.56 455.227 1039.39C453.56 1040.21 451.62 1040.63 449.406 1040.63ZM472.551 1000V1040H467.941V1000H472.551ZM480.993 1040V1010H485.603V1040H480.993ZM483.337 1005C482.438 1005 481.664 1004.69 481.013 1004.08C480.375 1003.47 480.056 1002.73 480.056 1001.88C480.056 1001.02 480.375 1000.28 481.013 999.668C481.664 999.056 482.438 998.75 483.337 998.75C484.235 998.75 485.004 999.056 485.642 999.668C486.293 1000.28 486.618 1001.02 486.618 1001.88C486.618 1002.73 486.293 1003.47 485.642 1004.08C485.004 1004.69 484.235 1005 483.337 1005ZM506.232 1040.63C503.42 1040.63 500.998 1039.96 498.967 1038.63C496.936 1037.3 495.373 1035.48 494.279 1033.14C493.186 1030.81 492.639 1028.15 492.639 1025.16C492.639 1022.11 493.199 1019.42 494.318 1017.09C495.451 1014.75 497.027 1012.92 499.045 1011.6C501.076 1010.27 503.446 1009.61 506.154 1009.61C508.264 1009.61 510.165 1010 511.857 1010.78C513.55 1011.56 514.937 1012.66 516.018 1014.06C517.098 1015.47 517.769 1017.11 518.029 1018.98H513.42C513.068 1017.62 512.287 1016.41 511.076 1015.35C509.878 1014.28 508.264 1013.75 506.232 1013.75C504.436 1013.75 502.86 1014.22 501.506 1015.16C500.165 1016.08 499.117 1017.39 498.361 1019.08C497.619 1020.76 497.248 1022.73 497.248 1025C497.248 1027.32 497.613 1029.34 498.342 1031.05C499.084 1032.77 500.126 1034.11 501.467 1035.06C502.821 1036.01 504.41 1036.48 506.232 1036.48C507.43 1036.48 508.518 1036.28 509.494 1035.86C510.471 1035.44 511.298 1034.84 511.975 1034.06C512.652 1033.28 513.133 1032.34 513.42 1031.25H518.029C517.769 1033.02 517.124 1034.62 516.096 1036.04C515.08 1037.44 513.732 1038.56 512.053 1039.39C510.386 1040.21 508.446 1040.63 506.232 1040.63ZM529.064 1029.06L528.986 1023.36H529.924L543.049 1010H548.752L534.768 1024.14H534.377L529.064 1029.06ZM524.768 1040V1000H529.377V1040H524.768ZM543.83 1040L532.111 1025.16L535.393 1021.95L549.689 1040H543.83ZM576.872 987.109V1052.89H572.966V987.109H576.872ZM614.943 1040.63C612.443 1040.63 610.236 1039.99 608.322 1038.73C606.408 1037.45 604.911 1035.66 603.83 1033.34C602.749 1031.01 602.209 1028.26 602.209 1025.08C602.209 1021.93 602.749 1019.19 603.83 1016.87C604.911 1014.56 606.415 1012.77 608.342 1011.5C610.269 1010.24 612.495 1009.61 615.021 1009.61C616.975 1009.61 618.518 1009.93 619.65 1010.59C620.796 1011.22 621.669 1011.95 622.268 1012.77C622.88 1013.58 623.355 1014.24 623.693 1014.77H624.084V1000H628.693V1040H624.24V1035.39H623.693C623.355 1035.94 622.873 1036.63 622.248 1037.46C621.623 1038.28 620.731 1039.02 619.572 1039.67C618.413 1040.31 616.87 1040.63 614.943 1040.63ZM615.568 1036.48C617.417 1036.48 618.98 1036 620.256 1035.04C621.532 1034.06 622.502 1032.71 623.166 1031C623.83 1029.26 624.162 1027.27 624.162 1025C624.162 1022.76 623.837 1020.8 623.186 1019.12C622.535 1017.43 621.571 1016.11 620.295 1015.18C619.019 1014.23 617.443 1013.75 615.568 1013.75C613.615 1013.75 611.988 1014.25 610.686 1015.25C609.396 1016.24 608.426 1017.59 607.775 1019.3C607.137 1020.99 606.818 1022.89 606.818 1025C606.818 1027.14 607.144 1029.08 607.795 1030.82C608.459 1032.55 609.436 1033.93 610.725 1034.96C612.027 1035.98 613.641 1036.48 615.568 1036.48ZM650.354 1040.63C647.463 1040.63 644.969 1039.99 642.873 1038.71C640.79 1037.42 639.182 1035.62 638.049 1033.32C636.929 1031 636.369 1028.31 636.369 1025.23C636.369 1022.16 636.929 1019.45 638.049 1017.11C639.182 1014.75 640.757 1012.92 642.775 1011.6C644.807 1010.27 647.176 1009.61 649.885 1009.61C651.447 1009.61 652.99 1009.87 654.514 1010.39C656.037 1010.91 657.424 1011.76 658.674 1012.93C659.924 1014.09 660.92 1015.62 661.662 1017.54C662.404 1019.45 662.775 1021.81 662.775 1024.61V1026.56H639.65V1022.58H658.088C658.088 1020.89 657.749 1019.37 657.072 1018.05C656.408 1016.72 655.458 1015.67 654.221 1014.9C652.997 1014.13 651.551 1013.75 649.885 1013.75C648.049 1013.75 646.46 1014.21 645.119 1015.12C643.791 1016.02 642.769 1017.19 642.053 1018.63C641.337 1020.08 640.979 1021.63 640.979 1023.28V1025.94C640.979 1028.2 641.369 1030.12 642.15 1031.7C642.945 1033.26 644.045 1034.45 645.451 1035.27C646.857 1036.08 648.492 1036.48 650.354 1036.48C651.564 1036.48 652.658 1036.32 653.635 1035.98C654.624 1035.62 655.477 1035.1 656.193 1034.41C656.91 1033.71 657.463 1032.84 657.854 1031.8L662.307 1033.05C661.838 1034.56 661.05 1035.89 659.943 1037.03C658.837 1038.16 657.469 1039.05 655.842 1039.69C654.214 1040.31 652.385 1040.63 650.354 1040.63ZM682.834 1010V1013.91H667.287V1010H682.834ZM671.818 1002.81H676.428V1031.41C676.428 1032.71 676.617 1033.68 676.994 1034.34C677.385 1034.97 677.88 1035.4 678.479 1035.63C679.09 1035.83 679.735 1035.94 680.412 1035.94C680.92 1035.94 681.337 1035.91 681.662 1035.86C681.988 1035.79 682.248 1035.74 682.443 1035.7L683.381 1039.84C683.068 1039.96 682.632 1040.08 682.072 1040.2C681.512 1040.33 680.803 1040.39 679.943 1040.39C678.641 1040.39 677.365 1040.11 676.115 1039.55C674.878 1038.99 673.85 1038.14 673.029 1036.99C672.222 1035.85 671.818 1034.4 671.818 1032.66V1002.81ZM702.023 1040.63C699.133 1040.63 696.639 1039.99 694.543 1038.71C692.46 1037.42 690.852 1035.62 689.719 1033.32C688.599 1031 688.039 1028.31 688.039 1025.23C688.039 1022.16 688.599 1019.45 689.719 1017.11C690.852 1014.75 692.427 1012.92 694.445 1011.6C696.477 1010.27 698.846 1009.61 701.555 1009.61C703.117 1009.61 704.66 1009.87 706.184 1010.39C707.707 1010.91 709.094 1011.76 710.344 1012.93C711.594 1014.09 712.59 1015.62 713.332 1017.54C714.074 1019.45 714.445 1021.81 714.445 1024.61V1026.56H691.32V1022.58H709.758C709.758 1020.89 709.419 1019.37 708.742 1018.05C708.078 1016.72 707.128 1015.67 705.891 1014.9C704.667 1014.13 703.221 1013.75 701.555 1013.75C699.719 1013.75 698.13 1014.21 696.789 1015.12C695.461 1016.02 694.439 1017.19 693.723 1018.63C693.007 1020.08 692.648 1021.63 692.648 1023.28V1025.94C692.648 1028.2 693.039 1030.12 693.82 1031.7C694.615 1033.26 695.715 1034.45 697.121 1035.27C698.527 1036.08 700.161 1036.48 702.023 1036.48C703.234 1036.48 704.328 1036.32 705.305 1035.98C706.294 1035.62 707.147 1035.1 707.863 1034.41C708.579 1033.71 709.133 1032.84 709.523 1031.8L713.977 1033.05C713.508 1034.56 712.72 1035.89 711.613 1037.03C710.507 1038.16 709.139 1039.05 707.512 1039.69C705.884 1040.31 704.055 1040.63 702.023 1040.63ZM733.645 1040.63C730.832 1040.63 728.41 1039.96 726.379 1038.63C724.348 1037.3 722.785 1035.48 721.691 1033.14C720.598 1030.81 720.051 1028.15 720.051 1025.16C720.051 1022.11 720.611 1019.42 721.73 1017.09C722.863 1014.75 724.439 1012.92 726.457 1011.6C728.488 1010.27 730.858 1009.61 733.566 1009.61C735.676 1009.61 737.577 1010 739.27 1010.78C740.962 1011.56 742.349 1012.66 743.43 1014.06C744.51 1015.47 745.181 1017.11 745.441 1018.98H740.832C740.48 1017.62 739.699 1016.41 738.488 1015.35C737.29 1014.28 735.676 1013.75 733.645 1013.75C731.848 1013.75 730.272 1014.22 728.918 1015.16C727.577 1016.08 726.529 1017.39 725.773 1019.08C725.031 1020.76 724.66 1022.73 724.66 1025C724.66 1027.32 725.025 1029.34 725.754 1031.05C726.496 1032.77 727.538 1034.11 728.879 1035.06C730.233 1036.01 731.822 1036.48 733.645 1036.48C734.842 1036.48 735.93 1036.28 736.906 1035.86C737.883 1035.44 738.71 1034.84 739.387 1034.06C740.064 1033.28 740.546 1032.34 740.832 1031.25H745.441C745.181 1033.02 744.536 1034.62 743.508 1036.04C742.492 1037.44 741.145 1038.56 739.465 1039.39C737.798 1040.21 735.858 1040.63 733.645 1040.63ZM765.227 1010V1013.91H749.68V1010H765.227ZM754.211 1002.81H758.82V1031.41C758.82 1032.71 759.009 1033.68 759.387 1034.34C759.777 1034.97 760.272 1035.4 760.871 1035.63C761.483 1035.83 762.128 1035.94 762.805 1035.94C763.313 1035.94 763.729 1035.91 764.055 1035.86C764.38 1035.79 764.641 1035.74 764.836 1035.7L765.773 1039.84C765.461 1039.96 765.025 1040.08 764.465 1040.2C763.905 1040.33 763.195 1040.39 762.336 1040.39C761.034 1040.39 759.758 1040.11 758.508 1039.55C757.271 1038.99 756.242 1038.14 755.422 1036.99C754.615 1035.85 754.211 1034.4 754.211 1032.66V1002.81ZM794.348 987.109V1052.89H790.441V987.109H794.348ZM833.278 1040.63C830.466 1040.63 828.044 1039.96 826.013 1038.63C823.981 1037.3 822.419 1035.48 821.325 1033.14C820.231 1030.81 819.685 1028.15 819.685 1025.16C819.685 1022.11 820.244 1019.42 821.364 1017.09C822.497 1014.75 824.073 1012.92 826.091 1011.6C828.122 1010.27 830.492 1009.61 833.2 1009.61C835.31 1009.61 837.211 1010 838.903 1010.78C840.596 1011.56 841.983 1012.66 843.063 1014.06C844.144 1015.47 844.815 1017.11 845.075 1018.98H840.466C840.114 1017.62 839.333 1016.41 838.122 1015.35C836.924 1014.28 835.31 1013.75 833.278 1013.75C831.481 1013.75 829.906 1014.22 828.552 1015.16C827.211 1016.08 826.162 1017.39 825.407 1019.08C824.665 1020.76 824.294 1022.73 824.294 1025C824.294 1027.32 824.659 1029.34 825.388 1031.05C826.13 1032.77 827.172 1034.11 828.513 1035.06C829.867 1036.01 831.455 1036.48 833.278 1036.48C834.476 1036.48 835.563 1036.28 836.54 1035.86C837.517 1035.44 838.343 1034.84 839.021 1034.06C839.698 1033.28 840.179 1032.34 840.466 1031.25H845.075C844.815 1033.02 844.17 1034.62 843.142 1036.04C842.126 1037.44 840.778 1038.56 839.099 1039.39C837.432 1040.21 835.492 1040.63 833.278 1040.63ZM864.001 1040.63C861.293 1040.63 858.916 1039.98 856.872 1038.69C854.841 1037.4 853.252 1035.6 852.106 1033.28C850.974 1030.96 850.407 1028.26 850.407 1025.16C850.407 1022.03 850.974 1019.3 852.106 1016.97C853.252 1014.64 854.841 1012.83 856.872 1011.54C858.916 1010.25 861.293 1009.61 864.001 1009.61C866.709 1009.61 869.079 1010.25 871.11 1011.54C873.155 1012.83 874.743 1014.64 875.876 1016.97C877.022 1019.3 877.595 1022.03 877.595 1025.16C877.595 1028.26 877.022 1030.96 875.876 1033.28C874.743 1035.6 873.155 1037.4 871.11 1038.69C869.079 1039.98 866.709 1040.63 864.001 1040.63ZM864.001 1036.48C866.058 1036.48 867.751 1035.96 869.079 1034.9C870.407 1033.85 871.39 1032.46 872.028 1030.74C872.666 1029.02 872.985 1027.16 872.985 1025.16C872.985 1023.15 872.666 1021.28 872.028 1019.55C871.39 1017.82 870.407 1016.42 869.079 1015.35C867.751 1014.28 866.058 1013.75 864.001 1013.75C861.944 1013.75 860.251 1014.28 858.923 1015.35C857.595 1016.42 856.612 1017.82 855.974 1019.55C855.336 1021.28 855.017 1023.15 855.017 1025.16C855.017 1027.16 855.336 1029.02 855.974 1030.74C856.612 1032.46 857.595 1033.85 858.923 1034.9C860.251 1035.96 861.944 1036.48 864.001 1036.48ZM889.24 1021.95V1040H884.631V1010H889.084V1014.69H889.475C890.178 1013.16 891.245 1011.94 892.678 1011.02C894.11 1010.08 895.959 1009.61 898.225 1009.61C900.256 1009.61 902.033 1010.03 903.557 1010.86C905.08 1011.68 906.265 1012.93 907.111 1014.61C907.958 1016.28 908.381 1018.39 908.381 1020.94V1040H903.771V1021.25C903.771 1018.89 903.16 1017.06 901.936 1015.74C900.712 1014.41 899.032 1013.75 896.896 1013.75C895.425 1013.75 894.11 1014.07 892.951 1014.71C891.805 1015.35 890.9 1016.28 890.236 1017.5C889.572 1018.72 889.24 1020.21 889.24 1021.95ZM938.054 1016.72L933.913 1017.89C933.653 1017.2 933.269 1016.53 932.761 1015.88C932.266 1015.21 931.589 1014.67 930.729 1014.24C929.87 1013.81 928.77 1013.59 927.429 1013.59C925.593 1013.59 924.063 1014.02 922.839 1014.86C921.628 1015.7 921.022 1016.76 921.022 1018.05C921.022 1019.19 921.439 1020.1 922.272 1020.76C923.106 1021.43 924.408 1021.98 926.179 1022.42L930.632 1023.52C933.314 1024.17 935.313 1025.16 936.628 1026.5C937.943 1027.83 938.601 1029.54 938.601 1031.64C938.601 1033.36 938.106 1034.9 937.116 1036.25C936.14 1037.6 934.772 1038.67 933.015 1039.45C931.257 1040.23 929.213 1040.63 926.882 1040.63C923.822 1040.63 921.289 1039.96 919.284 1038.63C917.279 1037.3 916.009 1035.36 915.476 1032.81L919.851 1031.72C920.267 1033.33 921.055 1034.54 922.214 1035.35C923.386 1036.16 924.916 1036.56 926.804 1036.56C928.952 1036.56 930.658 1036.11 931.921 1035.2C933.197 1034.27 933.835 1033.16 933.835 1031.87C933.835 1030.83 933.47 1029.96 932.741 1029.26C932.012 1028.54 930.892 1028.01 929.382 1027.66L924.382 1026.48C921.634 1025.83 919.616 1024.82 918.327 1023.46C917.051 1022.08 916.413 1020.35 916.413 1018.28C916.413 1016.59 916.888 1015.09 917.839 1013.79C918.802 1012.49 920.111 1011.46 921.765 1010.72C923.431 1009.98 925.319 1009.61 927.429 1009.61C930.397 1009.61 932.728 1010.26 934.421 1011.56C936.127 1012.86 937.338 1014.58 938.054 1016.72ZM964.445 1027.73V1010H969.055V1040H964.445V1034.92H964.133C963.43 1036.45 962.336 1037.74 960.852 1038.81C959.367 1039.86 957.492 1040.39 955.227 1040.39C953.352 1040.39 951.685 1039.98 950.227 1039.16C948.768 1038.33 947.622 1037.08 946.789 1035.41C945.956 1033.73 945.539 1031.61 945.539 1029.06V1010H950.148V1028.75C950.148 1030.94 950.76 1032.68 951.984 1033.98C953.221 1035.29 954.797 1035.94 956.711 1035.94C957.857 1035.94 959.022 1035.64 960.207 1035.06C961.405 1034.47 962.408 1033.57 963.215 1032.36C964.035 1031.15 964.445 1029.61 964.445 1027.73ZM982.106 1000V1040H977.497V1000H982.106ZM1003.6 1010V1013.91H988.049V1010H1003.6ZM992.58 1002.81H997.189V1031.41C997.189 1032.71 997.378 1033.68 997.756 1034.34C998.146 1034.97 998.641 1035.4 999.24 1035.63C999.852 1035.83 1000.5 1035.94 1001.17 1035.94C1001.68 1035.94 1002.1 1035.91 1002.42 1035.86C1002.75 1035.79 1003.01 1035.74 1003.21 1035.7L1004.14 1039.84C1003.83 1039.96 1003.39 1040.08 1002.83 1040.2C1002.27 1040.33 1001.56 1040.39 1000.71 1040.39C999.403 1040.39 998.127 1040.11 996.877 1039.55C995.64 1038.99 994.611 1038.14 993.791 1036.99C992.984 1035.85 992.58 1034.4 992.58 1032.66V1002.81Z\",\n fill: \"#0640B5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M691.282 2232.49C691.051 2230.54 690.116 2229.03 688.477 2227.96C686.838 2226.88 684.827 2226.34 682.444 2226.34C680.703 2226.34 679.178 2226.62 677.872 2227.19C676.578 2227.75 675.567 2228.53 674.837 2229.51C674.119 2230.5 673.761 2231.62 673.761 2232.87C673.761 2233.92 674.01 2234.83 674.51 2235.58C675.022 2236.33 675.675 2236.95 676.47 2237.45C677.264 2237.93 678.096 2238.34 678.967 2238.66C679.838 2238.96 680.639 2239.21 681.369 2239.41L685.365 2240.48C686.389 2240.75 687.529 2241.12 688.784 2241.6C690.052 2242.07 691.263 2242.72 692.416 2243.54C693.581 2244.34 694.542 2245.38 695.297 2246.65C696.053 2247.92 696.431 2249.47 696.431 2251.32C696.431 2253.44 695.874 2255.37 694.759 2257.08C693.658 2258.8 692.044 2260.16 689.918 2261.17C687.805 2262.19 685.237 2262.69 682.214 2262.69C679.396 2262.69 676.956 2262.24 674.894 2261.33C672.845 2260.42 671.231 2259.15 670.053 2257.52C668.887 2255.9 668.228 2254.01 668.074 2251.86H672.992C673.12 2253.34 673.62 2254.57 674.491 2255.54C675.374 2256.51 676.489 2257.22 677.834 2257.7C679.191 2258.16 680.651 2258.39 682.214 2258.39C684.033 2258.39 685.666 2258.09 687.113 2257.5C688.56 2256.9 689.707 2256.07 690.552 2255.01C691.397 2253.93 691.82 2252.68 691.82 2251.24C691.82 2249.93 691.455 2248.87 690.725 2248.05C689.995 2247.23 689.034 2246.57 687.843 2246.05C686.652 2245.54 685.365 2245.09 683.981 2244.71L679.14 2243.33C676.066 2242.44 673.633 2241.18 671.839 2239.54C670.046 2237.9 669.15 2235.76 669.15 2233.11C669.15 2230.9 669.745 2228.98 670.937 2227.34C672.14 2225.69 673.754 2224.41 675.778 2223.5C677.814 2222.58 680.088 2222.12 682.598 2222.12C685.134 2222.12 687.388 2222.57 689.361 2223.48C691.333 2224.38 692.896 2225.61 694.049 2227.17C695.214 2228.73 695.829 2230.51 695.893 2232.49H691.282ZM707.876 2251.24L707.8 2245.63H708.722L721.632 2232.49H727.242L713.486 2246.4H713.102L707.876 2251.24ZM703.65 2262V2222.65H708.184V2262H703.65ZM722.401 2262L710.873 2247.4L714.101 2244.25L728.164 2262H722.401ZM733.078 2262V2232.49H737.612V2262H733.078ZM735.383 2227.57C734.499 2227.57 733.737 2227.27 733.097 2226.67C732.469 2226.07 732.156 2225.34 732.156 2224.5C732.156 2223.65 732.469 2222.93 733.097 2222.33C733.737 2221.73 734.499 2221.42 735.383 2221.42C736.267 2221.42 737.023 2221.73 737.65 2222.33C738.291 2222.93 738.611 2223.65 738.611 2224.5C738.611 2225.34 738.291 2226.07 737.65 2226.67C737.023 2227.27 736.267 2227.57 735.383 2227.57ZM745.916 2273.07V2232.49H750.296V2237.18H750.834C751.167 2236.67 751.629 2236.01 752.218 2235.22C752.82 2234.41 753.678 2233.69 754.792 2233.07C755.919 2232.43 757.443 2232.11 759.365 2232.11C761.849 2232.11 764.039 2232.73 765.935 2233.97C767.831 2235.21 769.31 2236.97 770.373 2239.25C771.436 2241.53 771.968 2244.22 771.968 2247.32C771.968 2250.45 771.436 2253.16 770.373 2255.45C769.31 2257.73 767.837 2259.5 765.954 2260.75C764.071 2261.99 761.901 2262.61 759.441 2262.61C757.546 2262.61 756.028 2262.3 754.888 2261.67C753.748 2261.03 752.871 2260.31 752.256 2259.5C751.641 2258.68 751.167 2258 750.834 2257.47H750.45V2273.07H745.916ZM750.373 2247.25C750.373 2249.47 750.7 2251.44 751.353 2253.14C752.006 2254.83 752.961 2256.16 754.216 2257.12C755.471 2258.07 757.008 2258.54 758.827 2258.54C760.722 2258.54 762.304 2258.04 763.572 2257.04C764.853 2256.03 765.813 2254.67 766.454 2252.97C767.107 2251.25 767.434 2249.35 767.434 2247.25C767.434 2245.17 767.113 2243.3 766.473 2241.64C765.845 2239.96 764.891 2238.63 763.61 2237.66C762.342 2236.67 760.748 2236.18 758.827 2236.18C756.982 2236.18 755.432 2236.65 754.177 2237.58C752.922 2238.5 751.974 2239.8 751.334 2241.46C750.694 2243.11 750.373 2245.04 750.373 2247.25Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_324_163\",\n transform: \"scale(0.00520833)\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_324_163\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 1448,\n height: 2560,\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_324_163\",\n width: 192,\n height: 192,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNewSplashScreen);\nexport default __webpack_public_path__ + \"static/media/newSplashScreen.7f9825db28e6fb0f61460e3a7a548400.svg\";\nexport { ForwardRef as ReactComponent };","var _path,_path2,_path3,_path4,_path5,_path6,_path7,_path8,_path9,_path10,_path11,_path12,_path13,_path14,_path15,_path16,_path17,_path18,_path19,_path20,_path21,_path22,_path23,_path24,_path25,_path26,_path27,_path28,_path29,_path30,_path31,_path32,_path33,_path34,_path35,_path36,_path37,_path38,_path39,_path40,_path41,_path42,_path43,_path44,_path45,_path46,_path47,_path48,_path49,_path50,_path51,_path52,_g,_path53,_path54,_g2,_path55,_path56,_path57,_path58,_path59,_path60,_path61,_path62,_path63,_path64,_path65,_path66,_path67,_path68,_path69,_path70,_path71,_path72,_path73,_path74,_defs;var _excluded=[\"title\",\"titleId\"];function _extends(){_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i=0)continue;target[key]=source[key];}return target;}import*as React from\"react\";function SvgImg2New(_ref,svgRef){var title=_ref.title,titleId=_ref.titleId,props=_objectWithoutProperties(_ref,_excluded);return/*#__PURE__*/React.createElement(\"svg\",_extends({width:1440,height:2560,viewBox:\"0 0 1440 2560\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",xmlnsXlink:\"http://www.w3.org/1999/xlink\",ref:svgRef,\"aria-labelledby\":titleId},props),title?/*#__PURE__*/React.createElement(\"title\",{id:titleId},title):null,/*#__PURE__*/React.createElement(\"g\",{clipPath:\"url(#clip0_431_2)\"},/*#__PURE__*/React.createElement(\"mask\",{id:\"mask0_431_2\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:0,y:0,width:1440,height:2560},_path||(_path=/*#__PURE__*/React.createElement(\"path\",{d:\"M1440 0H0V2560H1440V0Z\",fill:\"white\"}))),/*#__PURE__*/React.createElement(\"g\",{mask:\"url(#mask0_431_2)\"},/*#__PURE__*/React.createElement(\"mask\",{id:\"mask1_431_2\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:0,y:0,width:1440,height:2560},_path2||(_path2=/*#__PURE__*/React.createElement(\"path\",{d:\"M1440 0H0V2560H1440V0Z\",fill:\"white\"}))),/*#__PURE__*/React.createElement(\"g\",{mask:\"url(#mask1_431_2)\"},_path3||(_path3=/*#__PURE__*/React.createElement(\"path\",{d:\"M1440 0H0V2560H1440V0Z\",fill:\"white\"})),_path4||(_path4=/*#__PURE__*/React.createElement(\"path\",{d:\"M1440 0H0V700.606H1440V0Z\",fill:\"#0641B6\"})),_path5||(_path5=/*#__PURE__*/React.createElement(\"path\",{d:\"M107.824 313.638V233.638H117.512V269.263H160.168V233.638H169.855V313.638H160.168V277.857H117.512V313.638H107.824ZM213.156 314.888C207.375 314.888 202.388 313.612 198.195 311.06C194.029 308.482 190.813 304.888 188.547 300.279C186.307 295.643 185.188 290.253 185.188 284.107C185.188 277.961 186.307 272.544 188.547 267.857C190.813 263.143 193.964 259.472 198 256.841C202.063 254.185 206.802 252.857 212.219 252.857C215.344 252.857 218.43 253.378 221.477 254.419C224.523 255.461 227.297 257.154 229.797 259.498C232.297 261.815 234.289 264.888 235.773 268.716C237.258 272.544 238 277.258 238 282.857V286.763H191.75V278.794H228.625C228.625 275.409 227.948 272.388 226.594 269.732C225.266 267.076 223.365 264.979 220.891 263.443C218.443 261.906 215.552 261.138 212.219 261.138C208.547 261.138 205.37 262.05 202.688 263.873C200.031 265.669 197.987 268.013 196.555 270.904C195.122 273.794 194.406 276.893 194.406 280.201V285.513C194.406 290.044 195.188 293.886 196.75 297.037C198.339 300.162 200.539 302.544 203.352 304.185C206.164 305.8 209.432 306.607 213.156 306.607C215.578 306.607 217.766 306.268 219.719 305.591C221.698 304.888 223.404 303.847 224.836 302.466C226.268 301.06 227.375 299.315 228.156 297.232L237.063 299.732C236.125 302.753 234.549 305.409 232.336 307.701C230.122 309.966 227.388 311.737 224.133 313.013C220.878 314.263 217.219 314.888 213.156 314.888ZM261.242 233.638V313.638H252.023V233.638H261.242ZM287.346 233.638V313.638H278.127V233.638H287.346ZM328.605 314.888C323.189 314.888 318.436 313.599 314.348 311.021C310.285 308.443 307.108 304.836 304.816 300.201C302.551 295.565 301.418 290.149 301.418 283.951C301.418 277.701 302.551 272.245 304.816 267.583C307.108 262.922 310.285 259.302 314.348 256.724C318.436 254.146 323.189 252.857 328.605 252.857C334.022 252.857 338.762 254.146 342.824 256.724C346.913 259.302 350.09 262.922 352.355 267.583C354.647 272.245 355.793 277.701 355.793 283.951C355.793 290.149 354.647 295.565 352.355 300.201C350.09 304.836 346.913 308.443 342.824 311.021C338.762 313.599 334.022 314.888 328.605 314.888ZM328.605 306.607C332.72 306.607 336.105 305.552 338.762 303.443C341.418 301.333 343.384 298.56 344.66 295.123C345.936 291.685 346.574 287.961 346.574 283.951C346.574 279.94 345.936 276.203 344.66 272.74C343.384 269.276 341.418 266.477 338.762 264.341C336.105 262.206 332.72 261.138 328.605 261.138C324.491 261.138 321.105 262.206 318.449 264.341C315.793 266.477 313.827 269.276 312.551 272.74C311.275 276.203 310.637 279.94 310.637 283.951C310.637 287.961 311.275 291.685 312.551 295.123C313.827 298.56 315.793 301.333 318.449 303.443C321.105 305.552 324.491 306.607 328.605 306.607ZM383.615 302.701L382.99 306.919C382.548 309.888 381.87 313.065 380.959 316.451C380.074 319.836 379.149 323.026 378.186 326.021C377.222 329.016 376.428 331.399 375.803 333.169H368.771C369.11 331.503 369.553 329.302 370.1 326.568C370.646 323.833 371.193 320.774 371.74 317.388C372.313 314.029 372.782 310.591 373.146 307.076L373.615 302.701H383.615Z\",fill:\"white\"})),_path6||(_path6=/*#__PURE__*/React.createElement(\"path\",{d:\"M0 700.606H1443.82V2560H0V700.606Z\",fill:\"#06379C\"})),_path7||(_path7=/*#__PURE__*/React.createElement(\"path\",{d:\"M99.543 518.484H105.09L116.184 537.156H116.652L127.746 518.484H133.293L118.84 542V558.484H113.996V542L99.543 518.484ZM146.877 559.109C144.169 559.109 141.792 558.464 139.748 557.175C137.717 555.886 136.128 554.083 134.982 551.765C133.85 549.447 133.283 546.739 133.283 543.64C133.283 540.515 133.85 537.787 134.982 535.457C136.128 533.126 137.717 531.316 139.748 530.027C141.792 528.738 144.169 528.093 146.877 528.093C149.585 528.093 151.955 528.738 153.986 530.027C156.031 531.316 157.619 533.126 158.752 535.457C159.898 537.787 160.471 540.515 160.471 543.64C160.471 546.739 159.898 549.447 158.752 551.765C157.619 554.083 156.031 555.886 153.986 557.175C151.955 558.464 149.585 559.109 146.877 559.109ZM146.877 554.968C148.934 554.968 150.627 554.441 151.955 553.386C153.283 552.332 154.266 550.945 154.904 549.226C155.542 547.507 155.861 545.645 155.861 543.64C155.861 541.635 155.542 539.766 154.904 538.035C154.266 536.303 153.283 534.903 151.955 533.835C150.627 532.768 148.934 532.234 146.877 532.234C144.82 532.234 143.127 532.768 141.799 533.835C140.471 534.903 139.488 536.303 138.85 538.035C138.212 539.766 137.893 541.635 137.893 543.64C137.893 545.645 138.212 547.507 138.85 549.226C139.488 550.945 140.471 552.332 141.799 553.386C143.127 554.441 144.82 554.968 146.877 554.968ZM186.413 546.218V528.484H191.022V558.484H186.413V553.406H186.101C185.397 554.929 184.304 556.225 182.819 557.292C181.335 558.347 179.46 558.875 177.194 558.875C175.319 558.875 173.653 558.464 172.194 557.644C170.736 556.811 169.59 555.561 168.757 553.894C167.924 552.214 167.507 550.098 167.507 547.546V528.484H172.116V547.234C172.116 549.421 172.728 551.166 173.952 552.468C175.189 553.77 176.765 554.421 178.679 554.421C179.825 554.421 180.99 554.128 182.175 553.542C183.373 552.957 184.375 552.058 185.183 550.847C186.003 549.636 186.413 548.093 186.413 546.218ZM219.543 540.437V558.484H214.934V518.484H219.543V533.171H219.934C220.637 531.622 221.691 530.391 223.098 529.48C224.517 528.556 226.405 528.093 228.762 528.093C230.806 528.093 232.596 528.503 234.133 529.324C235.669 530.131 236.861 531.375 237.707 533.054C238.566 534.721 238.996 536.843 238.996 539.421V558.484H234.387V539.734C234.387 537.351 233.768 535.509 232.531 534.207C231.307 532.891 229.608 532.234 227.434 532.234C225.923 532.234 224.569 532.553 223.371 533.191C222.186 533.829 221.249 534.76 220.559 535.984C219.882 537.208 219.543 538.692 219.543 540.437ZM256.257 559.187C254.356 559.187 252.631 558.829 251.081 558.113C249.532 557.384 248.301 556.335 247.39 554.968C246.478 553.588 246.022 551.921 246.022 549.968C246.022 548.25 246.361 546.856 247.038 545.789C247.715 544.708 248.62 543.861 249.753 543.25C250.886 542.638 252.136 542.182 253.503 541.882C254.883 541.57 256.27 541.322 257.663 541.14C259.486 540.906 260.964 540.73 262.097 540.613C263.243 540.483 264.076 540.268 264.597 539.968C265.131 539.669 265.397 539.148 265.397 538.406V538.25C265.397 536.322 264.87 534.825 263.815 533.757C262.774 532.69 261.192 532.156 259.069 532.156C256.869 532.156 255.144 532.638 253.894 533.601C252.644 534.565 251.765 535.593 251.257 536.687L246.882 535.125C247.663 533.302 248.705 531.882 250.007 530.867C251.322 529.838 252.754 529.122 254.304 528.718C255.866 528.302 257.403 528.093 258.913 528.093C259.877 528.093 260.983 528.21 262.233 528.445C263.496 528.666 264.714 529.128 265.886 529.832C267.071 530.535 268.054 531.596 268.835 533.015C269.616 534.434 270.007 536.335 270.007 538.718V558.484H265.397V554.421H265.163C264.851 555.072 264.33 555.769 263.601 556.511C262.871 557.253 261.901 557.885 260.69 558.406C259.479 558.927 258.002 559.187 256.257 559.187ZM256.96 555.046C258.783 555.046 260.319 554.688 261.569 553.972C262.832 553.256 263.783 552.332 264.421 551.199C265.072 550.066 265.397 548.875 265.397 547.625V543.406C265.202 543.64 264.772 543.855 264.108 544.05C263.457 544.233 262.702 544.395 261.843 544.539C260.996 544.669 260.17 544.786 259.362 544.89C258.568 544.981 257.924 545.059 257.429 545.125C256.231 545.281 255.111 545.535 254.069 545.886C253.041 546.225 252.207 546.739 251.569 547.429C250.944 548.106 250.632 549.031 250.632 550.203C250.632 551.804 251.224 553.015 252.409 553.835C253.607 554.643 255.124 555.046 256.96 555.046ZM301.877 528.484L290.783 558.484H286.096L275.002 528.484H280.002L288.283 552.39H288.596L296.877 528.484H301.877ZM319.465 559.109C316.574 559.109 314.081 558.471 311.984 557.195C309.901 555.906 308.293 554.109 307.16 551.804C306.04 549.486 305.48 546.791 305.48 543.718C305.48 540.645 306.04 537.937 307.16 535.593C308.293 533.236 309.868 531.401 311.887 530.085C313.918 528.757 316.288 528.093 318.996 528.093C320.559 528.093 322.102 528.354 323.625 528.875C325.148 529.395 326.535 530.242 327.785 531.414C329.035 532.572 330.031 534.109 330.773 536.023C331.516 537.937 331.887 540.294 331.887 543.093V545.046H308.762V541.062H327.199C327.199 539.369 326.861 537.859 326.184 536.531C325.52 535.203 324.569 534.154 323.332 533.386C322.108 532.618 320.663 532.234 318.996 532.234C317.16 532.234 315.572 532.69 314.23 533.601C312.902 534.5 311.88 535.671 311.164 537.117C310.448 538.562 310.09 540.111 310.09 541.765V544.421C310.09 546.687 310.48 548.608 311.262 550.183C312.056 551.746 313.156 552.937 314.563 553.757C315.969 554.565 317.603 554.968 319.465 554.968C320.676 554.968 321.77 554.799 322.746 554.46C323.736 554.109 324.589 553.588 325.305 552.898C326.021 552.195 326.574 551.322 326.965 550.281L331.418 551.531C330.949 553.041 330.161 554.369 329.055 555.515C327.948 556.648 326.581 557.533 324.953 558.171C323.326 558.796 321.496 559.109 319.465 559.109ZM814.816 528.484V532.39H798.645V528.484H814.816ZM803.488 558.484V524.343C803.488 522.625 803.892 521.192 804.699 520.046C805.507 518.901 806.555 518.041 807.844 517.468C809.133 516.895 810.493 516.609 811.926 516.609C813.059 516.609 813.983 516.7 814.699 516.882C815.415 517.065 815.949 517.234 816.301 517.39L814.973 521.375C814.738 521.296 814.413 521.199 813.996 521.082C813.592 520.964 813.059 520.906 812.395 520.906C810.871 520.906 809.771 521.29 809.094 522.058C808.43 522.826 808.098 523.953 808.098 525.437V558.484H803.488ZM832.229 559.109C829.52 559.109 827.144 558.464 825.1 557.175C823.068 555.886 821.48 554.083 820.334 551.765C819.201 549.447 818.635 546.739 818.635 543.64C818.635 540.515 819.201 537.787 820.334 535.457C821.48 533.126 823.068 531.316 825.1 530.027C827.144 528.738 829.52 528.093 832.229 528.093C834.937 528.093 837.307 528.738 839.338 530.027C841.382 531.316 842.971 533.126 844.104 535.457C845.249 537.787 845.822 540.515 845.822 543.64C845.822 546.739 845.249 549.447 844.104 551.765C842.971 554.083 841.382 555.886 839.338 557.175C837.307 558.464 834.937 559.109 832.229 559.109ZM832.229 554.968C834.286 554.968 835.979 554.441 837.307 553.386C838.635 552.332 839.618 550.945 840.256 549.226C840.894 547.507 841.213 545.645 841.213 543.64C841.213 541.635 840.894 539.766 840.256 538.035C839.618 536.303 838.635 534.903 837.307 533.835C835.979 532.768 834.286 532.234 832.229 532.234C830.171 532.234 828.479 532.768 827.15 533.835C825.822 534.903 824.839 536.303 824.201 538.035C823.563 539.766 823.244 541.635 823.244 543.64C823.244 545.645 823.563 547.507 824.201 549.226C824.839 550.945 825.822 552.332 827.15 553.386C828.479 554.441 830.171 554.968 832.229 554.968ZM852.858 558.484V528.484H857.312V533.015H857.624C858.171 531.531 859.16 530.326 860.593 529.402C862.025 528.477 863.64 528.015 865.437 528.015C865.775 528.015 866.198 528.022 866.706 528.035C867.214 528.048 867.598 528.067 867.858 528.093V532.781C867.702 532.742 867.344 532.683 866.784 532.605C866.237 532.514 865.658 532.468 865.046 532.468C863.588 532.468 862.285 532.774 861.14 533.386C860.007 533.985 859.108 534.819 858.444 535.886C857.793 536.941 857.468 538.145 857.468 539.5V558.484H852.858ZM901.838 528.484V532.39H886.291V528.484H901.838ZM890.822 521.296H895.432V549.89C895.432 551.192 895.62 552.169 895.998 552.82C896.389 553.458 896.883 553.888 897.482 554.109C898.094 554.317 898.739 554.421 899.416 554.421C899.924 554.421 900.34 554.395 900.666 554.343C900.992 554.278 901.252 554.226 901.447 554.187L902.385 558.328C902.072 558.445 901.636 558.562 901.076 558.679C900.516 558.809 899.807 558.875 898.947 558.875C897.645 558.875 896.369 558.595 895.119 558.035C893.882 557.475 892.854 556.622 892.033 555.476C891.226 554.33 890.822 552.885 890.822 551.14V521.296ZM920.637 559.109C917.928 559.109 915.552 558.464 913.508 557.175C911.477 555.886 909.888 554.083 908.742 551.765C907.609 549.447 907.043 546.739 907.043 543.64C907.043 540.515 907.609 537.787 908.742 535.457C909.888 533.126 911.477 531.316 913.508 530.027C915.552 528.738 917.928 528.093 920.637 528.093C923.345 528.093 925.715 528.738 927.746 530.027C929.79 531.316 931.379 533.126 932.512 535.457C933.658 537.787 934.23 540.515 934.23 543.64C934.23 546.739 933.658 549.447 932.512 551.765C931.379 554.083 929.79 555.886 927.746 557.175C925.715 558.464 923.345 559.109 920.637 559.109ZM920.637 554.968C922.694 554.968 924.387 554.441 925.715 553.386C927.043 552.332 928.026 550.945 928.664 549.226C929.302 547.507 929.621 545.645 929.621 543.64C929.621 541.635 929.302 539.766 928.664 538.035C928.026 536.303 927.043 534.903 925.715 533.835C924.387 532.768 922.694 532.234 920.637 532.234C918.579 532.234 916.887 532.768 915.559 533.835C914.23 534.903 913.247 536.303 912.609 538.035C911.971 539.766 911.652 541.635 911.652 543.64C911.652 545.645 911.971 547.507 912.609 549.226C913.247 550.945 914.23 552.332 915.559 553.386C916.887 554.441 918.579 554.968 920.637 554.968ZM941.267 558.484V528.484H945.72V533.171H946.11C946.735 531.57 947.744 530.326 949.138 529.441C950.531 528.542 952.204 528.093 954.157 528.093C956.136 528.093 957.784 528.542 959.099 529.441C960.427 530.326 961.462 531.57 962.204 533.171H962.517C963.285 531.622 964.437 530.391 965.974 529.48C967.51 528.556 969.353 528.093 971.501 528.093C974.183 528.093 976.377 528.933 978.083 530.613C979.789 532.279 980.642 534.877 980.642 538.406V558.484H976.032V538.406C976.032 536.192 975.427 534.61 974.216 533.66C973.005 532.709 971.579 532.234 969.938 532.234C967.829 532.234 966.195 532.872 965.036 534.148C963.877 535.411 963.298 537.013 963.298 538.953V558.484H958.61V537.937C958.61 536.231 958.057 534.858 956.95 533.816C955.843 532.761 954.418 532.234 952.673 532.234C951.475 532.234 950.355 532.553 949.313 533.191C948.285 533.829 947.451 534.714 946.813 535.847C946.188 536.967 945.876 538.263 945.876 539.734V558.484H941.267ZM1001.26 559.109C998.549 559.109 996.172 558.464 994.128 557.175C992.097 555.886 990.508 554.083 989.362 551.765C988.229 549.447 987.663 546.739 987.663 543.64C987.663 540.515 988.229 537.787 989.362 535.457C990.508 533.126 992.097 531.316 994.128 530.027C996.172 528.738 998.549 528.093 1001.26 528.093C1003.97 528.093 1006.33 528.738 1008.37 530.027C1010.41 531.316 1012 533.126 1013.13 535.457C1014.28 537.787 1014.85 540.515 1014.85 543.64C1014.85 546.739 1014.28 549.447 1013.13 551.765C1012 554.083 1010.41 555.886 1008.37 557.175C1006.33 558.464 1003.97 559.109 1001.26 559.109ZM1001.26 554.968C1003.31 554.968 1005.01 554.441 1006.33 553.386C1007.66 552.332 1008.65 550.945 1009.28 549.226C1009.92 547.507 1010.24 545.645 1010.24 543.64C1010.24 541.635 1009.92 539.766 1009.28 538.035C1008.65 536.303 1007.66 534.903 1006.33 533.835C1005.01 532.768 1003.31 532.234 1001.26 532.234C999.2 532.234 997.507 532.768 996.179 533.835C994.851 534.903 993.868 536.303 993.229 538.035C992.591 539.766 992.272 541.635 992.272 543.64C992.272 545.645 992.591 547.507 993.229 549.226C993.868 550.945 994.851 552.332 996.179 553.386C997.507 554.441 999.2 554.968 1001.26 554.968ZM1021.89 558.484V528.484H1026.34V533.015H1026.65C1027.2 531.531 1028.19 530.326 1029.62 529.402C1031.05 528.477 1032.67 528.015 1034.46 528.015C1034.8 528.015 1035.23 528.022 1035.73 528.035C1036.24 528.048 1036.63 528.067 1036.89 528.093V532.781C1036.73 532.742 1036.37 532.683 1035.81 532.605C1035.27 532.514 1034.69 532.468 1034.07 532.468C1032.62 532.468 1031.31 532.774 1030.17 533.386C1029.04 533.985 1028.14 534.819 1027.47 535.886C1026.82 536.941 1026.5 538.145 1026.5 539.5V558.484H1021.89ZM1042.35 558.484V528.484H1046.8V533.015H1047.12C1047.66 531.531 1048.65 530.326 1050.08 529.402C1051.52 528.477 1053.13 528.015 1054.93 528.015C1055.27 528.015 1055.69 528.022 1056.2 528.035C1056.71 528.048 1057.09 528.067 1057.35 528.093V532.781C1057.19 532.742 1056.84 532.683 1056.28 532.605C1055.73 532.514 1055.15 532.468 1054.54 532.468C1053.08 532.468 1051.78 532.774 1050.63 533.386C1049.5 533.985 1048.6 534.819 1047.94 535.886C1047.29 536.941 1046.96 538.145 1046.96 539.5V558.484H1042.35ZM1074.09 559.109C1071.38 559.109 1069 558.464 1066.96 557.175C1064.93 555.886 1063.34 554.083 1062.19 551.765C1061.06 549.447 1060.5 546.739 1060.5 543.64C1060.5 540.515 1061.06 537.787 1062.19 535.457C1063.34 533.126 1064.93 531.316 1066.96 530.027C1069 528.738 1071.38 528.093 1074.09 528.093C1076.8 528.093 1079.17 528.738 1081.2 530.027C1083.24 531.316 1084.83 533.126 1085.96 535.457C1087.11 537.787 1087.68 540.515 1087.68 543.64C1087.68 546.739 1087.11 549.447 1085.96 551.765C1084.83 554.083 1083.24 555.886 1081.2 557.175C1079.17 558.464 1076.8 559.109 1074.09 559.109ZM1074.09 554.968C1076.15 554.968 1077.84 554.441 1079.17 553.386C1080.5 552.332 1081.48 550.945 1082.12 549.226C1082.75 547.507 1083.07 545.645 1083.07 543.64C1083.07 541.635 1082.75 539.766 1082.12 538.035C1081.48 536.303 1080.5 534.903 1079.17 533.835C1077.84 532.768 1076.15 532.234 1074.09 532.234C1072.03 532.234 1070.34 532.768 1069.01 533.835C1067.68 534.903 1066.7 536.303 1066.06 538.035C1065.42 539.766 1065.1 541.635 1065.1 543.64C1065.1 545.645 1065.42 547.507 1066.06 549.226C1066.7 550.945 1067.68 552.332 1069.01 553.386C1070.34 554.441 1072.03 554.968 1074.09 554.968ZM1100.5 558.484L1091.35 528.484H1096.2L1102.68 551.453H1103L1109.4 528.484H1114.32L1120.65 551.375H1120.96L1127.45 528.484H1132.29L1123.15 558.484H1118.62L1112.06 535.437H1111.59L1105.03 558.484H1100.5Z\",fill:\"#A0BEEF\"})),_path8||(_path8=/*#__PURE__*/React.createElement(\"path\",{d:\"M368.352 518.484V558.484H363.508V523.562H363.273L353.508 530.046V525.125L363.508 518.484H368.352ZM392.902 559.031C389.96 559.031 387.453 558.23 385.383 556.628C383.313 555.014 381.73 552.677 380.637 549.617C379.543 546.544 378.996 542.833 378.996 538.484C378.996 534.161 379.543 530.47 380.637 527.41C381.743 524.337 383.332 521.993 385.402 520.378C387.486 518.751 389.986 517.937 392.902 517.937C395.819 517.937 398.313 518.751 400.383 520.378C402.466 521.993 404.055 524.337 405.148 527.41C406.255 530.47 406.809 534.161 406.809 538.484C406.809 542.833 406.262 546.544 405.168 549.617C404.074 552.677 402.492 555.014 400.422 556.628C398.352 558.23 395.845 559.031 392.902 559.031ZM392.902 554.734C395.819 554.734 398.085 553.328 399.699 550.515C401.314 547.703 402.121 543.692 402.121 538.484C402.121 535.02 401.75 532.071 401.008 529.636C400.279 527.201 399.224 525.346 397.844 524.07C396.477 522.794 394.829 522.156 392.902 522.156C390.012 522.156 387.753 523.582 386.125 526.433C384.497 529.272 383.684 533.289 383.684 538.484C383.684 541.947 384.048 544.89 384.777 547.312C385.507 549.734 386.555 551.576 387.922 552.839C389.302 554.102 390.962 554.734 392.902 554.734ZM438.605 559.187C436.704 559.187 434.979 558.829 433.43 558.113C431.88 557.384 430.65 556.335 429.738 554.968C428.827 553.588 428.371 551.921 428.371 549.968C428.371 548.25 428.71 546.856 429.387 545.789C430.064 544.708 430.969 543.861 432.102 543.25C433.234 542.638 434.484 542.182 435.852 541.882C437.232 541.57 438.618 541.322 440.012 541.14C441.835 540.906 443.313 540.73 444.445 540.613C445.591 540.483 446.424 540.268 446.945 539.968C447.479 539.669 447.746 539.148 447.746 538.406V538.25C447.746 536.322 447.219 534.825 446.164 533.757C445.122 532.69 443.54 532.156 441.418 532.156C439.217 532.156 437.492 532.638 436.242 533.601C434.992 534.565 434.113 535.593 433.605 536.687L429.23 535.125C430.012 533.302 431.053 531.882 432.355 530.867C433.671 529.838 435.103 529.122 436.652 528.718C438.215 528.302 439.751 528.093 441.262 528.093C442.225 528.093 443.332 528.21 444.582 528.445C445.845 528.666 447.063 529.128 448.234 529.832C449.419 530.535 450.402 531.596 451.184 533.015C451.965 534.434 452.355 536.335 452.355 538.718V558.484H447.746V554.421H447.512C447.199 555.072 446.678 555.769 445.949 556.511C445.22 557.253 444.25 557.885 443.039 558.406C441.828 558.927 440.35 559.187 438.605 559.187ZM439.309 555.046C441.132 555.046 442.668 554.688 443.918 553.972C445.181 553.256 446.132 552.332 446.77 551.199C447.421 550.066 447.746 548.875 447.746 547.625V543.406C447.551 543.64 447.121 543.855 446.457 544.05C445.806 544.233 445.051 544.395 444.191 544.539C443.345 544.669 442.518 544.786 441.711 544.89C440.917 544.981 440.272 545.059 439.777 545.125C438.579 545.281 437.46 545.535 436.418 545.886C435.389 546.225 434.556 546.739 433.918 547.429C433.293 548.106 432.98 549.031 432.98 550.203C432.98 551.804 433.573 553.015 434.758 553.835C435.956 554.643 437.473 555.046 439.309 555.046ZM460.769 569.734V528.484H465.222V533.25H465.769C466.107 532.729 466.576 532.065 467.175 531.257C467.787 530.437 468.659 529.708 469.792 529.07C470.938 528.419 472.487 528.093 474.44 528.093C476.966 528.093 479.193 528.725 481.12 529.988C483.047 531.251 484.551 533.041 485.632 535.359C486.713 537.677 487.253 540.411 487.253 543.562C487.253 546.739 486.713 549.493 485.632 551.824C484.551 554.141 483.054 555.938 481.14 557.214C479.226 558.477 477.019 559.109 474.519 559.109C472.591 559.109 471.049 558.79 469.89 558.152C468.731 557.501 467.839 556.765 467.214 555.945C466.589 555.111 466.107 554.421 465.769 553.875H465.378V569.734H460.769ZM465.3 543.484C465.3 545.75 465.632 547.748 466.296 549.48C466.96 551.199 467.93 552.546 469.206 553.523C470.482 554.486 472.045 554.968 473.894 554.968C475.821 554.968 477.429 554.46 478.718 553.445C480.02 552.416 480.996 551.036 481.647 549.304C482.312 547.559 482.644 545.619 482.644 543.484C482.644 541.375 482.318 539.473 481.667 537.781C481.029 536.075 480.059 534.727 478.757 533.738C477.468 532.735 475.847 532.234 473.894 532.234C472.019 532.234 470.443 532.709 469.167 533.66C467.891 534.597 466.927 535.912 466.276 537.605C465.625 539.285 465.3 541.244 465.3 543.484ZM494.284 569.734V528.484H498.737V533.25H499.284C499.623 532.729 500.091 532.065 500.69 531.257C501.302 530.437 502.175 529.708 503.308 529.07C504.453 528.419 506.003 528.093 507.956 528.093C510.482 528.093 512.709 528.725 514.636 529.988C516.563 531.251 518.067 533.041 519.147 535.359C520.228 537.677 520.769 540.411 520.769 543.562C520.769 546.739 520.228 549.493 519.147 551.824C518.067 554.141 516.569 555.938 514.655 557.214C512.741 558.477 510.534 559.109 508.034 559.109C506.107 559.109 504.564 558.79 503.405 558.152C502.246 557.501 501.354 556.765 500.729 555.945C500.104 555.111 499.623 554.421 499.284 553.875H498.894V569.734H494.284ZM498.815 543.484C498.815 545.75 499.147 547.748 499.812 549.48C500.476 551.199 501.446 552.546 502.722 553.523C503.998 554.486 505.56 554.968 507.409 554.968C509.336 554.968 510.944 554.46 512.233 553.445C513.535 552.416 514.512 551.036 515.163 549.304C515.827 547.559 516.159 545.619 516.159 543.484C516.159 541.375 515.834 539.473 515.183 537.781C514.545 536.075 513.575 534.727 512.272 533.738C510.983 532.735 509.362 532.234 507.409 532.234C505.534 532.234 503.959 532.709 502.683 533.66C501.407 534.597 500.443 535.912 499.792 537.605C499.141 539.285 498.815 541.244 498.815 543.484ZM539.987 559.109C537.279 559.109 534.903 558.464 532.858 557.175C530.827 555.886 529.239 554.083 528.093 551.765C526.96 549.447 526.394 546.739 526.394 543.64C526.394 540.515 526.96 537.787 528.093 535.457C529.239 533.126 530.827 531.316 532.858 530.027C534.903 528.738 537.279 528.093 539.987 528.093C542.696 528.093 545.065 528.738 547.097 530.027C549.141 531.316 550.729 533.126 551.862 535.457C553.008 537.787 553.581 540.515 553.581 543.64C553.581 546.739 553.008 549.447 551.862 551.765C550.729 554.083 549.141 555.886 547.097 557.175C545.065 558.464 542.696 559.109 539.987 559.109ZM539.987 554.968C542.045 554.968 543.737 554.441 545.065 553.386C546.394 552.332 547.377 550.945 548.015 549.226C548.653 547.507 548.972 545.645 548.972 543.64C548.972 541.635 548.653 539.766 548.015 538.035C547.377 536.303 546.394 534.903 545.065 533.835C543.737 532.768 542.045 532.234 539.987 532.234C537.93 532.234 536.237 532.768 534.909 533.835C533.581 534.903 532.598 536.303 531.96 538.035C531.322 539.766 531.003 541.635 531.003 543.64C531.003 545.645 531.322 547.507 531.96 549.226C532.598 550.945 533.581 552.332 534.909 553.386C536.237 554.441 537.93 554.968 539.987 554.968ZM560.617 558.484V528.484H565.227V558.484H560.617ZM562.961 523.484C562.063 523.484 561.288 523.178 560.637 522.566C559.999 521.954 559.68 521.218 559.68 520.359C559.68 519.5 559.999 518.764 560.637 518.152C561.288 517.54 562.063 517.234 562.961 517.234C563.859 517.234 564.628 517.54 565.266 518.152C565.917 518.764 566.242 519.5 566.242 520.359C566.242 521.218 565.917 521.954 565.266 522.566C564.628 523.178 563.859 523.484 562.961 523.484ZM578.278 540.437V558.484H573.669V528.484H578.122V533.171H578.513C579.216 531.648 580.284 530.424 581.716 529.5C583.148 528.562 584.997 528.093 587.263 528.093C589.294 528.093 591.071 528.51 592.595 529.343C594.118 530.164 595.303 531.414 596.149 533.093C596.996 534.76 597.419 536.869 597.419 539.421V558.484H592.81V539.734C592.81 537.377 592.198 535.541 590.974 534.226C589.75 532.898 588.07 532.234 585.935 532.234C584.463 532.234 583.148 532.553 581.989 533.191C580.843 533.829 579.938 534.76 579.274 535.984C578.61 537.208 578.278 538.692 578.278 540.437ZM618.889 528.484V532.39H603.342V528.484H618.889ZM607.873 521.296H612.482V549.89C612.482 551.192 612.671 552.169 613.049 552.82C613.439 553.458 613.934 553.888 614.533 554.109C615.145 554.317 615.79 554.421 616.467 554.421C616.975 554.421 617.391 554.395 617.717 554.343C618.042 554.278 618.303 554.226 618.498 554.187L619.436 558.328C619.123 558.445 618.687 558.562 618.127 558.679C617.567 558.809 616.857 558.875 615.998 558.875C614.696 558.875 613.42 558.595 612.17 558.035C610.933 557.475 609.904 556.622 609.084 555.476C608.277 554.33 607.873 552.885 607.873 551.14V521.296ZM625.822 558.484V528.484H630.275V533.171H630.666C631.291 531.57 632.3 530.326 633.693 529.441C635.087 528.542 636.76 528.093 638.713 528.093C640.692 528.093 642.339 528.542 643.654 529.441C644.982 530.326 646.018 531.57 646.76 533.171H647.072C647.84 531.622 648.993 530.391 650.529 529.48C652.066 528.556 653.908 528.093 656.057 528.093C658.739 528.093 660.933 528.933 662.639 530.613C664.344 532.279 665.197 534.877 665.197 538.406V558.484H660.588V538.406C660.588 536.192 659.982 534.61 658.771 533.66C657.561 532.709 656.135 532.234 654.494 532.234C652.385 532.234 650.751 532.872 649.592 534.148C648.433 535.411 647.854 537.013 647.854 538.953V558.484H643.166V537.937C643.166 536.231 642.613 534.858 641.506 533.816C640.399 532.761 638.973 532.234 637.229 532.234C636.031 532.234 634.911 532.553 633.869 533.191C632.84 533.829 632.007 534.714 631.369 535.847C630.744 536.967 630.432 538.263 630.432 539.734V558.484H625.822ZM686.203 559.109C683.313 559.109 680.819 558.471 678.723 557.195C676.639 555.906 675.031 554.109 673.898 551.804C672.779 549.486 672.219 546.791 672.219 543.718C672.219 540.645 672.779 537.937 673.898 535.593C675.031 533.236 676.607 531.401 678.625 530.085C680.656 528.757 683.026 528.093 685.734 528.093C687.297 528.093 688.84 528.354 690.363 528.875C691.887 529.395 693.273 530.242 694.523 531.414C695.773 532.572 696.77 534.109 697.512 536.023C698.254 537.937 698.625 540.294 698.625 543.093V545.046H675.5V541.062H693.938C693.938 539.369 693.599 537.859 692.922 536.531C692.258 535.203 691.307 534.154 690.07 533.386C688.846 532.618 687.401 532.234 685.734 532.234C683.898 532.234 682.31 532.69 680.969 533.601C679.641 534.5 678.618 535.671 677.902 537.117C677.186 538.562 676.828 540.111 676.828 541.765V544.421C676.828 546.687 677.219 548.608 678 550.183C678.794 551.746 679.895 552.937 681.301 553.757C682.707 554.565 684.341 554.968 686.203 554.968C687.414 554.968 688.508 554.799 689.484 554.46C690.474 554.109 691.327 553.588 692.043 552.898C692.759 552.195 693.313 551.322 693.703 550.281L698.156 551.531C697.688 553.041 696.9 554.369 695.793 555.515C694.686 556.648 693.319 557.533 691.691 558.171C690.064 558.796 688.234 559.109 686.203 559.109ZM710.246 540.437V558.484H705.637V528.484H710.09V533.171H710.48C711.184 531.648 712.251 530.424 713.684 529.5C715.116 528.562 716.965 528.093 719.23 528.093C721.262 528.093 723.039 528.51 724.563 529.343C726.086 530.164 727.271 531.414 728.117 533.093C728.964 534.76 729.387 536.869 729.387 539.421V558.484H724.777V539.734C724.777 537.377 724.165 535.541 722.941 534.226C721.717 532.898 720.038 532.234 717.902 532.234C716.431 532.234 715.116 532.553 713.957 533.191C712.811 533.829 711.906 534.76 711.242 535.984C710.578 537.208 710.246 538.692 710.246 540.437ZM750.856 528.484V532.39H735.31V528.484H750.856ZM739.841 521.296H744.45V549.89C744.45 551.192 744.639 552.169 745.017 552.82C745.407 553.458 745.902 553.888 746.501 554.109C747.113 554.317 747.757 554.421 748.435 554.421C748.942 554.421 749.359 554.395 749.685 554.343C750.01 554.278 750.271 554.226 750.466 554.187L751.403 558.328C751.091 558.445 750.655 558.562 750.095 558.679C749.535 558.809 748.825 558.875 747.966 558.875C746.664 558.875 745.388 558.595 744.138 558.035C742.901 557.475 741.872 556.622 741.052 555.476C740.244 554.33 739.841 552.885 739.841 551.14V521.296ZM778.503 535.203L774.362 536.375C774.102 535.684 773.718 535.014 773.21 534.363C772.715 533.699 772.038 533.152 771.179 532.722C770.319 532.292 769.219 532.078 767.878 532.078C766.042 532.078 764.512 532.501 763.288 533.347C762.077 534.181 761.472 535.242 761.472 536.531C761.472 537.677 761.888 538.582 762.722 539.246C763.555 539.91 764.857 540.463 766.628 540.906L771.081 542C773.763 542.651 775.762 543.647 777.077 544.988C778.392 546.316 779.05 548.028 779.05 550.125C779.05 551.843 778.555 553.38 777.565 554.734C776.589 556.088 775.222 557.156 773.464 557.937C771.706 558.718 769.662 559.109 767.331 559.109C764.271 559.109 761.739 558.445 759.733 557.117C757.728 555.789 756.459 553.848 755.925 551.296L760.3 550.203C760.716 551.817 761.504 553.028 762.663 553.835C763.835 554.643 765.365 555.046 767.253 555.046C769.401 555.046 771.107 554.591 772.37 553.679C773.646 552.755 774.284 551.648 774.284 550.359C774.284 549.317 773.92 548.445 773.19 547.742C772.461 547.026 771.341 546.492 769.831 546.14L764.831 544.968C762.084 544.317 760.065 543.308 758.776 541.941C757.5 540.561 756.862 538.835 756.862 536.765C756.862 535.072 757.338 533.575 758.288 532.273C759.252 530.971 760.56 529.949 762.214 529.207C763.881 528.464 765.769 528.093 767.878 528.093C770.847 528.093 773.177 528.744 774.87 530.046C776.576 531.348 777.787 533.067 778.503 535.203Z\",fill:\"#1AE236\"})),_path9||(_path9=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1000.6C113.455 1000.6 110.72 999.723 108.462 997.976C106.203 996.214 104.478 993.665 103.284 990.327C102.091 986.974 101.495 982.926 101.495 978.182C101.495 973.466 102.091 969.439 103.284 966.101C104.492 962.749 106.225 960.192 108.483 958.43C110.756 956.655 113.483 955.767 116.665 955.767C119.847 955.767 122.567 956.655 124.826 958.43C127.098 960.192 128.831 962.749 130.024 966.101C131.232 969.439 131.835 973.466 131.835 978.182C131.835 982.926 131.239 986.974 130.046 990.327C128.853 993.665 127.127 996.214 124.868 997.976C122.61 999.723 119.875 1000.6 116.665 1000.6ZM116.665 995.909C119.847 995.909 122.318 994.375 124.08 991.307C125.841 988.239 126.722 983.864 126.722 978.182C126.722 974.403 126.317 971.186 125.507 968.53C124.712 965.874 123.561 963.849 122.056 962.457C120.564 961.065 118.767 960.369 116.665 960.369C113.512 960.369 111.047 961.925 109.272 965.036C107.496 968.132 106.608 972.514 106.608 978.182C106.608 981.96 107.006 985.17 107.801 987.812C108.597 990.455 109.74 992.464 111.232 993.842C112.737 995.22 114.549 995.909 116.665 995.909ZM153.568 1000.6C151.068 1000.6 148.817 1000.1 146.814 999.105C144.811 998.111 143.206 996.747 141.999 995.014C140.791 993.281 140.131 991.307 140.017 989.091H145.131C145.33 991.065 146.225 992.699 147.816 993.991C149.421 995.27 151.338 995.909 153.568 995.909C155.358 995.909 156.949 995.49 158.341 994.652C159.747 993.814 160.848 992.663 161.644 991.2C162.453 989.723 162.858 988.054 162.858 986.193C162.858 984.29 162.439 982.592 161.601 981.101C160.777 979.595 159.641 978.409 158.192 977.543C156.743 976.676 155.088 976.236 153.228 976.222C151.892 976.207 150.522 976.413 149.115 976.839C147.709 977.251 146.551 977.784 145.642 978.438L140.699 977.841L143.341 956.364H166.012V961.051H147.773L146.239 973.92H146.495C147.389 973.21 148.512 972.621 149.861 972.152C151.21 971.683 152.617 971.449 154.08 971.449C156.75 971.449 159.13 972.088 161.218 973.366C163.32 974.631 164.968 976.364 166.161 978.565C167.368 980.767 167.972 983.281 167.972 986.108C167.972 988.892 167.347 991.378 166.097 993.565C164.861 995.739 163.157 997.457 160.983 998.722C158.81 999.972 156.338 1000.6 153.568 1000.6ZM180.186 994.418C179.135 994.418 178.233 994.041 177.48 993.288C176.727 992.536 176.351 991.634 176.351 990.582C176.351 989.531 176.727 988.629 177.48 987.876C178.233 987.124 179.135 986.747 180.186 986.747C181.237 986.747 182.139 987.124 182.892 987.876C183.645 988.629 184.021 989.531 184.021 990.582C184.021 991.278 183.844 991.918 183.489 992.5C183.148 993.082 182.686 993.551 182.104 993.906C181.535 994.247 180.896 994.418 180.186 994.418ZM180.186 972.344C179.135 972.344 178.233 971.967 177.48 971.214C176.727 970.462 176.351 969.56 176.351 968.509C176.351 967.457 176.727 966.555 177.48 965.803C178.233 965.05 179.135 964.673 180.186 964.673C181.237 964.673 182.139 965.05 182.892 965.803C183.645 966.555 184.021 967.457 184.021 968.509C184.021 969.205 183.844 969.844 183.489 970.426C183.148 971.009 182.686 971.477 182.104 971.832C181.535 972.173 180.896 972.344 180.186 972.344ZM207.704 1000.6C204.891 1000.6 202.384 1000.11 200.182 999.148C197.995 998.182 196.255 996.839 194.962 995.121C193.684 993.388 192.988 991.378 192.874 989.091H198.244C198.357 990.497 198.84 991.712 199.692 992.734C200.545 993.743 201.66 994.524 203.038 995.078C204.415 995.632 205.942 995.909 207.619 995.909C209.494 995.909 211.155 995.582 212.604 994.929C214.053 994.276 215.19 993.366 216.013 992.202C216.837 991.037 217.249 989.688 217.249 988.153C217.249 986.548 216.851 985.135 216.056 983.913C215.261 982.678 214.096 981.712 212.562 981.016C211.028 980.32 209.153 979.972 206.937 979.972H203.442V975.284H206.937C208.67 975.284 210.19 974.972 211.496 974.347C212.817 973.722 213.847 972.841 214.586 971.705C215.339 970.568 215.715 969.233 215.715 967.699C215.715 966.222 215.388 964.936 214.735 963.842C214.082 962.749 213.158 961.896 211.965 961.286C210.786 960.675 209.394 960.369 207.789 960.369C206.283 960.369 204.863 960.646 203.528 961.2C202.207 961.74 201.127 962.528 200.289 963.565C199.451 964.588 198.996 965.824 198.925 967.273H193.812C193.897 964.986 194.586 962.983 195.878 961.264C197.171 959.531 198.861 958.182 200.949 957.216C203.052 956.25 205.36 955.767 207.874 955.767C210.573 955.767 212.888 956.314 214.82 957.408C216.752 958.487 218.236 959.915 219.273 961.69C220.31 963.466 220.829 965.384 220.829 967.443C220.829 969.901 220.182 971.996 218.89 973.729C217.611 975.462 215.871 976.662 213.67 977.33V977.67C216.425 978.125 218.577 979.297 220.126 981.186C221.674 983.061 222.448 985.384 222.448 988.153C222.448 990.526 221.802 992.656 220.509 994.545C219.231 996.42 217.484 997.898 215.268 998.977C213.052 1000.06 210.53 1000.6 207.704 1000.6ZM245.396 1000.6C242.185 1000.6 239.451 999.723 237.192 997.976C234.934 996.214 233.208 993.665 232.015 990.327C230.822 986.974 230.225 982.926 230.225 978.182C230.225 973.466 230.822 969.439 232.015 966.101C233.222 962.749 234.955 960.192 237.214 958.43C239.486 956.655 242.214 955.767 245.396 955.767C248.577 955.767 251.297 956.655 253.556 958.43C255.829 960.192 257.562 962.749 258.755 966.101C259.962 969.439 260.566 973.466 260.566 978.182C260.566 982.926 259.969 986.974 258.776 990.327C257.583 993.665 255.857 996.214 253.599 997.976C251.34 999.723 248.606 1000.6 245.396 1000.6ZM245.396 995.909C248.577 995.909 251.049 994.375 252.81 991.307C254.572 988.239 255.452 983.864 255.452 978.182C255.452 974.403 255.047 971.186 254.238 968.53C253.442 965.874 252.292 963.849 250.786 962.457C249.295 961.065 247.498 960.369 245.396 960.369C242.242 960.369 239.778 961.925 238.002 965.036C236.226 968.132 235.339 972.514 235.339 978.182C235.339 981.96 235.736 985.17 236.532 987.812C237.327 990.455 238.471 992.464 239.962 993.842C241.468 995.22 243.279 995.909 245.396 995.909ZM286.305 1000V956.364H301.049C304.472 956.364 307.271 956.982 309.444 958.217C311.631 959.439 313.251 961.094 314.302 963.182C315.353 965.27 315.878 967.599 315.878 970.17C315.878 972.741 315.353 975.078 314.302 977.18C313.265 979.283 311.66 980.959 309.486 982.209C307.313 983.445 304.529 984.062 301.134 984.062H290.566V979.375H300.964C303.307 979.375 305.19 978.97 306.61 978.161C308.03 977.351 309.06 976.257 309.699 974.879C310.353 973.487 310.68 971.918 310.68 970.17C310.68 968.423 310.353 966.861 309.699 965.483C309.06 964.105 308.023 963.026 306.589 962.244C305.154 961.449 303.251 961.051 300.878 961.051H291.589V1000H286.305ZM324.391 956.364H330.697L345.527 992.585H346.038L360.868 956.364H367.175V1000H362.231V966.847H361.805L348.169 1000H343.396L329.76 966.847H329.334V1000H324.391V956.364Z\",fill:\"#A0BEEF\"})),_path10||(_path10=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1604.6C113.455 1604.6 110.72 1603.72 108.462 1601.98C106.203 1600.21 104.478 1597.66 103.284 1594.33C102.091 1590.97 101.495 1586.93 101.495 1582.18C101.495 1577.47 102.091 1573.44 103.284 1570.1C104.492 1566.75 106.225 1564.19 108.483 1562.43C110.756 1560.65 113.483 1559.77 116.665 1559.77C119.847 1559.77 122.567 1560.65 124.826 1562.43C127.098 1564.19 128.831 1566.75 130.024 1570.1C131.232 1573.44 131.835 1577.47 131.835 1582.18C131.835 1586.93 131.239 1590.97 130.046 1594.33C128.853 1597.66 127.127 1600.21 124.868 1601.98C122.61 1603.72 119.875 1604.6 116.665 1604.6ZM116.665 1599.91C119.847 1599.91 122.318 1598.37 124.08 1595.31C125.841 1592.24 126.722 1587.86 126.722 1582.18C126.722 1578.4 126.317 1575.19 125.507 1572.53C124.712 1569.87 123.561 1567.85 122.056 1566.46C120.564 1565.07 118.767 1564.37 116.665 1564.37C113.512 1564.37 111.047 1565.92 109.272 1569.04C107.496 1572.13 106.608 1576.51 106.608 1582.18C106.608 1585.96 107.006 1589.17 107.801 1591.81C108.597 1594.45 109.74 1596.46 111.232 1597.84C112.737 1599.22 114.549 1599.91 116.665 1599.91ZM153.568 1604.6C151.068 1604.6 148.817 1604.1 146.814 1603.11C144.811 1602.11 143.206 1600.75 141.999 1599.01C140.791 1597.28 140.131 1595.31 140.017 1593.09H145.131C145.33 1595.07 146.225 1596.7 147.816 1597.99C149.421 1599.27 151.338 1599.91 153.568 1599.91C155.358 1599.91 156.949 1599.49 158.341 1598.65C159.747 1597.81 160.848 1596.66 161.644 1595.2C162.453 1593.72 162.858 1592.05 162.858 1590.19C162.858 1588.29 162.439 1586.59 161.601 1585.1C160.777 1583.6 159.641 1582.41 158.192 1581.54C156.743 1580.68 155.088 1580.24 153.228 1580.22C151.892 1580.21 150.522 1580.41 149.115 1580.84C147.709 1581.25 146.551 1581.78 145.642 1582.44L140.699 1581.84L143.341 1560.36H166.012V1565.05H147.773L146.239 1577.92H146.495C147.389 1577.21 148.512 1576.62 149.861 1576.15C151.21 1575.68 152.617 1575.45 154.08 1575.45C156.75 1575.45 159.13 1576.09 161.218 1577.37C163.32 1578.63 164.968 1580.36 166.161 1582.57C167.368 1584.77 167.972 1587.28 167.972 1590.11C167.972 1592.89 167.347 1595.38 166.097 1597.57C164.861 1599.74 163.157 1601.46 160.983 1602.72C158.81 1603.97 156.338 1604.6 153.568 1604.6ZM180.186 1598.42C179.135 1598.42 178.233 1598.04 177.48 1597.29C176.727 1596.54 176.351 1595.63 176.351 1594.58C176.351 1593.53 176.727 1592.63 177.48 1591.88C178.233 1591.12 179.135 1590.75 180.186 1590.75C181.237 1590.75 182.139 1591.12 182.892 1591.88C183.645 1592.63 184.021 1593.53 184.021 1594.58C184.021 1595.28 183.844 1595.92 183.489 1596.5C183.148 1597.08 182.686 1597.55 182.104 1597.91C181.535 1598.25 180.896 1598.42 180.186 1598.42ZM180.186 1576.34C179.135 1576.34 178.233 1575.97 177.48 1575.21C176.727 1574.46 176.351 1573.56 176.351 1572.51C176.351 1571.46 176.727 1570.56 177.48 1569.8C178.233 1569.05 179.135 1568.67 180.186 1568.67C181.237 1568.67 182.139 1569.05 182.892 1569.8C183.645 1570.56 184.021 1571.46 184.021 1572.51C184.021 1573.2 183.844 1573.84 183.489 1574.43C183.148 1575.01 182.686 1575.48 182.104 1575.83C181.535 1576.17 180.896 1576.34 180.186 1576.34ZM207.704 1604.6C204.891 1604.6 202.384 1604.11 200.182 1603.15C197.995 1602.18 196.255 1600.84 194.962 1599.12C193.684 1597.39 192.988 1595.38 192.874 1593.09H198.244C198.357 1594.5 198.84 1595.71 199.692 1596.73C200.545 1597.74 201.66 1598.52 203.038 1599.08C204.415 1599.63 205.942 1599.91 207.619 1599.91C209.494 1599.91 211.155 1599.58 212.604 1598.93C214.053 1598.28 215.19 1597.37 216.013 1596.2C216.837 1595.04 217.249 1593.69 217.249 1592.15C217.249 1590.55 216.851 1589.13 216.056 1587.91C215.261 1586.68 214.096 1585.71 212.562 1585.02C211.028 1584.32 209.153 1583.97 206.937 1583.97H203.442V1579.28H206.937C208.67 1579.28 210.19 1578.97 211.496 1578.35C212.817 1577.72 213.847 1576.84 214.586 1575.7C215.339 1574.57 215.715 1573.23 215.715 1571.7C215.715 1570.22 215.388 1568.94 214.735 1567.84C214.082 1566.75 213.158 1565.9 211.965 1565.29C210.786 1564.67 209.394 1564.37 207.789 1564.37C206.283 1564.37 204.863 1564.65 203.528 1565.2C202.207 1565.74 201.127 1566.53 200.289 1567.57C199.451 1568.59 198.996 1569.82 198.925 1571.27H193.812C193.897 1568.99 194.586 1566.98 195.878 1565.26C197.171 1563.53 198.861 1562.18 200.949 1561.22C203.052 1560.25 205.36 1559.77 207.874 1559.77C210.573 1559.77 212.888 1560.31 214.82 1561.41C216.752 1562.49 218.236 1563.91 219.273 1565.69C220.31 1567.47 220.829 1569.38 220.829 1571.44C220.829 1573.9 220.182 1576 218.89 1577.73C217.611 1579.46 215.871 1580.66 213.67 1581.33V1581.67C216.425 1582.12 218.577 1583.3 220.126 1585.19C221.674 1587.06 222.448 1589.38 222.448 1592.15C222.448 1594.53 221.802 1596.66 220.509 1598.55C219.231 1600.42 217.484 1601.9 215.268 1602.98C213.052 1604.06 210.53 1604.6 207.704 1604.6ZM245.396 1604.6C242.185 1604.6 239.451 1603.72 237.192 1601.98C234.934 1600.21 233.208 1597.66 232.015 1594.33C230.822 1590.97 230.225 1586.93 230.225 1582.18C230.225 1577.47 230.822 1573.44 232.015 1570.1C233.222 1566.75 234.955 1564.19 237.214 1562.43C239.486 1560.65 242.214 1559.77 245.396 1559.77C248.577 1559.77 251.297 1560.65 253.556 1562.43C255.829 1564.19 257.562 1566.75 258.755 1570.1C259.962 1573.44 260.566 1577.47 260.566 1582.18C260.566 1586.93 259.969 1590.97 258.776 1594.33C257.583 1597.66 255.857 1600.21 253.599 1601.98C251.34 1603.72 248.606 1604.6 245.396 1604.6ZM245.396 1599.91C248.577 1599.91 251.049 1598.37 252.81 1595.31C254.572 1592.24 255.452 1587.86 255.452 1582.18C255.452 1578.4 255.047 1575.19 254.238 1572.53C253.442 1569.87 252.292 1567.85 250.786 1566.46C249.295 1565.07 247.498 1564.37 245.396 1564.37C242.242 1564.37 239.778 1565.92 238.002 1569.04C236.226 1572.13 235.339 1576.51 235.339 1582.18C235.339 1585.96 235.736 1589.17 236.532 1591.81C237.327 1594.45 238.471 1596.46 239.962 1597.84C241.468 1599.22 243.279 1599.91 245.396 1599.91ZM286.305 1604V1560.36H301.049C304.472 1560.36 307.271 1560.98 309.444 1562.22C311.631 1563.44 313.251 1565.09 314.302 1567.18C315.353 1569.27 315.878 1571.6 315.878 1574.17C315.878 1576.74 315.353 1579.08 314.302 1581.18C313.265 1583.28 311.66 1584.96 309.486 1586.21C307.313 1587.44 304.529 1588.06 301.134 1588.06H290.566V1583.38H300.964C303.307 1583.38 305.19 1582.97 306.61 1582.16C308.03 1581.35 309.06 1580.26 309.699 1578.88C310.353 1577.49 310.68 1575.92 310.68 1574.17C310.68 1572.42 310.353 1570.86 309.699 1569.48C309.06 1568.11 308.023 1567.03 306.589 1566.24C305.154 1565.45 303.251 1565.05 300.878 1565.05H291.589V1604H286.305ZM324.391 1560.36H330.697L345.527 1596.59H346.038L360.868 1560.36H367.175V1604H362.231V1570.85H361.805L348.169 1604H343.396L329.76 1570.85H329.334V1604H324.391V1560.36Z\",fill:\"#A0BEEF\"})),_path11||(_path11=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1151.6C113.455 1151.6 110.72 1150.72 108.462 1148.98C106.203 1147.21 104.478 1144.66 103.284 1141.33C102.091 1137.97 101.495 1133.93 101.495 1129.18C101.495 1124.47 102.091 1120.44 103.284 1117.1C104.492 1113.75 106.225 1111.19 108.483 1109.43C110.756 1107.65 113.483 1106.77 116.665 1106.77C119.847 1106.77 122.567 1107.65 124.826 1109.43C127.098 1111.19 128.831 1113.75 130.024 1117.1C131.232 1120.44 131.835 1124.47 131.835 1129.18C131.835 1133.93 131.239 1137.97 130.046 1141.33C128.853 1144.66 127.127 1147.21 124.868 1148.98C122.61 1150.72 119.875 1151.6 116.665 1151.6ZM116.665 1146.91C119.847 1146.91 122.318 1145.37 124.08 1142.31C125.841 1139.24 126.722 1134.86 126.722 1129.18C126.722 1125.4 126.317 1122.19 125.507 1119.53C124.712 1116.87 123.561 1114.85 122.056 1113.46C120.564 1112.07 118.767 1111.37 116.665 1111.37C113.512 1111.37 111.047 1112.92 109.272 1116.04C107.496 1119.13 106.608 1123.51 106.608 1129.18C106.608 1132.96 107.006 1136.17 107.801 1138.81C108.597 1141.45 109.74 1143.46 111.232 1144.84C112.737 1146.22 114.549 1146.91 116.665 1146.91ZM154.421 1151.6C152.631 1151.57 150.841 1151.23 149.051 1150.57C147.262 1149.92 145.628 1148.82 144.151 1147.27C142.674 1145.71 141.487 1143.6 140.593 1140.94C139.698 1138.27 139.25 1134.92 139.25 1130.89C139.25 1127.02 139.612 1123.6 140.337 1120.62C141.061 1117.62 142.112 1115.1 143.49 1113.05C144.868 1110.99 146.53 1109.43 148.476 1108.37C150.436 1107.3 152.645 1106.77 155.103 1106.77C157.546 1106.77 159.719 1107.26 161.622 1108.24C163.54 1109.2 165.103 1110.55 166.31 1112.29C167.517 1114.02 168.299 1116.01 168.654 1118.27H163.455C162.972 1116.31 162.034 1114.69 160.642 1113.39C159.25 1112.1 157.404 1111.45 155.103 1111.45C151.722 1111.45 149.059 1112.92 147.112 1115.87C145.181 1118.81 144.208 1122.93 144.193 1128.24H144.534C145.33 1127.04 146.274 1126.01 147.368 1125.15C148.476 1124.29 149.698 1123.62 151.033 1123.15C152.368 1122.68 153.782 1122.45 155.273 1122.45C157.773 1122.45 160.06 1123.07 162.134 1124.32C164.208 1125.56 165.87 1127.27 167.12 1129.46C168.37 1131.63 168.995 1134.12 168.995 1136.94C168.995 1139.64 168.391 1142.11 167.184 1144.35C165.976 1146.58 164.279 1148.36 162.091 1149.68C159.918 1150.99 157.361 1151.62 154.421 1151.6ZM154.421 1146.91C156.21 1146.91 157.816 1146.46 159.236 1145.57C160.671 1144.67 161.8 1143.47 162.624 1141.97C163.462 1140.46 163.881 1138.78 163.881 1136.94C163.881 1135.13 163.476 1133.49 162.666 1132.02C161.871 1130.52 160.77 1129.34 159.364 1128.46C157.972 1127.58 156.381 1127.14 154.591 1127.14C153.242 1127.14 151.985 1127.41 150.82 1127.95C149.655 1128.47 148.632 1129.2 147.752 1130.12C146.885 1131.04 146.203 1132.1 145.706 1133.29C145.209 1134.47 144.96 1135.72 144.96 1137.02C144.96 1138.76 145.365 1140.37 146.175 1141.88C146.999 1143.39 148.121 1144.6 149.541 1145.52C150.976 1146.45 152.603 1146.91 154.421 1146.91ZM181.123 1145.42C180.072 1145.42 179.17 1145.04 178.418 1144.29C177.665 1143.54 177.288 1142.63 177.288 1141.58C177.288 1140.53 177.665 1139.63 178.418 1138.88C179.17 1138.12 180.072 1137.75 181.123 1137.75C182.175 1137.75 183.077 1138.12 183.829 1138.88C184.582 1139.63 184.959 1140.53 184.959 1141.58C184.959 1142.28 184.781 1142.92 184.426 1143.5C184.085 1144.08 183.623 1144.55 183.041 1144.91C182.473 1145.25 181.834 1145.42 181.123 1145.42ZM181.123 1123.34C180.072 1123.34 179.17 1122.97 178.418 1122.21C177.665 1121.46 177.288 1120.56 177.288 1119.51C177.288 1118.46 177.665 1117.56 178.418 1116.8C179.17 1116.05 180.072 1115.67 181.123 1115.67C182.175 1115.67 183.077 1116.05 183.829 1116.8C184.582 1117.56 184.959 1118.46 184.959 1119.51C184.959 1120.2 184.781 1120.84 184.426 1121.43C184.085 1122.01 183.623 1122.48 183.041 1122.83C182.473 1123.17 181.834 1123.34 181.123 1123.34ZM208.13 1151.6C204.92 1151.6 202.185 1150.72 199.927 1148.98C197.668 1147.21 195.942 1144.66 194.749 1141.33C193.556 1137.97 192.959 1133.93 192.959 1129.18C192.959 1124.47 193.556 1120.44 194.749 1117.1C195.957 1113.75 197.69 1111.19 199.948 1109.43C202.221 1107.65 204.948 1106.77 208.13 1106.77C211.312 1106.77 214.032 1107.65 216.29 1109.43C218.563 1111.19 220.296 1113.75 221.489 1117.1C222.697 1120.44 223.3 1124.47 223.3 1129.18C223.3 1133.93 222.704 1137.97 221.511 1141.33C220.317 1144.66 218.592 1147.21 216.333 1148.98C214.074 1150.72 211.34 1151.6 208.13 1151.6ZM208.13 1146.91C211.312 1146.91 213.783 1145.37 215.545 1142.31C217.306 1139.24 218.187 1134.86 218.187 1129.18C218.187 1125.4 217.782 1122.19 216.972 1119.53C216.177 1116.87 215.026 1114.85 213.521 1113.46C212.029 1112.07 210.232 1111.37 208.13 1111.37C204.976 1111.37 202.512 1112.92 200.736 1116.04C198.961 1119.13 198.073 1123.51 198.073 1129.18C198.073 1132.96 198.471 1136.17 199.266 1138.81C200.062 1141.45 201.205 1143.46 202.697 1144.84C204.202 1146.22 206.013 1146.91 208.13 1146.91ZM245.63 1151.6C242.42 1151.6 239.685 1150.72 237.427 1148.98C235.168 1147.21 233.442 1144.66 232.249 1141.33C231.056 1137.97 230.459 1133.93 230.459 1129.18C230.459 1124.47 231.056 1120.44 232.249 1117.1C233.457 1113.75 235.19 1111.19 237.448 1109.43C239.721 1107.65 242.448 1106.77 245.63 1106.77C248.812 1106.77 251.532 1107.65 253.79 1109.43C256.063 1111.19 257.796 1113.75 258.989 1117.1C260.197 1120.44 260.8 1124.47 260.8 1129.18C260.8 1133.93 260.204 1137.97 259.011 1141.33C257.817 1144.66 256.092 1147.21 253.833 1148.98C251.574 1150.72 248.84 1151.6 245.63 1151.6ZM245.63 1146.91C248.812 1146.91 251.283 1145.37 253.045 1142.31C254.806 1139.24 255.687 1134.86 255.687 1129.18C255.687 1125.4 255.282 1122.19 254.472 1119.53C253.677 1116.87 252.526 1114.85 251.021 1113.46C249.529 1112.07 247.732 1111.37 245.63 1111.37C242.476 1111.37 240.012 1112.92 238.236 1116.04C236.461 1119.13 235.573 1123.51 235.573 1129.18C235.573 1132.96 235.971 1136.17 236.766 1138.81C237.562 1141.45 238.705 1143.46 240.197 1144.84C241.702 1146.22 243.513 1146.91 245.63 1146.91ZM286.539 1151V1107.36H301.283C304.707 1107.36 307.505 1107.98 309.678 1109.22C311.866 1110.44 313.485 1112.09 314.536 1114.18C315.587 1116.27 316.113 1118.6 316.113 1121.17C316.113 1123.74 315.587 1126.08 314.536 1128.18C313.499 1130.28 311.894 1131.96 309.721 1133.21C307.547 1134.44 304.763 1135.06 301.369 1135.06H290.8V1130.38H301.198C303.542 1130.38 305.424 1129.97 306.844 1129.16C308.265 1128.35 309.295 1127.26 309.934 1125.88C310.587 1124.49 310.914 1122.92 310.914 1121.17C310.914 1119.42 310.587 1117.86 309.934 1116.48C309.295 1115.11 308.258 1114.03 306.823 1113.24C305.388 1112.45 303.485 1112.05 301.113 1112.05H291.823V1151H286.539ZM324.625 1107.36H330.932L345.761 1143.59H346.273L361.102 1107.36H367.409V1151H362.466V1117.85H362.04L348.403 1151H343.631L329.994 1117.85H329.568V1151H324.625V1107.36Z\",fill:\"#A0BEEF\"})),_path12||(_path12=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1755.6C113.455 1755.6 110.72 1754.72 108.462 1752.98C106.203 1751.21 104.478 1748.66 103.284 1745.33C102.091 1741.97 101.495 1737.93 101.495 1733.18C101.495 1728.47 102.091 1724.44 103.284 1721.1C104.492 1717.75 106.225 1715.19 108.483 1713.43C110.756 1711.65 113.483 1710.77 116.665 1710.77C119.847 1710.77 122.567 1711.65 124.826 1713.43C127.098 1715.19 128.831 1717.75 130.024 1721.1C131.232 1724.44 131.835 1728.47 131.835 1733.18C131.835 1737.93 131.239 1741.97 130.046 1745.33C128.853 1748.66 127.127 1751.21 124.868 1752.98C122.61 1754.72 119.875 1755.6 116.665 1755.6ZM116.665 1750.91C119.847 1750.91 122.318 1749.37 124.08 1746.31C125.841 1743.24 126.722 1738.86 126.722 1733.18C126.722 1729.4 126.317 1726.19 125.507 1723.53C124.712 1720.87 123.561 1718.85 122.056 1717.46C120.564 1716.07 118.767 1715.37 116.665 1715.37C113.512 1715.37 111.047 1716.92 109.272 1720.04C107.496 1723.13 106.608 1727.51 106.608 1733.18C106.608 1736.96 107.006 1740.17 107.801 1742.81C108.597 1745.45 109.74 1747.46 111.232 1748.84C112.737 1750.22 114.549 1750.91 116.665 1750.91ZM154.421 1755.6C152.631 1755.57 150.841 1755.23 149.051 1754.57C147.262 1753.92 145.628 1752.82 144.151 1751.27C142.674 1749.71 141.487 1747.6 140.593 1744.94C139.698 1742.27 139.25 1738.92 139.25 1734.89C139.25 1731.02 139.612 1727.6 140.337 1724.62C141.061 1721.62 142.112 1719.1 143.49 1717.05C144.868 1714.99 146.53 1713.43 148.476 1712.37C150.436 1711.3 152.645 1710.77 155.103 1710.77C157.546 1710.77 159.719 1711.26 161.622 1712.24C163.54 1713.2 165.103 1714.55 166.31 1716.29C167.517 1718.02 168.299 1720.01 168.654 1722.27H163.455C162.972 1720.31 162.034 1718.69 160.642 1717.39C159.25 1716.1 157.404 1715.45 155.103 1715.45C151.722 1715.45 149.059 1716.92 147.112 1719.87C145.181 1722.81 144.208 1726.93 144.193 1732.24H144.534C145.33 1731.04 146.274 1730.01 147.368 1729.15C148.476 1728.29 149.698 1727.62 151.033 1727.15C152.368 1726.68 153.782 1726.45 155.273 1726.45C157.773 1726.45 160.06 1727.07 162.134 1728.32C164.208 1729.56 165.87 1731.27 167.12 1733.46C168.37 1735.63 168.995 1738.12 168.995 1740.94C168.995 1743.64 168.391 1746.11 167.184 1748.35C165.976 1750.58 164.279 1752.36 162.091 1753.68C159.918 1754.99 157.361 1755.62 154.421 1755.6ZM154.421 1750.91C156.21 1750.91 157.816 1750.46 159.236 1749.57C160.671 1748.67 161.8 1747.47 162.624 1745.97C163.462 1744.46 163.881 1742.78 163.881 1740.94C163.881 1739.13 163.476 1737.49 162.666 1736.02C161.871 1734.52 160.77 1733.34 159.364 1732.46C157.972 1731.58 156.381 1731.14 154.591 1731.14C153.242 1731.14 151.985 1731.41 150.82 1731.95C149.655 1732.47 148.632 1733.2 147.752 1734.12C146.885 1735.04 146.203 1736.1 145.706 1737.29C145.209 1738.47 144.96 1739.72 144.96 1741.02C144.96 1742.76 145.365 1744.37 146.175 1745.88C146.999 1747.39 148.121 1748.6 149.541 1749.52C150.976 1750.45 152.603 1750.91 154.421 1750.91ZM181.123 1749.42C180.072 1749.42 179.17 1749.04 178.418 1748.29C177.665 1747.54 177.288 1746.63 177.288 1745.58C177.288 1744.53 177.665 1743.63 178.418 1742.88C179.17 1742.12 180.072 1741.75 181.123 1741.75C182.175 1741.75 183.077 1742.12 183.829 1742.88C184.582 1743.63 184.959 1744.53 184.959 1745.58C184.959 1746.28 184.781 1746.92 184.426 1747.5C184.085 1748.08 183.623 1748.55 183.041 1748.91C182.473 1749.25 181.834 1749.42 181.123 1749.42ZM181.123 1727.34C180.072 1727.34 179.17 1726.97 178.418 1726.21C177.665 1725.46 177.288 1724.56 177.288 1723.51C177.288 1722.46 177.665 1721.56 178.418 1720.8C179.17 1720.05 180.072 1719.67 181.123 1719.67C182.175 1719.67 183.077 1720.05 183.829 1720.8C184.582 1721.56 184.959 1722.46 184.959 1723.51C184.959 1724.2 184.781 1724.84 184.426 1725.43C184.085 1726.01 183.623 1726.48 183.041 1726.83C182.473 1727.17 181.834 1727.34 181.123 1727.34ZM208.13 1755.6C204.92 1755.6 202.185 1754.72 199.927 1752.98C197.668 1751.21 195.942 1748.66 194.749 1745.33C193.556 1741.97 192.959 1737.93 192.959 1733.18C192.959 1728.47 193.556 1724.44 194.749 1721.1C195.957 1717.75 197.69 1715.19 199.948 1713.43C202.221 1711.65 204.948 1710.77 208.13 1710.77C211.312 1710.77 214.032 1711.65 216.29 1713.43C218.563 1715.19 220.296 1717.75 221.489 1721.1C222.697 1724.44 223.3 1728.47 223.3 1733.18C223.3 1737.93 222.704 1741.97 221.511 1745.33C220.317 1748.66 218.592 1751.21 216.333 1752.98C214.074 1754.72 211.34 1755.6 208.13 1755.6ZM208.13 1750.91C211.312 1750.91 213.783 1749.37 215.545 1746.31C217.306 1743.24 218.187 1738.86 218.187 1733.18C218.187 1729.4 217.782 1726.19 216.972 1723.53C216.177 1720.87 215.026 1718.85 213.521 1717.46C212.029 1716.07 210.232 1715.37 208.13 1715.37C204.976 1715.37 202.512 1716.92 200.736 1720.04C198.961 1723.13 198.073 1727.51 198.073 1733.18C198.073 1736.96 198.471 1740.17 199.266 1742.81C200.062 1745.45 201.205 1747.46 202.697 1748.84C204.202 1750.22 206.013 1750.91 208.13 1750.91ZM245.63 1755.6C242.42 1755.6 239.685 1754.72 237.427 1752.98C235.168 1751.21 233.442 1748.66 232.249 1745.33C231.056 1741.97 230.459 1737.93 230.459 1733.18C230.459 1728.47 231.056 1724.44 232.249 1721.1C233.457 1717.75 235.19 1715.19 237.448 1713.43C239.721 1711.65 242.448 1710.77 245.63 1710.77C248.812 1710.77 251.532 1711.65 253.79 1713.43C256.063 1715.19 257.796 1717.75 258.989 1721.1C260.197 1724.44 260.8 1728.47 260.8 1733.18C260.8 1737.93 260.204 1741.97 259.011 1745.33C257.817 1748.66 256.092 1751.21 253.833 1752.98C251.574 1754.72 248.84 1755.6 245.63 1755.6ZM245.63 1750.91C248.812 1750.91 251.283 1749.37 253.045 1746.31C254.806 1743.24 255.687 1738.86 255.687 1733.18C255.687 1729.4 255.282 1726.19 254.472 1723.53C253.677 1720.87 252.526 1718.85 251.021 1717.46C249.529 1716.07 247.732 1715.37 245.63 1715.37C242.476 1715.37 240.012 1716.92 238.236 1720.04C236.461 1723.13 235.573 1727.51 235.573 1733.18C235.573 1736.96 235.971 1740.17 236.766 1742.81C237.562 1745.45 238.705 1747.46 240.197 1748.84C241.702 1750.22 243.513 1750.91 245.63 1750.91ZM286.539 1755V1711.36H301.283C304.707 1711.36 307.505 1711.98 309.678 1713.22C311.866 1714.44 313.485 1716.09 314.536 1718.18C315.587 1720.27 316.113 1722.6 316.113 1725.17C316.113 1727.74 315.587 1730.08 314.536 1732.18C313.499 1734.28 311.894 1735.96 309.721 1737.21C307.547 1738.44 304.763 1739.06 301.369 1739.06H290.8V1734.38H301.198C303.542 1734.38 305.424 1733.97 306.844 1733.16C308.265 1732.35 309.295 1731.26 309.934 1729.88C310.587 1728.49 310.914 1726.92 310.914 1725.17C310.914 1723.42 310.587 1721.86 309.934 1720.48C309.295 1719.11 308.258 1718.03 306.823 1717.24C305.388 1716.45 303.485 1716.05 301.113 1716.05H291.823V1755H286.539ZM324.625 1711.36H330.932L345.761 1747.59H346.273L361.102 1711.36H367.409V1755H362.466V1721.85H362.04L348.403 1755H343.631L329.994 1721.85H329.568V1755H324.625V1711.36Z\",fill:\"#A0BEEF\"})),_path13||(_path13=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1302.6C113.455 1302.6 110.72 1301.72 108.462 1299.98C106.203 1298.21 104.478 1295.66 103.284 1292.33C102.091 1288.97 101.495 1284.93 101.495 1280.18C101.495 1275.47 102.091 1271.44 103.284 1268.1C104.492 1264.75 106.225 1262.19 108.483 1260.43C110.756 1258.65 113.483 1257.77 116.665 1257.77C119.847 1257.77 122.567 1258.65 124.826 1260.43C127.098 1262.19 128.831 1264.75 130.024 1268.1C131.232 1271.44 131.835 1275.47 131.835 1280.18C131.835 1284.93 131.239 1288.97 130.046 1292.33C128.853 1295.66 127.127 1298.21 124.868 1299.98C122.61 1301.72 119.875 1302.6 116.665 1302.6ZM116.665 1297.91C119.847 1297.91 122.318 1296.37 124.08 1293.31C125.841 1290.24 126.722 1285.86 126.722 1280.18C126.722 1276.4 126.317 1273.19 125.507 1270.53C124.712 1267.87 123.561 1265.85 122.056 1264.46C120.564 1263.07 118.767 1262.37 116.665 1262.37C113.512 1262.37 111.047 1263.92 109.272 1267.04C107.496 1270.13 106.608 1274.51 106.608 1280.18C106.608 1283.96 107.006 1287.17 107.801 1289.81C108.597 1292.45 109.74 1294.46 111.232 1295.84C112.737 1297.22 114.549 1297.91 116.665 1297.91ZM154.421 1302.6C152.631 1302.57 150.841 1302.23 149.051 1301.57C147.262 1300.92 145.628 1299.82 144.151 1298.27C142.674 1296.71 141.487 1294.6 140.593 1291.94C139.698 1289.27 139.25 1285.92 139.25 1281.89C139.25 1278.02 139.612 1274.6 140.337 1271.62C141.061 1268.62 142.112 1266.1 143.49 1264.05C144.868 1261.99 146.53 1260.43 148.476 1259.37C150.436 1258.3 152.645 1257.77 155.103 1257.77C157.546 1257.77 159.719 1258.26 161.622 1259.24C163.54 1260.2 165.103 1261.55 166.31 1263.29C167.517 1265.02 168.299 1267.01 168.654 1269.27H163.455C162.972 1267.31 162.034 1265.69 160.642 1264.39C159.25 1263.1 157.404 1262.45 155.103 1262.45C151.722 1262.45 149.059 1263.92 147.112 1266.87C145.181 1269.81 144.208 1273.93 144.193 1279.24H144.534C145.33 1278.04 146.274 1277.01 147.368 1276.15C148.476 1275.29 149.698 1274.62 151.033 1274.15C152.368 1273.68 153.782 1273.45 155.273 1273.45C157.773 1273.45 160.06 1274.07 162.134 1275.32C164.208 1276.56 165.87 1278.27 167.12 1280.46C168.37 1282.63 168.995 1285.12 168.995 1287.94C168.995 1290.64 168.391 1293.11 167.184 1295.35C165.976 1297.58 164.279 1299.36 162.091 1300.68C159.918 1301.99 157.361 1302.62 154.421 1302.6ZM154.421 1297.91C156.21 1297.91 157.816 1297.46 159.236 1296.57C160.671 1295.67 161.8 1294.47 162.624 1292.97C163.462 1291.46 163.881 1289.78 163.881 1287.94C163.881 1286.13 163.476 1284.49 162.666 1283.02C161.871 1281.52 160.77 1280.34 159.364 1279.46C157.972 1278.58 156.381 1278.14 154.591 1278.14C153.242 1278.14 151.985 1278.41 150.82 1278.95C149.655 1279.47 148.632 1280.2 147.752 1281.12C146.885 1282.04 146.203 1283.1 145.706 1284.29C145.209 1285.47 144.96 1286.72 144.96 1288.02C144.96 1289.76 145.365 1291.37 146.175 1292.88C146.999 1294.39 148.121 1295.6 149.541 1296.52C150.976 1297.45 152.603 1297.91 154.421 1297.91ZM181.123 1296.42C180.072 1296.42 179.17 1296.04 178.418 1295.29C177.665 1294.54 177.288 1293.63 177.288 1292.58C177.288 1291.53 177.665 1290.63 178.418 1289.88C179.17 1289.12 180.072 1288.75 181.123 1288.75C182.175 1288.75 183.077 1289.12 183.829 1289.88C184.582 1290.63 184.959 1291.53 184.959 1292.58C184.959 1293.28 184.781 1293.92 184.426 1294.5C184.085 1295.08 183.623 1295.55 183.041 1295.91C182.473 1296.25 181.834 1296.42 181.123 1296.42ZM181.123 1274.34C180.072 1274.34 179.17 1273.97 178.418 1273.21C177.665 1272.46 177.288 1271.56 177.288 1270.51C177.288 1269.46 177.665 1268.56 178.418 1267.8C179.17 1267.05 180.072 1266.67 181.123 1266.67C182.175 1266.67 183.077 1267.05 183.829 1267.8C184.582 1268.56 184.959 1269.46 184.959 1270.51C184.959 1271.2 184.781 1271.84 184.426 1272.43C184.085 1273.01 183.623 1273.48 183.041 1273.83C182.473 1274.17 181.834 1274.34 181.123 1274.34ZM208.641 1302.6C205.829 1302.6 203.322 1302.11 201.12 1301.15C198.932 1300.18 197.192 1298.84 195.9 1297.12C194.621 1295.39 193.925 1293.38 193.812 1291.09H199.181C199.295 1292.5 199.778 1293.71 200.63 1294.73C201.482 1295.74 202.597 1296.52 203.975 1297.08C205.353 1297.63 206.88 1297.91 208.556 1297.91C210.431 1297.91 212.093 1297.58 213.542 1296.93C214.991 1296.28 216.127 1295.37 216.951 1294.2C217.775 1293.04 218.187 1291.69 218.187 1290.15C218.187 1288.55 217.789 1287.13 216.994 1285.91C216.198 1284.68 215.033 1283.71 213.499 1283.02C211.965 1282.32 210.09 1281.97 207.874 1281.97H204.38V1277.28H207.874C209.607 1277.28 211.127 1276.97 212.434 1276.35C213.755 1275.72 214.785 1274.84 215.523 1273.7C216.276 1272.57 216.653 1271.23 216.653 1269.7C216.653 1268.22 216.326 1266.94 215.672 1265.84C215.019 1264.75 214.096 1263.9 212.903 1263.29C211.724 1262.67 210.332 1262.37 208.726 1262.37C207.221 1262.37 205.8 1262.65 204.465 1263.2C203.144 1263.74 202.065 1264.53 201.226 1265.57C200.388 1266.59 199.934 1267.82 199.863 1269.27H194.749C194.834 1266.99 195.523 1264.98 196.816 1263.26C198.109 1261.53 199.799 1260.18 201.887 1259.22C203.989 1258.25 206.297 1257.77 208.812 1257.77C211.511 1257.77 213.826 1258.31 215.758 1259.41C217.69 1260.49 219.174 1261.91 220.211 1263.69C221.248 1265.47 221.766 1267.38 221.766 1269.44C221.766 1271.9 221.12 1274 219.827 1275.73C218.549 1277.46 216.809 1278.66 214.607 1279.33V1279.67C217.363 1280.12 219.515 1281.3 221.063 1283.19C222.611 1285.06 223.386 1287.38 223.386 1290.15C223.386 1292.53 222.739 1294.66 221.447 1296.55C220.168 1298.42 218.421 1299.9 216.205 1300.98C213.989 1302.06 211.468 1302.6 208.641 1302.6ZM246.333 1302.6C243.123 1302.6 240.388 1301.72 238.13 1299.98C235.871 1298.21 234.146 1295.66 232.952 1292.33C231.759 1288.97 231.163 1284.93 231.163 1280.18C231.163 1275.47 231.759 1271.44 232.952 1268.1C234.16 1264.75 235.893 1262.19 238.151 1260.43C240.424 1258.65 243.151 1257.77 246.333 1257.77C249.515 1257.77 252.235 1258.65 254.494 1260.43C256.766 1262.19 258.499 1264.75 259.692 1268.1C260.9 1271.44 261.503 1275.47 261.503 1280.18C261.503 1284.93 260.907 1288.97 259.714 1292.33C258.521 1295.66 256.795 1298.21 254.536 1299.98C252.278 1301.72 249.543 1302.6 246.333 1302.6ZM246.333 1297.91C249.515 1297.91 251.986 1296.37 253.748 1293.31C255.509 1290.24 256.39 1285.86 256.39 1280.18C256.39 1276.4 255.985 1273.19 255.175 1270.53C254.38 1267.87 253.229 1265.85 251.724 1264.46C250.232 1263.07 248.435 1262.37 246.333 1262.37C243.18 1262.37 240.715 1263.92 238.94 1267.04C237.164 1270.13 236.276 1274.51 236.276 1280.18C236.276 1283.96 236.674 1287.17 237.469 1289.81C238.265 1292.45 239.408 1294.46 240.9 1295.84C242.405 1297.22 244.217 1297.91 246.333 1297.91ZM287.242 1302V1258.36H301.986C305.41 1258.36 308.208 1258.98 310.381 1260.22C312.569 1261.44 314.188 1263.09 315.239 1265.18C316.29 1267.27 316.816 1269.6 316.816 1272.17C316.816 1274.74 316.29 1277.08 315.239 1279.18C314.202 1281.28 312.597 1282.96 310.424 1284.21C308.251 1285.44 305.467 1286.06 302.072 1286.06H291.503V1281.38H301.901C304.245 1281.38 306.127 1280.97 307.547 1280.16C308.968 1279.35 309.998 1278.26 310.637 1276.88C311.29 1275.49 311.617 1273.92 311.617 1272.17C311.617 1270.42 311.29 1268.86 310.637 1267.48C309.998 1266.11 308.961 1265.03 307.526 1264.24C306.092 1263.45 304.188 1263.05 301.816 1263.05H292.526V1302H287.242ZM325.328 1258.36H331.635L346.464 1294.59H346.976L361.805 1258.36H368.112V1302H363.169V1268.85H362.743L349.106 1302H344.334L330.697 1268.85H330.271V1302H325.328V1258.36Z\",fill:\"#A0BEEF\"})),_path14||(_path14=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1906.6C113.455 1906.6 110.72 1905.72 108.462 1903.98C106.203 1902.21 104.478 1899.66 103.284 1896.33C102.091 1892.97 101.495 1888.93 101.495 1884.18C101.495 1879.47 102.091 1875.44 103.284 1872.1C104.492 1868.75 106.225 1866.19 108.483 1864.43C110.756 1862.65 113.483 1861.77 116.665 1861.77C119.847 1861.77 122.567 1862.65 124.826 1864.43C127.098 1866.19 128.831 1868.75 130.024 1872.1C131.232 1875.44 131.835 1879.47 131.835 1884.18C131.835 1888.93 131.239 1892.97 130.046 1896.33C128.853 1899.66 127.127 1902.21 124.868 1903.98C122.61 1905.72 119.875 1906.6 116.665 1906.6ZM116.665 1901.91C119.847 1901.91 122.318 1900.37 124.08 1897.31C125.841 1894.24 126.722 1889.86 126.722 1884.18C126.722 1880.4 126.317 1877.19 125.507 1874.53C124.712 1871.87 123.561 1869.85 122.056 1868.46C120.564 1867.07 118.767 1866.37 116.665 1866.37C113.512 1866.37 111.047 1867.92 109.272 1871.04C107.496 1874.13 106.608 1878.51 106.608 1884.18C106.608 1887.96 107.006 1891.17 107.801 1893.81C108.597 1896.45 109.74 1898.46 111.232 1899.84C112.737 1901.22 114.549 1901.91 116.665 1901.91ZM154.421 1906.6C152.631 1906.57 150.841 1906.23 149.051 1905.57C147.262 1904.92 145.628 1903.82 144.151 1902.27C142.674 1900.71 141.487 1898.6 140.593 1895.94C139.698 1893.27 139.25 1889.92 139.25 1885.89C139.25 1882.02 139.612 1878.6 140.337 1875.62C141.061 1872.62 142.112 1870.1 143.49 1868.05C144.868 1865.99 146.53 1864.43 148.476 1863.37C150.436 1862.3 152.645 1861.77 155.103 1861.77C157.546 1861.77 159.719 1862.26 161.622 1863.24C163.54 1864.2 165.103 1865.55 166.31 1867.29C167.517 1869.02 168.299 1871.01 168.654 1873.27H163.455C162.972 1871.31 162.034 1869.69 160.642 1868.39C159.25 1867.1 157.404 1866.45 155.103 1866.45C151.722 1866.45 149.059 1867.92 147.112 1870.87C145.181 1873.81 144.208 1877.93 144.193 1883.24H144.534C145.33 1882.04 146.274 1881.01 147.368 1880.15C148.476 1879.29 149.698 1878.62 151.033 1878.15C152.368 1877.68 153.782 1877.45 155.273 1877.45C157.773 1877.45 160.06 1878.07 162.134 1879.32C164.208 1880.56 165.87 1882.27 167.12 1884.46C168.37 1886.63 168.995 1889.12 168.995 1891.94C168.995 1894.64 168.391 1897.11 167.184 1899.35C165.976 1901.58 164.279 1903.36 162.091 1904.68C159.918 1905.99 157.361 1906.62 154.421 1906.6ZM154.421 1901.91C156.21 1901.91 157.816 1901.46 159.236 1900.57C160.671 1899.67 161.8 1898.47 162.624 1896.97C163.462 1895.46 163.881 1893.78 163.881 1891.94C163.881 1890.13 163.476 1888.49 162.666 1887.02C161.871 1885.52 160.77 1884.34 159.364 1883.46C157.972 1882.58 156.381 1882.14 154.591 1882.14C153.242 1882.14 151.985 1882.41 150.82 1882.95C149.655 1883.47 148.632 1884.2 147.752 1885.12C146.885 1886.04 146.203 1887.1 145.706 1888.29C145.209 1889.47 144.96 1890.72 144.96 1892.02C144.96 1893.76 145.365 1895.37 146.175 1896.88C146.999 1898.39 148.121 1899.6 149.541 1900.52C150.976 1901.45 152.603 1901.91 154.421 1901.91ZM181.123 1900.42C180.072 1900.42 179.17 1900.04 178.418 1899.29C177.665 1898.54 177.288 1897.63 177.288 1896.58C177.288 1895.53 177.665 1894.63 178.418 1893.88C179.17 1893.12 180.072 1892.75 181.123 1892.75C182.175 1892.75 183.077 1893.12 183.829 1893.88C184.582 1894.63 184.959 1895.53 184.959 1896.58C184.959 1897.28 184.781 1897.92 184.426 1898.5C184.085 1899.08 183.623 1899.55 183.041 1899.91C182.473 1900.25 181.834 1900.42 181.123 1900.42ZM181.123 1878.34C180.072 1878.34 179.17 1877.97 178.418 1877.21C177.665 1876.46 177.288 1875.56 177.288 1874.51C177.288 1873.46 177.665 1872.56 178.418 1871.8C179.17 1871.05 180.072 1870.67 181.123 1870.67C182.175 1870.67 183.077 1871.05 183.829 1871.8C184.582 1872.56 184.959 1873.46 184.959 1874.51C184.959 1875.2 184.781 1875.84 184.426 1876.43C184.085 1877.01 183.623 1877.48 183.041 1877.83C182.473 1878.17 181.834 1878.34 181.123 1878.34ZM208.641 1906.6C205.829 1906.6 203.322 1906.11 201.12 1905.15C198.932 1904.18 197.192 1902.84 195.9 1901.12C194.621 1899.39 193.925 1897.38 193.812 1895.09H199.181C199.295 1896.5 199.778 1897.71 200.63 1898.73C201.482 1899.74 202.597 1900.52 203.975 1901.08C205.353 1901.63 206.88 1901.91 208.556 1901.91C210.431 1901.91 212.093 1901.58 213.542 1900.93C214.991 1900.28 216.127 1899.37 216.951 1898.2C217.775 1897.04 218.187 1895.69 218.187 1894.15C218.187 1892.55 217.789 1891.13 216.994 1889.91C216.198 1888.68 215.033 1887.71 213.499 1887.02C211.965 1886.32 210.09 1885.97 207.874 1885.97H204.38V1881.28H207.874C209.607 1881.28 211.127 1880.97 212.434 1880.35C213.755 1879.72 214.785 1878.84 215.523 1877.7C216.276 1876.57 216.653 1875.23 216.653 1873.7C216.653 1872.22 216.326 1870.94 215.672 1869.84C215.019 1868.75 214.096 1867.9 212.903 1867.29C211.724 1866.67 210.332 1866.37 208.726 1866.37C207.221 1866.37 205.8 1866.65 204.465 1867.2C203.144 1867.74 202.065 1868.53 201.226 1869.57C200.388 1870.59 199.934 1871.82 199.863 1873.27H194.749C194.834 1870.99 195.523 1868.98 196.816 1867.26C198.109 1865.53 199.799 1864.18 201.887 1863.22C203.989 1862.25 206.297 1861.77 208.812 1861.77C211.511 1861.77 213.826 1862.31 215.758 1863.41C217.69 1864.49 219.174 1865.91 220.211 1867.69C221.248 1869.47 221.766 1871.38 221.766 1873.44C221.766 1875.9 221.12 1878 219.827 1879.73C218.549 1881.46 216.809 1882.66 214.607 1883.33V1883.67C217.363 1884.12 219.515 1885.3 221.063 1887.19C222.611 1889.06 223.386 1891.38 223.386 1894.15C223.386 1896.53 222.739 1898.66 221.447 1900.55C220.168 1902.42 218.421 1903.9 216.205 1904.98C213.989 1906.06 211.468 1906.6 208.641 1906.6ZM246.333 1906.6C243.123 1906.6 240.388 1905.72 238.13 1903.98C235.871 1902.21 234.146 1899.66 232.952 1896.33C231.759 1892.97 231.163 1888.93 231.163 1884.18C231.163 1879.47 231.759 1875.44 232.952 1872.1C234.16 1868.75 235.893 1866.19 238.151 1864.43C240.424 1862.65 243.151 1861.77 246.333 1861.77C249.515 1861.77 252.235 1862.65 254.494 1864.43C256.766 1866.19 258.499 1868.75 259.692 1872.1C260.9 1875.44 261.503 1879.47 261.503 1884.18C261.503 1888.93 260.907 1892.97 259.714 1896.33C258.521 1899.66 256.795 1902.21 254.536 1903.98C252.278 1905.72 249.543 1906.6 246.333 1906.6ZM246.333 1901.91C249.515 1901.91 251.986 1900.37 253.748 1897.31C255.509 1894.24 256.39 1889.86 256.39 1884.18C256.39 1880.4 255.985 1877.19 255.175 1874.53C254.38 1871.87 253.229 1869.85 251.724 1868.46C250.232 1867.07 248.435 1866.37 246.333 1866.37C243.18 1866.37 240.715 1867.92 238.94 1871.04C237.164 1874.13 236.276 1878.51 236.276 1884.18C236.276 1887.96 236.674 1891.17 237.469 1893.81C238.265 1896.45 239.408 1898.46 240.9 1899.84C242.405 1901.22 244.217 1901.91 246.333 1901.91ZM287.242 1906V1862.36H301.986C305.41 1862.36 308.208 1862.98 310.381 1864.22C312.569 1865.44 314.188 1867.09 315.239 1869.18C316.29 1871.27 316.816 1873.6 316.816 1876.17C316.816 1878.74 316.29 1881.08 315.239 1883.18C314.202 1885.28 312.597 1886.96 310.424 1888.21C308.251 1889.44 305.467 1890.06 302.072 1890.06H291.503V1885.38H301.901C304.245 1885.38 306.127 1884.97 307.547 1884.16C308.968 1883.35 309.998 1882.26 310.637 1880.88C311.29 1879.49 311.617 1877.92 311.617 1876.17C311.617 1874.42 311.29 1872.86 310.637 1871.48C309.998 1870.11 308.961 1869.03 307.526 1868.24C306.092 1867.45 304.188 1867.05 301.816 1867.05H292.526V1906H287.242ZM325.328 1862.36H331.635L346.464 1898.59H346.976L361.805 1862.36H368.112V1906H363.169V1872.85H362.743L349.106 1906H344.334L330.697 1872.85H330.271V1906H325.328V1862.36Z\",fill:\"#A0BEEF\"})),_path15||(_path15=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 1453.6C113.455 1453.6 110.72 1452.72 108.462 1450.98C106.203 1449.21 104.478 1446.66 103.284 1443.33C102.091 1439.97 101.495 1435.93 101.495 1431.18C101.495 1426.47 102.091 1422.44 103.284 1419.1C104.492 1415.75 106.225 1413.19 108.483 1411.43C110.756 1409.65 113.483 1408.77 116.665 1408.77C119.847 1408.77 122.567 1409.65 124.826 1411.43C127.098 1413.19 128.831 1415.75 130.024 1419.1C131.232 1422.44 131.835 1426.47 131.835 1431.18C131.835 1435.93 131.239 1439.97 130.046 1443.33C128.853 1446.66 127.127 1449.21 124.868 1450.98C122.61 1452.72 119.875 1453.6 116.665 1453.6ZM116.665 1448.91C119.847 1448.91 122.318 1447.37 124.08 1444.31C125.841 1441.24 126.722 1436.86 126.722 1431.18C126.722 1427.4 126.317 1424.19 125.507 1421.53C124.712 1418.87 123.561 1416.85 122.056 1415.46C120.564 1414.07 118.767 1413.37 116.665 1413.37C113.512 1413.37 111.047 1414.92 109.272 1418.04C107.496 1421.13 106.608 1425.51 106.608 1431.18C106.608 1434.96 107.006 1438.17 107.801 1440.81C108.597 1443.45 109.74 1445.46 111.232 1446.84C112.737 1448.22 114.549 1448.91 116.665 1448.91ZM140.124 1453L159.641 1414.39V1414.05H137.141V1409.36H165.095V1414.31L145.664 1453H140.124ZM174.737 1447.42C173.686 1447.42 172.784 1447.04 172.031 1446.29C171.278 1445.54 170.902 1444.63 170.902 1443.58C170.902 1442.53 171.278 1441.63 172.031 1440.88C172.784 1440.12 173.686 1439.75 174.737 1439.75C175.788 1439.75 176.69 1440.12 177.443 1440.88C178.196 1441.63 178.572 1442.53 178.572 1443.58C178.572 1444.28 178.394 1444.92 178.039 1445.5C177.698 1446.08 177.237 1446.55 176.654 1446.91C176.086 1447.25 175.447 1447.42 174.737 1447.42ZM174.737 1425.34C173.686 1425.34 172.784 1424.97 172.031 1424.21C171.278 1423.46 170.902 1422.56 170.902 1421.51C170.902 1420.46 171.278 1419.56 172.031 1418.8C172.784 1418.05 173.686 1417.67 174.737 1417.67C175.788 1417.67 176.69 1418.05 177.443 1418.8C178.196 1419.56 178.572 1420.46 178.572 1421.51C178.572 1422.2 178.394 1422.84 178.039 1423.43C177.698 1424.01 177.237 1424.48 176.654 1424.83C176.086 1425.17 175.447 1425.34 174.737 1425.34ZM201.743 1453.6C198.533 1453.6 195.799 1452.72 193.54 1450.98C191.282 1449.21 189.556 1446.66 188.362 1443.33C187.169 1439.97 186.573 1435.93 186.573 1431.18C186.573 1426.47 187.169 1422.44 188.362 1419.1C189.57 1415.75 191.303 1413.19 193.561 1411.43C195.834 1409.65 198.561 1408.77 201.743 1408.77C204.925 1408.77 207.645 1409.65 209.904 1411.43C212.176 1413.19 213.909 1415.75 215.103 1419.1C216.31 1422.44 216.914 1426.47 216.914 1431.18C216.914 1435.93 216.317 1439.97 215.124 1443.33C213.931 1446.66 212.205 1449.21 209.946 1450.98C207.688 1452.72 204.953 1453.6 201.743 1453.6ZM201.743 1448.91C204.925 1448.91 207.397 1447.37 209.158 1444.31C210.919 1441.24 211.8 1436.86 211.8 1431.18C211.8 1427.4 211.395 1424.19 210.585 1421.53C209.79 1418.87 208.639 1416.85 207.134 1415.46C205.642 1414.07 203.845 1413.37 201.743 1413.37C198.59 1413.37 196.125 1414.92 194.35 1418.04C192.574 1421.13 191.686 1425.51 191.686 1431.18C191.686 1434.96 192.084 1438.17 192.88 1440.81C193.675 1443.45 194.818 1445.46 196.31 1446.84C197.816 1448.22 199.627 1448.91 201.743 1448.91ZM239.243 1453.6C236.033 1453.6 233.299 1452.72 231.04 1450.98C228.782 1449.21 227.056 1446.66 225.862 1443.33C224.669 1439.97 224.073 1435.93 224.073 1431.18C224.073 1426.47 224.669 1422.44 225.862 1419.1C227.07 1415.75 228.803 1413.19 231.061 1411.43C233.334 1409.65 236.061 1408.77 239.243 1408.77C242.425 1408.77 245.145 1409.65 247.404 1411.43C249.676 1413.19 251.409 1415.75 252.603 1419.1C253.81 1422.44 254.414 1426.47 254.414 1431.18C254.414 1435.93 253.817 1439.97 252.624 1443.33C251.431 1446.66 249.705 1449.21 247.446 1450.98C245.188 1452.72 242.453 1453.6 239.243 1453.6ZM239.243 1448.91C242.425 1448.91 244.897 1447.37 246.658 1444.31C248.419 1441.24 249.3 1436.86 249.3 1431.18C249.3 1427.4 248.895 1424.19 248.085 1421.53C247.29 1418.87 246.139 1416.85 244.634 1415.46C243.142 1414.07 241.345 1413.37 239.243 1413.37C236.09 1413.37 233.625 1414.92 231.85 1418.04C230.074 1421.13 229.186 1425.51 229.186 1431.18C229.186 1434.96 229.584 1438.17 230.38 1440.81C231.175 1443.45 232.318 1445.46 233.81 1446.84C235.316 1448.22 237.127 1448.91 239.243 1448.91ZM280.152 1453V1409.36H294.897C298.32 1409.36 301.118 1409.98 303.291 1411.22C305.479 1412.44 307.098 1414.09 308.149 1416.18C309.201 1418.27 309.726 1420.6 309.726 1423.17C309.726 1425.74 309.201 1428.08 308.149 1430.18C307.112 1432.28 305.507 1433.96 303.334 1435.21C301.161 1436.44 298.377 1437.06 294.982 1437.06H284.414V1432.38H294.811C297.155 1432.38 299.037 1431.97 300.458 1431.16C301.878 1430.35 302.908 1429.26 303.547 1427.88C304.201 1426.49 304.527 1424.92 304.527 1423.17C304.527 1421.42 304.201 1419.86 303.547 1418.48C302.908 1417.11 301.871 1416.03 300.436 1415.24C299.002 1414.45 297.098 1414.05 294.726 1414.05H285.436V1453H280.152ZM318.238 1409.36H324.545L339.375 1445.59H339.886L354.715 1409.36H361.022V1453H356.079V1419.85H355.653L342.017 1453H337.244L323.608 1419.85H323.181V1453H318.238V1409.36Z\",fill:\"#A0BEEF\"})),_path16||(_path16=/*#__PURE__*/React.createElement(\"path\",{d:\"M116.665 2057.6C113.455 2057.6 110.72 2056.72 108.462 2054.98C106.203 2053.21 104.478 2050.66 103.284 2047.33C102.091 2043.97 101.495 2039.93 101.495 2035.18C101.495 2030.47 102.091 2026.44 103.284 2023.1C104.492 2019.75 106.225 2017.19 108.483 2015.43C110.756 2013.65 113.483 2012.77 116.665 2012.77C119.847 2012.77 122.567 2013.65 124.826 2015.43C127.098 2017.19 128.831 2019.75 130.024 2023.1C131.232 2026.44 131.835 2030.47 131.835 2035.18C131.835 2039.93 131.239 2043.97 130.046 2047.33C128.853 2050.66 127.127 2053.21 124.868 2054.98C122.61 2056.72 119.875 2057.6 116.665 2057.6ZM116.665 2052.91C119.847 2052.91 122.318 2051.37 124.08 2048.31C125.841 2045.24 126.722 2040.86 126.722 2035.18C126.722 2031.4 126.317 2028.19 125.507 2025.53C124.712 2022.87 123.561 2020.85 122.056 2019.46C120.564 2018.07 118.767 2017.37 116.665 2017.37C113.512 2017.37 111.047 2018.92 109.272 2022.04C107.496 2025.13 106.608 2029.51 106.608 2035.18C106.608 2038.96 107.006 2042.17 107.801 2044.81C108.597 2047.45 109.74 2049.46 111.232 2050.84C112.737 2052.22 114.549 2052.91 116.665 2052.91ZM140.124 2057L159.641 2018.39V2018.05H137.141V2013.36H165.095V2018.31L145.664 2057H140.124ZM174.737 2051.42C173.686 2051.42 172.784 2051.04 172.031 2050.29C171.278 2049.54 170.902 2048.63 170.902 2047.58C170.902 2046.53 171.278 2045.63 172.031 2044.88C172.784 2044.12 173.686 2043.75 174.737 2043.75C175.788 2043.75 176.69 2044.12 177.443 2044.88C178.196 2045.63 178.572 2046.53 178.572 2047.58C178.572 2048.28 178.394 2048.92 178.039 2049.5C177.698 2050.08 177.237 2050.55 176.654 2050.91C176.086 2051.25 175.447 2051.42 174.737 2051.42ZM174.737 2029.34C173.686 2029.34 172.784 2028.97 172.031 2028.21C171.278 2027.46 170.902 2026.56 170.902 2025.51C170.902 2024.46 171.278 2023.56 172.031 2022.8C172.784 2022.05 173.686 2021.67 174.737 2021.67C175.788 2021.67 176.69 2022.05 177.443 2022.8C178.196 2023.56 178.572 2024.46 178.572 2025.51C178.572 2026.2 178.394 2026.84 178.039 2027.43C177.698 2028.01 177.237 2028.48 176.654 2028.83C176.086 2029.17 175.447 2029.34 174.737 2029.34ZM201.743 2057.6C198.533 2057.6 195.799 2056.72 193.54 2054.98C191.282 2053.21 189.556 2050.66 188.362 2047.33C187.169 2043.97 186.573 2039.93 186.573 2035.18C186.573 2030.47 187.169 2026.44 188.362 2023.1C189.57 2019.75 191.303 2017.19 193.561 2015.43C195.834 2013.65 198.561 2012.77 201.743 2012.77C204.925 2012.77 207.645 2013.65 209.904 2015.43C212.176 2017.19 213.909 2019.75 215.103 2023.1C216.31 2026.44 216.914 2030.47 216.914 2035.18C216.914 2039.93 216.317 2043.97 215.124 2047.33C213.931 2050.66 212.205 2053.21 209.946 2054.98C207.688 2056.72 204.953 2057.6 201.743 2057.6ZM201.743 2052.91C204.925 2052.91 207.397 2051.37 209.158 2048.31C210.919 2045.24 211.8 2040.86 211.8 2035.18C211.8 2031.4 211.395 2028.19 210.585 2025.53C209.79 2022.87 208.639 2020.85 207.134 2019.46C205.642 2018.07 203.845 2017.37 201.743 2017.37C198.59 2017.37 196.125 2018.92 194.35 2022.04C192.574 2025.13 191.686 2029.51 191.686 2035.18C191.686 2038.96 192.084 2042.17 192.88 2044.81C193.675 2047.45 194.818 2049.46 196.31 2050.84C197.816 2052.22 199.627 2052.91 201.743 2052.91ZM239.243 2057.6C236.033 2057.6 233.299 2056.72 231.04 2054.98C228.782 2053.21 227.056 2050.66 225.862 2047.33C224.669 2043.97 224.073 2039.93 224.073 2035.18C224.073 2030.47 224.669 2026.44 225.862 2023.1C227.07 2019.75 228.803 2017.19 231.061 2015.43C233.334 2013.65 236.061 2012.77 239.243 2012.77C242.425 2012.77 245.145 2013.65 247.404 2015.43C249.676 2017.19 251.409 2019.75 252.603 2023.1C253.81 2026.44 254.414 2030.47 254.414 2035.18C254.414 2039.93 253.817 2043.97 252.624 2047.33C251.431 2050.66 249.705 2053.21 247.446 2054.98C245.188 2056.72 242.453 2057.6 239.243 2057.6ZM239.243 2052.91C242.425 2052.91 244.897 2051.37 246.658 2048.31C248.419 2045.24 249.3 2040.86 249.3 2035.18C249.3 2031.4 248.895 2028.19 248.085 2025.53C247.29 2022.87 246.139 2020.85 244.634 2019.46C243.142 2018.07 241.345 2017.37 239.243 2017.37C236.09 2017.37 233.625 2018.92 231.85 2022.04C230.074 2025.13 229.186 2029.51 229.186 2035.18C229.186 2038.96 229.584 2042.17 230.38 2044.81C231.175 2047.45 232.318 2049.46 233.81 2050.84C235.316 2052.22 237.127 2052.91 239.243 2052.91ZM280.152 2057V2013.36H294.897C298.32 2013.36 301.118 2013.98 303.291 2015.22C305.479 2016.44 307.098 2018.09 308.149 2020.18C309.201 2022.27 309.726 2024.6 309.726 2027.17C309.726 2029.74 309.201 2032.08 308.149 2034.18C307.112 2036.28 305.507 2037.96 303.334 2039.21C301.161 2040.44 298.377 2041.06 294.982 2041.06H284.414V2036.38H294.811C297.155 2036.38 299.037 2035.97 300.458 2035.16C301.878 2034.35 302.908 2033.26 303.547 2031.88C304.201 2030.49 304.527 2028.92 304.527 2027.17C304.527 2025.42 304.201 2023.86 303.547 2022.48C302.908 2021.11 301.871 2020.03 300.436 2019.24C299.002 2018.45 297.098 2018.05 294.726 2018.05H285.436V2057H280.152ZM318.238 2013.36H324.545L339.375 2049.59H339.886L354.715 2013.36H361.022V2057H356.079V2023.85H355.653L342.017 2057H337.244L323.608 2023.85H323.181V2057H318.238V2013.36Z\",fill:\"#A0BEEF\"})),_path17||(_path17=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 931H970.217C964.574 931 960 935.574 960 941.217V1019.54C960 1025.18 964.574 1029.75 970.217 1029.75H1311.8C1317.45 1029.75 1322.02 1025.18 1322.02 1019.54V941.217C1322.02 935.574 1317.45 931 1311.8 931Z\",fill:\"#158CE5\"})),_path18||(_path18=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 983.773H1052.64L1056.28 988.567L1057.24 989.845L1062.67 997.068H1058.33L1054.75 992.274L1053.85 991.06L1048.29 983.773ZM1064.01 977.636C1064.01 981.088 1063.39 984.071 1062.14 986.585C1060.9 989.099 1059.19 991.038 1057.01 992.402C1054.84 993.766 1052.36 994.447 1049.57 994.447C1046.78 994.447 1044.29 993.766 1042.12 992.402C1039.95 991.038 1038.24 989.099 1036.99 986.585C1035.75 984.071 1035.12 981.088 1035.12 977.636C1035.12 974.185 1035.75 971.202 1036.99 968.688C1038.24 966.173 1039.95 964.234 1042.12 962.871C1044.29 961.507 1046.78 960.825 1049.57 960.825C1052.36 960.825 1054.84 961.507 1057.01 962.871C1059.19 964.234 1060.9 966.173 1062.14 968.688C1063.39 971.202 1064.01 974.185 1064.01 977.636ZM1060.18 977.636C1060.18 974.803 1059.7 972.411 1058.76 970.461C1057.82 968.512 1056.55 967.036 1054.94 966.035C1053.34 965.033 1051.55 964.533 1049.57 964.533C1047.59 964.533 1045.79 965.033 1044.18 966.035C1042.58 967.036 1041.31 968.512 1040.36 970.461C1039.43 972.411 1038.96 974.803 1038.96 977.636C1038.96 980.47 1039.43 982.862 1040.36 984.811C1041.31 986.761 1042.58 988.237 1044.18 989.238C1045.79 990.239 1047.59 990.74 1049.57 990.74C1051.55 990.74 1053.34 990.239 1054.94 989.238C1056.55 988.237 1057.82 986.761 1058.76 984.811C1059.7 982.862 1060.18 980.47 1060.18 977.636ZM1085.64 983.964V969.455H1089.41V994H1085.64V989.845H1085.38C1084.8 991.092 1083.91 992.152 1082.69 993.025C1081.48 993.888 1079.95 994.32 1078.09 994.32C1076.56 994.32 1075.19 993.984 1074 993.313C1072.81 992.631 1071.87 991.608 1071.19 990.245C1070.51 988.87 1070.17 987.139 1070.17 985.051V969.455H1073.94V984.795C1073.94 986.585 1074.44 988.013 1075.44 989.078C1076.45 990.143 1077.74 990.676 1079.31 990.676C1080.24 990.676 1081.2 990.436 1082.17 989.957C1083.15 989.478 1083.97 988.743 1084.63 987.752C1085.3 986.761 1085.64 985.499 1085.64 983.964ZM1096.31 994V969.455H1100.09V994H1096.31ZM1098.23 965.364C1097.5 965.364 1096.86 965.113 1096.33 964.613C1095.81 964.112 1095.55 963.51 1095.55 962.807C1095.55 962.104 1095.81 961.502 1096.33 961.001C1096.86 960.5 1097.5 960.25 1098.23 960.25C1098.97 960.25 1099.6 960.5 1100.12 961.001C1100.65 961.502 1100.92 962.104 1100.92 962.807C1100.92 963.51 1100.65 964.112 1100.12 964.613C1099.6 965.113 1098.97 965.364 1098.23 965.364ZM1116.96 994.511C1114.66 994.511 1112.68 993.968 1111.02 992.881C1109.36 991.795 1108.08 990.298 1107.18 988.391C1106.29 986.484 1105.84 984.305 1105.84 981.855C1105.84 979.362 1106.3 977.162 1107.22 975.255C1108.14 973.338 1109.43 971.841 1111.08 970.765C1112.75 969.678 1114.68 969.135 1116.9 969.135C1118.63 969.135 1120.18 969.455 1121.57 970.094C1122.95 970.733 1124.09 971.628 1124.97 972.778C1125.85 973.929 1126.4 975.271 1126.62 976.805H1122.84C1122.56 975.687 1121.92 974.696 1120.93 973.833C1119.95 972.96 1118.63 972.523 1116.96 972.523C1115.49 972.523 1114.21 972.906 1113.1 973.673C1112 974.43 1111.14 975.5 1110.52 976.885C1109.92 978.26 1109.61 979.874 1109.61 981.727C1109.61 983.624 1109.91 985.275 1110.51 986.681C1111.12 988.087 1111.97 989.179 1113.07 989.957C1114.17 990.735 1115.47 991.124 1116.96 991.124C1117.94 991.124 1118.83 990.953 1119.63 990.612C1120.43 990.271 1121.11 989.781 1121.66 989.142C1122.22 988.503 1122.61 987.736 1122.84 986.841H1126.62C1126.4 988.29 1125.88 989.595 1125.03 990.756C1124.2 991.907 1123.1 992.823 1121.73 993.505C1120.36 994.176 1118.78 994.511 1116.96 994.511ZM1135.65 985.051L1135.58 980.385H1136.35L1147.09 969.455H1151.75L1140.31 981.024H1139.99L1135.65 985.051ZM1132.13 994V961.273H1135.9V994H1132.13ZM1147.73 994L1138.14 981.855L1140.82 979.234L1152.52 994H1147.73ZM1189.33 969.455L1180.26 994H1176.42L1167.35 969.455H1171.44L1178.21 989.014H1178.47L1185.24 969.455H1189.33ZM1194.31 994V969.455H1198.08V994H1194.31ZM1196.23 965.364C1195.49 965.364 1194.86 965.113 1194.33 964.613C1193.81 964.112 1193.55 963.51 1193.55 962.807C1193.55 962.104 1193.81 961.502 1194.33 961.001C1194.86 960.5 1195.49 960.25 1196.23 960.25C1196.96 960.25 1197.59 960.5 1198.12 961.001C1198.65 961.502 1198.91 962.104 1198.91 962.807C1198.91 963.51 1198.65 964.112 1198.12 964.613C1197.59 965.113 1196.96 965.364 1196.23 965.364ZM1215.28 994.511C1212.92 994.511 1210.88 993.989 1209.16 992.945C1207.46 991.891 1206.14 990.42 1205.21 988.535C1204.3 986.638 1203.84 984.433 1203.84 981.919C1203.84 979.405 1204.3 977.189 1205.21 975.271C1206.14 973.343 1207.43 971.841 1209.08 970.765C1210.74 969.678 1212.68 969.135 1214.9 969.135C1216.18 969.135 1217.44 969.348 1218.69 969.774C1219.93 970.2 1221.07 970.893 1222.09 971.852C1223.11 972.8 1223.93 974.057 1224.53 975.623C1225.14 977.189 1225.45 979.117 1225.45 981.408V983.006H1206.52V979.746H1221.61C1221.61 978.361 1221.33 977.125 1220.78 976.038C1220.24 974.952 1219.46 974.094 1218.45 973.466C1217.44 972.837 1216.26 972.523 1214.9 972.523C1213.4 972.523 1212.1 972.896 1211 973.641C1209.91 974.376 1209.08 975.335 1208.49 976.518C1207.9 977.7 1207.61 978.968 1207.61 980.321V982.494C1207.61 984.348 1207.93 985.919 1208.57 987.208C1209.22 988.487 1210.12 989.462 1211.27 990.133C1212.42 990.793 1213.76 991.124 1215.28 991.124C1216.27 991.124 1217.17 990.985 1217.97 990.708C1218.78 990.42 1219.47 989.994 1220.06 989.43C1220.65 988.854 1221.1 988.141 1221.42 987.288L1225.06 988.311C1224.68 989.547 1224.03 990.634 1223.13 991.571C1222.22 992.498 1221.1 993.222 1219.77 993.744C1218.44 994.256 1216.94 994.511 1215.28 994.511ZM1236.74 994L1229.26 969.455H1233.23L1238.53 988.247H1238.79L1244.03 969.455H1248.06L1253.23 988.183H1253.49L1258.8 969.455H1262.76L1255.28 994H1251.57L1246.2 975.143H1245.82L1240.45 994H1236.74Z\",fill:\"white\"})),_path19||(_path19=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1535H970.217C964.574 1535 960 1539.57 960 1545.22V1623.54C960 1629.18 964.574 1633.75 970.217 1633.75H1311.8C1317.45 1633.75 1322.02 1629.18 1322.02 1623.54V1545.22C1322.02 1539.57 1317.45 1535 1311.8 1535Z\",fill:\"#158CE5\"})),_path20||(_path20=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 1587.77H1052.64L1056.28 1592.57L1057.24 1593.85L1062.67 1601.07H1058.33L1054.75 1596.27L1053.85 1595.06L1048.29 1587.77ZM1064.01 1581.64C1064.01 1585.09 1063.39 1588.07 1062.14 1590.59C1060.9 1593.1 1059.19 1595.04 1057.01 1596.4C1054.84 1597.77 1052.36 1598.45 1049.57 1598.45C1046.78 1598.45 1044.29 1597.77 1042.12 1596.4C1039.95 1595.04 1038.24 1593.1 1036.99 1590.59C1035.75 1588.07 1035.12 1585.09 1035.12 1581.64C1035.12 1578.18 1035.75 1575.2 1036.99 1572.69C1038.24 1570.17 1039.95 1568.23 1042.12 1566.87C1044.29 1565.51 1046.78 1564.83 1049.57 1564.83C1052.36 1564.83 1054.84 1565.51 1057.01 1566.87C1059.19 1568.23 1060.9 1570.17 1062.14 1572.69C1063.39 1575.2 1064.01 1578.18 1064.01 1581.64ZM1060.18 1581.64C1060.18 1578.8 1059.7 1576.41 1058.76 1574.46C1057.82 1572.51 1056.55 1571.04 1054.94 1570.03C1053.34 1569.03 1051.55 1568.53 1049.57 1568.53C1047.59 1568.53 1045.79 1569.03 1044.18 1570.03C1042.58 1571.04 1041.31 1572.51 1040.36 1574.46C1039.43 1576.41 1038.96 1578.8 1038.96 1581.64C1038.96 1584.47 1039.43 1586.86 1040.36 1588.81C1041.31 1590.76 1042.58 1592.24 1044.18 1593.24C1045.79 1594.24 1047.59 1594.74 1049.57 1594.74C1051.55 1594.74 1053.34 1594.24 1054.94 1593.24C1056.55 1592.24 1057.82 1590.76 1058.76 1588.81C1059.7 1586.86 1060.18 1584.47 1060.18 1581.64ZM1085.64 1587.96V1573.45H1089.41V1598H1085.64V1593.85H1085.38C1084.8 1595.09 1083.91 1596.15 1082.69 1597.03C1081.48 1597.89 1079.95 1598.32 1078.09 1598.32C1076.56 1598.32 1075.19 1597.98 1074 1597.31C1072.81 1596.63 1071.87 1595.61 1071.19 1594.24C1070.51 1592.87 1070.17 1591.14 1070.17 1589.05V1573.45H1073.94V1588.8C1073.94 1590.59 1074.44 1592.01 1075.44 1593.08C1076.45 1594.14 1077.74 1594.68 1079.31 1594.68C1080.24 1594.68 1081.2 1594.44 1082.17 1593.96C1083.15 1593.48 1083.97 1592.74 1084.63 1591.75C1085.3 1590.76 1085.64 1589.5 1085.64 1587.96ZM1096.31 1598V1573.45H1100.09V1598H1096.31ZM1098.23 1569.36C1097.5 1569.36 1096.86 1569.11 1096.33 1568.61C1095.81 1568.11 1095.55 1567.51 1095.55 1566.81C1095.55 1566.1 1095.81 1565.5 1096.33 1565C1096.86 1564.5 1097.5 1564.25 1098.23 1564.25C1098.97 1564.25 1099.6 1564.5 1100.12 1565C1100.65 1565.5 1100.92 1566.1 1100.92 1566.81C1100.92 1567.51 1100.65 1568.11 1100.12 1568.61C1099.6 1569.11 1098.97 1569.36 1098.23 1569.36ZM1116.96 1598.51C1114.66 1598.51 1112.68 1597.97 1111.02 1596.88C1109.36 1595.79 1108.08 1594.3 1107.18 1592.39C1106.29 1590.48 1105.84 1588.31 1105.84 1585.86C1105.84 1583.36 1106.3 1581.16 1107.22 1579.26C1108.14 1577.34 1109.43 1575.84 1111.08 1574.76C1112.75 1573.68 1114.68 1573.13 1116.9 1573.13C1118.63 1573.13 1120.18 1573.45 1121.57 1574.09C1122.95 1574.73 1124.09 1575.63 1124.97 1576.78C1125.85 1577.93 1126.4 1579.27 1126.62 1580.81H1122.84C1122.56 1579.69 1121.92 1578.7 1120.93 1577.83C1119.95 1576.96 1118.63 1576.52 1116.96 1576.52C1115.49 1576.52 1114.21 1576.91 1113.1 1577.67C1112 1578.43 1111.14 1579.5 1110.52 1580.89C1109.92 1582.26 1109.61 1583.87 1109.61 1585.73C1109.61 1587.62 1109.91 1589.27 1110.51 1590.68C1111.12 1592.09 1111.97 1593.18 1113.07 1593.96C1114.17 1594.73 1115.47 1595.12 1116.96 1595.12C1117.94 1595.12 1118.83 1594.95 1119.63 1594.61C1120.43 1594.27 1121.11 1593.78 1121.66 1593.14C1122.22 1592.5 1122.61 1591.74 1122.84 1590.84H1126.62C1126.4 1592.29 1125.88 1593.59 1125.03 1594.76C1124.2 1595.91 1123.1 1596.82 1121.73 1597.5C1120.36 1598.18 1118.78 1598.51 1116.96 1598.51ZM1135.65 1589.05L1135.58 1584.38H1136.35L1147.09 1573.45H1151.75L1140.31 1585.02H1139.99L1135.65 1589.05ZM1132.13 1598V1565.27H1135.9V1598H1132.13ZM1147.73 1598L1138.14 1585.86L1140.82 1583.23L1152.52 1598H1147.73ZM1189.33 1573.45L1180.26 1598H1176.42L1167.35 1573.45H1171.44L1178.21 1593.01H1178.47L1185.24 1573.45H1189.33ZM1194.31 1598V1573.45H1198.08V1598H1194.31ZM1196.23 1569.36C1195.49 1569.36 1194.86 1569.11 1194.33 1568.61C1193.81 1568.11 1193.55 1567.51 1193.55 1566.81C1193.55 1566.1 1193.81 1565.5 1194.33 1565C1194.86 1564.5 1195.49 1564.25 1196.23 1564.25C1196.96 1564.25 1197.59 1564.5 1198.12 1565C1198.65 1565.5 1198.91 1566.1 1198.91 1566.81C1198.91 1567.51 1198.65 1568.11 1198.12 1568.61C1197.59 1569.11 1196.96 1569.36 1196.23 1569.36ZM1215.28 1598.51C1212.92 1598.51 1210.88 1597.99 1209.16 1596.95C1207.46 1595.89 1206.14 1594.42 1205.21 1592.53C1204.3 1590.64 1203.84 1588.43 1203.84 1585.92C1203.84 1583.4 1204.3 1581.19 1205.21 1579.27C1206.14 1577.34 1207.43 1575.84 1209.08 1574.76C1210.74 1573.68 1212.68 1573.13 1214.9 1573.13C1216.18 1573.13 1217.44 1573.35 1218.69 1573.77C1219.93 1574.2 1221.07 1574.89 1222.09 1575.85C1223.11 1576.8 1223.93 1578.06 1224.53 1579.62C1225.14 1581.19 1225.45 1583.12 1225.45 1585.41V1587.01H1206.52V1583.75H1221.61C1221.61 1582.36 1221.33 1581.12 1220.78 1580.04C1220.24 1578.95 1219.46 1578.09 1218.45 1577.47C1217.44 1576.84 1216.26 1576.52 1214.9 1576.52C1213.4 1576.52 1212.1 1576.9 1211 1577.64C1209.91 1578.38 1209.08 1579.34 1208.49 1580.52C1207.9 1581.7 1207.61 1582.97 1207.61 1584.32V1586.49C1207.61 1588.35 1207.93 1589.92 1208.57 1591.21C1209.22 1592.49 1210.12 1593.46 1211.27 1594.13C1212.42 1594.79 1213.76 1595.12 1215.28 1595.12C1216.27 1595.12 1217.17 1594.99 1217.97 1594.71C1218.78 1594.42 1219.47 1593.99 1220.06 1593.43C1220.65 1592.85 1221.1 1592.14 1221.42 1591.29L1225.06 1592.31C1224.68 1593.55 1224.03 1594.63 1223.13 1595.57C1222.22 1596.5 1221.1 1597.22 1219.77 1597.74C1218.44 1598.26 1216.94 1598.51 1215.28 1598.51ZM1236.74 1598L1229.26 1573.45H1233.23L1238.53 1592.25H1238.79L1244.03 1573.45H1248.06L1253.23 1592.18H1253.49L1258.8 1573.45H1262.76L1255.28 1598H1251.57L1246.2 1579.14H1245.82L1240.45 1598H1236.74Z\",fill:\"white\"})),_path21||(_path21=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1082H970.217C964.574 1082 960 1086.57 960 1092.22V1170.54C960 1176.18 964.574 1180.75 970.217 1180.75H1311.8C1317.45 1180.75 1322.02 1176.18 1322.02 1170.54V1092.22C1322.02 1086.57 1317.45 1082 1311.8 1082Z\",fill:\"#158CE5\"})),_path22||(_path22=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 1134.77H1052.64L1056.28 1139.57L1057.24 1140.85L1062.67 1148.07H1058.33L1054.75 1143.27L1053.85 1142.06L1048.29 1134.77ZM1064.01 1128.64C1064.01 1132.09 1063.39 1135.07 1062.14 1137.59C1060.9 1140.1 1059.19 1142.04 1057.01 1143.4C1054.84 1144.77 1052.36 1145.45 1049.57 1145.45C1046.78 1145.45 1044.29 1144.77 1042.12 1143.4C1039.95 1142.04 1038.24 1140.1 1036.99 1137.59C1035.75 1135.07 1035.12 1132.09 1035.12 1128.64C1035.12 1125.18 1035.75 1122.2 1036.99 1119.69C1038.24 1117.17 1039.95 1115.23 1042.12 1113.87C1044.29 1112.51 1046.78 1111.83 1049.57 1111.83C1052.36 1111.83 1054.84 1112.51 1057.01 1113.87C1059.19 1115.23 1060.9 1117.17 1062.14 1119.69C1063.39 1122.2 1064.01 1125.18 1064.01 1128.64ZM1060.18 1128.64C1060.18 1125.8 1059.7 1123.41 1058.76 1121.46C1057.82 1119.51 1056.55 1118.04 1054.94 1117.03C1053.34 1116.03 1051.55 1115.53 1049.57 1115.53C1047.59 1115.53 1045.79 1116.03 1044.18 1117.03C1042.58 1118.04 1041.31 1119.51 1040.36 1121.46C1039.43 1123.41 1038.96 1125.8 1038.96 1128.64C1038.96 1131.47 1039.43 1133.86 1040.36 1135.81C1041.31 1137.76 1042.58 1139.24 1044.18 1140.24C1045.79 1141.24 1047.59 1141.74 1049.57 1141.74C1051.55 1141.74 1053.34 1141.24 1054.94 1140.24C1056.55 1139.24 1057.82 1137.76 1058.76 1135.81C1059.7 1133.86 1060.18 1131.47 1060.18 1128.64ZM1085.64 1134.96V1120.45H1089.41V1145H1085.64V1140.85H1085.38C1084.8 1142.09 1083.91 1143.15 1082.69 1144.03C1081.48 1144.89 1079.95 1145.32 1078.09 1145.32C1076.56 1145.32 1075.19 1144.98 1074 1144.31C1072.81 1143.63 1071.87 1142.61 1071.19 1141.24C1070.51 1139.87 1070.17 1138.14 1070.17 1136.05V1120.45H1073.94V1135.8C1073.94 1137.59 1074.44 1139.01 1075.44 1140.08C1076.45 1141.14 1077.74 1141.68 1079.31 1141.68C1080.24 1141.68 1081.2 1141.44 1082.17 1140.96C1083.15 1140.48 1083.97 1139.74 1084.63 1138.75C1085.3 1137.76 1085.64 1136.5 1085.64 1134.96ZM1096.31 1145V1120.45H1100.09V1145H1096.31ZM1098.23 1116.36C1097.5 1116.36 1096.86 1116.11 1096.33 1115.61C1095.81 1115.11 1095.55 1114.51 1095.55 1113.81C1095.55 1113.1 1095.81 1112.5 1096.33 1112C1096.86 1111.5 1097.5 1111.25 1098.23 1111.25C1098.97 1111.25 1099.6 1111.5 1100.12 1112C1100.65 1112.5 1100.92 1113.1 1100.92 1113.81C1100.92 1114.51 1100.65 1115.11 1100.12 1115.61C1099.6 1116.11 1098.97 1116.36 1098.23 1116.36ZM1116.96 1145.51C1114.66 1145.51 1112.68 1144.97 1111.02 1143.88C1109.36 1142.79 1108.08 1141.3 1107.18 1139.39C1106.29 1137.48 1105.84 1135.31 1105.84 1132.86C1105.84 1130.36 1106.3 1128.16 1107.22 1126.26C1108.14 1124.34 1109.43 1122.84 1111.08 1121.76C1112.75 1120.68 1114.68 1120.13 1116.9 1120.13C1118.63 1120.13 1120.18 1120.45 1121.57 1121.09C1122.95 1121.73 1124.09 1122.63 1124.97 1123.78C1125.85 1124.93 1126.4 1126.27 1126.62 1127.81H1122.84C1122.56 1126.69 1121.92 1125.7 1120.93 1124.83C1119.95 1123.96 1118.63 1123.52 1116.96 1123.52C1115.49 1123.52 1114.21 1123.91 1113.1 1124.67C1112 1125.43 1111.14 1126.5 1110.52 1127.89C1109.92 1129.26 1109.61 1130.87 1109.61 1132.73C1109.61 1134.62 1109.91 1136.27 1110.51 1137.68C1111.12 1139.09 1111.97 1140.18 1113.07 1140.96C1114.17 1141.73 1115.47 1142.12 1116.96 1142.12C1117.94 1142.12 1118.83 1141.95 1119.63 1141.61C1120.43 1141.27 1121.11 1140.78 1121.66 1140.14C1122.22 1139.5 1122.61 1138.74 1122.84 1137.84H1126.62C1126.4 1139.29 1125.88 1140.59 1125.03 1141.76C1124.2 1142.91 1123.1 1143.82 1121.73 1144.5C1120.36 1145.18 1118.78 1145.51 1116.96 1145.51ZM1135.65 1136.05L1135.58 1131.38H1136.35L1147.09 1120.45H1151.75L1140.31 1132.02H1139.99L1135.65 1136.05ZM1132.13 1145V1112.27H1135.9V1145H1132.13ZM1147.73 1145L1138.14 1132.86L1140.82 1130.23L1152.52 1145H1147.73ZM1189.33 1120.45L1180.26 1145H1176.42L1167.35 1120.45H1171.44L1178.21 1140.01H1178.47L1185.24 1120.45H1189.33ZM1194.31 1145V1120.45H1198.08V1145H1194.31ZM1196.23 1116.36C1195.49 1116.36 1194.86 1116.11 1194.33 1115.61C1193.81 1115.11 1193.55 1114.51 1193.55 1113.81C1193.55 1113.1 1193.81 1112.5 1194.33 1112C1194.86 1111.5 1195.49 1111.25 1196.23 1111.25C1196.96 1111.25 1197.59 1111.5 1198.12 1112C1198.65 1112.5 1198.91 1113.1 1198.91 1113.81C1198.91 1114.51 1198.65 1115.11 1198.12 1115.61C1197.59 1116.11 1196.96 1116.36 1196.23 1116.36ZM1215.28 1145.51C1212.92 1145.51 1210.88 1144.99 1209.16 1143.95C1207.46 1142.89 1206.14 1141.42 1205.21 1139.53C1204.3 1137.64 1203.84 1135.43 1203.84 1132.92C1203.84 1130.4 1204.3 1128.19 1205.21 1126.27C1206.14 1124.34 1207.43 1122.84 1209.08 1121.76C1210.74 1120.68 1212.68 1120.13 1214.9 1120.13C1216.18 1120.13 1217.44 1120.35 1218.69 1120.77C1219.93 1121.2 1221.07 1121.89 1222.09 1122.85C1223.11 1123.8 1223.93 1125.06 1224.53 1126.62C1225.14 1128.19 1225.45 1130.12 1225.45 1132.41V1134.01H1206.52V1130.75H1221.61C1221.61 1129.36 1221.33 1128.12 1220.78 1127.04C1220.24 1125.95 1219.46 1125.09 1218.45 1124.47C1217.44 1123.84 1216.26 1123.52 1214.9 1123.52C1213.4 1123.52 1212.1 1123.9 1211 1124.64C1209.91 1125.38 1209.08 1126.34 1208.49 1127.52C1207.9 1128.7 1207.61 1129.97 1207.61 1131.32V1133.49C1207.61 1135.35 1207.93 1136.92 1208.57 1138.21C1209.22 1139.49 1210.12 1140.46 1211.27 1141.13C1212.42 1141.79 1213.76 1142.12 1215.28 1142.12C1216.27 1142.12 1217.17 1141.99 1217.97 1141.71C1218.78 1141.42 1219.47 1140.99 1220.06 1140.43C1220.65 1139.85 1221.1 1139.14 1221.42 1138.29L1225.06 1139.31C1224.68 1140.55 1224.03 1141.63 1223.13 1142.57C1222.22 1143.5 1221.1 1144.22 1219.77 1144.74C1218.44 1145.26 1216.94 1145.51 1215.28 1145.51ZM1236.74 1145L1229.26 1120.45H1233.23L1238.53 1139.25H1238.79L1244.03 1120.45H1248.06L1253.23 1139.18H1253.49L1258.8 1120.45H1262.76L1255.28 1145H1251.57L1246.2 1126.14H1245.82L1240.45 1145H1236.74Z\",fill:\"white\"})),_path23||(_path23=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1686H970.217C964.574 1686 960 1690.57 960 1696.22V1774.54C960 1780.18 964.574 1784.75 970.217 1784.75H1311.8C1317.45 1784.75 1322.02 1780.18 1322.02 1774.54V1696.22C1322.02 1690.57 1317.45 1686 1311.8 1686Z\",fill:\"#158CE5\"})),_path24||(_path24=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 1738.77H1052.64L1056.28 1743.57L1057.24 1744.85L1062.67 1752.07H1058.33L1054.75 1747.27L1053.85 1746.06L1048.29 1738.77ZM1064.01 1732.64C1064.01 1736.09 1063.39 1739.07 1062.14 1741.59C1060.9 1744.1 1059.19 1746.04 1057.01 1747.4C1054.84 1748.77 1052.36 1749.45 1049.57 1749.45C1046.78 1749.45 1044.29 1748.77 1042.12 1747.4C1039.95 1746.04 1038.24 1744.1 1036.99 1741.59C1035.75 1739.07 1035.12 1736.09 1035.12 1732.64C1035.12 1729.18 1035.75 1726.2 1036.99 1723.69C1038.24 1721.17 1039.95 1719.23 1042.12 1717.87C1044.29 1716.51 1046.78 1715.83 1049.57 1715.83C1052.36 1715.83 1054.84 1716.51 1057.01 1717.87C1059.19 1719.23 1060.9 1721.17 1062.14 1723.69C1063.39 1726.2 1064.01 1729.18 1064.01 1732.64ZM1060.18 1732.64C1060.18 1729.8 1059.7 1727.41 1058.76 1725.46C1057.82 1723.51 1056.55 1722.04 1054.94 1721.03C1053.34 1720.03 1051.55 1719.53 1049.57 1719.53C1047.59 1719.53 1045.79 1720.03 1044.18 1721.03C1042.58 1722.04 1041.31 1723.51 1040.36 1725.46C1039.43 1727.41 1038.96 1729.8 1038.96 1732.64C1038.96 1735.47 1039.43 1737.86 1040.36 1739.81C1041.31 1741.76 1042.58 1743.24 1044.18 1744.24C1045.79 1745.24 1047.59 1745.74 1049.57 1745.74C1051.55 1745.74 1053.34 1745.24 1054.94 1744.24C1056.55 1743.24 1057.82 1741.76 1058.76 1739.81C1059.7 1737.86 1060.18 1735.47 1060.18 1732.64ZM1085.64 1738.96V1724.45H1089.41V1749H1085.64V1744.85H1085.38C1084.8 1746.09 1083.91 1747.15 1082.69 1748.03C1081.48 1748.89 1079.95 1749.32 1078.09 1749.32C1076.56 1749.32 1075.19 1748.98 1074 1748.31C1072.81 1747.63 1071.87 1746.61 1071.19 1745.24C1070.51 1743.87 1070.17 1742.14 1070.17 1740.05V1724.45H1073.94V1739.8C1073.94 1741.59 1074.44 1743.01 1075.44 1744.08C1076.45 1745.14 1077.74 1745.68 1079.31 1745.68C1080.24 1745.68 1081.2 1745.44 1082.17 1744.96C1083.15 1744.48 1083.97 1743.74 1084.63 1742.75C1085.3 1741.76 1085.64 1740.5 1085.64 1738.96ZM1096.31 1749V1724.45H1100.09V1749H1096.31ZM1098.23 1720.36C1097.5 1720.36 1096.86 1720.11 1096.33 1719.61C1095.81 1719.11 1095.55 1718.51 1095.55 1717.81C1095.55 1717.1 1095.81 1716.5 1096.33 1716C1096.86 1715.5 1097.5 1715.25 1098.23 1715.25C1098.97 1715.25 1099.6 1715.5 1100.12 1716C1100.65 1716.5 1100.92 1717.1 1100.92 1717.81C1100.92 1718.51 1100.65 1719.11 1100.12 1719.61C1099.6 1720.11 1098.97 1720.36 1098.23 1720.36ZM1116.96 1749.51C1114.66 1749.51 1112.68 1748.97 1111.02 1747.88C1109.36 1746.79 1108.08 1745.3 1107.18 1743.39C1106.29 1741.48 1105.84 1739.31 1105.84 1736.86C1105.84 1734.36 1106.3 1732.16 1107.22 1730.26C1108.14 1728.34 1109.43 1726.84 1111.08 1725.76C1112.75 1724.68 1114.68 1724.13 1116.9 1724.13C1118.63 1724.13 1120.18 1724.45 1121.57 1725.09C1122.95 1725.73 1124.09 1726.63 1124.97 1727.78C1125.85 1728.93 1126.4 1730.27 1126.62 1731.81H1122.84C1122.56 1730.69 1121.92 1729.7 1120.93 1728.83C1119.95 1727.96 1118.63 1727.52 1116.96 1727.52C1115.49 1727.52 1114.21 1727.91 1113.1 1728.67C1112 1729.43 1111.14 1730.5 1110.52 1731.89C1109.92 1733.26 1109.61 1734.87 1109.61 1736.73C1109.61 1738.62 1109.91 1740.27 1110.51 1741.68C1111.12 1743.09 1111.97 1744.18 1113.07 1744.96C1114.17 1745.73 1115.47 1746.12 1116.96 1746.12C1117.94 1746.12 1118.83 1745.95 1119.63 1745.61C1120.43 1745.27 1121.11 1744.78 1121.66 1744.14C1122.22 1743.5 1122.61 1742.74 1122.84 1741.84H1126.62C1126.4 1743.29 1125.88 1744.59 1125.03 1745.76C1124.2 1746.91 1123.1 1747.82 1121.73 1748.5C1120.36 1749.18 1118.78 1749.51 1116.96 1749.51ZM1135.65 1740.05L1135.58 1735.38H1136.35L1147.09 1724.45H1151.75L1140.31 1736.02H1139.99L1135.65 1740.05ZM1132.13 1749V1716.27H1135.9V1749H1132.13ZM1147.73 1749L1138.14 1736.86L1140.82 1734.23L1152.52 1749H1147.73ZM1189.33 1724.45L1180.26 1749H1176.42L1167.35 1724.45H1171.44L1178.21 1744.01H1178.47L1185.24 1724.45H1189.33ZM1194.31 1749V1724.45H1198.08V1749H1194.31ZM1196.23 1720.36C1195.49 1720.36 1194.86 1720.11 1194.33 1719.61C1193.81 1719.11 1193.55 1718.51 1193.55 1717.81C1193.55 1717.1 1193.81 1716.5 1194.33 1716C1194.86 1715.5 1195.49 1715.25 1196.23 1715.25C1196.96 1715.25 1197.59 1715.5 1198.12 1716C1198.65 1716.5 1198.91 1717.1 1198.91 1717.81C1198.91 1718.51 1198.65 1719.11 1198.12 1719.61C1197.59 1720.11 1196.96 1720.36 1196.23 1720.36ZM1215.28 1749.51C1212.92 1749.51 1210.88 1748.99 1209.16 1747.95C1207.46 1746.89 1206.14 1745.42 1205.21 1743.53C1204.3 1741.64 1203.84 1739.43 1203.84 1736.92C1203.84 1734.4 1204.3 1732.19 1205.21 1730.27C1206.14 1728.34 1207.43 1726.84 1209.08 1725.76C1210.74 1724.68 1212.68 1724.13 1214.9 1724.13C1216.18 1724.13 1217.44 1724.35 1218.69 1724.77C1219.93 1725.2 1221.07 1725.89 1222.09 1726.85C1223.11 1727.8 1223.93 1729.06 1224.53 1730.62C1225.14 1732.19 1225.45 1734.12 1225.45 1736.41V1738.01H1206.52V1734.75H1221.61C1221.61 1733.36 1221.33 1732.12 1220.78 1731.04C1220.24 1729.95 1219.46 1729.09 1218.45 1728.47C1217.44 1727.84 1216.26 1727.52 1214.9 1727.52C1213.4 1727.52 1212.1 1727.9 1211 1728.64C1209.91 1729.38 1209.08 1730.34 1208.49 1731.52C1207.9 1732.7 1207.61 1733.97 1207.61 1735.32V1737.49C1207.61 1739.35 1207.93 1740.92 1208.57 1742.21C1209.22 1743.49 1210.12 1744.46 1211.27 1745.13C1212.42 1745.79 1213.76 1746.12 1215.28 1746.12C1216.27 1746.12 1217.17 1745.99 1217.97 1745.71C1218.78 1745.42 1219.47 1744.99 1220.06 1744.43C1220.65 1743.85 1221.1 1743.14 1221.42 1742.29L1225.06 1743.31C1224.68 1744.55 1224.03 1745.63 1223.13 1746.57C1222.22 1747.5 1221.1 1748.22 1219.77 1748.74C1218.44 1749.26 1216.94 1749.51 1215.28 1749.51ZM1236.74 1749L1229.26 1724.45H1233.23L1238.53 1743.25H1238.79L1244.03 1724.45H1248.06L1253.23 1743.18H1253.49L1258.8 1724.45H1262.76L1255.28 1749H1251.57L1246.2 1730.14H1245.82L1240.45 1749H1236.74Z\",fill:\"white\"})),_path25||(_path25=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1233H970.217C964.574 1233 960 1237.57 960 1243.22V1321.54C960 1327.18 964.574 1331.75 970.217 1331.75H1311.8C1317.45 1331.75 1322.02 1327.18 1322.02 1321.54V1243.22C1322.02 1237.57 1317.45 1233 1311.8 1233Z\",fill:\"#158CE5\"})),_path26||(_path26=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 1285.77H1052.64L1056.28 1290.57L1057.24 1291.85L1062.67 1299.07H1058.33L1054.75 1294.27L1053.85 1293.06L1048.29 1285.77ZM1064.01 1279.64C1064.01 1283.09 1063.39 1286.07 1062.14 1288.59C1060.9 1291.1 1059.19 1293.04 1057.01 1294.4C1054.84 1295.77 1052.36 1296.45 1049.57 1296.45C1046.78 1296.45 1044.29 1295.77 1042.12 1294.4C1039.95 1293.04 1038.24 1291.1 1036.99 1288.59C1035.75 1286.07 1035.12 1283.09 1035.12 1279.64C1035.12 1276.18 1035.75 1273.2 1036.99 1270.69C1038.24 1268.17 1039.95 1266.23 1042.12 1264.87C1044.29 1263.51 1046.78 1262.83 1049.57 1262.83C1052.36 1262.83 1054.84 1263.51 1057.01 1264.87C1059.19 1266.23 1060.9 1268.17 1062.14 1270.69C1063.39 1273.2 1064.01 1276.18 1064.01 1279.64ZM1060.18 1279.64C1060.18 1276.8 1059.7 1274.41 1058.76 1272.46C1057.82 1270.51 1056.55 1269.04 1054.94 1268.03C1053.34 1267.03 1051.55 1266.53 1049.57 1266.53C1047.59 1266.53 1045.79 1267.03 1044.18 1268.03C1042.58 1269.04 1041.31 1270.51 1040.36 1272.46C1039.43 1274.41 1038.96 1276.8 1038.96 1279.64C1038.96 1282.47 1039.43 1284.86 1040.36 1286.81C1041.31 1288.76 1042.58 1290.24 1044.18 1291.24C1045.79 1292.24 1047.59 1292.74 1049.57 1292.74C1051.55 1292.74 1053.34 1292.24 1054.94 1291.24C1056.55 1290.24 1057.82 1288.76 1058.76 1286.81C1059.7 1284.86 1060.18 1282.47 1060.18 1279.64ZM1085.64 1285.96V1271.45H1089.41V1296H1085.64V1291.85H1085.38C1084.8 1293.09 1083.91 1294.15 1082.69 1295.03C1081.48 1295.89 1079.95 1296.32 1078.09 1296.32C1076.56 1296.32 1075.19 1295.98 1074 1295.31C1072.81 1294.63 1071.87 1293.61 1071.19 1292.24C1070.51 1290.87 1070.17 1289.14 1070.17 1287.05V1271.45H1073.94V1286.8C1073.94 1288.59 1074.44 1290.01 1075.44 1291.08C1076.45 1292.14 1077.74 1292.68 1079.31 1292.68C1080.24 1292.68 1081.2 1292.44 1082.17 1291.96C1083.15 1291.48 1083.97 1290.74 1084.63 1289.75C1085.3 1288.76 1085.64 1287.5 1085.64 1285.96ZM1096.31 1296V1271.45H1100.09V1296H1096.31ZM1098.23 1267.36C1097.5 1267.36 1096.86 1267.11 1096.33 1266.61C1095.81 1266.11 1095.55 1265.51 1095.55 1264.81C1095.55 1264.1 1095.81 1263.5 1096.33 1263C1096.86 1262.5 1097.5 1262.25 1098.23 1262.25C1098.97 1262.25 1099.6 1262.5 1100.12 1263C1100.65 1263.5 1100.92 1264.1 1100.92 1264.81C1100.92 1265.51 1100.65 1266.11 1100.12 1266.61C1099.6 1267.11 1098.97 1267.36 1098.23 1267.36ZM1116.96 1296.51C1114.66 1296.51 1112.68 1295.97 1111.02 1294.88C1109.36 1293.79 1108.08 1292.3 1107.18 1290.39C1106.29 1288.48 1105.84 1286.31 1105.84 1283.86C1105.84 1281.36 1106.3 1279.16 1107.22 1277.26C1108.14 1275.34 1109.43 1273.84 1111.08 1272.76C1112.75 1271.68 1114.68 1271.13 1116.9 1271.13C1118.63 1271.13 1120.18 1271.45 1121.57 1272.09C1122.95 1272.73 1124.09 1273.63 1124.97 1274.78C1125.85 1275.93 1126.4 1277.27 1126.62 1278.81H1122.84C1122.56 1277.69 1121.92 1276.7 1120.93 1275.83C1119.95 1274.96 1118.63 1274.52 1116.96 1274.52C1115.49 1274.52 1114.21 1274.91 1113.1 1275.67C1112 1276.43 1111.14 1277.5 1110.52 1278.89C1109.92 1280.26 1109.61 1281.87 1109.61 1283.73C1109.61 1285.62 1109.91 1287.27 1110.51 1288.68C1111.12 1290.09 1111.97 1291.18 1113.07 1291.96C1114.17 1292.73 1115.47 1293.12 1116.96 1293.12C1117.94 1293.12 1118.83 1292.95 1119.63 1292.61C1120.43 1292.27 1121.11 1291.78 1121.66 1291.14C1122.22 1290.5 1122.61 1289.74 1122.84 1288.84H1126.62C1126.4 1290.29 1125.88 1291.59 1125.03 1292.76C1124.2 1293.91 1123.1 1294.82 1121.73 1295.5C1120.36 1296.18 1118.78 1296.51 1116.96 1296.51ZM1135.65 1287.05L1135.58 1282.38H1136.35L1147.09 1271.45H1151.75L1140.31 1283.02H1139.99L1135.65 1287.05ZM1132.13 1296V1263.27H1135.9V1296H1132.13ZM1147.73 1296L1138.14 1283.86L1140.82 1281.23L1152.52 1296H1147.73ZM1189.33 1271.45L1180.26 1296H1176.42L1167.35 1271.45H1171.44L1178.21 1291.01H1178.47L1185.24 1271.45H1189.33ZM1194.31 1296V1271.45H1198.08V1296H1194.31ZM1196.23 1267.36C1195.49 1267.36 1194.86 1267.11 1194.33 1266.61C1193.81 1266.11 1193.55 1265.51 1193.55 1264.81C1193.55 1264.1 1193.81 1263.5 1194.33 1263C1194.86 1262.5 1195.49 1262.25 1196.23 1262.25C1196.96 1262.25 1197.59 1262.5 1198.12 1263C1198.65 1263.5 1198.91 1264.1 1198.91 1264.81C1198.91 1265.51 1198.65 1266.11 1198.12 1266.61C1197.59 1267.11 1196.96 1267.36 1196.23 1267.36ZM1215.28 1296.51C1212.92 1296.51 1210.88 1295.99 1209.16 1294.95C1207.46 1293.89 1206.14 1292.42 1205.21 1290.53C1204.3 1288.64 1203.84 1286.43 1203.84 1283.92C1203.84 1281.4 1204.3 1279.19 1205.21 1277.27C1206.14 1275.34 1207.43 1273.84 1209.08 1272.76C1210.74 1271.68 1212.68 1271.13 1214.9 1271.13C1216.18 1271.13 1217.44 1271.35 1218.69 1271.77C1219.93 1272.2 1221.07 1272.89 1222.09 1273.85C1223.11 1274.8 1223.93 1276.06 1224.53 1277.62C1225.14 1279.19 1225.45 1281.12 1225.45 1283.41V1285.01H1206.52V1281.75H1221.61C1221.61 1280.36 1221.33 1279.12 1220.78 1278.04C1220.24 1276.95 1219.46 1276.09 1218.45 1275.47C1217.44 1274.84 1216.26 1274.52 1214.9 1274.52C1213.4 1274.52 1212.1 1274.9 1211 1275.64C1209.91 1276.38 1209.08 1277.34 1208.49 1278.52C1207.9 1279.7 1207.61 1280.97 1207.61 1282.32V1284.49C1207.61 1286.35 1207.93 1287.92 1208.57 1289.21C1209.22 1290.49 1210.12 1291.46 1211.27 1292.13C1212.42 1292.79 1213.76 1293.12 1215.28 1293.12C1216.27 1293.12 1217.17 1292.99 1217.97 1292.71C1218.78 1292.42 1219.47 1291.99 1220.06 1291.43C1220.65 1290.85 1221.1 1290.14 1221.42 1289.29L1225.06 1290.31C1224.68 1291.55 1224.03 1292.63 1223.13 1293.57C1222.22 1294.5 1221.1 1295.22 1219.77 1295.74C1218.44 1296.26 1216.94 1296.51 1215.28 1296.51ZM1236.74 1296L1229.26 1271.45H1233.23L1238.53 1290.25H1238.79L1244.03 1271.45H1248.06L1253.23 1290.18H1253.49L1258.8 1271.45H1262.76L1255.28 1296H1251.57L1246.2 1277.14H1245.82L1240.45 1296H1236.74Z\",fill:\"white\"})),_path27||(_path27=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1837H970.217C964.574 1837 960 1841.57 960 1847.22V1925.54C960 1931.18 964.574 1935.75 970.217 1935.75H1311.8C1317.45 1935.75 1322.02 1931.18 1322.02 1925.54V1847.22C1322.02 1841.57 1317.45 1837 1311.8 1837Z\",fill:\"#158CE5\"})),_path28||(_path28=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 1889.77H1052.64L1056.28 1894.57L1057.24 1895.85L1062.67 1903.07H1058.33L1054.75 1898.27L1053.85 1897.06L1048.29 1889.77ZM1064.01 1883.64C1064.01 1887.09 1063.39 1890.07 1062.14 1892.59C1060.9 1895.1 1059.19 1897.04 1057.01 1898.4C1054.84 1899.77 1052.36 1900.45 1049.57 1900.45C1046.78 1900.45 1044.29 1899.77 1042.12 1898.4C1039.95 1897.04 1038.24 1895.1 1036.99 1892.59C1035.75 1890.07 1035.12 1887.09 1035.12 1883.64C1035.12 1880.18 1035.75 1877.2 1036.99 1874.69C1038.24 1872.17 1039.95 1870.23 1042.12 1868.87C1044.29 1867.51 1046.78 1866.83 1049.57 1866.83C1052.36 1866.83 1054.84 1867.51 1057.01 1868.87C1059.19 1870.23 1060.9 1872.17 1062.14 1874.69C1063.39 1877.2 1064.01 1880.18 1064.01 1883.64ZM1060.18 1883.64C1060.18 1880.8 1059.7 1878.41 1058.76 1876.46C1057.82 1874.51 1056.55 1873.04 1054.94 1872.03C1053.34 1871.03 1051.55 1870.53 1049.57 1870.53C1047.59 1870.53 1045.79 1871.03 1044.18 1872.03C1042.58 1873.04 1041.31 1874.51 1040.36 1876.46C1039.43 1878.41 1038.96 1880.8 1038.96 1883.64C1038.96 1886.47 1039.43 1888.86 1040.36 1890.81C1041.31 1892.76 1042.58 1894.24 1044.18 1895.24C1045.79 1896.24 1047.59 1896.74 1049.57 1896.74C1051.55 1896.74 1053.34 1896.24 1054.94 1895.24C1056.55 1894.24 1057.82 1892.76 1058.76 1890.81C1059.7 1888.86 1060.18 1886.47 1060.18 1883.64ZM1085.64 1889.96V1875.45H1089.41V1900H1085.64V1895.85H1085.38C1084.8 1897.09 1083.91 1898.15 1082.69 1899.03C1081.48 1899.89 1079.95 1900.32 1078.09 1900.32C1076.56 1900.32 1075.19 1899.98 1074 1899.31C1072.81 1898.63 1071.87 1897.61 1071.19 1896.24C1070.51 1894.87 1070.17 1893.14 1070.17 1891.05V1875.45H1073.94V1890.8C1073.94 1892.59 1074.44 1894.01 1075.44 1895.08C1076.45 1896.14 1077.74 1896.68 1079.31 1896.68C1080.24 1896.68 1081.2 1896.44 1082.17 1895.96C1083.15 1895.48 1083.97 1894.74 1084.63 1893.75C1085.3 1892.76 1085.64 1891.5 1085.64 1889.96ZM1096.31 1900V1875.45H1100.09V1900H1096.31ZM1098.23 1871.36C1097.5 1871.36 1096.86 1871.11 1096.33 1870.61C1095.81 1870.11 1095.55 1869.51 1095.55 1868.81C1095.55 1868.1 1095.81 1867.5 1096.33 1867C1096.86 1866.5 1097.5 1866.25 1098.23 1866.25C1098.97 1866.25 1099.6 1866.5 1100.12 1867C1100.65 1867.5 1100.92 1868.1 1100.92 1868.81C1100.92 1869.51 1100.65 1870.11 1100.12 1870.61C1099.6 1871.11 1098.97 1871.36 1098.23 1871.36ZM1116.96 1900.51C1114.66 1900.51 1112.68 1899.97 1111.02 1898.88C1109.36 1897.79 1108.08 1896.3 1107.18 1894.39C1106.29 1892.48 1105.84 1890.31 1105.84 1887.86C1105.84 1885.36 1106.3 1883.16 1107.22 1881.26C1108.14 1879.34 1109.43 1877.84 1111.08 1876.76C1112.75 1875.68 1114.68 1875.13 1116.9 1875.13C1118.63 1875.13 1120.18 1875.45 1121.57 1876.09C1122.95 1876.73 1124.09 1877.63 1124.97 1878.78C1125.85 1879.93 1126.4 1881.27 1126.62 1882.81H1122.84C1122.56 1881.69 1121.92 1880.7 1120.93 1879.83C1119.95 1878.96 1118.63 1878.52 1116.96 1878.52C1115.49 1878.52 1114.21 1878.91 1113.1 1879.67C1112 1880.43 1111.14 1881.5 1110.52 1882.89C1109.92 1884.26 1109.61 1885.87 1109.61 1887.73C1109.61 1889.62 1109.91 1891.27 1110.51 1892.68C1111.12 1894.09 1111.97 1895.18 1113.07 1895.96C1114.17 1896.73 1115.47 1897.12 1116.96 1897.12C1117.94 1897.12 1118.83 1896.95 1119.63 1896.61C1120.43 1896.27 1121.11 1895.78 1121.66 1895.14C1122.22 1894.5 1122.61 1893.74 1122.84 1892.84H1126.62C1126.4 1894.29 1125.88 1895.59 1125.03 1896.76C1124.2 1897.91 1123.1 1898.82 1121.73 1899.5C1120.36 1900.18 1118.78 1900.51 1116.96 1900.51ZM1135.65 1891.05L1135.58 1886.38H1136.35L1147.09 1875.45H1151.75L1140.31 1887.02H1139.99L1135.65 1891.05ZM1132.13 1900V1867.27H1135.9V1900H1132.13ZM1147.73 1900L1138.14 1887.86L1140.82 1885.23L1152.52 1900H1147.73ZM1189.33 1875.45L1180.26 1900H1176.42L1167.35 1875.45H1171.44L1178.21 1895.01H1178.47L1185.24 1875.45H1189.33ZM1194.31 1900V1875.45H1198.08V1900H1194.31ZM1196.23 1871.36C1195.49 1871.36 1194.86 1871.11 1194.33 1870.61C1193.81 1870.11 1193.55 1869.51 1193.55 1868.81C1193.55 1868.1 1193.81 1867.5 1194.33 1867C1194.86 1866.5 1195.49 1866.25 1196.23 1866.25C1196.96 1866.25 1197.59 1866.5 1198.12 1867C1198.65 1867.5 1198.91 1868.1 1198.91 1868.81C1198.91 1869.51 1198.65 1870.11 1198.12 1870.61C1197.59 1871.11 1196.96 1871.36 1196.23 1871.36ZM1215.28 1900.51C1212.92 1900.51 1210.88 1899.99 1209.16 1898.95C1207.46 1897.89 1206.14 1896.42 1205.21 1894.53C1204.3 1892.64 1203.84 1890.43 1203.84 1887.92C1203.84 1885.4 1204.3 1883.19 1205.21 1881.27C1206.14 1879.34 1207.43 1877.84 1209.08 1876.76C1210.74 1875.68 1212.68 1875.13 1214.9 1875.13C1216.18 1875.13 1217.44 1875.35 1218.69 1875.77C1219.93 1876.2 1221.07 1876.89 1222.09 1877.85C1223.11 1878.8 1223.93 1880.06 1224.53 1881.62C1225.14 1883.19 1225.45 1885.12 1225.45 1887.41V1889.01H1206.52V1885.75H1221.61C1221.61 1884.36 1221.33 1883.12 1220.78 1882.04C1220.24 1880.95 1219.46 1880.09 1218.45 1879.47C1217.44 1878.84 1216.26 1878.52 1214.9 1878.52C1213.4 1878.52 1212.1 1878.9 1211 1879.64C1209.91 1880.38 1209.08 1881.34 1208.49 1882.52C1207.9 1883.7 1207.61 1884.97 1207.61 1886.32V1888.49C1207.61 1890.35 1207.93 1891.92 1208.57 1893.21C1209.22 1894.49 1210.12 1895.46 1211.27 1896.13C1212.42 1896.79 1213.76 1897.12 1215.28 1897.12C1216.27 1897.12 1217.17 1896.99 1217.97 1896.71C1218.78 1896.42 1219.47 1895.99 1220.06 1895.43C1220.65 1894.85 1221.1 1894.14 1221.42 1893.29L1225.06 1894.31C1224.68 1895.55 1224.03 1896.63 1223.13 1897.57C1222.22 1898.5 1221.1 1899.22 1219.77 1899.74C1218.44 1900.26 1216.94 1900.51 1215.28 1900.51ZM1236.74 1900L1229.26 1875.45H1233.23L1238.53 1894.25H1238.79L1244.03 1875.45H1248.06L1253.23 1894.18H1253.49L1258.8 1875.45H1262.76L1255.28 1900H1251.57L1246.2 1881.14H1245.82L1240.45 1900H1236.74Z\",fill:\"white\"})),_path29||(_path29=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1384H970.217C964.574 1384 960 1388.57 960 1394.22V1472.54C960 1478.18 964.574 1482.75 970.217 1482.75H1311.8C1317.45 1482.75 1322.02 1478.18 1322.02 1472.54V1394.22C1322.02 1388.57 1317.45 1384 1311.8 1384Z\",fill:\"#158CE5\"})),_path30||(_path30=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 1436.77H1052.64L1056.28 1441.57L1057.24 1442.85L1062.67 1450.07H1058.33L1054.75 1445.27L1053.85 1444.06L1048.29 1436.77ZM1064.01 1430.64C1064.01 1434.09 1063.39 1437.07 1062.14 1439.59C1060.9 1442.1 1059.19 1444.04 1057.01 1445.4C1054.84 1446.77 1052.36 1447.45 1049.57 1447.45C1046.78 1447.45 1044.29 1446.77 1042.12 1445.4C1039.95 1444.04 1038.24 1442.1 1036.99 1439.59C1035.75 1437.07 1035.12 1434.09 1035.12 1430.64C1035.12 1427.18 1035.75 1424.2 1036.99 1421.69C1038.24 1419.17 1039.95 1417.23 1042.12 1415.87C1044.29 1414.51 1046.78 1413.83 1049.57 1413.83C1052.36 1413.83 1054.84 1414.51 1057.01 1415.87C1059.19 1417.23 1060.9 1419.17 1062.14 1421.69C1063.39 1424.2 1064.01 1427.18 1064.01 1430.64ZM1060.18 1430.64C1060.18 1427.8 1059.7 1425.41 1058.76 1423.46C1057.82 1421.51 1056.55 1420.04 1054.94 1419.03C1053.34 1418.03 1051.55 1417.53 1049.57 1417.53C1047.59 1417.53 1045.79 1418.03 1044.18 1419.03C1042.58 1420.04 1041.31 1421.51 1040.36 1423.46C1039.43 1425.41 1038.96 1427.8 1038.96 1430.64C1038.96 1433.47 1039.43 1435.86 1040.36 1437.81C1041.31 1439.76 1042.58 1441.24 1044.18 1442.24C1045.79 1443.24 1047.59 1443.74 1049.57 1443.74C1051.55 1443.74 1053.34 1443.24 1054.94 1442.24C1056.55 1441.24 1057.82 1439.76 1058.76 1437.81C1059.7 1435.86 1060.18 1433.47 1060.18 1430.64ZM1085.64 1436.96V1422.45H1089.41V1447H1085.64V1442.85H1085.38C1084.8 1444.09 1083.91 1445.15 1082.69 1446.03C1081.48 1446.89 1079.95 1447.32 1078.09 1447.32C1076.56 1447.32 1075.19 1446.98 1074 1446.31C1072.81 1445.63 1071.87 1444.61 1071.19 1443.24C1070.51 1441.87 1070.17 1440.14 1070.17 1438.05V1422.45H1073.94V1437.8C1073.94 1439.59 1074.44 1441.01 1075.44 1442.08C1076.45 1443.14 1077.74 1443.68 1079.31 1443.68C1080.24 1443.68 1081.2 1443.44 1082.17 1442.96C1083.15 1442.48 1083.97 1441.74 1084.63 1440.75C1085.3 1439.76 1085.64 1438.5 1085.64 1436.96ZM1096.31 1447V1422.45H1100.09V1447H1096.31ZM1098.23 1418.36C1097.5 1418.36 1096.86 1418.11 1096.33 1417.61C1095.81 1417.11 1095.55 1416.51 1095.55 1415.81C1095.55 1415.1 1095.81 1414.5 1096.33 1414C1096.86 1413.5 1097.5 1413.25 1098.23 1413.25C1098.97 1413.25 1099.6 1413.5 1100.12 1414C1100.65 1414.5 1100.92 1415.1 1100.92 1415.81C1100.92 1416.51 1100.65 1417.11 1100.12 1417.61C1099.6 1418.11 1098.97 1418.36 1098.23 1418.36ZM1116.96 1447.51C1114.66 1447.51 1112.68 1446.97 1111.02 1445.88C1109.36 1444.79 1108.08 1443.3 1107.18 1441.39C1106.29 1439.48 1105.84 1437.31 1105.84 1434.86C1105.84 1432.36 1106.3 1430.16 1107.22 1428.26C1108.14 1426.34 1109.43 1424.84 1111.08 1423.76C1112.75 1422.68 1114.68 1422.13 1116.9 1422.13C1118.63 1422.13 1120.18 1422.45 1121.57 1423.09C1122.95 1423.73 1124.09 1424.63 1124.97 1425.78C1125.85 1426.93 1126.4 1428.27 1126.62 1429.81H1122.84C1122.56 1428.69 1121.92 1427.7 1120.93 1426.83C1119.95 1425.96 1118.63 1425.52 1116.96 1425.52C1115.49 1425.52 1114.21 1425.91 1113.1 1426.67C1112 1427.43 1111.14 1428.5 1110.52 1429.89C1109.92 1431.26 1109.61 1432.87 1109.61 1434.73C1109.61 1436.62 1109.91 1438.27 1110.51 1439.68C1111.12 1441.09 1111.97 1442.18 1113.07 1442.96C1114.17 1443.73 1115.47 1444.12 1116.96 1444.12C1117.94 1444.12 1118.83 1443.95 1119.63 1443.61C1120.43 1443.27 1121.11 1442.78 1121.66 1442.14C1122.22 1441.5 1122.61 1440.74 1122.84 1439.84H1126.62C1126.4 1441.29 1125.88 1442.59 1125.03 1443.76C1124.2 1444.91 1123.1 1445.82 1121.73 1446.5C1120.36 1447.18 1118.78 1447.51 1116.96 1447.51ZM1135.65 1438.05L1135.58 1433.38H1136.35L1147.09 1422.45H1151.75L1140.31 1434.02H1139.99L1135.65 1438.05ZM1132.13 1447V1414.27H1135.9V1447H1132.13ZM1147.73 1447L1138.14 1434.86L1140.82 1432.23L1152.52 1447H1147.73ZM1189.33 1422.45L1180.26 1447H1176.42L1167.35 1422.45H1171.44L1178.21 1442.01H1178.47L1185.24 1422.45H1189.33ZM1194.31 1447V1422.45H1198.08V1447H1194.31ZM1196.23 1418.36C1195.49 1418.36 1194.86 1418.11 1194.33 1417.61C1193.81 1417.11 1193.55 1416.51 1193.55 1415.81C1193.55 1415.1 1193.81 1414.5 1194.33 1414C1194.86 1413.5 1195.49 1413.25 1196.23 1413.25C1196.96 1413.25 1197.59 1413.5 1198.12 1414C1198.65 1414.5 1198.91 1415.1 1198.91 1415.81C1198.91 1416.51 1198.65 1417.11 1198.12 1417.61C1197.59 1418.11 1196.96 1418.36 1196.23 1418.36ZM1215.28 1447.51C1212.92 1447.51 1210.88 1446.99 1209.16 1445.95C1207.46 1444.89 1206.14 1443.42 1205.21 1441.53C1204.3 1439.64 1203.84 1437.43 1203.84 1434.92C1203.84 1432.4 1204.3 1430.19 1205.21 1428.27C1206.14 1426.34 1207.43 1424.84 1209.08 1423.76C1210.74 1422.68 1212.68 1422.13 1214.9 1422.13C1216.18 1422.13 1217.44 1422.35 1218.69 1422.77C1219.93 1423.2 1221.07 1423.89 1222.09 1424.85C1223.11 1425.8 1223.93 1427.06 1224.53 1428.62C1225.14 1430.19 1225.45 1432.12 1225.45 1434.41V1436.01H1206.52V1432.75H1221.61C1221.61 1431.36 1221.33 1430.12 1220.78 1429.04C1220.24 1427.95 1219.46 1427.09 1218.45 1426.47C1217.44 1425.84 1216.26 1425.52 1214.9 1425.52C1213.4 1425.52 1212.1 1425.9 1211 1426.64C1209.91 1427.38 1209.08 1428.34 1208.49 1429.52C1207.9 1430.7 1207.61 1431.97 1207.61 1433.32V1435.49C1207.61 1437.35 1207.93 1438.92 1208.57 1440.21C1209.22 1441.49 1210.12 1442.46 1211.27 1443.13C1212.42 1443.79 1213.76 1444.12 1215.28 1444.12C1216.27 1444.12 1217.17 1443.99 1217.97 1443.71C1218.78 1443.42 1219.47 1442.99 1220.06 1442.43C1220.65 1441.85 1221.1 1441.14 1221.42 1440.29L1225.06 1441.31C1224.68 1442.55 1224.03 1443.63 1223.13 1444.57C1222.22 1445.5 1221.1 1446.22 1219.77 1446.74C1218.44 1447.26 1216.94 1447.51 1215.28 1447.51ZM1236.74 1447L1229.26 1422.45H1233.23L1238.53 1441.25H1238.79L1244.03 1422.45H1248.06L1253.23 1441.18H1253.49L1258.8 1422.45H1262.76L1255.28 1447H1251.57L1246.2 1428.14H1245.82L1240.45 1447H1236.74Z\",fill:\"white\"})),_path31||(_path31=/*#__PURE__*/React.createElement(\"path\",{d:\"M1311.8 1988H970.217C964.574 1988 960 1992.57 960 1998.22V2076.54C960 2082.18 964.574 2086.75 970.217 2086.75H1311.8C1317.45 2086.75 1322.02 2082.18 1322.02 2076.54V1998.22C1322.02 1992.57 1317.45 1988 1311.8 1988Z\",fill:\"#158CE5\"})),_path32||(_path32=/*#__PURE__*/React.createElement(\"path\",{d:\"M1048.29 2040.77H1052.64L1056.28 2045.57L1057.24 2046.85L1062.67 2054.07H1058.33L1054.75 2049.27L1053.85 2048.06L1048.29 2040.77ZM1064.01 2034.64C1064.01 2038.09 1063.39 2041.07 1062.14 2043.59C1060.9 2046.1 1059.19 2048.04 1057.01 2049.4C1054.84 2050.77 1052.36 2051.45 1049.57 2051.45C1046.78 2051.45 1044.29 2050.77 1042.12 2049.4C1039.95 2048.04 1038.24 2046.1 1036.99 2043.59C1035.75 2041.07 1035.12 2038.09 1035.12 2034.64C1035.12 2031.18 1035.75 2028.2 1036.99 2025.69C1038.24 2023.17 1039.95 2021.23 1042.12 2019.87C1044.29 2018.51 1046.78 2017.83 1049.57 2017.83C1052.36 2017.83 1054.84 2018.51 1057.01 2019.87C1059.19 2021.23 1060.9 2023.17 1062.14 2025.69C1063.39 2028.2 1064.01 2031.18 1064.01 2034.64ZM1060.18 2034.64C1060.18 2031.8 1059.7 2029.41 1058.76 2027.46C1057.82 2025.51 1056.55 2024.04 1054.94 2023.03C1053.34 2022.03 1051.55 2021.53 1049.57 2021.53C1047.59 2021.53 1045.79 2022.03 1044.18 2023.03C1042.58 2024.04 1041.31 2025.51 1040.36 2027.46C1039.43 2029.41 1038.96 2031.8 1038.96 2034.64C1038.96 2037.47 1039.43 2039.86 1040.36 2041.81C1041.31 2043.76 1042.58 2045.24 1044.18 2046.24C1045.79 2047.24 1047.59 2047.74 1049.57 2047.74C1051.55 2047.74 1053.34 2047.24 1054.94 2046.24C1056.55 2045.24 1057.82 2043.76 1058.76 2041.81C1059.7 2039.86 1060.18 2037.47 1060.18 2034.64ZM1085.64 2040.96V2026.45H1089.41V2051H1085.64V2046.85H1085.38C1084.8 2048.09 1083.91 2049.15 1082.69 2050.03C1081.48 2050.89 1079.95 2051.32 1078.09 2051.32C1076.56 2051.32 1075.19 2050.98 1074 2050.31C1072.81 2049.63 1071.87 2048.61 1071.19 2047.24C1070.51 2045.87 1070.17 2044.14 1070.17 2042.05V2026.45H1073.94V2041.8C1073.94 2043.59 1074.44 2045.01 1075.44 2046.08C1076.45 2047.14 1077.74 2047.68 1079.31 2047.68C1080.24 2047.68 1081.2 2047.44 1082.17 2046.96C1083.15 2046.48 1083.97 2045.74 1084.63 2044.75C1085.3 2043.76 1085.64 2042.5 1085.64 2040.96ZM1096.31 2051V2026.45H1100.09V2051H1096.31ZM1098.23 2022.36C1097.5 2022.36 1096.86 2022.11 1096.33 2021.61C1095.81 2021.11 1095.55 2020.51 1095.55 2019.81C1095.55 2019.1 1095.81 2018.5 1096.33 2018C1096.86 2017.5 1097.5 2017.25 1098.23 2017.25C1098.97 2017.25 1099.6 2017.5 1100.12 2018C1100.65 2018.5 1100.92 2019.1 1100.92 2019.81C1100.92 2020.51 1100.65 2021.11 1100.12 2021.61C1099.6 2022.11 1098.97 2022.36 1098.23 2022.36ZM1116.96 2051.51C1114.66 2051.51 1112.68 2050.97 1111.02 2049.88C1109.36 2048.79 1108.08 2047.3 1107.18 2045.39C1106.29 2043.48 1105.84 2041.31 1105.84 2038.86C1105.84 2036.36 1106.3 2034.16 1107.22 2032.26C1108.14 2030.34 1109.43 2028.84 1111.08 2027.76C1112.75 2026.68 1114.68 2026.13 1116.9 2026.13C1118.63 2026.13 1120.18 2026.45 1121.57 2027.09C1122.95 2027.73 1124.09 2028.63 1124.97 2029.78C1125.85 2030.93 1126.4 2032.27 1126.62 2033.81H1122.84C1122.56 2032.69 1121.92 2031.7 1120.93 2030.83C1119.95 2029.96 1118.63 2029.52 1116.96 2029.52C1115.49 2029.52 1114.21 2029.91 1113.1 2030.67C1112 2031.43 1111.14 2032.5 1110.52 2033.89C1109.92 2035.26 1109.61 2036.87 1109.61 2038.73C1109.61 2040.62 1109.91 2042.27 1110.51 2043.68C1111.12 2045.09 1111.97 2046.18 1113.07 2046.96C1114.17 2047.73 1115.47 2048.12 1116.96 2048.12C1117.94 2048.12 1118.83 2047.95 1119.63 2047.61C1120.43 2047.27 1121.11 2046.78 1121.66 2046.14C1122.22 2045.5 1122.61 2044.74 1122.84 2043.84H1126.62C1126.4 2045.29 1125.88 2046.59 1125.03 2047.76C1124.2 2048.91 1123.1 2049.82 1121.73 2050.5C1120.36 2051.18 1118.78 2051.51 1116.96 2051.51ZM1135.65 2042.05L1135.58 2037.38H1136.35L1147.09 2026.45H1151.75L1140.31 2038.02H1139.99L1135.65 2042.05ZM1132.13 2051V2018.27H1135.9V2051H1132.13ZM1147.73 2051L1138.14 2038.86L1140.82 2036.23L1152.52 2051H1147.73ZM1189.33 2026.45L1180.26 2051H1176.42L1167.35 2026.45H1171.44L1178.21 2046.01H1178.47L1185.24 2026.45H1189.33ZM1194.31 2051V2026.45H1198.08V2051H1194.31ZM1196.23 2022.36C1195.49 2022.36 1194.86 2022.11 1194.33 2021.61C1193.81 2021.11 1193.55 2020.51 1193.55 2019.81C1193.55 2019.1 1193.81 2018.5 1194.33 2018C1194.86 2017.5 1195.49 2017.25 1196.23 2017.25C1196.96 2017.25 1197.59 2017.5 1198.12 2018C1198.65 2018.5 1198.91 2019.1 1198.91 2019.81C1198.91 2020.51 1198.65 2021.11 1198.12 2021.61C1197.59 2022.11 1196.96 2022.36 1196.23 2022.36ZM1215.28 2051.51C1212.92 2051.51 1210.88 2050.99 1209.16 2049.95C1207.46 2048.89 1206.14 2047.42 1205.21 2045.53C1204.3 2043.64 1203.84 2041.43 1203.84 2038.92C1203.84 2036.4 1204.3 2034.19 1205.21 2032.27C1206.14 2030.34 1207.43 2028.84 1209.08 2027.76C1210.74 2026.68 1212.68 2026.13 1214.9 2026.13C1216.18 2026.13 1217.44 2026.35 1218.69 2026.77C1219.93 2027.2 1221.07 2027.89 1222.09 2028.85C1223.11 2029.8 1223.93 2031.06 1224.53 2032.62C1225.14 2034.19 1225.45 2036.12 1225.45 2038.41V2040.01H1206.52V2036.75H1221.61C1221.61 2035.36 1221.33 2034.12 1220.78 2033.04C1220.24 2031.95 1219.46 2031.09 1218.45 2030.47C1217.44 2029.84 1216.26 2029.52 1214.9 2029.52C1213.4 2029.52 1212.1 2029.9 1211 2030.64C1209.91 2031.38 1209.08 2032.34 1208.49 2033.52C1207.9 2034.7 1207.61 2035.97 1207.61 2037.32V2039.49C1207.61 2041.35 1207.93 2042.92 1208.57 2044.21C1209.22 2045.49 1210.12 2046.46 1211.27 2047.13C1212.42 2047.79 1213.76 2048.12 1215.28 2048.12C1216.27 2048.12 1217.17 2047.99 1217.97 2047.71C1218.78 2047.42 1219.47 2046.99 1220.06 2046.43C1220.65 2045.85 1221.1 2045.14 1221.42 2044.29L1225.06 2045.31C1224.68 2046.55 1224.03 2047.63 1223.13 2048.57C1222.22 2049.5 1221.1 2050.22 1219.77 2050.74C1218.44 2051.26 1216.94 2051.51 1215.28 2051.51ZM1236.74 2051L1229.26 2026.45H1233.23L1238.53 2045.25H1238.79L1244.03 2026.45H1248.06L1253.23 2045.18H1253.49L1258.8 2026.45H1262.76L1255.28 2051H1251.57L1246.2 2032.14H1245.82L1240.45 2051H1236.74Z\",fill:\"white\"})),_path33||(_path33=/*#__PURE__*/React.createElement(\"path\",{d:\"M123.754 752.061H131.442V775.676C131.442 778.328 130.809 780.648 129.543 782.636C128.288 784.625 126.53 786.176 124.269 787.288C122.008 788.389 119.375 788.94 116.368 788.94C113.349 788.94 110.71 788.389 108.449 787.288C106.188 786.176 104.43 784.625 103.175 782.636C101.921 780.648 101.293 778.328 101.293 775.676V752.061H108.982V775.019C108.982 776.404 109.283 777.635 109.887 778.712C110.503 779.79 111.367 780.636 112.479 781.252C113.592 781.867 114.888 782.175 116.368 782.175C117.859 782.175 119.156 781.867 120.256 781.252C121.369 780.636 122.227 779.79 122.831 778.712C123.446 777.635 123.754 776.404 123.754 775.019V752.061ZM137.626 798.652V761.152H145.083V765.733H145.421C145.752 764.999 146.231 764.253 146.859 763.496C147.498 762.726 148.327 762.087 149.345 761.578C150.374 761.057 151.653 760.797 153.18 760.797C155.169 760.797 157.003 761.318 158.684 762.359C160.365 763.389 161.709 764.946 162.715 767.029C163.721 769.101 164.224 771.699 164.224 774.824C164.224 777.866 163.733 780.435 162.75 782.53C161.78 784.613 160.454 786.194 158.773 787.271C157.104 788.336 155.234 788.869 153.162 788.869C151.694 788.869 150.445 788.626 149.416 788.141C148.398 787.655 147.563 787.046 146.912 786.312C146.261 785.566 145.764 784.814 145.421 784.057H145.19V798.652H137.626ZM145.03 774.788C145.03 776.41 145.255 777.825 145.705 779.032C146.155 780.239 146.806 781.18 147.658 781.855C148.51 782.518 149.546 782.85 150.765 782.85C151.996 782.85 153.038 782.512 153.89 781.837C154.742 781.151 155.387 780.204 155.825 778.997C156.275 777.777 156.5 776.375 156.5 774.788C156.5 773.214 156.281 771.829 155.843 770.634C155.405 769.438 154.76 768.503 153.908 767.828C153.056 767.153 152.008 766.816 150.765 766.816C149.534 766.816 148.492 767.142 147.64 767.793C146.8 768.444 146.155 769.367 145.705 770.563C145.255 771.758 145.03 773.167 145.03 774.788ZM181.589 788.957C178.795 788.957 176.392 788.366 174.38 787.182C172.38 785.986 170.841 784.329 169.764 782.21C168.698 780.091 168.166 777.653 168.166 774.895C168.166 772.101 168.704 769.651 169.781 767.544C170.87 765.425 172.415 763.774 174.416 762.59C176.416 761.395 178.795 760.797 181.553 760.797C183.933 760.797 186.016 761.229 187.803 762.093C189.591 762.957 191.005 764.171 192.047 765.733C193.089 767.296 193.663 769.13 193.769 771.237H186.632C186.43 769.876 185.898 768.781 185.034 767.953C184.181 767.112 183.063 766.692 181.678 766.692C180.506 766.692 179.482 767.011 178.606 767.651C177.742 768.278 177.067 769.195 176.582 770.403C176.097 771.61 175.854 773.072 175.854 774.788C175.854 776.528 176.091 778.008 176.564 779.227C177.049 780.447 177.73 781.376 178.606 782.015C179.482 782.654 180.506 782.974 181.678 782.974C182.542 782.974 183.317 782.796 184.004 782.441C184.702 782.086 185.276 781.571 185.726 780.896C186.188 780.21 186.49 779.387 186.632 778.428H193.769C193.651 780.512 193.083 782.346 192.065 783.933C191.059 785.507 189.668 786.738 187.892 787.626C186.117 788.514 184.016 788.957 181.589 788.957ZM210.935 788.957C208.177 788.957 205.791 788.372 203.779 787.2C201.779 786.016 200.234 784.371 199.145 782.264C198.056 780.145 197.511 777.689 197.511 774.895C197.511 772.078 198.056 769.616 199.145 767.509C200.234 765.39 201.779 763.744 203.779 762.573C205.791 761.389 208.177 760.797 210.935 760.797C213.693 760.797 216.072 761.389 218.072 762.573C220.085 763.744 221.635 765.39 222.724 767.509C223.813 769.616 224.358 772.078 224.358 774.895C224.358 777.689 223.813 780.145 222.724 782.264C221.635 784.371 220.085 786.016 218.072 787.2C216.072 788.372 213.693 788.957 210.935 788.957ZM210.97 783.098C212.225 783.098 213.272 782.743 214.113 782.033C214.953 781.311 215.587 780.328 216.013 779.085C216.451 777.842 216.67 776.428 216.67 774.842C216.67 773.256 216.451 771.841 216.013 770.598C215.587 769.355 214.953 768.373 214.113 767.651C213.272 766.929 212.225 766.568 210.97 766.568C209.704 766.568 208.638 766.929 207.774 767.651C206.922 768.373 206.277 769.355 205.839 770.598C205.413 771.841 205.2 773.256 205.2 774.842C205.2 776.428 205.413 777.842 205.839 779.085C206.277 780.328 206.922 781.311 207.774 782.033C208.638 782.743 209.704 783.098 210.97 783.098ZM229.276 788.425V761.152H236.485V765.964H236.805C237.373 764.366 238.32 763.105 239.646 762.182C240.971 761.259 242.558 760.797 244.404 760.797C246.274 760.797 247.866 761.265 249.18 762.2C250.494 763.123 251.37 764.378 251.808 765.964H252.092C252.649 764.401 253.655 763.153 255.111 762.217C256.579 761.27 258.313 760.797 260.313 760.797C262.858 760.797 264.924 761.608 266.51 763.229C268.108 764.839 268.907 767.124 268.907 770.083V788.425H261.361V771.575C261.361 770.06 260.958 768.923 260.153 768.166C259.348 767.408 258.342 767.029 257.135 767.029C255.762 767.029 254.691 767.467 253.921 768.343C253.152 769.207 252.767 770.35 252.767 771.77V788.425H245.434V771.415C245.434 770.077 245.049 769.012 244.28 768.219C243.522 767.426 242.522 767.029 241.279 767.029C240.439 767.029 239.681 767.242 239.006 767.668C238.344 768.083 237.817 768.669 237.426 769.426C237.036 770.172 236.84 771.048 236.84 772.054V788.425H229.276ZM274.882 788.425V761.152H282.446V788.425H274.882ZM278.681 757.636C277.557 757.636 276.592 757.264 275.787 756.518C274.994 755.76 274.598 754.855 274.598 753.801C274.598 752.76 274.994 751.866 275.787 751.12C276.592 750.363 277.557 749.984 278.681 749.984C279.806 749.984 280.765 750.363 281.558 751.12C282.363 751.866 282.765 752.76 282.765 753.801C282.765 754.855 282.363 755.76 281.558 756.518C280.765 757.264 279.806 757.636 278.681 757.636ZM296.069 772.658V788.425H288.505V761.152H295.714V765.964H296.033C296.637 764.378 297.649 763.123 299.069 762.2C300.49 761.265 302.212 760.797 304.236 760.797C306.13 760.797 307.782 761.211 309.19 762.04C310.599 762.868 311.694 764.052 312.475 765.591C313.256 767.118 313.647 768.941 313.647 771.06V788.425H306.083V772.409C306.095 770.74 305.669 769.438 304.805 768.503C303.94 767.556 302.751 767.082 301.236 767.082C300.218 767.082 299.318 767.301 298.537 767.739C297.767 768.177 297.164 768.817 296.726 769.657C296.3 770.486 296.081 771.486 296.069 772.658ZM331.895 799.22C329.445 799.22 327.344 798.883 325.592 798.208C323.852 797.545 322.467 796.64 321.437 795.492C320.407 794.343 319.739 793.053 319.431 791.621L326.426 790.68C326.64 791.224 326.977 791.733 327.439 792.207C327.9 792.68 328.51 793.059 329.267 793.343C330.037 793.639 330.972 793.787 332.073 793.787C333.718 793.787 335.074 793.385 336.139 792.58C337.216 791.787 337.755 790.455 337.755 788.585V783.595H337.435C337.104 784.353 336.606 785.069 335.944 785.744C335.281 786.418 334.428 786.969 333.387 787.395C332.345 787.821 331.102 788.034 329.658 788.034C327.61 788.034 325.746 787.561 324.065 786.614C322.396 785.655 321.064 784.193 320.07 782.228C319.087 780.251 318.596 777.754 318.596 774.735C318.596 771.646 319.099 769.065 320.105 766.994C321.112 764.922 322.449 763.372 324.118 762.342C325.799 761.312 327.64 760.797 329.64 760.797C331.167 760.797 332.446 761.057 333.475 761.578C334.505 762.087 335.334 762.726 335.961 763.496C336.6 764.253 337.092 764.999 337.435 765.733H337.719V761.152H345.23V788.691C345.23 791.011 344.662 792.953 343.525 794.515C342.389 796.078 340.815 797.249 338.802 798.031C336.802 798.824 334.499 799.22 331.895 799.22ZM332.055 782.352C333.274 782.352 334.304 782.051 335.145 781.447C335.997 780.831 336.648 779.955 337.098 778.819C337.559 777.671 337.79 776.298 337.79 774.7C337.79 773.102 337.565 771.717 337.115 770.545C336.666 769.361 336.015 768.444 335.162 767.793C334.31 767.142 333.274 766.816 332.055 766.816C330.812 766.816 329.765 767.153 328.912 767.828C328.06 768.491 327.415 769.414 326.977 770.598C326.539 771.782 326.32 773.149 326.32 774.7C326.32 776.274 326.539 777.635 326.977 778.783C327.427 779.92 328.072 780.802 328.912 781.429C329.765 782.045 330.812 782.352 332.055 782.352ZM370.598 788.94C368.858 788.94 367.307 788.638 365.946 788.034C364.585 787.419 363.508 786.513 362.715 785.318C361.933 784.11 361.543 782.607 361.543 780.808C361.543 779.292 361.821 778.02 362.377 776.99C362.934 775.96 363.691 775.132 364.65 774.504C365.609 773.877 366.698 773.403 367.917 773.084C369.148 772.764 370.438 772.539 371.788 772.409C373.374 772.243 374.652 772.09 375.623 771.948C376.594 771.794 377.298 771.569 377.736 771.273C378.174 770.977 378.393 770.539 378.393 769.959V769.852C378.393 768.728 378.038 767.858 377.328 767.242C376.629 766.627 375.635 766.319 374.345 766.319C372.983 766.319 371.9 766.621 371.095 767.225C370.29 767.816 369.758 768.562 369.497 769.462L362.502 768.894C362.857 767.236 363.555 765.804 364.597 764.597C365.638 763.377 366.982 762.442 368.627 761.791C370.285 761.128 372.202 760.797 374.38 760.797C375.895 760.797 377.345 760.975 378.73 761.33C380.127 761.685 381.364 762.235 382.441 762.981C383.53 763.727 384.388 764.685 385.016 765.857C385.643 767.017 385.957 768.408 385.957 770.03V788.425H378.784V784.643H378.57C378.133 785.495 377.547 786.247 376.813 786.898C376.079 787.537 375.197 788.04 374.167 788.407C373.137 788.762 371.948 788.94 370.598 788.94ZM372.764 783.72C373.877 783.72 374.86 783.501 375.712 783.063C376.564 782.613 377.233 782.009 377.718 781.252C378.204 780.494 378.446 779.636 378.446 778.677V775.783C378.209 775.937 377.884 776.079 377.47 776.209C377.067 776.327 376.611 776.44 376.102 776.546C375.593 776.641 375.084 776.73 374.575 776.813C374.066 776.884 373.605 776.949 373.191 777.008C372.303 777.138 371.527 777.345 370.865 777.629C370.202 777.913 369.687 778.298 369.32 778.783C368.953 779.257 368.769 779.849 368.769 780.559C368.769 781.589 369.142 782.376 369.888 782.921C370.646 783.453 371.604 783.72 372.764 783.72ZM391.825 798.652V761.152H399.282V765.733H399.62C399.951 764.999 400.431 764.253 401.058 763.496C401.697 762.726 402.526 762.087 403.544 761.578C404.574 761.057 405.852 760.797 407.379 760.797C409.368 760.797 411.202 761.318 412.883 762.359C414.564 763.389 415.908 764.946 416.914 767.029C417.92 769.101 418.423 771.699 418.423 774.824C418.423 777.866 417.932 780.435 416.949 782.53C415.979 784.613 414.653 786.194 412.972 787.271C411.303 788.336 409.433 788.869 407.361 788.869C405.894 788.869 404.645 788.626 403.615 788.141C402.597 787.655 401.762 787.046 401.111 786.312C400.46 785.566 399.963 784.814 399.62 784.057H399.389V798.652H391.825ZM399.229 774.788C399.229 776.41 399.454 777.825 399.904 779.032C400.354 780.239 401.005 781.18 401.857 781.855C402.709 782.518 403.745 782.85 404.964 782.85C406.195 782.85 407.237 782.512 408.089 781.837C408.942 781.151 409.587 780.204 410.025 778.997C410.474 777.777 410.699 776.375 410.699 774.788C410.699 773.214 410.48 771.829 410.042 770.634C409.604 769.438 408.959 768.503 408.107 767.828C407.255 767.153 406.207 766.816 404.964 766.816C403.733 766.816 402.692 767.142 401.839 767.793C400.999 768.444 400.354 769.367 399.904 770.563C399.454 771.758 399.229 773.167 399.229 774.788ZM423.466 798.652V761.152H430.923V765.733H431.26C431.592 764.999 432.071 764.253 432.699 763.496C433.338 762.726 434.166 762.087 435.184 761.578C436.214 761.057 437.493 760.797 439.02 760.797C441.008 760.797 442.843 761.318 444.524 762.359C446.205 763.389 447.548 764.946 448.555 767.029C449.561 769.101 450.064 771.699 450.064 774.824C450.064 777.866 449.573 780.435 448.59 782.53C447.619 784.613 446.294 786.194 444.613 787.271C442.944 788.336 441.073 788.869 439.002 788.869C437.534 788.869 436.285 788.626 435.256 788.141C434.238 787.655 433.403 787.046 432.752 786.312C432.101 785.566 431.604 784.814 431.26 784.057H431.03V798.652H423.466ZM430.87 774.788C430.87 776.41 431.095 777.825 431.545 779.032C431.994 780.239 432.645 781.18 433.498 781.855C434.35 782.518 435.386 782.85 436.605 782.85C437.836 782.85 438.878 782.512 439.73 781.837C440.582 781.151 441.227 780.204 441.665 778.997C442.115 777.777 442.34 776.375 442.34 774.788C442.34 773.214 442.121 771.829 441.683 770.634C441.245 769.438 440.6 768.503 439.748 767.828C438.895 767.153 437.848 766.816 436.605 766.816C435.374 766.816 434.332 767.142 433.48 767.793C432.64 768.444 431.994 769.367 431.545 770.563C431.095 771.758 430.87 773.167 430.87 774.788ZM467.429 788.957C464.671 788.957 462.286 788.372 460.273 787.2C458.273 786.016 456.728 784.371 455.639 782.264C454.55 780.145 454.006 777.689 454.006 774.895C454.006 772.078 454.55 769.616 455.639 767.509C456.728 765.39 458.273 763.744 460.273 762.573C462.286 761.389 464.671 760.797 467.429 760.797C470.187 760.797 472.566 761.389 474.567 762.573C476.579 763.744 478.13 765.39 479.219 767.509C480.308 769.616 480.852 772.078 480.852 774.895C480.852 777.689 480.308 780.145 479.219 782.264C478.13 784.371 476.579 786.016 474.567 787.2C472.566 788.372 470.187 788.957 467.429 788.957ZM467.464 783.098C468.719 783.098 469.767 782.743 470.607 782.033C471.448 781.311 472.081 780.328 472.507 779.085C472.945 777.842 473.164 776.428 473.164 774.842C473.164 773.256 472.945 771.841 472.507 770.598C472.081 769.355 471.448 768.373 470.607 767.651C469.767 766.929 468.719 766.568 467.464 766.568C466.198 766.568 465.132 766.929 464.268 767.651C463.416 768.373 462.771 769.355 462.333 770.598C461.907 771.841 461.694 773.256 461.694 774.842C461.694 776.428 461.907 777.842 462.333 779.085C462.771 780.328 463.416 781.311 464.268 782.033C465.132 782.743 466.198 783.098 467.464 783.098ZM485.77 788.425V761.152H493.334V788.425H485.77ZM489.57 757.636C488.446 757.636 487.481 757.264 486.676 756.518C485.883 755.76 485.486 754.855 485.486 753.801C485.486 752.76 485.883 751.866 486.676 751.12C487.481 750.363 488.446 749.984 489.57 749.984C490.695 749.984 491.653 750.363 492.447 751.12C493.251 751.866 493.654 752.76 493.654 753.801C493.654 754.855 493.251 755.76 492.447 756.518C491.653 757.264 490.695 757.636 489.57 757.636ZM506.957 772.658V788.425H499.393V761.152H506.602V765.964H506.922C507.526 764.378 508.538 763.123 509.958 762.2C511.379 761.265 513.101 760.797 515.125 760.797C517.019 760.797 518.67 761.211 520.079 762.04C521.487 762.868 522.582 764.052 523.364 765.591C524.145 767.118 524.536 768.941 524.536 771.06V788.425H516.972V772.409C516.983 770.74 516.557 769.438 515.693 768.503C514.829 767.556 513.639 767.082 512.124 767.082C511.106 767.082 510.207 767.301 509.425 767.739C508.656 768.177 508.052 768.817 507.614 769.657C507.188 770.486 506.969 771.486 506.957 772.658ZM545.003 761.152V766.834H528.579V761.152H545.003ZM532.308 754.618H539.872V780.044C539.872 780.743 539.979 781.287 540.192 781.678C540.405 782.056 540.701 782.323 541.079 782.477C541.47 782.631 541.92 782.707 542.429 782.707C542.784 782.707 543.139 782.678 543.494 782.619C543.849 782.548 544.122 782.494 544.311 782.459L545.501 788.087C545.122 788.206 544.589 788.342 543.903 788.496C543.216 788.662 542.381 788.762 541.399 788.798C539.576 788.869 537.978 788.626 536.605 788.07C535.244 787.513 534.184 786.649 533.427 785.477C532.669 784.305 532.296 782.826 532.308 781.038V754.618ZM549.931 788.425V761.152H557.139V765.964H557.459C558.027 764.366 558.974 763.105 560.3 762.182C561.626 761.259 563.212 760.797 565.058 760.797C566.929 760.797 568.521 761.265 569.835 762.2C571.149 763.123 572.025 764.378 572.463 765.964H572.747C573.303 764.401 574.309 763.153 575.765 762.217C577.233 761.27 578.967 760.797 580.968 760.797C583.512 760.797 585.578 761.608 587.164 763.229C588.762 764.839 589.561 767.124 589.561 770.083V788.425H582.015V771.575C582.015 770.06 581.613 768.923 580.808 768.166C580.003 767.408 578.997 767.029 577.789 767.029C576.416 767.029 575.345 767.467 574.575 768.343C573.806 769.207 573.421 770.35 573.421 771.77V788.425H566.088V771.415C566.088 770.077 565.704 769.012 564.934 768.219C564.177 767.426 563.176 767.029 561.933 767.029C561.093 767.029 560.335 767.242 559.661 767.668C558.998 768.083 558.471 768.669 558.08 769.426C557.69 770.172 557.494 771.048 557.494 772.054V788.425H549.931ZM607.965 788.957C605.16 788.957 602.745 788.389 600.721 787.253C598.708 786.105 597.158 784.483 596.069 782.388C594.98 780.281 594.435 777.789 594.435 774.913C594.435 772.107 594.98 769.645 596.069 767.526C597.158 765.408 598.691 763.756 600.667 762.573C602.656 761.389 604.988 760.797 607.663 760.797C609.462 760.797 611.137 761.087 612.688 761.667C614.251 762.235 615.612 763.093 616.772 764.242C617.944 765.39 618.855 766.834 619.506 768.574C620.157 770.302 620.483 772.326 620.483 774.646V776.724H597.454V772.036H613.363C613.363 770.947 613.126 769.983 612.653 769.142C612.179 768.302 611.522 767.645 610.682 767.171C609.853 766.686 608.888 766.443 607.787 766.443C606.639 766.443 605.621 766.71 604.733 767.242C603.858 767.763 603.171 768.467 602.674 769.355C602.177 770.231 601.922 771.208 601.91 772.285V776.742C601.91 778.091 602.159 779.257 602.656 780.239C603.165 781.222 603.881 781.979 604.805 782.512C605.728 783.045 606.823 783.311 608.089 783.311C608.93 783.311 609.699 783.193 610.398 782.956C611.096 782.719 611.694 782.364 612.191 781.891C612.688 781.417 613.067 780.837 613.327 780.151L620.323 780.612C619.968 782.293 619.24 783.761 618.139 785.016C617.05 786.259 615.641 787.229 613.913 787.928C612.197 788.614 610.214 788.957 607.965 788.957ZM632.983 772.658V788.425H625.419V761.152H632.628V765.964H632.947C633.551 764.378 634.563 763.123 635.983 762.2C637.404 761.265 639.126 760.797 641.15 760.797C643.044 760.797 644.696 761.211 646.104 762.04C647.513 762.868 648.608 764.052 649.389 765.591C650.17 767.118 650.561 768.941 650.561 771.06V788.425H642.997V772.409C643.009 770.74 642.583 769.438 641.719 768.503C640.854 767.556 639.665 767.082 638.15 767.082C637.132 767.082 636.232 767.301 635.451 767.739C634.681 768.177 634.078 768.817 633.64 769.657C633.214 770.486 632.995 771.486 632.983 772.658ZM671.029 761.152V766.834H654.605V761.152H671.029ZM658.333 754.618H665.897V780.044C665.897 780.743 666.004 781.287 666.217 781.678C666.43 782.056 666.726 782.323 667.105 782.477C667.495 782.631 667.945 782.707 668.454 782.707C668.809 782.707 669.164 782.678 669.52 782.619C669.875 782.548 670.147 782.494 670.336 782.459L671.526 788.087C671.147 788.206 670.614 788.342 669.928 788.496C669.241 788.662 668.407 788.762 667.424 788.798C665.601 788.869 664.003 788.626 662.63 788.07C661.269 787.513 660.21 786.649 659.452 785.477C658.694 784.305 658.322 782.826 658.333 781.038V754.618ZM698.306 768.929L691.381 769.355C691.263 768.763 691.008 768.231 690.618 767.757C690.227 767.272 689.712 766.887 689.073 766.603C688.446 766.307 687.694 766.159 686.818 766.159C685.646 766.159 684.658 766.408 683.853 766.905C683.048 767.39 682.645 768.041 682.645 768.858C682.645 769.509 682.906 770.06 683.427 770.509C683.948 770.959 684.841 771.32 686.108 771.592L691.044 772.587C693.695 773.131 695.672 774.007 696.974 775.215C698.276 776.422 698.927 778.008 698.927 779.973C698.927 781.761 698.401 783.329 697.347 784.678C696.305 786.028 694.873 787.081 693.05 787.839C691.239 788.585 689.15 788.957 686.782 788.957C683.172 788.957 680.296 788.206 678.153 786.703C676.023 785.187 674.774 783.128 674.407 780.524L681.846 780.133C682.071 781.234 682.616 782.074 683.48 782.654C684.344 783.222 685.451 783.506 686.8 783.506C688.126 783.506 689.191 783.252 689.996 782.743C690.813 782.222 691.227 781.553 691.239 780.737C691.227 780.05 690.937 779.488 690.369 779.05C689.801 778.6 688.925 778.257 687.741 778.02L683.018 777.079C680.355 776.546 678.372 775.623 677.07 774.309C675.78 772.995 675.135 771.32 675.135 769.284C675.135 767.532 675.608 766.023 676.555 764.756C677.514 763.49 678.858 762.513 680.586 761.827C682.326 761.14 684.362 760.797 686.694 760.797C690.138 760.797 692.849 761.525 694.826 762.981C696.814 764.437 697.974 766.42 698.306 768.929Z\",fill:\"white\"})),_path34||(_path34=/*#__PURE__*/React.createElement(\"path\",{d:\"M889.94 788.425V752.061H904.286C907.044 752.061 909.394 752.588 911.335 753.641C913.277 754.683 914.756 756.133 915.774 757.992C916.804 759.838 917.319 761.969 917.319 764.384C917.319 766.798 916.798 768.929 915.757 770.776C914.715 772.622 913.206 774.06 911.229 775.09C909.264 776.12 906.885 776.635 904.091 776.635H894.947V770.474H902.848C904.328 770.474 905.547 770.219 906.506 769.71C907.477 769.189 908.199 768.473 908.672 767.562C909.157 766.639 909.4 765.579 909.4 764.384C909.4 763.176 909.157 762.123 908.672 761.223C908.199 760.312 907.477 759.607 906.506 759.11C905.535 758.601 904.304 758.347 902.813 758.347H897.628V788.425H889.94ZM929.215 788.94C927.475 788.94 925.925 788.638 924.563 788.034C923.202 787.419 922.125 786.513 921.332 785.318C920.551 784.11 920.16 782.607 920.16 780.808C920.16 779.292 920.438 778.02 920.994 776.99C921.551 775.96 922.308 775.132 923.267 774.504C924.226 773.877 925.315 773.403 926.534 773.084C927.765 772.764 929.056 772.539 930.405 772.409C931.991 772.243 933.27 772.09 934.24 771.948C935.211 771.794 935.915 771.569 936.353 771.273C936.791 770.977 937.01 770.539 937.01 769.959V769.852C937.01 768.728 936.655 767.858 935.945 767.242C935.246 766.627 934.252 766.319 932.962 766.319C931.601 766.319 930.517 766.621 929.713 767.225C928.908 767.816 928.375 768.562 928.115 769.462L921.119 768.894C921.474 767.236 922.172 765.804 923.214 764.597C924.256 763.377 925.599 762.442 927.244 761.791C928.902 761.128 930.819 760.797 932.997 760.797C934.512 760.797 935.963 760.975 937.347 761.33C938.744 761.685 939.981 762.235 941.058 762.981C942.147 763.727 943.006 764.685 943.633 765.857C944.26 767.017 944.574 768.408 944.574 770.03V788.425H937.401V784.643H937.188C936.75 785.495 936.164 786.247 935.43 786.898C934.696 787.537 933.814 788.04 932.784 788.407C931.754 788.762 930.565 788.94 929.215 788.94ZM931.382 783.72C932.494 783.72 933.477 783.501 934.329 783.063C935.181 782.613 935.85 782.009 936.335 781.252C936.821 780.494 937.063 779.636 937.063 778.677V775.783C936.827 775.937 936.501 776.079 936.087 776.209C935.684 776.327 935.229 776.44 934.72 776.546C934.211 776.641 933.702 776.73 933.193 776.813C932.684 776.884 932.222 776.949 931.808 777.008C930.92 777.138 930.145 777.345 929.482 777.629C928.819 777.913 928.304 778.298 927.937 778.783C927.57 779.257 927.387 779.849 927.387 780.559C927.387 781.589 927.759 782.376 928.505 782.921C929.263 783.453 930.222 783.72 931.382 783.72ZM973.134 768.929L966.209 769.355C966.091 768.763 965.836 768.231 965.446 767.757C965.055 767.272 964.54 766.887 963.901 766.603C963.274 766.307 962.522 766.159 961.646 766.159C960.474 766.159 959.486 766.408 958.681 766.905C957.876 767.39 957.474 768.041 957.474 768.858C957.474 769.509 957.734 770.06 958.255 770.509C958.776 770.959 959.669 771.32 960.936 771.592L965.872 772.587C968.523 773.131 970.5 774.007 971.802 775.215C973.104 776.422 973.756 778.008 973.756 779.973C973.756 781.761 973.229 783.329 972.175 784.678C971.134 786.028 969.701 787.081 967.878 787.839C966.067 788.585 963.978 788.957 961.611 788.957C958 788.957 955.124 788.206 952.981 786.703C950.851 785.187 949.602 783.128 949.235 780.524L956.675 780.133C956.899 781.234 957.444 782.074 958.308 782.654C959.172 783.222 960.279 783.506 961.628 783.506C962.954 783.506 964.019 783.252 964.824 782.743C965.641 782.222 966.055 781.553 966.067 780.737C966.055 780.05 965.765 779.488 965.197 779.05C964.629 778.6 963.753 778.257 962.569 778.02L957.846 777.079C955.183 776.546 953.2 775.623 951.898 774.309C950.608 772.995 949.963 771.32 949.963 769.284C949.963 767.532 950.436 766.023 951.383 764.756C952.342 763.49 953.686 762.513 955.414 761.827C957.154 761.14 959.19 760.797 961.522 760.797C964.966 760.797 967.677 761.525 969.654 762.981C971.643 764.437 972.803 766.42 973.134 768.929ZM993.025 761.152V766.834H976.601V761.152H993.025ZM980.33 754.618H987.893V780.044C987.893 780.743 988 781.287 988.213 781.678C988.426 782.056 988.722 782.323 989.101 782.477C989.491 782.631 989.941 782.707 990.45 782.707C990.805 782.707 991.161 782.678 991.516 782.619C991.871 782.548 992.143 782.494 992.332 782.459L993.522 788.087C993.143 788.206 992.611 788.342 991.924 788.496C991.237 788.662 990.403 788.762 989.42 788.798C987.598 788.869 986 788.626 984.626 788.07C983.265 787.513 982.206 786.649 981.448 785.477C980.691 784.305 980.318 782.826 980.33 781.038V754.618ZM1017.3 788.94C1015.56 788.94 1014.01 788.638 1012.65 788.034C1011.29 787.419 1010.21 786.513 1009.42 785.318C1008.64 784.11 1008.25 782.607 1008.25 780.808C1008.25 779.292 1008.52 778.02 1009.08 776.99C1009.64 775.96 1010.39 775.132 1011.35 774.504C1012.31 773.877 1013.4 773.403 1014.62 773.084C1015.85 772.764 1017.14 772.539 1018.49 772.409C1020.08 772.243 1021.36 772.09 1022.33 771.948C1023.3 771.794 1024 771.569 1024.44 771.273C1024.88 770.977 1025.1 770.539 1025.1 769.959V769.852C1025.1 768.728 1024.74 767.858 1024.03 767.242C1023.33 766.627 1022.34 766.319 1021.05 766.319C1019.69 766.319 1018.6 766.621 1017.8 767.225C1016.99 767.816 1016.46 768.562 1016.2 769.462L1009.2 768.894C1009.56 767.236 1010.26 765.804 1011.3 764.597C1012.34 763.377 1013.69 762.442 1015.33 761.791C1016.99 761.128 1018.91 760.797 1021.08 760.797C1022.6 760.797 1024.05 760.975 1025.43 761.33C1026.83 761.685 1028.07 762.235 1029.14 762.981C1030.23 763.727 1031.09 764.685 1031.72 765.857C1032.35 767.017 1032.66 768.408 1032.66 770.03V788.425H1025.49V784.643H1025.27C1024.84 785.495 1024.25 786.247 1023.52 786.898C1022.78 787.537 1021.9 788.04 1020.87 788.407C1019.84 788.762 1018.65 788.94 1017.3 788.94ZM1019.47 783.72C1020.58 783.72 1021.56 783.501 1022.41 783.063C1023.27 782.613 1023.94 782.009 1024.42 781.252C1024.91 780.494 1025.15 779.636 1025.15 778.677V775.783C1024.91 775.937 1024.59 776.079 1024.17 776.209C1023.77 776.327 1023.31 776.44 1022.81 776.546C1022.3 776.641 1021.79 776.73 1021.28 776.813C1020.77 776.884 1020.31 776.949 1019.89 777.008C1019.01 777.138 1018.23 777.345 1017.57 777.629C1016.9 777.913 1016.39 778.298 1016.02 778.783C1015.66 779.257 1015.47 779.849 1015.47 780.559C1015.47 781.589 1015.85 782.376 1016.59 782.921C1017.35 783.453 1018.31 783.72 1019.47 783.72ZM1038.53 798.652V761.152H1045.99V765.733H1046.32C1046.65 764.999 1047.13 764.253 1047.76 763.496C1048.4 762.726 1049.23 762.087 1050.25 761.578C1051.28 761.057 1052.56 760.797 1054.08 760.797C1056.07 760.797 1057.91 761.318 1059.59 762.359C1061.27 763.389 1062.61 764.946 1063.62 767.029C1064.62 769.101 1065.13 771.699 1065.13 774.824C1065.13 777.866 1064.64 780.435 1063.65 782.53C1062.68 784.613 1061.36 786.194 1059.68 787.271C1058.01 788.336 1056.14 788.869 1054.06 788.869C1052.6 788.869 1051.35 788.626 1050.32 788.141C1049.3 787.655 1048.47 787.046 1047.81 786.312C1047.16 785.566 1046.67 784.814 1046.32 784.057H1046.09V798.652H1038.53ZM1045.93 774.788C1045.93 776.41 1046.16 777.825 1046.61 779.032C1047.06 780.239 1047.71 781.18 1048.56 781.855C1049.41 782.518 1050.45 782.85 1051.67 782.85C1052.9 782.85 1053.94 782.512 1054.79 781.837C1055.64 781.151 1056.29 780.204 1056.73 778.997C1057.18 777.777 1057.4 776.375 1057.4 774.788C1057.4 773.214 1057.18 771.829 1056.75 770.634C1056.31 769.438 1055.66 768.503 1054.81 767.828C1053.96 767.153 1052.91 766.816 1051.67 766.816C1050.44 766.816 1049.39 767.142 1048.54 767.793C1047.7 768.444 1047.06 769.367 1046.61 770.563C1046.16 771.758 1045.93 773.167 1045.93 774.788ZM1070.17 798.652V761.152H1077.63V765.733H1077.96C1078.3 764.999 1078.77 764.253 1079.4 763.496C1080.04 762.726 1080.87 762.087 1081.89 761.578C1082.92 761.057 1084.2 760.797 1085.72 760.797C1087.71 760.797 1089.55 761.318 1091.23 762.359C1092.91 763.389 1094.25 764.946 1095.26 767.029C1096.26 769.101 1096.77 771.699 1096.77 774.824C1096.77 777.866 1096.28 780.435 1095.29 782.53C1094.32 784.613 1093 786.194 1091.32 787.271C1089.65 788.336 1087.78 788.869 1085.71 788.869C1084.24 788.869 1082.99 788.626 1081.96 788.141C1080.94 787.655 1080.11 787.046 1079.46 786.312C1078.8 785.566 1078.31 784.814 1077.96 784.057H1077.73V798.652H1070.17ZM1077.57 774.788C1077.57 776.41 1077.8 777.825 1078.25 779.032C1078.7 780.239 1079.35 781.18 1080.2 781.855C1081.05 782.518 1082.09 782.85 1083.31 782.85C1084.54 782.85 1085.58 782.512 1086.43 781.837C1087.29 781.151 1087.93 780.204 1088.37 778.997C1088.82 777.777 1089.04 776.375 1089.04 774.788C1089.04 773.214 1088.82 771.829 1088.39 770.634C1087.95 769.438 1087.3 768.503 1086.45 767.828C1085.6 767.153 1084.55 766.816 1083.31 766.816C1082.08 766.816 1081.04 767.142 1080.18 767.793C1079.34 768.444 1078.7 769.367 1078.25 770.563C1077.8 771.758 1077.57 773.167 1077.57 774.788ZM1114.13 788.957C1111.37 788.957 1108.99 788.372 1106.98 787.2C1104.98 786.016 1103.43 784.371 1102.34 782.264C1101.25 780.145 1100.71 777.689 1100.71 774.895C1100.71 772.078 1101.25 769.616 1102.34 767.509C1103.43 765.39 1104.98 763.744 1106.98 762.573C1108.99 761.389 1111.37 760.797 1114.13 760.797C1116.89 760.797 1119.27 761.389 1121.27 762.573C1123.28 763.744 1124.83 765.39 1125.92 767.509C1127.01 769.616 1127.56 772.078 1127.56 774.895C1127.56 777.689 1127.01 780.145 1125.92 782.264C1124.83 784.371 1123.28 786.016 1121.27 787.2C1119.27 788.372 1116.89 788.957 1114.13 788.957ZM1114.17 783.098C1115.42 783.098 1116.47 782.743 1117.31 782.033C1118.15 781.311 1118.78 780.328 1119.21 779.085C1119.65 777.842 1119.87 776.428 1119.87 774.842C1119.87 773.256 1119.65 771.841 1119.21 770.598C1118.78 769.355 1118.15 768.373 1117.31 767.651C1116.47 766.929 1115.42 766.568 1114.17 766.568C1112.9 766.568 1111.84 766.929 1110.97 767.651C1110.12 768.373 1109.47 769.355 1109.04 770.598C1108.61 771.841 1108.4 773.256 1108.4 774.842C1108.4 776.428 1108.61 777.842 1109.04 779.085C1109.47 780.328 1110.12 781.311 1110.97 782.033C1111.84 782.743 1112.9 783.098 1114.17 783.098ZM1132.47 788.425V761.152H1140.04V788.425H1132.47ZM1136.27 757.636C1135.15 757.636 1134.18 757.264 1133.38 756.518C1132.59 755.76 1132.19 754.855 1132.19 753.801C1132.19 752.76 1132.59 751.866 1133.38 751.12C1134.18 750.363 1135.15 749.984 1136.27 749.984C1137.4 749.984 1138.36 750.363 1139.15 751.12C1139.95 751.866 1140.36 752.76 1140.36 753.801C1140.36 754.855 1139.95 755.76 1139.15 756.518C1138.36 757.264 1137.4 757.636 1136.27 757.636ZM1153.66 772.658V788.425H1146.1V761.152H1153.31V765.964H1153.62C1154.23 764.378 1155.24 763.123 1156.66 762.2C1158.08 761.265 1159.8 760.797 1161.83 760.797C1163.72 760.797 1165.37 761.211 1166.78 762.04C1168.19 762.868 1169.29 764.052 1170.07 765.591C1170.85 767.118 1171.24 768.941 1171.24 771.06V788.425H1163.67V772.409C1163.69 770.74 1163.26 769.438 1162.4 768.503C1161.53 767.556 1160.34 767.082 1158.83 767.082C1157.81 767.082 1156.91 767.301 1156.13 767.739C1155.36 768.177 1154.76 768.817 1154.32 769.657C1153.89 770.486 1153.67 771.486 1153.66 772.658ZM1191.71 761.152V766.834H1175.28V761.152H1191.71ZM1179.01 754.618H1186.58V780.044C1186.58 780.743 1186.68 781.287 1186.89 781.678C1187.11 782.056 1187.4 782.323 1187.78 782.477C1188.17 782.631 1188.62 782.707 1189.13 782.707C1189.49 782.707 1189.84 782.678 1190.2 782.619C1190.55 782.548 1190.82 782.494 1191.01 782.459L1192.2 788.087C1191.82 788.206 1191.29 788.342 1190.61 788.496C1189.92 788.662 1189.08 788.762 1188.1 788.798C1186.28 788.869 1184.68 788.626 1183.31 788.07C1181.95 787.513 1180.89 786.649 1180.13 785.477C1179.37 784.305 1179 782.826 1179.01 781.038V754.618ZM1196.63 788.425V761.152H1203.84V765.964H1204.16C1204.73 764.366 1205.68 763.105 1207 762.182C1208.33 761.259 1209.91 760.797 1211.76 760.797C1213.63 760.797 1215.22 761.265 1216.54 762.2C1217.85 763.123 1218.73 764.378 1219.17 765.964H1219.45C1220.01 764.401 1221.01 763.153 1222.47 762.217C1223.94 761.27 1225.67 760.797 1227.67 760.797C1230.22 760.797 1232.28 761.608 1233.87 763.229C1235.47 764.839 1236.26 767.124 1236.26 770.083V788.425H1228.72V771.575C1228.72 770.06 1228.32 768.923 1227.51 768.166C1226.71 767.408 1225.7 767.029 1224.49 767.029C1223.12 767.029 1222.05 767.467 1221.28 768.343C1220.51 769.207 1220.12 770.35 1220.12 771.77V788.425H1212.79V771.415C1212.79 770.077 1212.41 769.012 1211.64 768.219C1210.88 767.426 1209.88 767.029 1208.64 767.029C1207.8 767.029 1207.04 767.242 1206.36 767.668C1205.7 768.083 1205.17 768.669 1204.78 769.426C1204.39 770.172 1204.2 771.048 1204.2 772.054V788.425H1196.63ZM1254.67 788.957C1251.86 788.957 1249.45 788.389 1247.42 787.253C1245.41 786.105 1243.86 784.483 1242.77 782.388C1241.68 780.281 1241.14 777.789 1241.14 774.913C1241.14 772.107 1241.68 769.645 1242.77 767.526C1243.86 765.408 1245.39 763.756 1247.37 762.573C1249.36 761.389 1251.69 760.797 1254.37 760.797C1256.17 760.797 1257.84 761.087 1259.39 761.667C1260.95 762.235 1262.31 763.093 1263.47 764.242C1264.65 765.39 1265.56 766.834 1266.21 768.574C1266.86 770.302 1267.19 772.326 1267.19 774.646V776.724H1244.16V772.036H1260.07C1260.07 770.947 1259.83 769.983 1259.36 769.142C1258.88 768.302 1258.23 767.645 1257.38 767.171C1256.56 766.686 1255.59 766.443 1254.49 766.443C1253.34 766.443 1252.32 766.71 1251.44 767.242C1250.56 767.763 1249.87 768.467 1249.38 769.355C1248.88 770.231 1248.63 771.208 1248.61 772.285V776.742C1248.61 778.091 1248.86 779.257 1249.36 780.239C1249.87 781.222 1250.58 781.979 1251.51 782.512C1252.43 783.045 1253.53 783.311 1254.79 783.311C1255.63 783.311 1256.4 783.193 1257.1 782.956C1257.8 782.719 1258.4 782.364 1258.89 781.891C1259.39 781.417 1259.77 780.837 1260.03 780.151L1267.03 780.612C1266.67 782.293 1265.94 783.761 1264.84 785.016C1263.75 786.259 1262.34 787.229 1260.62 787.928C1258.9 788.614 1256.92 788.957 1254.67 788.957ZM1279.69 772.658V788.425H1272.12V761.152H1279.33V765.964H1279.65C1280.25 764.378 1281.27 763.123 1282.69 762.2C1284.11 761.265 1285.83 760.797 1287.85 760.797C1289.75 760.797 1291.4 761.211 1292.81 762.04C1294.22 762.868 1295.31 764.052 1296.09 765.591C1296.87 767.118 1297.26 768.941 1297.26 771.06V788.425H1289.7V772.409C1289.71 770.74 1289.29 769.438 1288.42 768.503C1287.56 767.556 1286.37 767.082 1284.85 767.082C1283.83 767.082 1282.94 767.301 1282.15 767.739C1281.38 768.177 1280.78 768.817 1280.34 769.657C1279.92 770.486 1279.7 771.486 1279.69 772.658ZM1317.73 761.152V766.834H1301.31V761.152H1317.73ZM1305.04 754.618H1312.6V780.044C1312.6 780.743 1312.71 781.287 1312.92 781.678C1313.13 782.056 1313.43 782.323 1313.81 782.477C1314.2 782.631 1314.65 782.707 1315.16 782.707C1315.51 782.707 1315.87 782.678 1316.22 782.619C1316.58 782.548 1316.85 782.494 1317.04 782.459L1318.23 788.087C1317.85 788.206 1317.32 788.342 1316.63 788.496C1315.94 788.662 1315.11 788.762 1314.13 788.798C1312.3 788.869 1310.71 788.626 1309.33 788.07C1307.97 787.513 1306.91 786.649 1306.16 785.477C1305.4 784.305 1305.02 782.826 1305.04 781.038V754.618ZM1345.01 768.929L1338.08 769.355C1337.97 768.763 1337.71 768.231 1337.32 767.757C1336.93 767.272 1336.42 766.887 1335.78 766.603C1335.15 766.307 1334.4 766.159 1333.52 766.159C1332.35 766.159 1331.36 766.408 1330.56 766.905C1329.75 767.39 1329.35 768.041 1329.35 768.858C1329.35 769.509 1329.61 770.06 1330.13 770.509C1330.65 770.959 1331.54 771.32 1332.81 771.592L1337.75 772.587C1340.4 773.131 1342.38 774.007 1343.68 775.215C1344.98 776.422 1345.63 778.008 1345.63 779.973C1345.63 781.761 1345.1 783.329 1344.05 784.678C1343.01 786.028 1341.58 787.081 1339.75 787.839C1337.94 788.585 1335.85 788.957 1333.49 788.957C1329.88 788.957 1327 788.206 1324.86 786.703C1322.73 785.187 1321.48 783.128 1321.11 780.524L1328.55 780.133C1328.77 781.234 1329.32 782.074 1330.18 782.654C1331.05 783.222 1332.15 783.506 1333.5 783.506C1334.83 783.506 1335.89 783.252 1336.7 782.743C1337.52 782.222 1337.93 781.553 1337.94 780.737C1337.93 780.05 1337.64 779.488 1337.07 779.05C1336.5 778.6 1335.63 778.257 1334.44 778.02L1329.72 777.079C1327.06 776.546 1325.08 775.623 1323.77 774.309C1322.48 772.995 1321.84 771.32 1321.84 769.284C1321.84 767.532 1322.31 766.023 1323.26 764.756C1324.22 763.49 1325.56 762.513 1327.29 761.827C1329.03 761.14 1331.06 760.797 1333.4 760.797C1336.84 760.797 1339.55 761.525 1341.53 762.981C1343.52 764.437 1344.68 766.42 1345.01 768.929Z\",fill:\"#158CE5\"})),_path35||(_path35=/*#__PURE__*/React.createElement(\"path\",{d:\"M-3.5 852.5H720.5\",stroke:\"white\",strokeWidth:5})),_path36||(_path36=/*#__PURE__*/React.createElement(\"path\",{d:\"M716.5 852.5H1440.5\",stroke:\"#158CE5\",strokeWidth:5})),_path37||(_path37=/*#__PURE__*/React.createElement(\"path\",{d:\"M486.989 1000H481.449L497.472 956.364H502.926L518.949 1000H513.409L500.37 963.267H500.029L486.989 1000ZM489.034 982.955H511.364V987.642H489.034V982.955ZM530.093 980.312V1000H525.064V967.273H529.922V972.386H530.348C531.115 970.724 532.28 969.389 533.843 968.381C535.405 967.358 537.422 966.847 539.894 966.847C542.11 966.847 544.049 967.301 545.71 968.21C547.372 969.105 548.665 970.469 549.588 972.301C550.512 974.119 550.973 976.42 550.973 979.205V1000H545.945V979.545C545.945 976.974 545.277 974.972 543.942 973.537C542.607 972.088 540.774 971.364 538.445 971.364C536.84 971.364 535.405 971.712 534.141 972.408C532.891 973.104 531.904 974.119 531.179 975.455C530.455 976.79 530.093 978.409 530.093 980.312ZM565.19 980.312V1000H560.162V967.273H565.02V972.386H565.446C566.213 970.724 567.378 969.389 568.94 968.381C570.503 967.358 572.52 966.847 574.991 966.847C577.207 966.847 579.146 967.301 580.808 968.21C582.47 969.105 583.763 970.469 584.686 972.301C585.609 974.119 586.071 976.42 586.071 979.205V1000H581.043V979.545C581.043 976.974 580.375 974.972 579.04 973.537C577.704 972.088 575.872 971.364 573.543 971.364C571.937 971.364 570.503 971.712 569.239 972.408C567.989 973.104 567.001 974.119 566.277 975.455C565.552 976.79 565.19 978.409 565.19 980.312ZM604.89 1000.77C602.816 1000.77 600.934 1000.38 599.244 999.595C597.554 998.8 596.211 997.656 595.217 996.165C594.223 994.659 593.725 992.841 593.725 990.71C593.725 988.835 594.095 987.315 594.833 986.151C595.572 984.972 596.559 984.048 597.795 983.381C599.031 982.713 600.394 982.216 601.886 981.889C603.392 981.548 604.904 981.278 606.424 981.08C608.413 980.824 610.025 980.632 611.261 980.504C612.511 980.362 613.42 980.128 613.988 979.801C614.571 979.474 614.862 978.906 614.862 978.097V977.926C614.862 975.824 614.286 974.19 613.136 973.026C612 971.861 610.274 971.278 607.958 971.278C605.558 971.278 603.676 971.804 602.312 972.855C600.948 973.906 599.99 975.028 599.436 976.222L594.663 974.517C595.515 972.528 596.652 970.98 598.072 969.872C599.507 968.75 601.069 967.969 602.759 967.528C604.464 967.074 606.14 966.847 607.788 966.847C608.839 966.847 610.046 966.974 611.41 967.23C612.788 967.472 614.116 967.976 615.394 968.743C616.687 969.51 617.759 970.668 618.612 972.216C619.464 973.764 619.89 975.838 619.89 978.438V1000H614.862V995.568H614.606C614.265 996.278 613.697 997.038 612.902 997.848C612.106 998.658 611.048 999.347 609.727 999.915C608.406 1000.48 606.794 1000.77 604.89 1000.77ZM605.657 996.25C607.646 996.25 609.322 995.859 610.686 995.078C612.063 994.297 613.1 993.288 613.796 992.053C614.507 990.817 614.862 989.517 614.862 988.153V983.551C614.649 983.807 614.18 984.041 613.456 984.254C612.745 984.453 611.921 984.631 610.984 984.787C610.061 984.929 609.159 985.057 608.278 985.17C607.411 985.27 606.708 985.355 606.169 985.426C604.862 985.597 603.64 985.874 602.504 986.257C601.382 986.626 600.473 987.187 599.777 987.94C599.095 988.679 598.754 989.687 598.754 990.966C598.754 992.713 599.4 994.034 600.693 994.929C602 995.81 603.654 996.25 605.657 996.25ZM629.068 1012.27V967.273H633.926V972.472H634.523C634.892 971.903 635.403 971.179 636.057 970.298C636.724 969.403 637.676 968.608 638.912 967.912C640.162 967.202 641.852 966.847 643.983 966.847C646.739 966.847 649.168 967.536 651.27 968.913C653.372 970.291 655.013 972.244 656.192 974.773C657.371 977.301 657.96 980.284 657.96 983.722C657.96 987.188 657.371 990.192 656.192 992.734C655.013 995.263 653.379 997.223 651.291 998.615C649.203 999.993 646.795 1000.68 644.068 1000.68C641.966 1000.68 640.283 1000.33 639.018 999.638C637.754 998.928 636.781 998.125 636.099 997.23C635.418 996.321 634.892 995.568 634.523 994.972H634.097V1012.27H629.068ZM634.011 983.636C634.011 986.108 634.373 988.288 635.098 990.178C635.822 992.053 636.881 993.523 638.273 994.588C639.665 995.639 641.369 996.165 643.386 996.165C645.489 996.165 647.243 995.611 648.649 994.503C650.07 993.381 651.135 991.875 651.845 989.986C652.57 988.082 652.932 985.966 652.932 983.636C652.932 981.335 652.577 979.261 651.866 977.415C651.17 975.554 650.112 974.084 648.692 973.004C647.285 971.911 645.517 971.364 643.386 971.364C641.341 971.364 639.622 971.882 638.23 972.919C636.838 973.942 635.787 975.376 635.077 977.223C634.366 979.055 634.011 981.193 634.011 983.636ZM686.256 986.619V967.273H691.284V1000H686.256V994.46H685.915C685.148 996.122 683.954 997.536 682.335 998.7C680.716 999.851 678.67 1000.43 676.199 1000.43C674.153 1000.43 672.335 999.979 670.744 999.084C669.153 998.175 667.903 996.811 666.994 994.993C666.085 993.161 665.631 990.852 665.631 988.068V967.273H670.659V987.727C670.659 990.114 671.327 992.017 672.662 993.438C674.011 994.858 675.73 995.568 677.818 995.568C679.068 995.568 680.339 995.249 681.632 994.609C682.939 993.97 684.033 992.99 684.913 991.669C685.808 990.348 686.256 988.665 686.256 986.619ZM700.494 1000V967.273H705.352V972.216H705.693C706.289 970.597 707.369 969.283 708.931 968.274C710.494 967.266 712.255 966.761 714.215 966.761C714.585 966.761 715.046 966.768 715.6 966.783C716.154 966.797 716.573 966.818 716.858 966.847V971.96C716.687 971.918 716.296 971.854 715.686 971.768C715.089 971.669 714.457 971.619 713.789 971.619C712.198 971.619 710.778 971.953 709.528 972.621C708.292 973.274 707.312 974.183 706.588 975.348C705.877 976.499 705.522 977.812 705.522 979.29V1000H700.494ZM727.847 980.312V1000H722.818V967.273H727.676V972.386H728.102C728.869 970.724 730.034 969.389 731.597 968.381C733.159 967.358 735.176 966.847 737.648 966.847C739.864 966.847 741.802 967.301 743.464 968.21C745.126 969.105 746.419 970.469 747.342 972.301C748.266 974.119 748.727 976.42 748.727 979.205V1000H743.699V979.545C743.699 976.974 743.031 974.972 741.696 973.537C740.361 972.088 738.528 971.364 736.199 971.364C734.594 971.364 733.159 971.712 731.895 972.408C730.645 973.104 729.658 974.119 728.933 975.455C728.209 976.79 727.847 978.409 727.847 980.312ZM767.546 1000.77C765.473 1000.77 763.59 1000.38 761.9 999.595C760.21 998.8 758.867 997.656 757.873 996.165C756.879 994.659 756.382 992.841 756.382 990.71C756.382 988.835 756.751 987.315 757.49 986.151C758.228 984.972 759.215 984.048 760.451 983.381C761.687 982.713 763.051 982.216 764.542 981.889C766.048 981.548 767.561 981.278 769.081 981.08C771.069 980.824 772.681 980.632 773.917 980.504C775.167 980.362 776.076 980.128 776.644 979.801C777.227 979.474 777.518 978.906 777.518 978.097V977.926C777.518 975.824 776.943 974.19 775.792 973.026C774.656 971.861 772.93 971.278 770.615 971.278C768.214 971.278 766.332 971.804 764.968 972.855C763.605 973.906 762.646 975.028 762.092 976.222L757.319 974.517C758.171 972.528 759.308 970.98 760.728 969.872C762.163 968.75 763.725 967.969 765.416 967.528C767.12 967.074 768.796 966.847 770.444 966.847C771.495 966.847 772.703 966.974 774.066 967.23C775.444 967.472 776.772 967.976 778.051 968.743C779.343 969.51 780.416 970.668 781.268 972.216C782.12 973.764 782.546 975.838 782.546 978.438V1000H777.518V995.568H777.262C776.921 996.278 776.353 997.038 775.558 997.848C774.762 998.658 773.704 999.347 772.383 999.915C771.062 1000.48 769.45 1000.77 767.546 1000.77ZM768.313 996.25C770.302 996.25 771.978 995.859 773.342 995.078C774.72 994.297 775.757 993.288 776.453 992.053C777.163 990.817 777.518 989.517 777.518 988.153V983.551C777.305 983.807 776.836 984.041 776.112 984.254C775.402 984.453 774.578 984.631 773.64 984.787C772.717 984.929 771.815 985.057 770.934 985.17C770.068 985.27 769.365 985.355 768.825 985.426C767.518 985.597 766.296 985.874 765.16 986.257C764.038 986.626 763.129 987.187 762.433 987.94C761.751 988.679 761.41 989.687 761.41 990.966C761.41 992.713 762.056 994.034 763.349 994.929C764.656 995.81 766.311 996.25 768.313 996.25ZM833.145 967.273C832.889 965.114 831.852 963.438 830.034 962.244C828.216 961.051 825.986 960.455 823.344 960.455C821.412 960.455 819.722 960.767 818.273 961.392C816.838 962.017 815.716 962.876 814.906 963.97C814.111 965.064 813.713 966.307 813.713 967.699C813.713 968.864 813.99 969.865 814.544 970.703C815.112 971.527 815.837 972.216 816.717 972.77C817.598 973.31 818.521 973.757 819.487 974.112C820.453 974.453 821.341 974.73 822.15 974.943L826.582 976.136C827.719 976.435 828.983 976.847 830.375 977.372C831.781 977.898 833.123 978.615 834.402 979.524C835.695 980.419 836.76 981.57 837.598 982.976C838.436 984.382 838.855 986.108 838.855 988.153C838.855 990.511 838.237 992.642 837.001 994.545C835.78 996.449 833.99 997.962 831.632 999.084C829.288 1000.21 826.44 1000.77 823.088 1000.77C819.963 1000.77 817.257 1000.26 814.97 999.254C812.697 998.246 810.908 996.839 809.601 995.036C808.308 993.232 807.577 991.136 807.406 988.75H812.861C813.003 990.398 813.557 991.761 814.523 992.841C815.503 993.906 816.739 994.702 818.23 995.227C819.736 995.739 821.355 995.994 823.088 995.994C825.105 995.994 826.916 995.668 828.521 995.014C830.126 994.347 831.398 993.423 832.335 992.244C833.273 991.051 833.741 989.659 833.741 988.068C833.741 986.619 833.337 985.44 832.527 984.531C831.717 983.622 830.652 982.884 829.331 982.315C828.01 981.747 826.582 981.25 825.048 980.824L819.679 979.29C816.27 978.31 813.571 976.911 811.582 975.092C809.594 973.274 808.599 970.895 808.599 967.955C808.599 965.511 809.26 963.381 810.581 961.562C811.916 959.73 813.706 958.31 815.95 957.301C818.209 956.278 820.73 955.767 823.514 955.767C826.327 955.767 828.827 956.271 831.014 957.28C833.202 958.274 834.935 959.638 836.213 961.371C837.506 963.104 838.187 965.071 838.258 967.273H833.145Z\",fill:\"white\"})),_path38||(_path38=/*#__PURE__*/React.createElement(\"path\",{d:\"M486.989 1604H481.449L497.472 1560.36H502.926L518.949 1604H513.409L500.37 1567.27H500.029L486.989 1604ZM489.034 1586.95H511.364V1591.64H489.034V1586.95ZM530.093 1584.31V1604H525.064V1571.27H529.922V1576.39H530.348C531.115 1574.72 532.28 1573.39 533.843 1572.38C535.405 1571.36 537.422 1570.85 539.894 1570.85C542.11 1570.85 544.049 1571.3 545.71 1572.21C547.372 1573.11 548.665 1574.47 549.588 1576.3C550.512 1578.12 550.973 1580.42 550.973 1583.2V1604H545.945V1583.55C545.945 1580.97 545.277 1578.97 543.942 1577.54C542.607 1576.09 540.774 1575.36 538.445 1575.36C536.84 1575.36 535.405 1575.71 534.141 1576.41C532.891 1577.1 531.904 1578.12 531.179 1579.45C530.455 1580.79 530.093 1582.41 530.093 1584.31ZM565.19 1584.31V1604H560.162V1571.27H565.02V1576.39H565.446C566.213 1574.72 567.378 1573.39 568.94 1572.38C570.503 1571.36 572.52 1570.85 574.991 1570.85C577.207 1570.85 579.146 1571.3 580.808 1572.21C582.47 1573.11 583.763 1574.47 584.686 1576.3C585.609 1578.12 586.071 1580.42 586.071 1583.2V1604H581.043V1583.55C581.043 1580.97 580.375 1578.97 579.04 1577.54C577.704 1576.09 575.872 1575.36 573.543 1575.36C571.937 1575.36 570.503 1575.71 569.239 1576.41C567.989 1577.1 567.001 1578.12 566.277 1579.45C565.552 1580.79 565.19 1582.41 565.19 1584.31ZM604.89 1604.77C602.816 1604.77 600.934 1604.38 599.244 1603.6C597.554 1602.8 596.211 1601.66 595.217 1600.16C594.223 1598.66 593.725 1596.84 593.725 1594.71C593.725 1592.84 594.095 1591.32 594.833 1590.15C595.572 1588.97 596.559 1588.05 597.795 1587.38C599.031 1586.71 600.394 1586.22 601.886 1585.89C603.392 1585.55 604.904 1585.28 606.424 1585.08C608.413 1584.82 610.025 1584.63 611.261 1584.5C612.511 1584.36 613.42 1584.13 613.988 1583.8C614.571 1583.47 614.862 1582.91 614.862 1582.1V1581.93C614.862 1579.82 614.286 1578.19 613.136 1577.03C612 1575.86 610.274 1575.28 607.958 1575.28C605.558 1575.28 603.676 1575.8 602.312 1576.86C600.948 1577.91 599.99 1579.03 599.436 1580.22L594.663 1578.52C595.515 1576.53 596.652 1574.98 598.072 1573.87C599.507 1572.75 601.069 1571.97 602.759 1571.53C604.464 1571.07 606.14 1570.85 607.788 1570.85C608.839 1570.85 610.046 1570.97 611.41 1571.23C612.788 1571.47 614.116 1571.98 615.394 1572.74C616.687 1573.51 617.759 1574.67 618.612 1576.22C619.464 1577.76 619.89 1579.84 619.89 1582.44V1604H614.862V1599.57H614.606C614.265 1600.28 613.697 1601.04 612.902 1601.85C612.106 1602.66 611.048 1603.35 609.727 1603.91C608.406 1604.48 606.794 1604.77 604.89 1604.77ZM605.657 1600.25C607.646 1600.25 609.322 1599.86 610.686 1599.08C612.063 1598.3 613.1 1597.29 613.796 1596.05C614.507 1594.82 614.862 1593.52 614.862 1592.15V1587.55C614.649 1587.81 614.18 1588.04 613.456 1588.25C612.745 1588.45 611.921 1588.63 610.984 1588.79C610.061 1588.93 609.159 1589.06 608.278 1589.17C607.411 1589.27 606.708 1589.36 606.169 1589.43C604.862 1589.6 603.64 1589.87 602.504 1590.26C601.382 1590.63 600.473 1591.19 599.777 1591.94C599.095 1592.68 598.754 1593.69 598.754 1594.97C598.754 1596.71 599.4 1598.03 600.693 1598.93C602 1599.81 603.654 1600.25 605.657 1600.25ZM629.068 1616.27V1571.27H633.926V1576.47H634.523C634.892 1575.9 635.403 1575.18 636.057 1574.3C636.724 1573.4 637.676 1572.61 638.912 1571.91C640.162 1571.2 641.852 1570.85 643.983 1570.85C646.739 1570.85 649.168 1571.54 651.27 1572.91C653.372 1574.29 655.013 1576.24 656.192 1578.77C657.371 1581.3 657.96 1584.28 657.96 1587.72C657.96 1591.19 657.371 1594.19 656.192 1596.73C655.013 1599.26 653.379 1601.22 651.291 1602.62C649.203 1603.99 646.795 1604.68 644.068 1604.68C641.966 1604.68 640.283 1604.33 639.018 1603.64C637.754 1602.93 636.781 1602.12 636.099 1601.23C635.418 1600.32 634.892 1599.57 634.523 1598.97H634.097V1616.27H629.068ZM634.011 1587.64C634.011 1590.11 634.373 1592.29 635.098 1594.18C635.822 1596.05 636.881 1597.52 638.273 1598.59C639.665 1599.64 641.369 1600.16 643.386 1600.16C645.489 1600.16 647.243 1599.61 648.649 1598.5C650.07 1597.38 651.135 1595.87 651.845 1593.99C652.57 1592.08 652.932 1589.97 652.932 1587.64C652.932 1585.34 652.577 1583.26 651.866 1581.41C651.17 1579.55 650.112 1578.08 648.692 1577C647.285 1575.91 645.517 1575.36 643.386 1575.36C641.341 1575.36 639.622 1575.88 638.23 1576.92C636.838 1577.94 635.787 1579.38 635.077 1581.22C634.366 1583.06 634.011 1585.19 634.011 1587.64ZM686.256 1590.62V1571.27H691.284V1604H686.256V1598.46H685.915C685.148 1600.12 683.954 1601.54 682.335 1602.7C680.716 1603.85 678.67 1604.43 676.199 1604.43C674.153 1604.43 672.335 1603.98 670.744 1603.08C669.153 1602.17 667.903 1600.81 666.994 1598.99C666.085 1597.16 665.631 1594.85 665.631 1592.07V1571.27H670.659V1591.73C670.659 1594.11 671.327 1596.02 672.662 1597.44C674.011 1598.86 675.73 1599.57 677.818 1599.57C679.068 1599.57 680.339 1599.25 681.632 1598.61C682.939 1597.97 684.033 1596.99 684.913 1595.67C685.808 1594.35 686.256 1592.66 686.256 1590.62ZM700.494 1604V1571.27H705.352V1576.22H705.693C706.289 1574.6 707.369 1573.28 708.931 1572.27C710.494 1571.27 712.255 1570.76 714.215 1570.76C714.585 1570.76 715.046 1570.77 715.6 1570.78C716.154 1570.8 716.573 1570.82 716.858 1570.85V1575.96C716.687 1575.92 716.296 1575.85 715.686 1575.77C715.089 1575.67 714.457 1575.62 713.789 1575.62C712.198 1575.62 710.778 1575.95 709.528 1576.62C708.292 1577.27 707.312 1578.18 706.588 1579.35C705.877 1580.5 705.522 1581.81 705.522 1583.29V1604H700.494ZM727.847 1584.31V1604H722.818V1571.27H727.676V1576.39H728.102C728.869 1574.72 730.034 1573.39 731.597 1572.38C733.159 1571.36 735.176 1570.85 737.648 1570.85C739.864 1570.85 741.802 1571.3 743.464 1572.21C745.126 1573.11 746.419 1574.47 747.342 1576.3C748.266 1578.12 748.727 1580.42 748.727 1583.2V1604H743.699V1583.55C743.699 1580.97 743.031 1578.97 741.696 1577.54C740.361 1576.09 738.528 1575.36 736.199 1575.36C734.594 1575.36 733.159 1575.71 731.895 1576.41C730.645 1577.1 729.658 1578.12 728.933 1579.45C728.209 1580.79 727.847 1582.41 727.847 1584.31ZM767.546 1604.77C765.473 1604.77 763.59 1604.38 761.9 1603.6C760.21 1602.8 758.867 1601.66 757.873 1600.16C756.879 1598.66 756.382 1596.84 756.382 1594.71C756.382 1592.84 756.751 1591.32 757.49 1590.15C758.228 1588.97 759.215 1588.05 760.451 1587.38C761.687 1586.71 763.051 1586.22 764.542 1585.89C766.048 1585.55 767.561 1585.28 769.081 1585.08C771.069 1584.82 772.681 1584.63 773.917 1584.5C775.167 1584.36 776.076 1584.13 776.644 1583.8C777.227 1583.47 777.518 1582.91 777.518 1582.1V1581.93C777.518 1579.82 776.943 1578.19 775.792 1577.03C774.656 1575.86 772.93 1575.28 770.615 1575.28C768.214 1575.28 766.332 1575.8 764.968 1576.86C763.605 1577.91 762.646 1579.03 762.092 1580.22L757.319 1578.52C758.171 1576.53 759.308 1574.98 760.728 1573.87C762.163 1572.75 763.725 1571.97 765.416 1571.53C767.12 1571.07 768.796 1570.85 770.444 1570.85C771.495 1570.85 772.703 1570.97 774.066 1571.23C775.444 1571.47 776.772 1571.98 778.051 1572.74C779.343 1573.51 780.416 1574.67 781.268 1576.22C782.12 1577.76 782.546 1579.84 782.546 1582.44V1604H777.518V1599.57H777.262C776.921 1600.28 776.353 1601.04 775.558 1601.85C774.762 1602.66 773.704 1603.35 772.383 1603.91C771.062 1604.48 769.45 1604.77 767.546 1604.77ZM768.313 1600.25C770.302 1600.25 771.978 1599.86 773.342 1599.08C774.72 1598.3 775.757 1597.29 776.453 1596.05C777.163 1594.82 777.518 1593.52 777.518 1592.15V1587.55C777.305 1587.81 776.836 1588.04 776.112 1588.25C775.402 1588.45 774.578 1588.63 773.64 1588.79C772.717 1588.93 771.815 1589.06 770.934 1589.17C770.068 1589.27 769.365 1589.36 768.825 1589.43C767.518 1589.6 766.296 1589.87 765.16 1590.26C764.038 1590.63 763.129 1591.19 762.433 1591.94C761.751 1592.68 761.41 1593.69 761.41 1594.97C761.41 1596.71 762.056 1598.03 763.349 1598.93C764.656 1599.81 766.311 1600.25 768.313 1600.25ZM833.145 1571.27C832.889 1569.11 831.852 1567.44 830.034 1566.24C828.216 1565.05 825.986 1564.45 823.344 1564.45C821.412 1564.45 819.722 1564.77 818.273 1565.39C816.838 1566.02 815.716 1566.88 814.906 1567.97C814.111 1569.06 813.713 1570.31 813.713 1571.7C813.713 1572.86 813.99 1573.87 814.544 1574.7C815.112 1575.53 815.837 1576.22 816.717 1576.77C817.598 1577.31 818.521 1577.76 819.487 1578.11C820.453 1578.45 821.341 1578.73 822.15 1578.94L826.582 1580.14C827.719 1580.43 828.983 1580.85 830.375 1581.37C831.781 1581.9 833.123 1582.62 834.402 1583.52C835.695 1584.42 836.76 1585.57 837.598 1586.98C838.436 1588.38 838.855 1590.11 838.855 1592.15C838.855 1594.51 838.237 1596.64 837.001 1598.55C835.78 1600.45 833.99 1601.96 831.632 1603.08C829.288 1604.21 826.44 1604.77 823.088 1604.77C819.963 1604.77 817.257 1604.26 814.97 1603.25C812.697 1602.25 810.908 1600.84 809.601 1599.04C808.308 1597.23 807.577 1595.14 807.406 1592.75H812.861C813.003 1594.4 813.557 1595.76 814.523 1596.84C815.503 1597.91 816.739 1598.7 818.23 1599.23C819.736 1599.74 821.355 1599.99 823.088 1599.99C825.105 1599.99 826.916 1599.67 828.521 1599.01C830.126 1598.35 831.398 1597.42 832.335 1596.24C833.273 1595.05 833.741 1593.66 833.741 1592.07C833.741 1590.62 833.337 1589.44 832.527 1588.53C831.717 1587.62 830.652 1586.88 829.331 1586.32C828.01 1585.75 826.582 1585.25 825.048 1584.82L819.679 1583.29C816.27 1582.31 813.571 1580.91 811.582 1579.09C809.594 1577.27 808.599 1574.89 808.599 1571.95C808.599 1569.51 809.26 1567.38 810.581 1565.56C811.916 1563.73 813.706 1562.31 815.95 1561.3C818.209 1560.28 820.73 1559.77 823.514 1559.77C826.327 1559.77 828.827 1560.27 831.014 1561.28C833.202 1562.27 834.935 1563.64 836.213 1565.37C837.506 1567.1 838.187 1569.07 838.258 1571.27H833.145Z\",fill:\"white\"})),_path39||(_path39=/*#__PURE__*/React.createElement(\"path\",{d:\"M485.199 1151.5V1107.86H499.943C503.353 1107.86 506.151 1108.44 508.338 1109.61C510.526 1110.76 512.145 1112.34 513.196 1114.36C514.247 1116.38 514.773 1118.67 514.773 1121.24C514.773 1123.81 514.247 1126.09 513.196 1128.08C512.145 1130.07 510.533 1131.63 508.36 1132.77C506.186 1133.89 503.409 1134.45 500.029 1134.45H488.097V1129.68H499.858C502.188 1129.68 504.063 1129.34 505.483 1128.66C506.918 1127.98 507.955 1127.01 508.594 1125.76C509.247 1124.5 509.574 1122.99 509.574 1121.24C509.574 1119.5 509.247 1117.97 508.594 1116.66C507.941 1115.35 506.897 1114.35 505.462 1113.64C504.027 1112.91 502.131 1112.55 499.773 1112.55H490.483V1151.5H485.199ZM505.739 1131.9L516.478 1151.5H510.341L499.773 1131.9H505.739ZM532.527 1152.27C530.453 1152.27 528.571 1151.87 526.881 1151.09C525.19 1150.3 523.848 1149.15 522.854 1147.66C521.859 1146.16 521.362 1144.34 521.362 1142.21C521.362 1140.33 521.731 1138.81 522.47 1137.65C523.209 1136.47 524.196 1135.55 525.432 1134.88C526.668 1134.21 528.031 1133.71 529.523 1133.39C531.028 1133.05 532.541 1132.78 534.061 1132.58C536.05 1132.32 537.662 1132.13 538.898 1132C540.148 1131.86 541.057 1131.63 541.625 1131.3C542.207 1130.97 542.498 1130.4 542.498 1129.59V1129.42C542.498 1127.32 541.923 1125.69 540.773 1124.52C539.636 1123.36 537.91 1122.78 535.595 1122.78C533.195 1122.78 531.312 1123.3 529.949 1124.35C528.585 1125.4 527.626 1126.53 527.072 1127.72L522.3 1126.02C523.152 1124.03 524.288 1122.48 525.709 1121.37C527.143 1120.25 528.706 1119.47 530.396 1119.03C532.101 1118.57 533.777 1118.34 535.425 1118.34C536.476 1118.34 537.683 1118.47 539.047 1118.73C540.425 1118.97 541.753 1119.47 543.031 1120.24C544.324 1121.01 545.396 1122.17 546.248 1123.71C547.101 1125.26 547.527 1127.34 547.527 1129.94V1151.5H542.498V1147.07H542.243C541.902 1147.78 541.334 1148.54 540.538 1149.35C539.743 1150.16 538.685 1150.84 537.364 1151.41C536.043 1151.98 534.43 1152.27 532.527 1152.27ZM533.294 1147.75C535.283 1147.75 536.959 1147.36 538.322 1146.58C539.7 1145.79 540.737 1144.79 541.433 1143.55C542.143 1142.31 542.498 1141.02 542.498 1139.65V1135.05C542.285 1135.3 541.817 1135.54 541.092 1135.75C540.382 1135.95 539.558 1136.13 538.621 1136.28C537.697 1136.43 536.795 1136.55 535.915 1136.67C535.048 1136.77 534.345 1136.85 533.805 1136.92C532.498 1137.09 531.277 1137.37 530.141 1137.76C529.018 1138.12 528.109 1138.69 527.413 1139.44C526.731 1140.18 526.391 1141.19 526.391 1142.46C526.391 1144.21 527.037 1145.53 528.329 1146.43C529.636 1147.31 531.291 1147.75 533.294 1147.75ZM561.733 1131.81V1151.5H556.705V1118.77H561.563V1123.88H561.989C562.756 1122.22 563.921 1120.89 565.483 1119.88C567.046 1118.86 569.063 1118.34 571.534 1118.34C573.75 1118.34 575.689 1118.8 577.351 1119.71C579.013 1120.6 580.306 1121.97 581.229 1123.8C582.152 1125.62 582.614 1127.92 582.614 1130.7V1151.5H577.585V1131.04C577.585 1128.47 576.918 1126.47 575.583 1125.03C574.247 1123.59 572.415 1122.86 570.085 1122.86C568.48 1122.86 567.046 1123.21 565.782 1123.91C564.532 1124.6 563.544 1125.62 562.82 1126.95C562.095 1128.29 561.733 1129.91 561.733 1131.81ZM591.802 1118.77H596.831V1153.88C596.831 1155.9 596.483 1157.65 595.787 1159.13C595.105 1160.6 594.068 1161.75 592.676 1162.56C591.298 1163.37 589.558 1163.77 587.456 1163.77C587.285 1163.77 587.115 1163.77 586.945 1163.77C586.774 1163.77 586.604 1163.77 586.433 1163.77V1159.08C586.604 1159.08 586.76 1159.08 586.902 1159.08C587.044 1159.08 587.2 1159.08 587.371 1159.08C588.905 1159.08 590.027 1158.63 590.737 1157.72C591.447 1156.82 591.802 1155.55 591.802 1153.88V1118.77ZM594.274 1113.32C593.294 1113.32 592.449 1112.98 591.739 1112.31C591.043 1111.65 590.695 1110.84 590.695 1109.91C590.695 1108.97 591.043 1108.17 591.739 1107.5C592.449 1106.83 593.294 1106.5 594.274 1106.5C595.254 1106.5 596.092 1106.83 596.788 1107.5C597.498 1108.17 597.854 1108.97 597.854 1109.91C597.854 1110.84 597.498 1111.65 596.788 1112.31C596.092 1112.98 595.254 1113.32 594.274 1113.32ZM615.671 1152.27C613.598 1152.27 611.715 1151.87 610.025 1151.09C608.335 1150.3 606.992 1149.15 605.998 1147.66C605.004 1146.16 604.507 1144.34 604.507 1142.21C604.507 1140.33 604.876 1138.81 605.615 1137.65C606.353 1136.47 607.34 1135.55 608.576 1134.88C609.812 1134.21 611.176 1133.71 612.667 1133.39C614.173 1133.05 615.686 1132.78 617.206 1132.58C619.194 1132.32 620.806 1132.13 622.042 1132C623.292 1131.86 624.201 1131.63 624.769 1131.3C625.352 1130.97 625.643 1130.4 625.643 1129.59V1129.42C625.643 1127.32 625.068 1125.69 623.917 1124.52C622.781 1123.36 621.055 1122.78 618.74 1122.78C616.339 1122.78 614.457 1123.3 613.093 1124.35C611.73 1125.4 610.771 1126.53 610.217 1127.72L605.444 1126.02C606.296 1124.03 607.433 1122.48 608.853 1121.37C610.288 1120.25 611.85 1119.47 613.541 1119.03C615.245 1118.57 616.921 1118.34 618.569 1118.34C619.62 1118.34 620.828 1118.47 622.191 1118.73C623.569 1118.97 624.897 1119.47 626.176 1120.24C627.468 1121.01 628.541 1122.17 629.393 1123.71C630.245 1125.26 630.671 1127.34 630.671 1129.94V1151.5H625.643V1147.07H625.387C625.046 1147.78 624.478 1148.54 623.683 1149.35C622.887 1150.16 621.829 1150.84 620.508 1151.41C619.187 1151.98 617.575 1152.27 615.671 1152.27ZM616.438 1147.75C618.427 1147.75 620.103 1147.36 621.467 1146.58C622.845 1145.79 623.882 1144.79 624.578 1143.55C625.288 1142.31 625.643 1141.02 625.643 1139.65V1135.05C625.43 1135.3 624.961 1135.54 624.237 1135.75C623.527 1135.95 622.703 1136.13 621.765 1136.28C620.842 1136.43 619.94 1136.55 619.059 1136.67C618.193 1136.77 617.49 1136.85 616.95 1136.92C615.643 1137.09 614.421 1137.37 613.285 1137.76C612.163 1138.12 611.254 1138.69 610.558 1139.44C609.876 1140.18 609.535 1141.19 609.535 1142.46C609.535 1144.21 610.181 1145.53 611.474 1146.43C612.781 1147.31 614.436 1147.75 616.438 1147.75ZM644.878 1131.81V1151.5H639.849V1118.77H644.707V1123.88H645.133C645.9 1122.22 647.065 1120.89 648.628 1119.88C650.19 1118.86 652.207 1118.34 654.679 1118.34C656.895 1118.34 658.834 1118.8 660.496 1119.71C662.158 1120.6 663.45 1121.97 664.373 1123.8C665.297 1125.62 665.758 1127.92 665.758 1130.7V1151.5H660.73V1131.04C660.73 1128.47 660.062 1126.47 658.727 1125.03C657.392 1123.59 655.56 1122.86 653.23 1122.86C651.625 1122.86 650.19 1123.21 648.926 1123.91C647.676 1124.6 646.689 1125.62 645.964 1126.95C645.24 1128.29 644.878 1129.91 644.878 1131.81ZM684.578 1152.27C682.504 1152.27 680.622 1151.87 678.931 1151.09C677.241 1150.3 675.899 1149.15 674.904 1147.66C673.91 1146.16 673.413 1144.34 673.413 1142.21C673.413 1140.33 673.782 1138.81 674.521 1137.65C675.259 1136.47 676.247 1135.55 677.483 1134.88C678.718 1134.21 680.082 1133.71 681.573 1133.39C683.079 1133.05 684.592 1132.78 686.112 1132.58C688.1 1132.32 689.713 1132.13 690.948 1132C692.198 1131.86 693.108 1131.63 693.676 1131.3C694.258 1130.97 694.549 1130.4 694.549 1129.59V1129.42C694.549 1127.32 693.974 1125.69 692.823 1124.52C691.687 1123.36 689.961 1122.78 687.646 1122.78C685.245 1122.78 683.363 1123.3 682 1124.35C680.636 1125.4 679.677 1126.53 679.123 1127.72L674.35 1126.02C675.203 1124.03 676.339 1122.48 677.759 1121.37C679.194 1120.25 680.757 1119.47 682.447 1119.03C684.152 1118.57 685.828 1118.34 687.475 1118.34C688.527 1118.34 689.734 1118.47 691.098 1118.73C692.475 1118.97 693.804 1119.47 695.082 1120.24C696.375 1121.01 697.447 1122.17 698.299 1123.71C699.152 1125.26 699.578 1127.34 699.578 1129.94V1151.5H694.549V1147.07H694.294C693.953 1147.78 693.384 1148.54 692.589 1149.35C691.794 1150.16 690.735 1150.84 689.414 1151.41C688.093 1151.98 686.481 1152.27 684.578 1152.27ZM685.345 1147.75C687.333 1147.75 689.009 1147.36 690.373 1146.58C691.751 1145.79 692.788 1144.79 693.484 1143.55C694.194 1142.31 694.549 1141.02 694.549 1139.65V1135.05C694.336 1135.3 693.867 1135.54 693.143 1135.75C692.433 1135.95 691.609 1136.13 690.671 1136.28C689.748 1136.43 688.846 1136.55 687.965 1136.67C687.099 1136.77 686.396 1136.85 685.856 1136.92C684.549 1137.09 683.328 1137.37 682.191 1137.76C681.069 1138.12 680.16 1138.69 679.464 1139.44C678.782 1140.18 678.441 1141.19 678.441 1142.46C678.441 1144.21 679.088 1145.53 680.38 1146.43C681.687 1147.31 683.342 1147.75 685.345 1147.75ZM726.312 1107.86H732.619L747.449 1144.08H747.96L762.79 1107.86H769.097V1151.5H764.153V1118.34H763.727L750.091 1151.5H745.318L731.682 1118.34H731.256V1151.5H726.312V1107.86Z\",fill:\"white\"})),_path40||(_path40=/*#__PURE__*/React.createElement(\"path\",{d:\"M485.199 1755.5V1711.86H499.943C503.353 1711.86 506.151 1712.44 508.338 1713.61C510.526 1714.76 512.145 1716.34 513.196 1718.36C514.247 1720.38 514.773 1722.67 514.773 1725.24C514.773 1727.81 514.247 1730.09 513.196 1732.08C512.145 1734.07 510.533 1735.63 508.36 1736.77C506.186 1737.89 503.409 1738.45 500.029 1738.45H488.097V1733.68H499.858C502.188 1733.68 504.063 1733.34 505.483 1732.66C506.918 1731.98 507.955 1731.01 508.594 1729.76C509.247 1728.5 509.574 1726.99 509.574 1725.24C509.574 1723.5 509.247 1721.97 508.594 1720.66C507.941 1719.35 506.897 1718.35 505.462 1717.64C504.027 1716.91 502.131 1716.55 499.773 1716.55H490.483V1755.5H485.199ZM505.739 1735.9L516.478 1755.5H510.341L499.773 1735.9H505.739ZM532.527 1756.27C530.453 1756.27 528.571 1755.87 526.881 1755.09C525.19 1754.3 523.848 1753.15 522.854 1751.66C521.859 1750.16 521.362 1748.34 521.362 1746.21C521.362 1744.33 521.731 1742.81 522.47 1741.65C523.209 1740.47 524.196 1739.55 525.432 1738.88C526.668 1738.21 528.031 1737.71 529.523 1737.39C531.028 1737.05 532.541 1736.78 534.061 1736.58C536.05 1736.32 537.662 1736.13 538.898 1736C540.148 1735.86 541.057 1735.63 541.625 1735.3C542.207 1734.97 542.498 1734.4 542.498 1733.59V1733.42C542.498 1731.32 541.923 1729.69 540.773 1728.52C539.636 1727.36 537.91 1726.78 535.595 1726.78C533.195 1726.78 531.312 1727.3 529.949 1728.35C528.585 1729.4 527.626 1730.53 527.072 1731.72L522.3 1730.02C523.152 1728.03 524.288 1726.48 525.709 1725.37C527.143 1724.25 528.706 1723.47 530.396 1723.03C532.101 1722.57 533.777 1722.34 535.425 1722.34C536.476 1722.34 537.683 1722.47 539.047 1722.73C540.425 1722.97 541.753 1723.47 543.031 1724.24C544.324 1725.01 545.396 1726.17 546.248 1727.71C547.101 1729.26 547.527 1731.34 547.527 1733.94V1755.5H542.498V1751.07H542.243C541.902 1751.78 541.334 1752.54 540.538 1753.35C539.743 1754.16 538.685 1754.84 537.364 1755.41C536.043 1755.98 534.43 1756.27 532.527 1756.27ZM533.294 1751.75C535.283 1751.75 536.959 1751.36 538.322 1750.58C539.7 1749.79 540.737 1748.79 541.433 1747.55C542.143 1746.31 542.498 1745.02 542.498 1743.65V1739.05C542.285 1739.3 541.817 1739.54 541.092 1739.75C540.382 1739.95 539.558 1740.13 538.621 1740.28C537.697 1740.43 536.795 1740.55 535.915 1740.67C535.048 1740.77 534.345 1740.85 533.805 1740.92C532.498 1741.09 531.277 1741.37 530.141 1741.76C529.018 1742.12 528.109 1742.69 527.413 1743.44C526.731 1744.18 526.391 1745.19 526.391 1746.46C526.391 1748.21 527.037 1749.53 528.329 1750.43C529.636 1751.31 531.291 1751.75 533.294 1751.75ZM561.733 1735.81V1755.5H556.705V1722.77H561.563V1727.88H561.989C562.756 1726.22 563.921 1724.89 565.483 1723.88C567.046 1722.86 569.063 1722.34 571.534 1722.34C573.75 1722.34 575.689 1722.8 577.351 1723.71C579.013 1724.6 580.306 1725.97 581.229 1727.8C582.152 1729.62 582.614 1731.92 582.614 1734.7V1755.5H577.585V1735.04C577.585 1732.47 576.918 1730.47 575.583 1729.03C574.247 1727.59 572.415 1726.86 570.085 1726.86C568.48 1726.86 567.046 1727.21 565.782 1727.91C564.532 1728.6 563.544 1729.62 562.82 1730.95C562.095 1732.29 561.733 1733.91 561.733 1735.81ZM591.802 1722.77H596.831V1757.88C596.831 1759.9 596.483 1761.65 595.787 1763.13C595.105 1764.6 594.068 1765.75 592.676 1766.56C591.298 1767.37 589.558 1767.77 587.456 1767.77C587.285 1767.77 587.115 1767.77 586.945 1767.77C586.774 1767.77 586.604 1767.77 586.433 1767.77V1763.08C586.604 1763.08 586.76 1763.08 586.902 1763.08C587.044 1763.08 587.2 1763.08 587.371 1763.08C588.905 1763.08 590.027 1762.63 590.737 1761.72C591.447 1760.82 591.802 1759.55 591.802 1757.88V1722.77ZM594.274 1717.32C593.294 1717.32 592.449 1716.98 591.739 1716.31C591.043 1715.65 590.695 1714.84 590.695 1713.91C590.695 1712.97 591.043 1712.17 591.739 1711.5C592.449 1710.83 593.294 1710.5 594.274 1710.5C595.254 1710.5 596.092 1710.83 596.788 1711.5C597.498 1712.17 597.854 1712.97 597.854 1713.91C597.854 1714.84 597.498 1715.65 596.788 1716.31C596.092 1716.98 595.254 1717.32 594.274 1717.32ZM615.671 1756.27C613.598 1756.27 611.715 1755.87 610.025 1755.09C608.335 1754.3 606.992 1753.15 605.998 1751.66C605.004 1750.16 604.507 1748.34 604.507 1746.21C604.507 1744.33 604.876 1742.81 605.615 1741.65C606.353 1740.47 607.34 1739.55 608.576 1738.88C609.812 1738.21 611.176 1737.71 612.667 1737.39C614.173 1737.05 615.686 1736.78 617.206 1736.58C619.194 1736.32 620.806 1736.13 622.042 1736C623.292 1735.86 624.201 1735.63 624.769 1735.3C625.352 1734.97 625.643 1734.4 625.643 1733.59V1733.42C625.643 1731.32 625.068 1729.69 623.917 1728.52C622.781 1727.36 621.055 1726.78 618.74 1726.78C616.339 1726.78 614.457 1727.3 613.093 1728.35C611.73 1729.4 610.771 1730.53 610.217 1731.72L605.444 1730.02C606.296 1728.03 607.433 1726.48 608.853 1725.37C610.288 1724.25 611.85 1723.47 613.541 1723.03C615.245 1722.57 616.921 1722.34 618.569 1722.34C619.62 1722.34 620.828 1722.47 622.191 1722.73C623.569 1722.97 624.897 1723.47 626.176 1724.24C627.468 1725.01 628.541 1726.17 629.393 1727.71C630.245 1729.26 630.671 1731.34 630.671 1733.94V1755.5H625.643V1751.07H625.387C625.046 1751.78 624.478 1752.54 623.683 1753.35C622.887 1754.16 621.829 1754.84 620.508 1755.41C619.187 1755.98 617.575 1756.27 615.671 1756.27ZM616.438 1751.75C618.427 1751.75 620.103 1751.36 621.467 1750.58C622.845 1749.79 623.882 1748.79 624.578 1747.55C625.288 1746.31 625.643 1745.02 625.643 1743.65V1739.05C625.43 1739.3 624.961 1739.54 624.237 1739.75C623.527 1739.95 622.703 1740.13 621.765 1740.28C620.842 1740.43 619.94 1740.55 619.059 1740.67C618.193 1740.77 617.49 1740.85 616.95 1740.92C615.643 1741.09 614.421 1741.37 613.285 1741.76C612.163 1742.12 611.254 1742.69 610.558 1743.44C609.876 1744.18 609.535 1745.19 609.535 1746.46C609.535 1748.21 610.181 1749.53 611.474 1750.43C612.781 1751.31 614.436 1751.75 616.438 1751.75ZM644.878 1735.81V1755.5H639.849V1722.77H644.707V1727.88H645.133C645.9 1726.22 647.065 1724.89 648.628 1723.88C650.19 1722.86 652.207 1722.34 654.679 1722.34C656.895 1722.34 658.834 1722.8 660.496 1723.71C662.158 1724.6 663.45 1725.97 664.373 1727.8C665.297 1729.62 665.758 1731.92 665.758 1734.7V1755.5H660.73V1735.04C660.73 1732.47 660.062 1730.47 658.727 1729.03C657.392 1727.59 655.56 1726.86 653.23 1726.86C651.625 1726.86 650.19 1727.21 648.926 1727.91C647.676 1728.6 646.689 1729.62 645.964 1730.95C645.24 1732.29 644.878 1733.91 644.878 1735.81ZM684.578 1756.27C682.504 1756.27 680.622 1755.87 678.931 1755.09C677.241 1754.3 675.899 1753.15 674.904 1751.66C673.91 1750.16 673.413 1748.34 673.413 1746.21C673.413 1744.33 673.782 1742.81 674.521 1741.65C675.259 1740.47 676.247 1739.55 677.483 1738.88C678.718 1738.21 680.082 1737.71 681.573 1737.39C683.079 1737.05 684.592 1736.78 686.112 1736.58C688.1 1736.32 689.713 1736.13 690.948 1736C692.198 1735.86 693.108 1735.63 693.676 1735.3C694.258 1734.97 694.549 1734.4 694.549 1733.59V1733.42C694.549 1731.32 693.974 1729.69 692.823 1728.52C691.687 1727.36 689.961 1726.78 687.646 1726.78C685.245 1726.78 683.363 1727.3 682 1728.35C680.636 1729.4 679.677 1730.53 679.123 1731.72L674.35 1730.02C675.203 1728.03 676.339 1726.48 677.759 1725.37C679.194 1724.25 680.757 1723.47 682.447 1723.03C684.152 1722.57 685.828 1722.34 687.475 1722.34C688.527 1722.34 689.734 1722.47 691.098 1722.73C692.475 1722.97 693.804 1723.47 695.082 1724.24C696.375 1725.01 697.447 1726.17 698.299 1727.71C699.152 1729.26 699.578 1731.34 699.578 1733.94V1755.5H694.549V1751.07H694.294C693.953 1751.78 693.384 1752.54 692.589 1753.35C691.794 1754.16 690.735 1754.84 689.414 1755.41C688.093 1755.98 686.481 1756.27 684.578 1756.27ZM685.345 1751.75C687.333 1751.75 689.009 1751.36 690.373 1750.58C691.751 1749.79 692.788 1748.79 693.484 1747.55C694.194 1746.31 694.549 1745.02 694.549 1743.65V1739.05C694.336 1739.3 693.867 1739.54 693.143 1739.75C692.433 1739.95 691.609 1740.13 690.671 1740.28C689.748 1740.43 688.846 1740.55 687.965 1740.67C687.099 1740.77 686.396 1740.85 685.856 1740.92C684.549 1741.09 683.328 1741.37 682.191 1741.76C681.069 1742.12 680.16 1742.69 679.464 1743.44C678.782 1744.18 678.441 1745.19 678.441 1746.46C678.441 1748.21 679.088 1749.53 680.38 1750.43C681.687 1751.31 683.342 1751.75 685.345 1751.75ZM726.312 1711.86H732.619L747.449 1748.08H747.96L762.79 1711.86H769.097V1755.5H764.153V1722.34H763.727L750.091 1755.5H745.318L731.682 1722.34H731.256V1755.5H726.312V1711.86Z\",fill:\"white\"})),_path41||(_path41=/*#__PURE__*/React.createElement(\"path\",{d:\"M486.989 1302.5H481.449L497.472 1258.86H502.926L518.949 1302.5H513.409L500.37 1265.77H500.029L486.989 1302.5ZM489.034 1285.45H511.364V1290.14H489.034V1285.45ZM537.246 1269.77V1274.03H520.286V1269.77H537.246ZM525.229 1261.93H530.258V1293.12C530.258 1294.54 530.464 1295.61 530.876 1296.32C531.302 1297.02 531.842 1297.48 532.495 1297.73C533.163 1297.95 533.866 1298.07 534.604 1298.07C535.158 1298.07 535.613 1298.04 535.968 1297.98C536.323 1297.91 536.607 1297.85 536.82 1297.81L537.843 1302.33C537.502 1302.46 537.026 1302.58 536.415 1302.71C535.805 1302.85 535.03 1302.92 534.093 1302.92C532.672 1302.92 531.28 1302.62 529.917 1302.01C528.567 1301.4 527.445 1300.47 526.55 1299.22C525.67 1297.97 525.229 1296.39 525.229 1294.49V1261.93ZM550.542 1282.81V1302.5H545.513V1258.86H550.542V1274.88H550.968C551.735 1273.19 552.886 1271.85 554.42 1270.86C555.968 1269.85 558.028 1269.34 560.599 1269.34C562.829 1269.34 564.782 1269.79 566.458 1270.69C568.134 1271.57 569.434 1272.92 570.357 1274.76C571.295 1276.57 571.763 1278.89 571.763 1281.7V1302.5H566.735V1282.04C566.735 1279.44 566.06 1277.43 564.711 1276.01C563.376 1274.58 561.522 1273.86 559.15 1273.86C557.502 1273.86 556.025 1274.21 554.718 1274.91C553.425 1275.6 552.403 1276.62 551.65 1277.95C550.911 1279.29 550.542 1280.91 550.542 1282.81ZM580.963 1302.5V1269.77H585.991V1302.5H580.963ZM583.519 1264.32C582.539 1264.32 581.694 1263.98 580.984 1263.31C580.288 1262.65 579.94 1261.84 579.94 1260.91C579.94 1259.97 580.288 1259.17 580.984 1258.5C581.694 1257.83 582.539 1257.5 583.519 1257.5C584.5 1257.5 585.338 1257.83 586.034 1258.5C586.744 1259.17 587.099 1259.97 587.099 1260.91C587.099 1261.84 586.744 1262.65 586.034 1263.31C585.338 1263.98 584.5 1264.32 583.519 1264.32ZM595.201 1302.5V1269.77H600.059V1274.71H600.4C600.996 1273.09 602.076 1271.78 603.638 1270.77C605.201 1269.76 606.962 1269.26 608.922 1269.26C609.292 1269.26 609.753 1269.27 610.307 1269.28C610.861 1269.29 611.28 1269.32 611.565 1269.34V1274.46C611.394 1274.42 611.003 1274.35 610.393 1274.27C609.796 1274.17 609.164 1274.12 608.496 1274.12C606.905 1274.12 605.485 1274.45 604.235 1275.12C602.999 1275.77 602.019 1276.68 601.295 1277.85C600.584 1279 600.229 1280.31 600.229 1281.79V1302.5H595.201ZM627.156 1303.27C625.082 1303.27 623.2 1302.87 621.509 1302.09C619.819 1301.3 618.477 1300.15 617.483 1298.66C616.488 1297.16 615.991 1295.34 615.991 1293.21C615.991 1291.33 616.36 1289.81 617.099 1288.65C617.838 1287.47 618.825 1286.55 620.061 1285.88C621.296 1285.21 622.66 1284.71 624.152 1284.39C625.657 1284.05 627.17 1283.78 628.69 1283.58C630.679 1283.32 632.291 1283.13 633.527 1283C634.777 1282.86 635.686 1282.63 636.254 1282.3C636.836 1281.97 637.127 1281.4 637.127 1280.59V1280.42C637.127 1278.32 636.552 1276.69 635.402 1275.52C634.265 1274.36 632.539 1273.78 630.224 1273.78C627.823 1273.78 625.941 1274.3 624.578 1275.35C623.214 1276.4 622.255 1277.53 621.701 1278.72L616.929 1277.02C617.781 1275.03 618.917 1273.48 620.338 1272.37C621.772 1271.25 623.335 1270.47 625.025 1270.03C626.73 1269.57 628.406 1269.34 630.054 1269.34C631.105 1269.34 632.312 1269.47 633.676 1269.73C635.054 1269.97 636.382 1270.47 637.66 1271.24C638.953 1272.01 640.025 1273.17 640.877 1274.71C641.73 1276.26 642.156 1278.34 642.156 1280.94V1302.5H637.127V1298.07H636.872C636.531 1298.78 635.963 1299.54 635.167 1300.35C634.372 1301.16 633.313 1301.84 631.992 1302.41C630.671 1302.98 629.059 1303.27 627.156 1303.27ZM627.923 1298.75C629.911 1298.75 631.588 1298.36 632.951 1297.58C634.329 1296.79 635.366 1295.79 636.062 1294.55C636.772 1293.31 637.127 1292.02 637.127 1290.65V1286.05C636.914 1286.3 636.446 1286.54 635.721 1286.75C635.011 1286.95 634.187 1287.13 633.25 1287.28C632.326 1287.43 631.424 1287.55 630.544 1287.67C629.677 1287.77 628.974 1287.85 628.434 1287.92C627.127 1288.09 625.906 1288.37 624.769 1288.76C623.647 1289.12 622.738 1289.69 622.042 1290.44C621.36 1291.18 621.019 1292.19 621.019 1293.46C621.019 1295.21 621.666 1296.53 622.958 1297.43C624.265 1298.31 625.92 1298.75 627.923 1298.75ZM668.891 1258.86H675.197L690.027 1295.08H690.538L705.368 1258.86H711.675V1302.5H706.731V1269.34H706.305L692.669 1302.5H687.896L674.26 1269.34H673.834V1302.5H668.891V1258.86Z\",fill:\"white\"})),_path42||(_path42=/*#__PURE__*/React.createElement(\"path\",{d:\"M486.989 1906.5H481.449L497.472 1862.86H502.926L518.949 1906.5H513.409L500.37 1869.77H500.029L486.989 1906.5ZM489.034 1889.45H511.364V1894.14H489.034V1889.45ZM537.246 1873.77V1878.03H520.286V1873.77H537.246ZM525.229 1865.93H530.258V1897.12C530.258 1898.54 530.464 1899.61 530.876 1900.32C531.302 1901.02 531.842 1901.48 532.495 1901.73C533.163 1901.95 533.866 1902.07 534.604 1902.07C535.158 1902.07 535.613 1902.04 535.968 1901.98C536.323 1901.91 536.607 1901.85 536.82 1901.81L537.843 1906.33C537.502 1906.46 537.026 1906.58 536.415 1906.71C535.805 1906.85 535.03 1906.92 534.093 1906.92C532.672 1906.92 531.28 1906.62 529.917 1906.01C528.567 1905.4 527.445 1904.47 526.55 1903.22C525.67 1901.97 525.229 1900.39 525.229 1898.49V1865.93ZM550.542 1886.81V1906.5H545.513V1862.86H550.542V1878.88H550.968C551.735 1877.19 552.886 1875.85 554.42 1874.86C555.968 1873.85 558.028 1873.34 560.599 1873.34C562.829 1873.34 564.782 1873.79 566.458 1874.69C568.134 1875.57 569.434 1876.92 570.357 1878.76C571.295 1880.57 571.763 1882.89 571.763 1885.7V1906.5H566.735V1886.04C566.735 1883.44 566.06 1881.43 564.711 1880.01C563.376 1878.58 561.522 1877.86 559.15 1877.86C557.502 1877.86 556.025 1878.21 554.718 1878.91C553.425 1879.6 552.403 1880.62 551.65 1881.95C550.911 1883.29 550.542 1884.91 550.542 1886.81ZM580.963 1906.5V1873.77H585.991V1906.5H580.963ZM583.519 1868.32C582.539 1868.32 581.694 1867.98 580.984 1867.31C580.288 1866.65 579.94 1865.84 579.94 1864.91C579.94 1863.97 580.288 1863.17 580.984 1862.5C581.694 1861.83 582.539 1861.5 583.519 1861.5C584.5 1861.5 585.338 1861.83 586.034 1862.5C586.744 1863.17 587.099 1863.97 587.099 1864.91C587.099 1865.84 586.744 1866.65 586.034 1867.31C585.338 1867.98 584.5 1868.32 583.519 1868.32ZM595.201 1906.5V1873.77H600.059V1878.71H600.4C600.996 1877.09 602.076 1875.78 603.638 1874.77C605.201 1873.76 606.962 1873.26 608.922 1873.26C609.292 1873.26 609.753 1873.27 610.307 1873.28C610.861 1873.29 611.28 1873.32 611.565 1873.34V1878.46C611.394 1878.42 611.003 1878.35 610.393 1878.27C609.796 1878.17 609.164 1878.12 608.496 1878.12C606.905 1878.12 605.485 1878.45 604.235 1879.12C602.999 1879.77 602.019 1880.68 601.295 1881.85C600.584 1883 600.229 1884.31 600.229 1885.79V1906.5H595.201ZM627.156 1907.27C625.082 1907.27 623.2 1906.87 621.509 1906.09C619.819 1905.3 618.477 1904.15 617.483 1902.66C616.488 1901.16 615.991 1899.34 615.991 1897.21C615.991 1895.33 616.36 1893.81 617.099 1892.65C617.838 1891.47 618.825 1890.55 620.061 1889.88C621.296 1889.21 622.66 1888.71 624.152 1888.39C625.657 1888.05 627.17 1887.78 628.69 1887.58C630.679 1887.32 632.291 1887.13 633.527 1887C634.777 1886.86 635.686 1886.63 636.254 1886.3C636.836 1885.97 637.127 1885.4 637.127 1884.59V1884.42C637.127 1882.32 636.552 1880.69 635.402 1879.52C634.265 1878.36 632.539 1877.78 630.224 1877.78C627.823 1877.78 625.941 1878.3 624.578 1879.35C623.214 1880.4 622.255 1881.53 621.701 1882.72L616.929 1881.02C617.781 1879.03 618.917 1877.48 620.338 1876.37C621.772 1875.25 623.335 1874.47 625.025 1874.03C626.73 1873.57 628.406 1873.34 630.054 1873.34C631.105 1873.34 632.312 1873.47 633.676 1873.73C635.054 1873.97 636.382 1874.47 637.66 1875.24C638.953 1876.01 640.025 1877.17 640.877 1878.71C641.73 1880.26 642.156 1882.34 642.156 1884.94V1906.5H637.127V1902.07H636.872C636.531 1902.78 635.963 1903.54 635.167 1904.35C634.372 1905.16 633.313 1905.84 631.992 1906.41C630.671 1906.98 629.059 1907.27 627.156 1907.27ZM627.923 1902.75C629.911 1902.75 631.588 1902.36 632.951 1901.58C634.329 1900.79 635.366 1899.79 636.062 1898.55C636.772 1897.31 637.127 1896.02 637.127 1894.65V1890.05C636.914 1890.3 636.446 1890.54 635.721 1890.75C635.011 1890.95 634.187 1891.13 633.25 1891.28C632.326 1891.43 631.424 1891.55 630.544 1891.67C629.677 1891.77 628.974 1891.85 628.434 1891.92C627.127 1892.09 625.906 1892.37 624.769 1892.76C623.647 1893.12 622.738 1893.69 622.042 1894.44C621.36 1895.18 621.019 1896.19 621.019 1897.46C621.019 1899.21 621.666 1900.53 622.958 1901.43C624.265 1902.31 625.92 1902.75 627.923 1902.75ZM668.891 1862.86H675.197L690.027 1899.08H690.538L705.368 1862.86H711.675V1906.5H706.731V1873.34H706.305L692.669 1906.5H687.896L674.26 1873.34H673.834V1906.5H668.891V1862.86Z\",fill:\"white\"})),_path43||(_path43=/*#__PURE__*/React.createElement(\"path\",{d:\"M485.199 1453V1409.36H490.483V1431.01H490.995L510.597 1409.36H517.5L499.176 1429.05L517.5 1453H511.108L495.938 1432.72L490.483 1438.85V1453H485.199ZM534.551 1453.68C531.597 1453.68 529.004 1452.98 526.774 1451.57C524.558 1450.17 522.825 1448.2 521.575 1445.67C520.339 1443.14 519.722 1440.19 519.722 1436.81C519.722 1433.4 520.339 1430.42 521.575 1427.88C522.825 1425.34 524.558 1423.36 526.774 1421.96C529.004 1420.55 531.597 1419.85 534.551 1419.85C537.506 1419.85 540.091 1420.55 542.307 1421.96C544.537 1423.36 546.27 1425.34 547.506 1427.88C548.756 1430.42 549.381 1433.4 549.381 1436.81C549.381 1440.19 548.756 1443.14 547.506 1445.67C546.27 1448.2 544.537 1450.17 542.307 1451.57C540.091 1452.98 537.506 1453.68 534.551 1453.68ZM534.551 1449.16C536.795 1449.16 538.642 1448.59 540.091 1447.44C541.54 1446.29 542.612 1444.78 543.308 1442.9C544.004 1441.03 544.352 1438.99 544.352 1436.81C544.352 1434.62 544.004 1432.58 543.308 1430.69C542.612 1428.8 541.54 1427.28 540.091 1426.11C538.642 1424.95 536.795 1424.36 534.551 1424.36C532.307 1424.36 530.46 1424.95 529.011 1426.11C527.562 1427.28 526.49 1428.8 525.794 1430.69C525.098 1432.58 524.75 1434.62 524.75 1436.81C524.75 1438.99 525.098 1441.03 525.794 1442.9C526.49 1444.78 527.562 1446.29 529.011 1447.44C530.46 1448.59 532.307 1449.16 534.551 1449.16ZM577.681 1439.62V1420.27H582.71V1453H577.681V1447.46H577.34C576.573 1449.12 575.38 1450.54 573.761 1451.7C572.142 1452.85 570.096 1453.43 567.625 1453.43C565.579 1453.43 563.761 1452.98 562.17 1452.08C560.579 1451.17 559.329 1449.81 558.42 1447.99C557.511 1446.16 557.056 1443.85 557.056 1441.07V1420.27H562.085V1440.73C562.085 1443.11 562.752 1445.02 564.088 1446.44C565.437 1447.86 567.156 1448.57 569.244 1448.57C570.494 1448.57 571.765 1448.25 573.058 1447.61C574.365 1446.97 575.458 1445.99 576.339 1444.67C577.234 1443.35 577.681 1441.66 577.681 1439.62ZM591.92 1453V1420.27H596.778V1425.39H597.204C597.886 1423.64 598.986 1422.28 600.506 1421.32C602.026 1420.34 603.851 1419.85 605.982 1419.85C608.141 1419.85 609.938 1420.34 611.373 1421.32C612.822 1422.28 613.951 1423.64 614.761 1425.39H615.101C615.94 1423.7 617.197 1422.35 618.873 1421.36C620.549 1420.35 622.559 1419.85 624.903 1419.85C627.829 1419.85 630.222 1420.76 632.083 1422.6C633.944 1424.41 634.874 1427.25 634.874 1431.1V1453H629.846V1431.1C629.846 1428.68 629.185 1426.96 627.864 1425.92C626.543 1424.88 624.988 1424.36 623.198 1424.36C620.897 1424.36 619.114 1425.06 617.85 1426.45C616.586 1427.83 615.954 1429.58 615.954 1431.69V1453H610.84V1430.59C610.84 1428.72 610.236 1427.23 609.029 1426.09C607.822 1424.94 606.266 1424.36 604.363 1424.36C603.056 1424.36 601.834 1424.71 600.698 1425.41C599.576 1426.1 598.667 1427.07 597.971 1428.31C597.289 1429.53 596.948 1430.94 596.948 1432.55V1453H591.92ZM644.068 1453V1420.27H649.097V1453H644.068ZM646.625 1414.82C645.645 1414.82 644.8 1414.48 644.089 1413.82C643.393 1413.15 643.045 1412.35 643.045 1411.41C643.045 1410.47 643.393 1409.67 644.089 1409C644.8 1408.33 645.645 1408 646.625 1408C647.605 1408 648.443 1408.33 649.139 1409C649.849 1409.67 650.204 1410.47 650.204 1411.41C650.204 1412.35 649.849 1413.15 649.139 1413.82C648.443 1414.48 647.605 1414.82 646.625 1414.82ZM670.664 1453.68C667.937 1453.68 665.529 1452.99 663.441 1451.62C661.353 1450.22 659.72 1448.26 658.541 1445.73C657.362 1443.19 656.772 1440.19 656.772 1436.72C656.772 1433.28 657.362 1430.3 658.541 1427.77C659.72 1425.24 661.36 1423.29 663.463 1421.91C665.565 1420.54 667.994 1419.85 670.75 1419.85C672.88 1419.85 674.563 1420.2 675.799 1420.91C677.049 1421.61 678.001 1422.4 678.654 1423.3C679.322 1424.18 679.84 1424.9 680.21 1425.47H680.636V1409.36H685.664V1453H680.806V1447.97H680.21C679.84 1448.57 679.315 1449.32 678.633 1450.23C677.951 1451.12 676.978 1451.93 675.714 1452.64C674.45 1453.33 672.767 1453.68 670.664 1453.68ZM671.346 1449.16C673.363 1449.16 675.068 1448.64 676.46 1447.59C677.852 1446.52 678.91 1445.05 679.635 1443.18C680.359 1441.29 680.721 1439.11 680.721 1436.64C680.721 1434.19 680.366 1432.06 679.656 1430.22C678.946 1428.38 677.894 1426.94 676.502 1425.92C675.11 1424.88 673.392 1424.36 671.346 1424.36C669.215 1424.36 667.44 1424.91 666.019 1426C664.613 1427.08 663.555 1428.55 662.845 1430.41C662.149 1432.26 661.801 1434.34 661.801 1436.64C661.801 1438.97 662.156 1441.08 662.866 1442.99C663.59 1444.87 664.656 1446.38 666.062 1447.5C667.483 1448.61 669.244 1449.16 671.346 1449.16ZM695.572 1453V1420.27H700.6V1453H695.572ZM698.129 1414.82C697.149 1414.82 696.304 1414.48 695.593 1413.82C694.897 1413.15 694.549 1412.35 694.549 1411.41C694.549 1410.47 694.897 1409.67 695.593 1409C696.304 1408.33 697.149 1408 698.129 1408C699.109 1408 699.947 1408.33 700.643 1409C701.353 1409.67 701.708 1410.47 701.708 1411.41C701.708 1412.35 701.353 1413.15 700.643 1413.82C699.947 1414.48 699.109 1414.82 698.129 1414.82ZM714.839 1433.31V1453H709.81V1420.27H714.668V1425.39H715.094C715.861 1423.72 717.026 1422.39 718.589 1421.38C720.151 1420.36 722.168 1419.85 724.64 1419.85C726.856 1419.85 728.795 1420.3 730.457 1421.21C732.119 1422.11 733.411 1423.47 734.334 1425.3C735.258 1427.12 735.719 1429.42 735.719 1432.2V1453H730.691V1432.55C730.691 1429.97 730.023 1427.97 728.688 1426.54C727.353 1425.09 725.521 1424.36 723.191 1424.36C721.586 1424.36 720.151 1424.71 718.887 1425.41C717.637 1426.1 716.65 1427.12 715.925 1428.45C715.201 1429.79 714.839 1431.41 714.839 1433.31ZM744.908 1453V1420.27H749.936V1453H744.908ZM747.465 1414.82C746.485 1414.82 745.639 1414.48 744.929 1413.82C744.233 1413.15 743.885 1412.35 743.885 1411.41C743.885 1410.47 744.233 1409.67 744.929 1409C745.639 1408.33 746.485 1408 747.465 1408C748.445 1408 749.283 1408.33 749.979 1409C750.689 1409.67 751.044 1410.47 751.044 1411.41C751.044 1412.35 750.689 1413.15 749.979 1413.82C749.283 1414.48 748.445 1414.82 747.465 1414.82ZM776.703 1453V1409.36H781.987V1428.8H805.254V1409.36H810.538V1453H805.254V1433.48H781.987V1453H776.703Z\",fill:\"white\"})),_path44||(_path44=/*#__PURE__*/React.createElement(\"path\",{d:\"M485.199 2057V2013.36H490.483V2035.01H490.995L510.597 2013.36H517.5L499.176 2033.05L517.5 2057H511.108L495.938 2036.72L490.483 2042.85V2057H485.199ZM534.551 2057.68C531.597 2057.68 529.004 2056.98 526.774 2055.57C524.558 2054.17 522.825 2052.2 521.575 2049.67C520.339 2047.14 519.722 2044.19 519.722 2040.81C519.722 2037.4 520.339 2034.42 521.575 2031.88C522.825 2029.34 524.558 2027.36 526.774 2025.96C529.004 2024.55 531.597 2023.85 534.551 2023.85C537.506 2023.85 540.091 2024.55 542.307 2025.96C544.537 2027.36 546.27 2029.34 547.506 2031.88C548.756 2034.42 549.381 2037.4 549.381 2040.81C549.381 2044.19 548.756 2047.14 547.506 2049.67C546.27 2052.2 544.537 2054.17 542.307 2055.57C540.091 2056.98 537.506 2057.68 534.551 2057.68ZM534.551 2053.16C536.795 2053.16 538.642 2052.59 540.091 2051.44C541.54 2050.29 542.612 2048.78 543.308 2046.9C544.004 2045.03 544.352 2042.99 544.352 2040.81C544.352 2038.62 544.004 2036.58 543.308 2034.69C542.612 2032.8 541.54 2031.28 540.091 2030.11C538.642 2028.95 536.795 2028.36 534.551 2028.36C532.307 2028.36 530.46 2028.95 529.011 2030.11C527.562 2031.28 526.49 2032.8 525.794 2034.69C525.098 2036.58 524.75 2038.62 524.75 2040.81C524.75 2042.99 525.098 2045.03 525.794 2046.9C526.49 2048.78 527.562 2050.29 529.011 2051.44C530.46 2052.59 532.307 2053.16 534.551 2053.16ZM577.681 2043.62V2024.27H582.71V2057H577.681V2051.46H577.34C576.573 2053.12 575.38 2054.54 573.761 2055.7C572.142 2056.85 570.096 2057.43 567.625 2057.43C565.579 2057.43 563.761 2056.98 562.17 2056.08C560.579 2055.17 559.329 2053.81 558.42 2051.99C557.511 2050.16 557.056 2047.85 557.056 2045.07V2024.27H562.085V2044.73C562.085 2047.11 562.752 2049.02 564.088 2050.44C565.437 2051.86 567.156 2052.57 569.244 2052.57C570.494 2052.57 571.765 2052.25 573.058 2051.61C574.365 2050.97 575.458 2049.99 576.339 2048.67C577.234 2047.35 577.681 2045.66 577.681 2043.62ZM591.92 2057V2024.27H596.778V2029.39H597.204C597.886 2027.64 598.986 2026.28 600.506 2025.32C602.026 2024.34 603.851 2023.85 605.982 2023.85C608.141 2023.85 609.938 2024.34 611.373 2025.32C612.822 2026.28 613.951 2027.64 614.761 2029.39H615.101C615.94 2027.7 617.197 2026.35 618.873 2025.36C620.549 2024.35 622.559 2023.85 624.903 2023.85C627.829 2023.85 630.222 2024.76 632.083 2026.6C633.944 2028.41 634.874 2031.25 634.874 2035.1V2057H629.846V2035.1C629.846 2032.68 629.185 2030.96 627.864 2029.92C626.543 2028.88 624.988 2028.36 623.198 2028.36C620.897 2028.36 619.114 2029.06 617.85 2030.45C616.586 2031.83 615.954 2033.58 615.954 2035.69V2057H610.84V2034.59C610.84 2032.72 610.236 2031.23 609.029 2030.09C607.822 2028.94 606.266 2028.36 604.363 2028.36C603.056 2028.36 601.834 2028.71 600.698 2029.41C599.576 2030.1 598.667 2031.07 597.971 2032.31C597.289 2033.53 596.948 2034.94 596.948 2036.55V2057H591.92ZM644.068 2057V2024.27H649.097V2057H644.068ZM646.625 2018.82C645.645 2018.82 644.8 2018.48 644.089 2017.82C643.393 2017.15 643.045 2016.35 643.045 2015.41C643.045 2014.47 643.393 2013.67 644.089 2013C644.8 2012.33 645.645 2012 646.625 2012C647.605 2012 648.443 2012.33 649.139 2013C649.849 2013.67 650.204 2014.47 650.204 2015.41C650.204 2016.35 649.849 2017.15 649.139 2017.82C648.443 2018.48 647.605 2018.82 646.625 2018.82ZM670.664 2057.68C667.937 2057.68 665.529 2056.99 663.441 2055.62C661.353 2054.22 659.72 2052.26 658.541 2049.73C657.362 2047.19 656.772 2044.19 656.772 2040.72C656.772 2037.28 657.362 2034.3 658.541 2031.77C659.72 2029.24 661.36 2027.29 663.463 2025.91C665.565 2024.54 667.994 2023.85 670.75 2023.85C672.88 2023.85 674.563 2024.2 675.799 2024.91C677.049 2025.61 678.001 2026.4 678.654 2027.3C679.322 2028.18 679.84 2028.9 680.21 2029.47H680.636V2013.36H685.664V2057H680.806V2051.97H680.21C679.84 2052.57 679.315 2053.32 678.633 2054.23C677.951 2055.12 676.978 2055.93 675.714 2056.64C674.45 2057.33 672.767 2057.68 670.664 2057.68ZM671.346 2053.16C673.363 2053.16 675.068 2052.64 676.46 2051.59C677.852 2050.52 678.91 2049.05 679.635 2047.18C680.359 2045.29 680.721 2043.11 680.721 2040.64C680.721 2038.19 680.366 2036.06 679.656 2034.22C678.946 2032.38 677.894 2030.94 676.502 2029.92C675.11 2028.88 673.392 2028.36 671.346 2028.36C669.215 2028.36 667.44 2028.91 666.019 2030C664.613 2031.08 663.555 2032.55 662.845 2034.41C662.149 2036.26 661.801 2038.34 661.801 2040.64C661.801 2042.97 662.156 2045.08 662.866 2046.99C663.59 2048.87 664.656 2050.38 666.062 2051.5C667.483 2052.61 669.244 2053.16 671.346 2053.16ZM695.572 2057V2024.27H700.6V2057H695.572ZM698.129 2018.82C697.149 2018.82 696.304 2018.48 695.593 2017.82C694.897 2017.15 694.549 2016.35 694.549 2015.41C694.549 2014.47 694.897 2013.67 695.593 2013C696.304 2012.33 697.149 2012 698.129 2012C699.109 2012 699.947 2012.33 700.643 2013C701.353 2013.67 701.708 2014.47 701.708 2015.41C701.708 2016.35 701.353 2017.15 700.643 2017.82C699.947 2018.48 699.109 2018.82 698.129 2018.82ZM714.839 2037.31V2057H709.81V2024.27H714.668V2029.39H715.094C715.861 2027.72 717.026 2026.39 718.589 2025.38C720.151 2024.36 722.168 2023.85 724.64 2023.85C726.856 2023.85 728.795 2024.3 730.457 2025.21C732.119 2026.11 733.411 2027.47 734.334 2029.3C735.258 2031.12 735.719 2033.42 735.719 2036.2V2057H730.691V2036.55C730.691 2033.97 730.023 2031.97 728.688 2030.54C727.353 2029.09 725.521 2028.36 723.191 2028.36C721.586 2028.36 720.151 2028.71 718.887 2029.41C717.637 2030.1 716.65 2031.12 715.925 2032.45C715.201 2033.79 714.839 2035.41 714.839 2037.31ZM744.908 2057V2024.27H749.936V2057H744.908ZM747.465 2018.82C746.485 2018.82 745.639 2018.48 744.929 2017.82C744.233 2017.15 743.885 2016.35 743.885 2015.41C743.885 2014.47 744.233 2013.67 744.929 2013C745.639 2012.33 746.485 2012 747.465 2012C748.445 2012 749.283 2012.33 749.979 2013C750.689 2013.67 751.044 2014.47 751.044 2015.41C751.044 2016.35 750.689 2017.15 749.979 2017.82C749.283 2018.48 748.445 2018.82 747.465 2018.82ZM776.703 2057V2013.36H781.987V2032.8H805.254V2013.36H810.538V2057H805.254V2037.48H781.987V2057H776.703Z\",fill:\"white\"})),_path45||(_path45=/*#__PURE__*/React.createElement(\"path\",{d:\"M1334.64 108.947H1242.99C1240.69 108.947 1238.82 106.484 1238.82 103.475C1238.82 100.465 1240.69 98.002 1242.99 98.002H1334.64C1336.93 98.002 1338.8 100.465 1338.8 103.475C1338.8 106.484 1336.93 108.947 1334.64 108.947Z\",fill:\"white\"})),_path46||(_path46=/*#__PURE__*/React.createElement(\"path\",{d:\"M1334.64 143.474H1242.99C1240.69 143.474 1238.82 141.011 1238.82 138.001C1238.82 134.991 1240.69 132.528 1242.99 132.528H1334.64C1336.93 132.528 1338.8 134.991 1338.8 138.001C1338.8 141.011 1336.93 143.474 1334.64 143.474Z\",fill:\"white\"})),_path47||(_path47=/*#__PURE__*/React.createElement(\"path\",{d:\"M1334.64 178H1242.99C1240.69 178 1238.82 175.537 1238.82 172.528C1238.82 169.518 1240.69 167.055 1242.99 167.055H1334.64C1336.93 167.055 1338.8 169.518 1338.8 172.528C1338.8 175.537 1336.93 178 1334.64 178Z\",fill:\"white\"})),_path48||(_path48=/*#__PURE__*/React.createElement(\"path\",{d:\"M548.415 2329.54V2325.64H575.688V2329.54H564.253V2362H559.849V2329.54H548.415ZM586.106 2345.59V2362H581.915V2325.64H586.106V2338.99H586.461C587.1 2337.58 588.059 2336.46 589.337 2335.63C590.627 2334.79 592.344 2334.37 594.486 2334.37C596.345 2334.37 597.972 2334.75 599.369 2335.49C600.766 2336.22 601.849 2337.36 602.618 2338.88C603.4 2340.4 603.79 2342.33 603.79 2344.67V2362H599.6V2344.95C599.6 2342.79 599.038 2341.11 597.913 2339.93C596.8 2338.73 595.256 2338.14 593.279 2338.14C591.906 2338.14 590.675 2338.43 589.586 2339.01C588.509 2339.59 587.656 2340.43 587.029 2341.55C586.413 2342.66 586.106 2344.01 586.106 2345.59ZM619.482 2362.64C617.754 2362.64 616.185 2362.31 614.777 2361.66C613.368 2361 612.249 2360.05 611.421 2358.8C610.592 2357.55 610.178 2356.03 610.178 2354.26C610.178 2352.7 610.486 2351.43 611.101 2350.46C611.717 2349.48 612.539 2348.71 613.569 2348.15C614.599 2347.59 615.735 2347.18 616.978 2346.91C618.233 2346.62 619.494 2346.4 620.76 2346.23C622.417 2346.02 623.761 2345.86 624.791 2345.75C625.833 2345.64 626.59 2345.44 627.064 2345.17C627.549 2344.9 627.792 2344.42 627.792 2343.75V2343.61C627.792 2341.85 627.312 2340.49 626.353 2339.52C625.406 2338.55 623.968 2338.07 622.039 2338.07C620.038 2338.07 618.47 2338.5 617.333 2339.38C616.197 2340.26 615.398 2341.19 614.936 2342.18L610.959 2340.76C611.669 2339.11 612.616 2337.82 613.8 2336.89C614.996 2335.96 616.298 2335.31 617.706 2334.94C619.127 2334.56 620.524 2334.37 621.897 2334.37C622.773 2334.37 623.779 2334.48 624.915 2334.69C626.063 2334.89 627.17 2335.31 628.235 2335.95C629.313 2336.59 630.206 2337.56 630.917 2338.85C631.627 2340.14 631.982 2341.87 631.982 2344.03V2362H627.792V2358.31H627.578C627.294 2358.9 626.821 2359.53 626.158 2360.21C625.495 2360.88 624.613 2361.46 623.512 2361.93C622.412 2362.4 621.068 2362.64 619.482 2362.64ZM620.121 2358.88C621.778 2358.88 623.175 2358.55 624.311 2357.9C625.46 2357.25 626.324 2356.41 626.904 2355.38C627.496 2354.35 627.792 2353.26 627.792 2352.13V2348.29C627.614 2348.51 627.223 2348.7 626.62 2348.88C626.028 2349.04 625.341 2349.19 624.56 2349.32C623.791 2349.44 623.039 2349.55 622.305 2349.64C621.583 2349.72 620.997 2349.8 620.547 2349.86C619.458 2350 618.44 2350.23 617.493 2350.55C616.558 2350.86 615.801 2351.32 615.221 2351.95C614.652 2352.57 614.368 2353.41 614.368 2354.47C614.368 2355.93 614.907 2357.03 615.984 2357.77C617.073 2358.51 618.452 2358.88 620.121 2358.88ZM651.491 2334.73V2338.28H637.357V2334.73H651.491ZM641.477 2328.19H645.667V2354.19C645.667 2355.37 645.839 2356.26 646.182 2356.85C646.537 2357.43 646.987 2357.82 647.531 2358.02C648.088 2358.21 648.674 2358.31 649.289 2358.31C649.751 2358.31 650.13 2358.28 650.426 2358.24C650.722 2358.18 650.958 2358.13 651.136 2358.09L651.988 2361.86C651.704 2361.96 651.307 2362.07 650.798 2362.18C650.289 2362.3 649.644 2362.36 648.863 2362.36C647.679 2362.36 646.519 2362.1 645.383 2361.59C644.258 2361.08 643.323 2360.31 642.578 2359.27C641.844 2358.22 641.477 2356.91 641.477 2355.32V2328.19ZM661.416 2325.64V2338.14H657.51V2325.64H661.416ZM688.196 2340.84L684.432 2341.9C684.195 2341.27 683.846 2340.66 683.385 2340.07C682.935 2339.47 682.319 2338.97 681.538 2338.58C680.757 2338.19 679.757 2337.99 678.537 2337.99C676.868 2337.99 675.477 2338.38 674.365 2339.15C673.264 2339.91 672.713 2340.87 672.713 2342.04C672.713 2343.08 673.092 2343.91 673.85 2344.51C674.607 2345.11 675.791 2345.62 677.401 2346.02L681.449 2347.01C683.888 2347.61 685.705 2348.51 686.9 2349.73C688.096 2350.94 688.694 2352.49 688.694 2354.4C688.694 2355.96 688.244 2357.36 687.344 2358.59C686.456 2359.82 685.213 2360.79 683.615 2361.5C682.017 2362.21 680.159 2362.57 678.04 2362.57C675.258 2362.57 672.956 2361.96 671.133 2360.76C669.31 2359.55 668.156 2357.79 667.671 2355.47L671.648 2354.47C672.027 2355.94 672.743 2357.04 673.797 2357.77C674.862 2358.51 676.253 2358.88 677.969 2358.88C679.922 2358.88 681.473 2358.46 682.621 2357.63C683.781 2356.79 684.361 2355.79 684.361 2354.61C684.361 2353.67 684.03 2352.87 683.367 2352.23C682.704 2351.58 681.686 2351.1 680.313 2350.78L675.767 2349.71C673.27 2349.12 671.435 2348.2 670.263 2346.96C669.103 2345.71 668.523 2344.14 668.523 2342.26C668.523 2340.72 668.955 2339.36 669.819 2338.17C670.695 2336.99 671.885 2336.06 673.388 2335.38C674.903 2334.71 676.62 2334.37 678.537 2334.37C681.236 2334.37 683.355 2334.96 684.894 2336.15C686.444 2337.33 687.545 2338.89 688.196 2340.84ZM709.064 2362V2334.73H713.254V2362H709.064ZM711.194 2330.18C710.378 2330.18 709.673 2329.9 709.081 2329.35C708.501 2328.79 708.211 2328.12 708.211 2327.34C708.211 2326.56 708.501 2325.89 709.081 2325.33C709.673 2324.78 710.378 2324.5 711.194 2324.5C712.011 2324.5 712.71 2324.78 713.29 2325.33C713.881 2325.89 714.177 2326.56 714.177 2327.34C714.177 2328.12 713.881 2328.79 713.29 2329.35C712.71 2329.9 712.011 2330.18 711.194 2330.18ZM732.79 2334.73V2338.28H718.656V2334.73H732.79ZM722.776 2328.19H726.966V2354.19C726.966 2355.37 727.138 2356.26 727.481 2356.85C727.836 2357.43 728.286 2357.82 728.83 2358.02C729.387 2358.21 729.973 2358.31 730.588 2358.31C731.05 2358.31 731.429 2358.28 731.724 2358.24C732.02 2358.18 732.257 2358.13 732.435 2358.09L733.287 2361.86C733.003 2361.96 732.606 2362.07 732.097 2362.18C731.588 2362.3 730.943 2362.36 730.162 2362.36C728.978 2362.36 727.818 2362.1 726.682 2361.59C725.557 2361.08 724.622 2360.31 723.876 2359.27C723.143 2358.22 722.776 2356.91 722.776 2355.32V2328.19ZM765.3 2334.73V2338.28H750.599V2334.73H765.3ZM755.002 2362V2330.96C755.002 2329.4 755.369 2328.1 756.103 2327.06C756.837 2326.02 757.79 2325.23 758.962 2324.71C760.134 2324.19 761.371 2323.93 762.673 2323.93C763.702 2323.93 764.543 2324.01 765.194 2324.18C765.845 2324.35 766.33 2324.5 766.65 2324.64L765.442 2328.26C765.229 2328.19 764.933 2328.1 764.555 2328C764.188 2327.89 763.702 2327.84 763.099 2327.84C761.714 2327.84 760.714 2328.19 760.098 2328.89C759.494 2329.58 759.192 2330.61 759.192 2331.96V2362H755.002ZM781.13 2362.57C778.667 2362.57 776.507 2361.98 774.649 2360.81C772.802 2359.64 771.358 2358 770.316 2355.89C769.287 2353.79 768.772 2351.32 768.772 2348.51C768.772 2345.66 769.287 2343.18 770.316 2341.07C771.358 2338.95 772.802 2337.3 774.649 2336.13C776.507 2334.96 778.667 2334.37 781.13 2334.37C783.592 2334.37 785.746 2334.96 787.593 2336.13C789.451 2337.3 790.895 2338.95 791.925 2341.07C792.967 2343.18 793.488 2345.66 793.488 2348.51C793.488 2351.32 792.967 2353.79 791.925 2355.89C790.895 2358 789.451 2359.64 787.593 2360.81C785.746 2361.98 783.592 2362.57 781.13 2362.57ZM781.13 2358.8C783 2358.8 784.539 2358.32 785.746 2357.37C786.953 2356.41 787.847 2355.15 788.427 2353.58C789.007 2352.02 789.297 2350.33 789.297 2348.51C789.297 2346.68 789.007 2344.98 788.427 2343.41C787.847 2341.84 786.953 2340.56 785.746 2339.59C784.539 2338.62 783 2338.14 781.13 2338.14C779.259 2338.14 777.721 2338.62 776.513 2339.59C775.306 2340.56 774.412 2341.84 773.832 2343.41C773.252 2344.98 772.962 2346.68 772.962 2348.51C772.962 2350.33 773.252 2352.02 773.832 2353.58C774.412 2355.15 775.306 2356.41 776.513 2357.37C777.721 2358.32 779.259 2358.8 781.13 2358.8ZM799.884 2362V2334.73H803.932V2338.85H804.216C804.714 2337.5 805.613 2336.4 806.915 2335.56C808.217 2334.72 809.685 2334.3 811.319 2334.3C811.626 2334.3 812.011 2334.31 812.473 2334.32C812.934 2334.33 813.284 2334.35 813.52 2334.37V2338.63C813.378 2338.6 813.053 2338.54 812.544 2338.47C812.047 2338.39 811.52 2338.35 810.964 2338.35C809.638 2338.35 808.454 2338.63 807.412 2339.18C806.383 2339.73 805.566 2340.49 804.962 2341.46C804.37 2342.42 804.074 2343.51 804.074 2344.74V2362H799.884ZM836.74 2345.59V2362H832.55V2334.73H836.598V2338.99H836.953C837.593 2337.6 838.563 2336.49 839.865 2335.65C841.167 2334.8 842.848 2334.37 844.908 2334.37C846.755 2334.37 848.37 2334.75 849.755 2335.51C851.14 2336.25 852.217 2337.39 852.987 2338.92C853.756 2340.43 854.141 2342.35 854.141 2344.67V2362H849.951V2344.95C849.951 2342.81 849.394 2341.14 848.282 2339.95C847.169 2338.74 845.642 2338.14 843.701 2338.14C842.363 2338.14 841.167 2338.43 840.114 2339.01C839.072 2339.59 838.25 2340.43 837.646 2341.55C837.042 2342.66 836.74 2344.01 836.74 2345.59ZM872.878 2362.57C870.416 2362.57 868.255 2361.98 866.397 2360.81C864.55 2359.64 863.106 2358 862.064 2355.89C861.035 2353.79 860.52 2351.32 860.52 2348.51C860.52 2345.66 861.035 2343.18 862.064 2341.07C863.106 2338.95 864.55 2337.3 866.397 2336.13C868.255 2334.96 870.416 2334.37 872.878 2334.37C875.34 2334.37 877.494 2334.96 879.341 2336.13C881.199 2337.3 882.643 2338.95 883.673 2341.07C884.715 2343.18 885.236 2345.66 885.236 2348.51C885.236 2351.32 884.715 2353.79 883.673 2355.89C882.643 2358 881.199 2359.64 879.341 2360.81C877.494 2361.98 875.34 2362.57 872.878 2362.57ZM872.878 2358.8C874.748 2358.8 876.287 2358.32 877.494 2357.37C878.702 2356.41 879.595 2355.15 880.175 2353.58C880.755 2352.02 881.045 2350.33 881.045 2348.51C881.045 2346.68 880.755 2344.98 880.175 2343.41C879.595 2341.84 878.702 2340.56 877.494 2339.59C876.287 2338.62 874.748 2338.14 872.878 2338.14C871.007 2338.14 869.469 2338.62 868.261 2339.59C867.054 2340.56 866.16 2341.84 865.58 2343.41C865 2344.98 864.71 2346.68 864.71 2348.51C864.71 2350.33 865 2352.02 865.58 2353.58C866.16 2355.15 867.054 2356.41 868.261 2357.37C869.469 2358.32 871.007 2358.8 872.878 2358.8ZM896.883 2362L888.574 2334.73H892.977L898.872 2355.61H899.156L904.98 2334.73H909.454L915.207 2355.54H915.491L921.386 2334.73H925.79L917.48 2362H913.361L907.395 2341.05H906.969L901.003 2362H896.883Z\",fill:\"#158CE5\"})),_path49||(_path49=/*#__PURE__*/React.createElement(\"path\",{opacity:0.73,d:\"M1440 0H0V2559.61H1440V0Z\",fill:\"#0641B6\"})),_path50||(_path50=/*#__PURE__*/React.createElement(\"path\",{d:\"M1242.1 702H197.948C167.601 702 143 726.601 143 756.948V1803.1C143 1833.45 167.601 1858.05 197.948 1858.05H1242.1C1272.45 1858.05 1297.05 1833.45 1297.05 1803.1V756.948C1297.05 726.601 1272.45 702 1242.1 702Z\",fill:\"white\"})),_path51||(_path51=/*#__PURE__*/React.createElement(\"path\",{d:\"M1217.02 816.877C1237.46 816.877 1254.02 800.311 1254.02 779.877C1254.02 759.442 1237.46 742.877 1217.02 742.877C1196.59 742.877 1180.02 759.442 1180.02 779.877C1180.02 800.311 1196.59 816.877 1217.02 816.877Z\",fill:\"#0641B6\"})),_path52||(_path52=/*#__PURE__*/React.createElement(\"path\",{d:\"M1201.94 798.304C1201.73 798.249 1201.55 798.129 1201.43 797.962C1201.3 797.796 1201.23 797.592 1201.22 797.381C1201.28 796.908 1201.48 796.463 1201.79 796.103L1213.29 779.415L1202.64 763.653C1202.33 763.293 1202.13 762.848 1202.07 762.375C1202.07 761.57 1203.16 761.168 1205.34 761.166H1205.98C1206.62 761.147 1207.27 761.219 1207.9 761.38C1208.36 761.519 1208.77 761.821 1209.03 762.231L1215.78 772.385C1216.11 772.86 1216.61 773.689 1217.27 774.872C1217.93 773.689 1218.43 772.86 1218.76 772.385L1225.58 762.16C1226 761.499 1227.07 761.168 1228.78 761.166H1229.06C1229.83 761.128 1230.6 761.225 1231.33 761.452C1231.54 761.508 1231.71 761.628 1231.84 761.794C1231.97 761.961 1232.04 762.165 1232.04 762.375C1231.98 762.848 1231.79 763.293 1231.47 763.653L1220.75 779.275L1232.25 796.104C1232.56 796.465 1232.76 796.909 1232.82 797.382C1232.82 798.187 1231.73 798.589 1229.55 798.588H1228.92C1228.27 798.608 1227.62 798.536 1227 798.376C1226.53 798.238 1226.13 797.935 1225.86 797.524L1218.34 786.234C1218 785.713 1217.51 784.885 1216.84 783.749C1216.18 784.883 1215.68 785.711 1215.35 786.234L1207.68 797.594C1207.21 798.261 1206.14 798.592 1204.48 798.588H1204.27C1203.48 798.628 1202.69 798.531 1201.94 798.304Z\",fill:\"white\"})),_g||(_g=/*#__PURE__*/React.createElement(\"g\",{filter:\"url(#filter0_d_431_2)\"},/*#__PURE__*/React.createElement(\"path\",{d:\"M579.992 1033.15V1081.88H571.093L549.894 1051.21H549.537V1081.88H539.235V1033.15H548.276L569.309 1063.79H569.737V1033.15H579.992ZM588.313 1081.88V1045.33H598.449V1081.88H588.313ZM593.405 1040.62C591.898 1040.62 590.605 1040.12 589.527 1039.12C588.464 1038.11 587.933 1036.89 587.933 1035.48C587.933 1034.09 588.464 1032.89 589.527 1031.89C590.605 1030.87 591.898 1030.37 593.405 1030.37C594.912 1030.37 596.197 1030.87 597.259 1031.89C598.338 1032.89 598.877 1034.09 598.877 1035.48C598.877 1036.89 598.338 1038.11 597.259 1039.12C596.197 1040.12 594.912 1040.62 593.405 1040.62ZM640.639 1045.33L627.863 1081.88H616.442L603.665 1045.33H614.372L621.962 1071.48H622.343L629.909 1045.33H640.639ZM661.303 1082.59C657.544 1082.59 654.308 1081.83 651.596 1080.31C648.899 1078.77 646.821 1076.59 645.362 1073.79C643.903 1070.96 643.173 1067.63 643.173 1063.77C643.173 1060.01 643.903 1056.71 645.362 1053.87C646.821 1051.03 648.875 1048.82 651.524 1047.23C654.189 1045.65 657.314 1044.86 660.899 1044.86C663.31 1044.86 665.554 1045.24 667.632 1046.02C669.726 1046.78 671.55 1047.93 673.104 1049.47C674.675 1051.01 675.896 1052.95 676.768 1055.28C677.641 1057.59 678.077 1060.3 678.077 1063.41V1066.2H647.218V1059.92H668.536C668.536 1058.46 668.219 1057.16 667.584 1056.04C666.95 1054.91 666.07 1054.03 664.943 1053.4C663.833 1052.75 662.54 1052.42 661.065 1052.42C659.527 1052.42 658.162 1052.78 656.973 1053.49C655.799 1054.19 654.879 1055.13 654.213 1056.32C653.547 1057.5 653.206 1058.81 653.19 1060.25V1066.22C653.19 1068.03 653.523 1069.59 654.189 1070.91C654.871 1072.23 655.831 1073.24 657.068 1073.95C658.305 1074.67 659.772 1075.02 661.47 1075.02C662.596 1075.02 663.627 1074.87 664.563 1074.55C665.499 1074.23 666.3 1073.76 666.966 1073.12C667.632 1072.49 668.14 1071.71 668.488 1070.79L677.863 1071.41C677.387 1073.66 676.411 1075.63 674.936 1077.31C673.477 1078.97 671.589 1080.27 669.274 1081.21C666.974 1082.13 664.317 1082.59 661.303 1082.59ZM698.158 1082.47C695.382 1082.47 692.868 1081.76 690.616 1080.33C688.379 1078.89 686.603 1076.77 685.286 1073.98C683.985 1071.17 683.335 1067.73 683.335 1063.65C683.335 1059.46 684.009 1055.98 685.357 1053.21C686.706 1050.42 688.498 1048.33 690.735 1046.95C692.987 1045.55 695.453 1044.86 698.134 1044.86C700.18 1044.86 701.885 1045.2 703.249 1045.9C704.629 1046.58 705.74 1047.44 706.58 1048.47C707.437 1049.49 708.087 1050.49 708.531 1051.47H708.841V1033.15H718.953V1081.88H708.96V1076.02H708.531C708.056 1077.04 707.381 1078.05 706.509 1079.05C705.653 1080.03 704.534 1080.85 703.154 1081.5C701.79 1082.15 700.125 1082.47 698.158 1082.47ZM701.37 1074.41C703.004 1074.41 704.384 1073.96 705.51 1073.07C706.652 1072.17 707.524 1070.91 708.127 1069.29C708.746 1067.67 709.055 1065.78 709.055 1063.6C709.055 1061.43 708.753 1059.54 708.151 1057.94C707.548 1056.34 706.676 1055.1 705.534 1054.23C704.392 1053.36 703.004 1052.92 701.37 1052.92C699.704 1052.92 698.301 1053.37 697.159 1054.28C696.017 1055.18 695.152 1056.43 694.565 1058.04C693.978 1059.64 693.685 1061.49 693.685 1063.6C693.685 1065.73 693.978 1067.61 694.565 1069.24C695.168 1070.86 696.032 1072.13 697.159 1073.05C698.301 1073.95 699.704 1074.41 701.37 1074.41ZM727.286 1081.88V1045.33H737.422V1081.88H727.286ZM732.378 1040.62C730.871 1040.62 729.578 1040.12 728.499 1039.12C727.437 1038.11 726.905 1036.89 726.905 1035.48C726.905 1034.09 727.437 1032.89 728.499 1031.89C729.578 1030.87 730.871 1030.37 732.378 1030.37C733.884 1030.37 735.169 1030.87 736.232 1031.89C737.311 1032.89 737.85 1034.09 737.85 1035.48C737.85 1036.89 737.311 1038.11 736.232 1039.12C735.169 1040.12 733.884 1040.62 732.378 1040.62ZM764.979 1045.33V1052.95H742.971V1045.33H764.979ZM747.968 1036.58H758.103V1070.65C758.103 1071.58 758.246 1072.31 758.532 1072.84C758.817 1073.34 759.214 1073.7 759.721 1073.91C760.245 1074.11 760.847 1074.22 761.529 1074.22C762.005 1074.22 762.481 1074.18 762.957 1074.1C763.433 1074 763.798 1073.93 764.051 1073.88L765.646 1081.42C765.138 1081.58 764.424 1081.77 763.504 1081.97C762.584 1082.19 761.466 1082.33 760.15 1082.38C757.707 1082.47 755.565 1082.15 753.725 1081.4C751.901 1080.66 750.482 1079.5 749.467 1077.93C748.451 1076.36 747.952 1074.37 747.968 1071.98V1036.58ZM782.003 1082.57C779.671 1082.57 777.593 1082.16 775.769 1081.35C773.945 1080.53 772.502 1079.32 771.439 1077.71C770.392 1076.1 769.869 1074.08 769.869 1071.67C769.869 1069.64 770.242 1067.93 770.987 1066.55C771.733 1065.17 772.748 1064.06 774.032 1063.22C775.317 1062.38 776.777 1061.75 778.41 1061.32C780.06 1060.89 781.789 1060.59 783.597 1060.42C785.723 1060.19 787.436 1059.99 788.736 1059.8C790.037 1059.59 790.981 1059.29 791.568 1058.89C792.155 1058.5 792.448 1057.91 792.448 1057.13V1056.99C792.448 1055.48 791.972 1054.32 791.02 1053.49C790.085 1052.67 788.752 1052.26 787.023 1052.26C785.199 1052.26 783.748 1052.66 782.669 1053.47C781.591 1054.26 780.877 1055.26 780.528 1056.47L771.154 1055.71C771.629 1053.48 772.565 1051.57 773.961 1049.95C775.357 1048.31 777.157 1047.06 779.362 1046.19C781.583 1045.3 784.152 1044.86 787.071 1044.86C789.101 1044.86 791.044 1045.09 792.9 1045.57C794.772 1046.05 796.429 1046.78 797.873 1047.78C799.332 1048.78 800.482 1050.07 801.323 1051.64C802.163 1053.19 802.584 1055.05 802.584 1057.23V1081.88H792.971V1076.81H792.686C792.099 1077.95 791.314 1078.96 790.33 1079.83C789.347 1080.69 788.165 1081.36 786.785 1081.85C785.405 1082.33 783.811 1082.57 782.003 1082.57ZM784.906 1075.57C786.397 1075.57 787.713 1075.28 788.855 1074.69C789.997 1074.09 790.894 1073.28 791.544 1072.26C792.194 1071.25 792.519 1070.1 792.519 1068.81V1064.94C792.202 1065.14 791.766 1065.33 791.211 1065.51C790.671 1065.67 790.061 1065.82 789.379 1065.96C788.697 1066.09 788.015 1066.21 787.333 1066.32C786.651 1066.41 786.032 1066.5 785.477 1066.58C784.287 1066.75 783.248 1067.03 782.36 1067.41C781.472 1067.79 780.782 1068.31 780.29 1068.96C779.798 1069.59 779.552 1070.39 779.552 1071.34C779.552 1072.72 780.052 1073.77 781.051 1074.5C782.066 1075.22 783.351 1075.57 784.906 1075.57ZM823.289 1033.15H834.829L845.94 1054.13H846.416L857.527 1033.15H869.066L851.293 1064.65V1081.88H841.062V1064.65L823.289 1033.15ZM877.858 1082.57C875.526 1082.57 873.448 1082.16 871.624 1081.35C869.8 1080.53 868.356 1079.32 867.294 1077.71C866.247 1076.1 865.723 1074.08 865.723 1071.67C865.723 1069.64 866.096 1067.93 866.842 1066.55C867.587 1065.17 868.602 1064.06 869.887 1063.22C871.172 1062.38 872.631 1061.75 874.265 1061.32C875.914 1060.89 877.643 1060.59 879.452 1060.42C881.577 1060.19 883.29 1059.99 884.591 1059.8C885.891 1059.59 886.835 1059.29 887.422 1058.89C888.009 1058.5 888.302 1057.91 888.302 1057.13V1056.99C888.302 1055.48 887.827 1054.32 886.875 1053.49C885.939 1052.67 884.607 1052.26 882.878 1052.26C881.054 1052.26 879.602 1052.66 878.524 1053.47C877.445 1054.26 876.731 1055.26 876.382 1056.47L867.008 1055.71C867.484 1053.48 868.42 1051.57 869.816 1049.95C871.211 1048.31 873.012 1047.06 875.217 1046.19C877.437 1045.3 880.007 1044.86 882.925 1044.86C884.956 1044.86 886.899 1045.09 888.755 1045.57C890.626 1046.05 892.284 1046.78 893.727 1047.78C895.186 1048.78 896.336 1050.07 897.177 1051.64C898.018 1053.19 898.438 1055.05 898.438 1057.23V1081.88H888.826V1076.81H888.54C887.954 1077.95 887.168 1078.96 886.185 1079.83C885.201 1080.69 884.02 1081.36 882.64 1081.85C881.26 1082.33 879.666 1082.57 877.858 1082.57ZM880.76 1075.57C882.251 1075.57 883.568 1075.28 884.71 1074.69C885.852 1074.09 886.748 1073.28 887.398 1072.26C888.049 1071.25 888.374 1070.1 888.374 1068.81V1064.94C888.057 1065.14 887.62 1065.33 887.065 1065.51C886.526 1065.67 885.915 1065.82 885.233 1065.96C884.551 1066.09 883.869 1066.21 883.187 1066.32C882.505 1066.41 881.886 1066.5 881.331 1066.58C880.142 1066.75 879.103 1067.03 878.214 1067.41C877.326 1067.79 876.636 1068.31 876.144 1068.96C875.653 1069.59 875.407 1070.39 875.407 1071.34C875.407 1072.72 875.907 1073.77 876.906 1074.5C877.921 1075.22 879.206 1075.57 880.76 1075.57ZM919.768 1082.47C916.992 1082.47 914.478 1081.76 912.226 1080.33C909.989 1078.89 908.213 1076.77 906.896 1073.98C905.596 1071.17 904.945 1067.73 904.945 1063.65C904.945 1059.46 905.62 1055.98 906.968 1053.21C908.316 1050.42 910.108 1048.33 912.345 1046.95C914.597 1045.55 917.064 1044.86 919.744 1044.86C921.791 1044.86 923.496 1045.2 924.86 1045.9C926.24 1046.58 927.35 1047.44 928.191 1048.47C929.047 1049.49 929.698 1050.49 930.142 1051.47H930.451V1033.15H940.563V1081.88H930.57V1076.02H930.142C929.666 1077.04 928.992 1078.05 928.119 1079.05C927.263 1080.03 926.145 1080.85 924.765 1081.5C923.401 1082.15 921.735 1082.47 919.768 1082.47ZM922.98 1074.41C924.614 1074.41 925.994 1073.96 927.12 1073.07C928.262 1072.17 929.135 1070.91 929.737 1069.29C930.356 1067.67 930.665 1065.78 930.665 1063.6C930.665 1061.43 930.364 1059.54 929.761 1057.94C929.158 1056.34 928.286 1055.1 927.144 1054.23C926.002 1053.36 924.614 1052.92 922.98 1052.92C921.315 1052.92 919.911 1053.37 918.769 1054.28C917.627 1055.18 916.762 1056.43 916.176 1058.04C915.589 1059.64 915.295 1061.49 915.295 1063.6C915.295 1065.73 915.589 1067.61 916.176 1069.24C916.778 1070.86 917.643 1072.13 918.769 1073.05C919.911 1073.95 921.315 1074.41 922.98 1074.41ZM959.317 1082.57C956.986 1082.57 954.908 1082.16 953.084 1081.35C951.26 1080.53 949.816 1079.32 948.754 1077.71C947.707 1076.1 947.183 1074.08 947.183 1071.67C947.183 1069.64 947.556 1067.93 948.301 1066.55C949.047 1065.17 950.062 1064.06 951.347 1063.22C952.632 1062.38 954.091 1061.75 955.725 1061.32C957.374 1060.89 959.103 1060.59 960.912 1060.42C963.037 1060.19 964.75 1059.99 966.051 1059.8C967.351 1059.59 968.295 1059.29 968.882 1058.89C969.469 1058.5 969.762 1057.91 969.762 1057.13V1056.99C969.762 1055.48 969.287 1054.32 968.335 1053.49C967.399 1052.67 966.067 1052.26 964.338 1052.26C962.514 1052.26 961.062 1052.66 959.984 1053.47C958.905 1054.26 958.191 1055.26 957.842 1056.47L948.468 1055.71C948.944 1053.48 949.88 1051.57 951.276 1049.95C952.671 1048.31 954.472 1047.06 956.676 1046.19C958.897 1045.3 961.467 1044.86 964.385 1044.86C966.416 1044.86 968.359 1045.09 970.214 1045.57C972.086 1046.05 973.744 1046.78 975.187 1047.78C976.646 1048.78 977.796 1050.07 978.637 1051.64C979.478 1053.19 979.898 1055.05 979.898 1057.23V1081.88H970.286V1076.81H970C969.413 1077.95 968.628 1078.96 967.645 1079.83C966.661 1080.69 965.48 1081.36 964.1 1081.85C962.72 1082.33 961.126 1082.57 959.317 1082.57ZM962.22 1075.57C963.711 1075.57 965.028 1075.28 966.17 1074.69C967.312 1074.09 968.208 1073.28 968.858 1072.26C969.509 1071.25 969.834 1070.1 969.834 1068.81V1064.94C969.517 1065.14 969.08 1065.33 968.525 1065.51C967.986 1065.67 967.375 1065.82 966.693 1065.96C966.011 1066.09 965.329 1066.21 964.647 1066.32C963.965 1066.41 963.346 1066.5 962.791 1066.58C961.602 1066.75 960.563 1067.03 959.674 1067.41C958.786 1067.79 958.096 1068.31 957.604 1068.96C957.113 1069.59 956.867 1070.39 956.867 1071.34C956.867 1072.72 957.366 1073.77 958.366 1074.5C959.381 1075.22 960.666 1075.57 962.22 1075.57ZM1020.52 1045.33L1007.75 1081.88H996.327L983.55 1045.33H994.257L1001.85 1071.48H1002.23L1009.79 1045.33H1020.52Z\",fill:\"#0038AD\"}))),_path53||(_path53=/*#__PURE__*/React.createElement(\"path\",{d:\"M223.139 889.877H215.199L238.165 827.331H245.983L268.949 889.877H261.009L242.318 837.226H241.83L223.139 889.877ZM226.071 865.445H258.077V872.164H226.071V865.445ZM277.714 907.468V842.968H284.677V850.42H285.532C286.061 849.605 286.794 848.567 287.731 847.305C288.688 846.022 290.052 844.882 291.823 843.884C293.615 842.866 296.038 842.357 299.092 842.357C303.041 842.357 306.523 843.345 309.536 845.319C312.549 847.294 314.901 850.094 316.591 853.718C318.281 857.342 319.126 861.617 319.126 866.545C319.126 871.512 318.281 875.818 316.591 879.463C314.901 883.087 312.56 885.897 309.567 887.892C306.574 889.867 303.123 890.854 299.214 890.854C296.201 890.854 293.788 890.355 291.976 889.358C290.164 888.34 288.769 887.189 287.792 885.907C286.815 884.604 286.061 883.525 285.532 882.67H284.921V907.468H277.714ZM284.799 866.422C284.799 869.965 285.318 873.09 286.357 875.798C287.395 878.486 288.912 880.593 290.907 882.12C292.902 883.626 295.345 884.38 298.237 884.38C301.25 884.38 303.764 883.586 305.78 881.998C307.816 880.389 309.343 878.231 310.361 875.523C311.399 872.795 311.918 869.761 311.918 866.422C311.918 863.124 311.409 860.152 310.391 857.505C309.394 854.838 307.877 852.73 305.841 851.183C303.825 849.615 301.29 848.831 298.237 848.831C295.305 848.831 292.841 849.575 290.846 851.061C288.851 852.527 287.344 854.583 286.326 857.23C285.308 859.856 284.799 862.921 284.799 866.422ZM330.12 907.468V842.968H337.083V850.42H337.938C338.468 849.605 339.201 848.567 340.137 847.305C341.094 846.022 342.458 844.882 344.229 843.884C346.021 842.866 348.444 842.357 351.498 842.357C355.448 842.357 358.929 843.345 361.942 845.319C364.956 847.294 367.307 850.094 368.997 853.718C370.687 857.342 371.532 861.617 371.532 866.545C371.532 871.512 370.687 875.818 368.997 879.463C367.307 883.087 364.966 885.897 361.973 887.892C358.98 889.867 355.529 890.854 351.62 890.854C348.607 890.854 346.194 890.355 344.382 889.358C342.57 888.34 341.175 887.189 340.198 885.907C339.221 884.604 338.468 883.525 337.938 882.67H337.327V907.468H330.12ZM337.205 866.422C337.205 869.965 337.724 873.09 338.763 875.798C339.801 878.486 341.318 880.593 343.313 882.12C345.308 883.626 347.752 884.38 350.643 884.38C353.656 884.38 356.17 883.586 358.186 881.998C360.222 880.389 361.749 878.231 362.767 875.523C363.805 872.795 364.325 869.761 364.325 866.422C364.325 863.124 363.816 860.152 362.798 857.505C361.8 854.838 360.283 852.73 358.247 851.183C356.232 849.615 353.697 848.831 350.643 848.831C347.711 848.831 345.247 849.575 343.252 851.061C341.257 852.527 339.75 854.583 338.732 857.23C337.714 859.856 337.205 862.921 337.205 866.422ZM401.583 890.854C397.348 890.854 393.633 889.846 390.436 887.831C387.26 885.815 384.776 882.995 382.984 879.371C381.213 875.747 380.327 871.512 380.327 866.667C380.327 861.78 381.213 857.515 382.984 853.871C384.776 850.226 387.26 847.396 390.436 845.381C393.633 843.365 397.348 842.357 401.583 842.357C405.818 842.357 409.523 843.365 412.7 845.381C415.896 847.396 418.38 850.226 420.151 853.871C421.943 857.515 422.839 861.78 422.839 866.667C422.839 871.512 421.943 875.747 420.151 879.371C418.38 882.995 415.896 885.815 412.7 887.831C409.523 889.846 405.818 890.854 401.583 890.854ZM401.583 884.38C404.8 884.38 407.447 883.555 409.523 881.906C411.6 880.257 413.137 878.089 414.135 875.401C415.133 872.714 415.631 869.802 415.631 866.667C415.631 863.531 415.133 860.61 414.135 857.902C413.137 855.194 411.6 853.005 409.523 851.336C407.447 849.666 404.8 848.831 401.583 848.831C398.366 848.831 395.719 849.666 393.643 851.336C391.566 853.005 390.029 855.194 389.031 857.902C388.034 860.61 387.535 863.531 387.535 866.667C387.535 869.802 388.034 872.714 389.031 875.401C390.029 878.089 391.566 880.257 393.643 881.906C395.719 883.555 398.366 884.38 401.583 884.38ZM433.841 889.877V842.968H441.048V889.877H433.841ZM437.506 835.15C436.101 835.15 434.889 834.671 433.871 833.714C432.874 832.757 432.375 831.607 432.375 830.263C432.375 828.92 432.874 827.769 433.871 826.812C434.889 825.855 436.101 825.377 437.506 825.377C438.91 825.377 440.112 825.855 441.109 826.812C442.127 827.769 442.636 828.92 442.636 830.263C442.636 831.607 442.127 832.757 441.109 833.714C440.112 834.671 438.91 835.15 437.506 835.15ZM461.456 861.658V889.877H454.249V842.968H461.212V850.297H461.823C462.922 847.915 464.592 846.001 466.831 844.556C469.071 843.09 471.962 842.357 475.505 842.357C478.681 842.357 481.46 843.009 483.842 844.312C486.224 845.594 488.077 847.549 489.4 850.175C490.724 852.781 491.385 856.08 491.385 860.07V889.877H484.178V860.559C484.178 856.874 483.221 854.003 481.307 851.947C479.393 849.87 476.767 848.831 473.428 848.831C471.127 848.831 469.071 849.33 467.259 850.328C465.467 851.326 464.052 852.781 463.014 854.695C461.975 856.609 461.456 858.93 461.456 861.658ZM524.956 842.968V849.076H500.646V842.968H524.956ZM507.732 831.729H514.939V876.439C514.939 878.475 515.234 880.002 515.825 881.02C516.436 882.018 517.209 882.69 518.146 883.036C519.103 883.362 520.111 883.525 521.169 883.525C521.963 883.525 522.615 883.484 523.124 883.403C523.633 883.301 524.04 883.219 524.345 883.158L525.811 889.633C525.323 889.816 524.641 889.999 523.765 890.182C522.89 890.386 521.78 890.488 520.436 890.488C518.4 890.488 516.405 890.05 514.45 889.175C512.516 888.299 510.908 886.965 509.625 885.174C508.363 883.382 507.732 881.122 507.732 878.394V831.729ZM535.798 889.877V842.968H542.761V850.297H543.372C544.349 847.793 545.927 845.849 548.105 844.464C550.284 843.059 552.9 842.357 555.954 842.357C559.049 842.357 561.624 843.059 563.681 844.464C565.757 845.849 567.376 847.793 568.536 850.297H569.025C570.226 847.875 572.028 845.951 574.431 844.525C576.833 843.08 579.714 842.357 583.073 842.357C587.267 842.357 590.698 843.67 593.365 846.297C596.032 848.903 597.366 852.965 597.366 858.482V889.877H590.159V858.482C590.159 855.021 589.212 852.547 587.318 851.061C585.425 849.575 583.195 848.831 580.63 848.831C577.332 848.831 574.777 849.829 572.965 851.824C571.153 853.799 570.247 856.304 570.247 859.337V889.877H562.917V857.749C562.917 855.082 562.052 852.934 560.321 851.305C558.591 849.656 556.361 848.831 553.633 848.831C551.76 848.831 550.009 849.33 548.38 850.328C546.772 851.326 545.469 852.71 544.471 854.481C543.494 856.232 543.005 858.258 543.005 860.559V889.877H535.798ZM630.211 890.854C625.692 890.854 621.793 889.857 618.515 887.861C615.257 885.846 612.743 883.036 610.971 879.432C609.22 875.808 608.345 871.594 608.345 866.789C608.345 861.984 609.22 857.749 610.971 854.084C612.743 850.399 615.206 847.528 618.362 845.472C621.538 843.395 625.244 842.357 629.479 842.357C631.922 842.357 634.334 842.764 636.716 843.579C639.099 844.393 641.267 845.716 643.221 847.549C645.176 849.361 646.733 851.763 647.894 854.756C649.055 857.749 649.635 861.434 649.635 865.812V868.866H613.476V862.635H642.305C642.305 859.989 641.776 857.627 640.717 855.55C639.679 853.474 638.193 851.835 636.258 850.633C634.345 849.432 632.085 848.831 629.479 848.831C626.608 848.831 624.124 849.544 622.027 850.969C619.95 852.374 618.352 854.206 617.232 856.466C616.112 858.726 615.552 861.149 615.552 863.735V867.888C615.552 871.431 616.163 874.434 617.385 876.898C618.627 879.341 620.347 881.204 622.546 882.486C624.745 883.749 627.3 884.38 630.211 884.38C632.105 884.38 633.815 884.115 635.342 883.586C636.89 883.036 638.223 882.222 639.343 881.143C640.463 880.043 641.328 878.679 641.939 877.05L648.902 879.005C648.169 881.367 646.937 883.443 645.206 885.235C643.476 887.006 641.338 888.391 638.793 889.388C636.248 890.366 633.388 890.854 630.211 890.854ZM667.806 861.658V889.877H660.599V842.968H667.562V850.297H668.172C669.272 847.915 670.941 846.001 673.181 844.556C675.421 843.09 678.312 842.357 681.854 842.357C685.03 842.357 687.809 843.009 690.192 844.312C692.574 845.594 694.426 847.549 695.75 850.175C697.073 852.781 697.735 856.08 697.735 860.07V889.877H690.528V860.559C690.528 856.874 689.571 854.003 687.657 851.947C685.743 849.87 683.117 848.831 679.778 848.831C677.477 848.831 675.421 849.33 673.608 850.328C671.817 851.326 670.402 852.781 669.363 854.695C668.325 856.609 667.806 858.93 667.806 861.658ZM731.306 842.968V849.076H706.996V842.968H731.306ZM714.081 831.729H721.289V876.439C721.289 878.475 721.584 880.002 722.174 881.02C722.785 882.018 723.559 882.69 724.495 883.036C725.452 883.362 726.46 883.525 727.519 883.525C728.313 883.525 728.964 883.484 729.473 883.403C729.982 883.301 730.39 883.219 730.695 883.158L732.161 889.633C731.672 889.816 730.99 889.999 730.115 890.182C729.239 890.386 728.13 890.488 726.786 890.488C724.75 890.488 722.755 890.05 720.8 889.175C718.866 888.299 717.257 886.965 715.975 885.174C714.712 883.382 714.081 881.122 714.081 878.394V831.729ZM784.048 890.854C780.139 890.854 776.688 889.867 773.695 887.892C770.702 885.897 768.361 883.087 766.671 879.463C764.981 875.818 764.136 871.512 764.136 866.545C764.136 861.617 764.981 857.342 766.671 853.718C768.361 850.094 770.712 847.294 773.725 845.319C776.739 843.345 780.22 842.357 784.17 842.357C787.224 842.357 789.637 842.866 791.408 843.884C793.2 844.882 794.564 846.022 795.5 847.305C796.457 848.567 797.2 849.605 797.73 850.42H798.341V827.331H805.548V889.877H798.585V882.67H797.73C797.2 883.525 796.447 884.604 795.47 885.907C794.493 887.189 793.098 888.34 791.286 889.358C789.474 890.355 787.061 890.854 784.048 890.854ZM785.025 884.38C787.916 884.38 790.359 883.626 792.355 882.12C794.35 880.593 795.867 878.486 796.905 875.798C797.944 873.09 798.463 869.965 798.463 866.422C798.463 862.921 797.954 859.856 796.936 857.23C795.918 854.583 794.411 852.527 792.416 851.061C790.421 849.575 787.957 848.831 785.025 848.831C781.971 848.831 779.426 849.615 777.39 851.183C775.375 852.73 773.858 854.838 772.84 857.505C771.842 860.152 771.343 863.124 771.343 866.422C771.343 869.761 771.852 872.795 772.87 875.523C773.909 878.231 775.436 880.389 777.451 881.998C779.487 883.586 782.012 884.38 785.025 884.38ZM839.417 890.854C834.897 890.854 830.998 889.857 827.72 887.861C824.462 885.846 821.948 883.036 820.176 879.432C818.426 875.808 817.55 871.594 817.55 866.789C817.55 861.984 818.426 857.749 820.176 854.084C821.948 850.399 824.411 847.528 827.567 845.472C830.743 843.395 834.449 842.357 838.684 842.357C841.127 842.357 843.539 842.764 845.922 843.579C848.304 844.393 850.472 845.716 852.426 847.549C854.381 849.361 855.939 851.763 857.099 854.756C858.26 857.749 858.84 861.434 858.84 865.812V868.866H822.681V862.635H851.51C851.51 859.989 850.981 857.627 849.922 855.55C848.884 853.474 847.398 851.835 845.463 850.633C843.55 849.432 841.29 848.831 838.684 848.831C835.813 848.831 833.329 849.544 831.232 850.969C829.155 852.374 827.557 854.206 826.437 856.466C825.317 858.726 824.757 861.149 824.757 863.735V867.888C824.757 871.431 825.368 874.434 826.59 876.898C827.832 879.341 829.552 881.204 831.751 882.486C833.95 883.749 836.505 884.38 839.417 884.38C841.31 884.38 843.02 884.115 844.547 883.586C846.095 883.036 847.428 882.222 848.548 881.143C849.668 880.043 850.533 878.679 851.144 877.05L858.107 879.005C857.374 881.367 856.142 883.443 854.412 885.235C852.681 887.006 850.543 888.391 847.998 889.388C845.453 890.366 842.593 890.854 839.417 890.854ZM890.204 842.968V849.076H865.895V842.968H890.204ZM872.98 831.729H880.187V876.439C880.187 878.475 880.482 880.002 881.073 881.02C881.684 882.018 882.457 882.69 883.394 883.036C884.351 883.362 885.359 883.525 886.417 883.525C887.211 883.525 887.863 883.484 888.372 883.403C888.881 883.301 889.288 883.219 889.593 883.158L891.059 889.633C890.571 889.816 889.889 889.999 889.013 890.182C888.138 890.386 887.028 890.488 885.684 890.488C883.648 890.488 881.653 890.05 879.699 889.175C877.764 888.299 876.156 886.965 874.873 885.174C873.611 883.382 872.98 881.122 872.98 878.394V831.729ZM914.85 890.976C911.877 890.976 909.18 890.416 906.757 889.297C904.334 888.157 902.41 886.518 900.985 884.38C899.56 882.222 898.847 879.616 898.847 876.562C898.847 873.874 899.376 871.696 900.435 870.026C901.494 868.336 902.909 867.013 904.68 866.056C906.451 865.099 908.406 864.386 910.544 863.918C912.702 863.43 914.87 863.043 917.049 862.758C919.899 862.391 922.21 862.116 923.981 861.933C925.773 861.729 927.076 861.394 927.89 860.925C928.725 860.457 929.142 859.643 929.142 858.482V858.238C929.142 855.224 928.318 852.883 926.669 851.214C925.04 849.544 922.566 848.709 919.248 848.709C915.807 848.709 913.109 849.463 911.154 850.969C909.2 852.476 907.826 854.084 907.032 855.795L900.191 853.351C901.412 850.501 903.041 848.282 905.077 846.694C907.133 845.085 909.373 843.965 911.796 843.334C914.239 842.683 916.641 842.357 919.003 842.357C920.51 842.357 922.24 842.54 924.195 842.907C926.17 843.253 928.074 843.976 929.906 845.075C931.759 846.175 933.296 847.834 934.517 850.053C935.739 852.272 936.35 855.245 936.35 858.971V889.877H929.142V883.525H928.776C928.287 884.543 927.473 885.632 926.333 886.792C925.193 887.953 923.676 888.94 921.782 889.755C919.889 890.569 917.578 890.976 914.85 890.976ZM915.949 884.502C918.8 884.502 921.202 883.942 923.157 882.822C925.132 881.702 926.618 880.257 927.615 878.486C928.633 876.714 929.142 874.851 929.142 872.897V866.3C928.837 866.667 928.165 867.003 927.127 867.308C926.109 867.593 924.928 867.848 923.584 868.072C922.261 868.275 920.968 868.458 919.706 868.621C918.464 868.764 917.456 868.886 916.682 868.988C914.809 869.232 913.058 869.629 911.429 870.179C909.821 870.708 908.518 871.512 907.52 872.591C906.543 873.65 906.054 875.096 906.054 876.928C906.054 879.432 906.981 881.326 908.833 882.608C910.707 883.871 913.078 884.502 915.949 884.502ZM949.505 889.877V842.968H956.712V889.877H949.505ZM953.17 835.15C951.765 835.15 950.553 834.671 949.535 833.714C948.538 832.757 948.039 831.607 948.039 830.263C948.039 828.92 948.538 827.769 949.535 826.812C950.553 825.855 951.765 825.377 953.17 825.377C954.574 825.377 955.776 825.855 956.773 826.812C957.791 827.769 958.3 828.92 958.3 830.263C958.3 831.607 957.791 832.757 956.773 833.714C955.776 834.671 954.574 835.15 953.17 835.15ZM977.12 827.331V889.877H969.913V827.331H977.12ZM1023.55 853.474L1017.07 855.306C1016.67 854.227 1016.07 853.178 1015.27 852.16C1014.5 851.122 1013.44 850.267 1012.1 849.595C1010.75 848.923 1009.03 848.587 1006.93 848.587C1004.06 848.587 1001.67 849.249 999.758 850.572C997.865 851.875 996.918 853.535 996.918 855.55C996.918 857.342 997.569 858.757 998.872 859.795C1000.18 860.834 1002.21 861.699 1004.98 862.391L1011.94 864.101C1016.14 865.119 1019.26 866.677 1021.32 868.774C1023.38 870.851 1024.4 873.528 1024.4 876.806C1024.4 879.493 1023.63 881.896 1022.08 884.013C1020.56 886.131 1018.42 887.8 1015.67 889.022C1012.92 890.243 1009.72 890.854 1006.08 890.854C1001.3 890.854 997.335 889.816 994.2 887.739C991.064 885.662 989.079 882.629 988.244 878.638L995.085 876.928C995.737 879.453 996.969 881.346 998.781 882.608C1000.61 883.871 1003.01 884.502 1005.96 884.502C1009.32 884.502 1011.98 883.789 1013.96 882.364C1015.95 880.919 1016.95 879.188 1016.95 877.172C1016.95 875.544 1016.38 874.18 1015.24 873.08C1014.1 871.96 1012.35 871.126 1009.99 870.576L1002.17 868.743C997.875 867.725 994.719 866.148 992.703 864.01C990.708 861.852 989.71 859.154 989.71 855.917C989.71 853.27 990.454 850.929 991.94 848.893C993.446 846.857 995.493 845.258 998.078 844.098C1000.68 842.937 1003.64 842.357 1006.93 842.357C1011.58 842.357 1015.22 843.375 1017.87 845.411C1020.54 847.447 1022.43 850.135 1023.55 853.474Z\",fill:\"#A0BEEF\"})),/*#__PURE__*/React.createElement(\"mask\",{id:\"mask2_431_2\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:213,y:1035,width:248,height:390},_path54||(_path54=/*#__PURE__*/React.createElement(\"path\",{d:\"M428.184 1035.88H245.681C227.632 1035.88 213 1050.51 213 1068.56V1392.2C213 1410.25 227.632 1424.88 245.681 1424.88H428.184C446.233 1424.88 460.865 1410.25 460.865 1392.2V1068.56C460.865 1050.51 446.233 1035.88 428.184 1035.88Z\",fill:\"white\"}))),_g2||(_g2=/*#__PURE__*/React.createElement(\"g\",{mask:\"url(#mask2_431_2)\"},/*#__PURE__*/React.createElement(\"path\",{d:\"M648 968H177V1439H648V968Z\",fill:\"url(#pattern0)\"}))),_path55||(_path55=/*#__PURE__*/React.createElement(\"path\",{d:\"M825.986 1341.23H544.885C539.242 1341.23 534.668 1345.8 534.668 1351.45V1413.27C534.668 1418.91 539.242 1423.48 544.885 1423.48H825.986C831.629 1423.48 836.203 1418.91 836.203 1413.27V1351.45C836.203 1345.8 831.629 1341.23 825.986 1341.23Z\",fill:\"#0641B6\"})),_path56||(_path56=/*#__PURE__*/React.createElement(\"path\",{d:\"M607.043 1375.46H604.577C604.431 1374.75 604.176 1374.13 603.811 1373.59C603.453 1373.05 603.016 1372.6 602.499 1372.24C601.988 1371.87 601.421 1371.59 600.798 1371.4C600.175 1371.22 599.526 1371.12 598.85 1371.12C597.617 1371.12 596.5 1371.44 595.499 1372.06C594.504 1372.68 593.712 1373.6 593.122 1374.81C592.539 1376.03 592.247 1377.51 592.247 1379.28C592.247 1381.04 592.539 1382.53 593.122 1383.74C593.712 1384.96 594.504 1385.87 595.499 1386.5C596.5 1387.12 597.617 1387.43 598.85 1387.43C599.526 1387.43 600.175 1387.34 600.798 1387.15C601.421 1386.97 601.988 1386.69 602.499 1386.33C603.016 1385.96 603.453 1385.5 603.811 1384.97C604.176 1384.42 604.431 1383.8 604.577 1383.1H607.043C606.857 1384.14 606.519 1385.07 606.028 1385.89C605.538 1386.71 604.928 1387.41 604.199 1387.99C603.47 1388.56 602.651 1388.99 601.743 1389.29C600.841 1389.59 599.877 1389.74 598.85 1389.74C597.113 1389.74 595.568 1389.31 594.216 1388.47C592.864 1387.62 591.8 1386.41 591.024 1384.85C590.249 1383.28 589.861 1381.43 589.861 1379.28C589.861 1377.13 590.249 1375.27 591.024 1373.71C591.8 1372.15 592.864 1370.94 594.216 1370.09C595.568 1369.24 597.113 1368.82 598.85 1368.82C599.877 1368.82 600.841 1368.97 601.743 1369.27C602.651 1369.56 603.47 1370 604.199 1370.58C604.928 1371.15 605.538 1371.84 606.028 1372.67C606.519 1373.48 606.857 1374.41 607.043 1375.46ZM616.914 1389.78C615.535 1389.78 614.325 1389.45 613.285 1388.79C612.25 1388.14 611.442 1387.22 610.858 1386.04C610.282 1384.86 609.993 1383.48 609.993 1381.9C609.993 1380.31 610.282 1378.92 610.858 1377.74C611.442 1376.55 612.25 1375.63 613.285 1374.97C614.325 1374.32 615.535 1373.99 616.914 1373.99C618.293 1373.99 619.499 1374.32 620.533 1374.97C621.574 1375.63 622.383 1376.55 622.959 1377.74C623.543 1378.92 623.834 1380.31 623.834 1381.9C623.834 1383.48 623.543 1384.86 622.959 1386.04C622.383 1387.22 621.574 1388.14 620.533 1388.79C619.499 1389.45 618.293 1389.78 616.914 1389.78ZM616.914 1387.67C617.961 1387.67 618.823 1387.4 619.499 1386.86C620.175 1386.33 620.676 1385.62 621 1384.75C621.325 1383.87 621.488 1382.92 621.488 1381.9C621.488 1380.88 621.325 1379.93 621 1379.05C620.676 1378.17 620.175 1377.46 619.499 1376.91C618.823 1376.37 617.961 1376.1 616.914 1376.1C615.866 1376.1 615.005 1376.37 614.329 1376.91C613.652 1377.46 613.152 1378.17 612.827 1379.05C612.502 1379.93 612.34 1380.88 612.34 1381.9C612.34 1382.92 612.502 1383.87 612.827 1384.75C613.152 1385.62 613.652 1386.33 614.329 1386.86C615.005 1387.4 615.866 1387.67 616.914 1387.67ZM629.763 1380.27V1389.46H627.416V1374.19H629.683V1376.57H629.882C630.24 1375.8 630.784 1375.17 631.513 1374.7C632.242 1374.23 633.183 1373.99 634.337 1373.99C635.371 1373.99 636.276 1374.2 637.051 1374.62C637.827 1375.04 638.43 1375.68 638.861 1376.53C639.292 1377.38 639.507 1378.46 639.507 1379.76V1389.46H637.161V1379.91C637.161 1378.71 636.849 1377.78 636.226 1377.11C635.603 1376.43 634.748 1376.1 633.661 1376.1C632.912 1376.1 632.242 1376.26 631.652 1376.58C631.069 1376.91 630.608 1377.38 630.27 1378.01C629.932 1378.63 629.763 1379.38 629.763 1380.27ZM650.437 1374.19V1376.18H642.522V1374.19H650.437ZM644.829 1370.53H647.176V1385.08C647.176 1385.75 647.272 1386.24 647.464 1386.58C647.663 1386.9 647.915 1387.12 648.22 1387.23C648.531 1387.34 648.86 1387.39 649.204 1387.39C649.463 1387.39 649.675 1387.38 649.841 1387.35C650.006 1387.32 650.139 1387.29 650.238 1387.27L650.716 1389.38C650.557 1389.44 650.334 1389.5 650.049 1389.56C649.764 1389.63 649.403 1389.66 648.966 1389.66C648.303 1389.66 647.653 1389.52 647.017 1389.23C646.387 1388.95 645.863 1388.51 645.446 1387.93C645.035 1387.35 644.829 1386.61 644.829 1385.72V1370.53ZM658.461 1389.82C657.494 1389.82 656.615 1389.64 655.826 1389.27C655.038 1388.9 654.411 1388.37 653.947 1387.67C653.483 1386.97 653.251 1386.12 653.251 1385.12C653.251 1384.25 653.424 1383.54 653.768 1383C654.113 1382.45 654.574 1382.02 655.15 1381.7C655.727 1381.39 656.363 1381.16 657.059 1381.01C657.762 1380.85 658.468 1380.72 659.177 1380.63C660.105 1380.51 660.858 1380.42 661.434 1380.36C662.018 1380.3 662.442 1380.19 662.707 1380.03C662.979 1379.88 663.115 1379.62 663.115 1379.24V1379.16C663.115 1378.18 662.846 1377.42 662.309 1376.87C661.779 1376.33 660.974 1376.06 659.893 1376.06C658.773 1376.06 657.895 1376.3 657.258 1376.79C656.622 1377.28 656.174 1377.81 655.916 1378.36L653.689 1377.57C654.086 1376.64 654.617 1375.92 655.28 1375.4C655.949 1374.88 656.678 1374.51 657.467 1374.31C658.263 1374.09 659.045 1373.99 659.814 1373.99C660.304 1373.99 660.868 1374.05 661.504 1374.17C662.147 1374.28 662.767 1374.52 663.363 1374.87C663.967 1375.23 664.467 1375.77 664.865 1376.49C665.263 1377.22 665.461 1378.18 665.461 1379.4V1389.46H663.115V1387.39H662.995C662.836 1387.72 662.571 1388.08 662.2 1388.46C661.829 1388.83 661.335 1389.16 660.718 1389.42C660.102 1389.69 659.35 1389.82 658.461 1389.82ZM658.819 1387.71C659.747 1387.71 660.53 1387.53 661.166 1387.16C661.809 1386.8 662.293 1386.33 662.618 1385.75C662.949 1385.17 663.115 1384.57 663.115 1383.93V1381.78C663.015 1381.9 662.797 1382.01 662.459 1382.11C662.127 1382.2 661.743 1382.29 661.305 1382.36C660.874 1382.43 660.453 1382.49 660.042 1382.54C659.638 1382.59 659.31 1382.63 659.058 1382.66C658.448 1382.74 657.878 1382.87 657.348 1383.05C656.824 1383.22 656.4 1383.48 656.075 1383.83C655.757 1384.18 655.598 1384.65 655.598 1385.24C655.598 1386.06 655.899 1386.68 656.503 1387.09C657.112 1387.5 657.885 1387.71 658.819 1387.71ZM675.949 1389.78C674.517 1389.78 673.284 1389.44 672.25 1388.76C671.216 1388.09 670.421 1387.16 669.864 1385.97C669.307 1384.78 669.028 1383.43 669.028 1381.9C669.028 1380.35 669.314 1378.98 669.884 1377.8C670.46 1376.6 671.262 1375.67 672.29 1375C673.324 1374.33 674.53 1373.99 675.909 1373.99C676.983 1373.99 677.951 1374.19 678.813 1374.58C679.674 1374.98 680.38 1375.54 680.93 1376.26C681.481 1376.97 681.822 1377.81 681.955 1378.76H679.608C679.429 1378.07 679.031 1377.45 678.415 1376.91C677.805 1376.37 676.983 1376.1 675.949 1376.1C675.034 1376.1 674.232 1376.33 673.543 1376.81C672.86 1377.28 672.326 1377.95 671.942 1378.81C671.564 1379.67 671.375 1380.67 671.375 1381.82C671.375 1383 671.561 1384.03 671.932 1384.91C672.31 1385.78 672.84 1386.46 673.523 1386.94C674.212 1387.43 675.021 1387.67 675.949 1387.67C676.559 1387.67 677.112 1387.56 677.609 1387.35C678.107 1387.14 678.528 1386.83 678.872 1386.44C679.217 1386.04 679.462 1385.56 679.608 1385.01H681.955C681.822 1385.91 681.494 1386.72 680.97 1387.44C680.453 1388.16 679.767 1388.73 678.912 1389.15C678.064 1389.57 677.076 1389.78 675.949 1389.78ZM692.027 1374.19V1376.18H684.112V1374.19H692.027ZM686.419 1370.53H688.766V1385.08C688.766 1385.75 688.862 1386.24 689.054 1386.58C689.253 1386.9 689.505 1387.12 689.81 1387.23C690.121 1387.34 690.449 1387.39 690.794 1387.39C691.053 1387.39 691.265 1387.38 691.43 1387.35C691.596 1387.32 691.729 1387.29 691.828 1387.27L692.305 1389.38C692.146 1389.44 691.924 1389.5 691.639 1389.56C691.354 1389.63 690.993 1389.66 690.555 1389.66C689.893 1389.66 689.243 1389.52 688.607 1389.23C687.977 1388.95 687.453 1388.51 687.036 1387.93C686.625 1387.35 686.419 1386.61 686.419 1385.72V1370.53ZM703.432 1395.19V1374.19H705.699V1376.61H705.977C706.15 1376.35 706.388 1376.01 706.693 1375.6C707.005 1375.18 707.449 1374.81 708.026 1374.49C708.609 1374.15 709.398 1373.99 710.392 1373.99C711.678 1373.99 712.812 1374.31 713.793 1374.95C714.774 1375.6 715.539 1376.51 716.09 1377.69C716.64 1378.87 716.915 1380.26 716.915 1381.86C716.915 1383.48 716.64 1384.88 716.09 1386.07C715.539 1387.25 714.777 1388.16 713.803 1388.81C712.828 1389.46 711.705 1389.78 710.432 1389.78C709.451 1389.78 708.665 1389.62 708.075 1389.29C707.485 1388.96 707.031 1388.58 706.713 1388.17C706.395 1387.74 706.15 1387.39 705.977 1387.11H705.778V1395.19H703.432ZM705.739 1381.82C705.739 1382.98 705.908 1383.99 706.246 1384.88C706.584 1385.75 707.078 1386.44 707.727 1386.93C708.377 1387.42 709.172 1387.67 710.114 1387.67C711.095 1387.67 711.913 1387.41 712.57 1386.89C713.233 1386.37 713.73 1385.67 714.061 1384.79C714.399 1383.9 714.568 1382.91 714.568 1381.82C714.568 1380.75 714.403 1379.78 714.071 1378.92C713.746 1378.05 713.252 1377.37 712.59 1376.86C711.933 1376.35 711.108 1376.1 710.114 1376.1C709.159 1376.1 708.357 1376.34 707.707 1376.82C707.058 1377.3 706.567 1377.97 706.236 1378.83C705.904 1379.69 705.739 1380.68 705.739 1381.82ZM724.989 1389.82C724.021 1389.82 723.143 1389.64 722.354 1389.27C721.565 1388.9 720.939 1388.37 720.475 1387.67C720.011 1386.97 719.778 1386.12 719.778 1385.12C719.778 1384.25 719.951 1383.54 720.296 1383C720.64 1382.45 721.101 1382.02 721.678 1381.7C722.254 1381.39 722.891 1381.16 723.587 1381.01C724.289 1380.85 724.995 1380.72 725.705 1380.63C726.633 1380.51 727.385 1380.42 727.962 1380.36C728.545 1380.3 728.969 1380.19 729.234 1380.03C729.506 1379.88 729.642 1379.62 729.642 1379.24V1379.16C729.642 1378.18 729.374 1377.42 728.837 1376.87C728.306 1376.33 727.501 1376.06 726.421 1376.06C725.3 1376.06 724.422 1376.3 723.786 1376.79C723.149 1377.28 722.702 1377.81 722.443 1378.36L720.216 1377.57C720.614 1376.64 721.144 1375.92 721.807 1375.4C722.476 1374.88 723.206 1374.51 723.994 1374.31C724.79 1374.09 725.572 1373.99 726.341 1373.99C726.832 1373.99 727.395 1374.05 728.031 1374.17C728.674 1374.28 729.294 1374.52 729.891 1374.87C730.494 1375.23 730.994 1375.77 731.392 1376.49C731.79 1377.22 731.989 1378.18 731.989 1379.4V1389.46H729.642V1387.39H729.523C729.364 1387.72 729.099 1388.08 728.727 1388.46C728.356 1388.83 727.862 1389.16 727.246 1389.42C726.629 1389.69 725.877 1389.82 724.989 1389.82ZM725.347 1387.71C726.275 1387.71 727.057 1387.53 727.693 1387.16C728.336 1386.8 728.82 1386.33 729.145 1385.75C729.476 1385.17 729.642 1384.57 729.642 1383.93V1381.78C729.543 1381.9 729.324 1382.01 728.986 1382.11C728.654 1382.2 728.27 1382.29 727.832 1382.36C727.402 1382.43 726.981 1382.49 726.57 1382.54C726.165 1382.59 725.837 1382.63 725.585 1382.66C724.975 1382.74 724.405 1382.87 723.875 1383.05C723.351 1383.22 722.927 1383.48 722.602 1383.83C722.284 1384.18 722.125 1384.65 722.125 1385.24C722.125 1386.06 722.427 1386.68 723.03 1387.09C723.64 1387.5 724.412 1387.71 725.347 1387.71ZM742.914 1374.19V1376.18H734.999V1374.19H742.914ZM737.306 1370.53H739.652V1385.08C739.652 1385.75 739.749 1386.24 739.941 1386.58C740.14 1386.9 740.392 1387.12 740.696 1387.23C741.008 1387.34 741.336 1387.39 741.681 1387.39C741.939 1387.39 742.151 1387.38 742.317 1387.35C742.483 1387.32 742.616 1387.29 742.715 1387.27L743.192 1389.38C743.033 1389.44 742.811 1389.5 742.526 1389.56C742.241 1389.63 741.88 1389.66 741.442 1389.66C740.779 1389.66 740.13 1389.52 739.493 1389.23C738.864 1388.95 738.34 1388.51 737.922 1387.93C737.511 1387.35 737.306 1386.61 737.306 1385.72V1370.53ZM746.444 1389.46V1374.19H748.79V1389.46H746.444ZM747.637 1371.64C747.179 1371.64 746.785 1371.49 746.454 1371.17C746.129 1370.86 745.966 1370.49 745.966 1370.05C745.966 1369.61 746.129 1369.24 746.454 1368.93C746.785 1368.62 747.179 1368.46 747.637 1368.46C748.094 1368.46 748.485 1368.62 748.81 1368.93C749.142 1369.24 749.307 1369.61 749.307 1370.05C749.307 1370.49 749.142 1370.86 748.81 1371.17C748.485 1371.49 748.094 1371.64 747.637 1371.64ZM759.492 1389.78C758.02 1389.78 756.751 1389.45 755.683 1388.8C754.623 1388.15 753.804 1387.23 753.227 1386.06C752.657 1384.88 752.372 1383.51 752.372 1381.94C752.372 1380.38 752.657 1379 753.227 1377.81C753.804 1376.61 754.606 1375.67 755.634 1375C756.668 1374.33 757.874 1373.99 759.253 1373.99C760.048 1373.99 760.834 1374.12 761.609 1374.39C762.385 1374.65 763.091 1375.08 763.727 1375.68C764.364 1376.27 764.871 1377.05 765.249 1378.03C765.627 1379 765.815 1380.2 765.815 1381.62V1382.62H754.043V1380.59H763.429C763.429 1379.73 763.257 1378.96 762.912 1378.28C762.574 1377.61 762.09 1377.07 761.46 1376.68C760.837 1376.29 760.101 1376.1 759.253 1376.1C758.318 1376.1 757.51 1376.33 756.827 1376.79C756.151 1377.25 755.63 1377.85 755.266 1378.58C754.901 1379.32 754.719 1380.11 754.719 1380.95V1382.3C754.719 1383.45 754.918 1384.43 755.315 1385.23C755.72 1386.03 756.28 1386.64 756.996 1387.05C757.712 1387.46 758.544 1387.67 759.492 1387.67C760.108 1387.67 760.665 1387.58 761.162 1387.41C761.666 1387.23 762.1 1386.97 762.465 1386.62C762.829 1386.26 763.111 1385.81 763.31 1385.28L765.577 1385.92C765.338 1386.69 764.937 1387.37 764.374 1387.95C763.81 1388.53 763.114 1388.98 762.286 1389.3C761.457 1389.62 760.526 1389.78 759.492 1389.78ZM771.732 1380.27V1389.46H769.385V1374.19H771.652V1376.57H771.851C772.209 1375.8 772.752 1375.17 773.482 1374.7C774.211 1374.23 775.152 1373.99 776.305 1373.99C777.34 1373.99 778.244 1374.2 779.02 1374.62C779.796 1375.04 780.399 1375.68 780.83 1376.53C781.261 1377.38 781.476 1378.46 781.476 1379.76V1389.46H779.129V1379.91C779.129 1378.71 778.818 1377.78 778.195 1377.11C777.572 1376.43 776.716 1376.1 775.629 1376.1C774.88 1376.1 774.211 1376.26 773.621 1376.58C773.037 1376.91 772.577 1377.38 772.239 1378.01C771.901 1378.63 771.732 1379.38 771.732 1380.27ZM792.406 1374.19V1376.18H784.491V1374.19H792.406ZM786.798 1370.53H789.145V1385.08C789.145 1385.75 789.241 1386.24 789.433 1386.58C789.632 1386.9 789.884 1387.12 790.189 1387.23C790.5 1387.34 790.828 1387.39 791.173 1387.39C791.432 1387.39 791.644 1387.38 791.809 1387.35C791.975 1387.32 792.108 1387.29 792.207 1387.27L792.684 1389.38C792.525 1389.44 792.303 1389.5 792.018 1389.56C791.733 1389.63 791.372 1389.66 790.934 1389.66C790.272 1389.66 789.622 1389.52 788.986 1389.23C788.356 1388.95 787.832 1388.51 787.415 1387.93C787.004 1387.35 786.798 1386.61 786.798 1385.72V1370.53Z\",fill:\"white\"})),_path57||(_path57=/*#__PURE__*/React.createElement(\"path\",{d:\"M1146.07 1341.23H864.967C859.324 1341.23 854.75 1345.8 854.75 1351.45V1413.27C854.75 1418.91 859.324 1423.48 864.967 1423.48H1146.07C1151.71 1423.48 1156.29 1418.91 1156.29 1413.27V1351.45C1156.29 1345.8 1151.71 1341.23 1146.07 1341.23Z\",stroke:\"#0641B6\"})),_path58||(_path58=/*#__PURE__*/React.createElement(\"path\",{d:\"M896.441 1375.46H893.975C893.829 1374.75 893.574 1374.13 893.21 1373.59C892.852 1373.05 892.414 1372.6 891.897 1372.24C891.387 1371.87 890.82 1371.59 890.197 1371.4C889.574 1371.22 888.924 1371.12 888.248 1371.12C887.015 1371.12 885.898 1371.44 884.897 1372.06C883.903 1372.68 883.111 1373.6 882.521 1374.81C881.937 1376.03 881.646 1377.51 881.646 1379.28C881.646 1381.04 881.937 1382.53 882.521 1383.74C883.111 1384.96 883.903 1385.87 884.897 1386.5C885.898 1387.12 887.015 1387.43 888.248 1387.43C888.924 1387.43 889.574 1387.34 890.197 1387.15C890.82 1386.97 891.387 1386.69 891.897 1386.33C892.414 1385.96 892.852 1385.5 893.21 1384.97C893.574 1384.42 893.829 1383.8 893.975 1383.1H896.441C896.256 1384.14 895.917 1385.07 895.427 1385.89C894.936 1386.71 894.327 1387.41 893.597 1387.99C892.868 1388.56 892.05 1388.99 891.141 1389.29C890.24 1389.59 889.275 1389.74 888.248 1389.74C886.511 1389.74 884.967 1389.31 883.614 1388.47C882.262 1387.62 881.198 1386.41 880.423 1384.85C879.647 1383.28 879.259 1381.43 879.259 1379.28C879.259 1377.13 879.647 1375.27 880.423 1373.71C881.198 1372.15 882.262 1370.94 883.614 1370.09C884.967 1369.24 886.511 1368.82 888.248 1368.82C889.275 1368.82 890.24 1368.97 891.141 1369.27C892.05 1369.56 892.868 1370 893.597 1370.58C894.327 1371.15 894.936 1371.84 895.427 1372.67C895.917 1373.48 896.256 1374.41 896.441 1375.46ZM904.602 1389.82C903.634 1389.82 902.756 1389.64 901.967 1389.27C901.178 1388.9 900.552 1388.37 900.088 1387.67C899.624 1386.97 899.392 1386.12 899.392 1385.12C899.392 1384.25 899.564 1383.54 899.909 1383C900.254 1382.45 900.714 1382.02 901.291 1381.7C901.868 1381.39 902.504 1381.16 903.2 1381.01C903.903 1380.85 904.609 1380.72 905.318 1380.63C906.246 1380.51 906.998 1380.42 907.575 1380.36C908.158 1380.3 908.583 1380.19 908.848 1380.03C909.12 1379.88 909.255 1379.62 909.255 1379.24V1379.16C909.255 1378.18 908.987 1377.42 908.45 1376.87C907.92 1376.33 907.114 1376.06 906.034 1376.06C904.914 1376.06 904.035 1376.3 903.399 1376.79C902.763 1377.28 902.315 1377.81 902.057 1378.36L899.829 1377.57C900.227 1376.64 900.757 1375.92 901.42 1375.4C902.09 1374.88 902.819 1374.51 903.608 1374.31C904.403 1374.09 905.185 1373.99 905.954 1373.99C906.445 1373.99 907.008 1374.05 907.645 1374.17C908.288 1374.28 908.907 1374.52 909.504 1374.87C910.107 1375.23 910.608 1375.77 911.005 1376.49C911.403 1377.22 911.602 1378.18 911.602 1379.4V1389.46H909.255V1387.39H909.136C908.977 1387.72 908.712 1388.08 908.341 1388.46C907.969 1388.83 907.476 1389.16 906.859 1389.42C906.243 1389.69 905.49 1389.82 904.602 1389.82ZM904.96 1387.71C905.888 1387.71 906.67 1387.53 907.307 1387.16C907.95 1386.8 908.433 1386.33 908.758 1385.75C909.09 1385.17 909.255 1384.57 909.255 1383.93V1381.78C909.156 1381.9 908.937 1382.01 908.599 1382.11C908.268 1382.2 907.883 1382.29 907.446 1382.36C907.015 1382.43 906.594 1382.49 906.183 1382.54C905.779 1382.59 905.45 1382.63 905.199 1382.66C904.589 1382.74 904.019 1382.87 903.488 1383.05C902.965 1383.22 902.54 1383.48 902.216 1383.83C901.897 1384.18 901.738 1384.65 901.738 1385.24C901.738 1386.06 902.04 1386.68 902.643 1387.09C903.253 1387.5 904.025 1387.71 904.96 1387.71ZM918.232 1380.27V1389.46H915.885V1374.19H918.152V1376.57H918.351C918.709 1375.8 919.252 1375.17 919.982 1374.7C920.711 1374.23 921.652 1373.99 922.805 1373.99C923.84 1373.99 924.744 1374.2 925.52 1374.62C926.296 1375.04 926.899 1375.68 927.33 1376.53C927.761 1377.38 927.976 1378.46 927.976 1379.76V1389.46H925.629V1379.91C925.629 1378.71 925.318 1377.78 924.695 1377.11C924.072 1376.43 923.216 1376.1 922.129 1376.1C921.38 1376.1 920.711 1376.26 920.121 1376.58C919.537 1376.91 919.077 1377.38 918.739 1378.01C918.401 1378.63 918.232 1379.38 918.232 1380.27ZM938.468 1389.78C937.037 1389.78 935.804 1389.44 934.77 1388.76C933.736 1388.09 932.94 1387.16 932.383 1385.97C931.826 1384.78 931.548 1383.43 931.548 1381.9C931.548 1380.35 931.833 1378.98 932.403 1377.8C932.98 1376.6 933.782 1375.67 934.809 1375C935.843 1374.33 937.05 1373.99 938.429 1373.99C939.503 1373.99 940.47 1374.19 941.332 1374.58C942.194 1374.98 942.9 1375.54 943.45 1376.26C944 1376.97 944.342 1377.81 944.474 1378.76H942.128C941.949 1378.07 941.551 1377.45 940.934 1376.91C940.325 1376.37 939.503 1376.1 938.468 1376.1C937.554 1376.1 936.752 1376.33 936.062 1376.81C935.379 1377.28 934.846 1377.95 934.461 1378.81C934.084 1379.67 933.895 1380.67 933.895 1381.82C933.895 1383 934.08 1384.03 934.451 1384.91C934.829 1385.78 935.36 1386.46 936.042 1386.94C936.732 1387.43 937.54 1387.67 938.468 1387.67C939.078 1387.67 939.632 1387.56 940.129 1387.35C940.626 1387.14 941.047 1386.83 941.392 1386.44C941.736 1386.04 941.982 1385.56 942.128 1385.01H944.474C944.342 1385.91 944.013 1386.72 943.49 1387.44C942.973 1388.16 942.287 1388.73 941.432 1389.15C940.583 1389.57 939.595 1389.78 938.468 1389.78ZM954.308 1389.78C952.836 1389.78 951.567 1389.45 950.5 1388.8C949.439 1388.15 948.62 1387.23 948.044 1386.06C947.474 1384.88 947.189 1383.51 947.189 1381.94C947.189 1380.38 947.474 1379 948.044 1377.81C948.62 1376.61 949.423 1375.67 950.45 1375C951.484 1374.33 952.691 1373.99 954.069 1373.99C954.865 1373.99 955.65 1374.12 956.426 1374.39C957.201 1374.65 957.907 1375.08 958.544 1375.68C959.18 1376.27 959.687 1377.05 960.065 1378.03C960.443 1379 960.632 1380.2 960.632 1381.62V1382.62H948.859V1380.59H958.245C958.245 1379.73 958.073 1378.96 957.728 1378.28C957.39 1377.61 956.906 1377.07 956.277 1376.68C955.654 1376.29 954.918 1376.1 954.069 1376.1C953.135 1376.1 952.326 1376.33 951.643 1376.79C950.967 1377.25 950.447 1377.85 950.082 1378.58C949.718 1379.32 949.535 1380.11 949.535 1380.95V1382.3C949.535 1383.45 949.734 1384.43 950.132 1385.23C950.536 1386.03 951.096 1386.64 951.812 1387.05C952.528 1387.46 953.36 1387.67 954.308 1387.67C954.924 1387.67 955.481 1387.58 955.978 1387.41C956.482 1387.23 956.916 1386.97 957.281 1386.62C957.646 1386.26 957.927 1385.81 958.126 1385.28L960.393 1385.92C960.155 1386.69 959.754 1387.37 959.19 1387.95C958.627 1388.53 957.931 1388.98 957.102 1389.3C956.273 1389.62 955.342 1389.78 954.308 1389.78ZM966.548 1369.1V1389.46H964.201V1369.1H966.548ZM983.215 1389.82C982.247 1389.82 981.369 1389.64 980.58 1389.27C979.792 1388.9 979.165 1388.37 978.701 1387.67C978.237 1386.97 978.005 1386.12 978.005 1385.12C978.005 1384.25 978.177 1383.54 978.522 1383C978.867 1382.45 979.328 1382.02 979.904 1381.7C980.481 1381.39 981.117 1381.16 981.813 1381.01C982.516 1380.85 983.222 1380.72 983.931 1380.63C984.859 1380.51 985.612 1380.42 986.188 1380.36C986.772 1380.3 987.196 1380.19 987.461 1380.03C987.733 1379.88 987.869 1379.62 987.869 1379.24V1379.16C987.869 1378.18 987.6 1377.42 987.063 1376.87C986.533 1376.33 985.728 1376.06 984.647 1376.06C983.527 1376.06 982.649 1376.3 982.012 1376.79C981.376 1377.28 980.928 1377.81 980.67 1378.36L978.443 1377.57C978.84 1376.64 979.371 1375.92 980.033 1375.4C980.703 1374.88 981.432 1374.51 982.221 1374.31C983.016 1374.09 983.799 1373.99 984.568 1373.99C985.058 1373.99 985.622 1374.05 986.258 1374.17C986.901 1374.28 987.521 1374.52 988.117 1374.87C988.72 1375.23 989.221 1375.77 989.619 1376.49C990.016 1377.22 990.215 1378.18 990.215 1379.4V1389.46H987.869V1387.39H987.749C987.59 1387.72 987.325 1388.08 986.954 1388.46C986.583 1388.83 986.089 1389.16 985.472 1389.42C984.856 1389.69 984.104 1389.82 983.215 1389.82ZM983.573 1387.71C984.501 1387.71 985.283 1387.53 985.92 1387.16C986.563 1386.8 987.047 1386.33 987.372 1385.75C987.703 1385.17 987.869 1384.57 987.869 1383.93V1381.78C987.769 1381.9 987.551 1382.01 987.212 1382.11C986.881 1382.2 986.497 1382.29 986.059 1382.36C985.628 1382.43 985.207 1382.49 984.796 1382.54C984.392 1382.59 984.064 1382.63 983.812 1382.66C983.202 1382.74 982.632 1382.87 982.102 1383.05C981.578 1383.22 981.154 1383.48 980.829 1383.83C980.511 1384.18 980.352 1384.65 980.352 1385.24C980.352 1386.06 980.653 1386.68 981.256 1387.09C981.866 1387.5 982.639 1387.71 983.573 1387.71ZM994.498 1395.19V1374.19H996.765V1376.61H997.044C997.216 1376.35 997.455 1376.01 997.76 1375.6C998.071 1375.18 998.515 1374.81 999.092 1374.49C999.675 1374.15 1000.46 1373.99 1001.46 1373.99C1002.74 1373.99 1003.88 1374.31 1004.86 1374.95C1005.84 1375.6 1006.61 1376.51 1007.16 1377.69C1007.71 1378.87 1007.98 1380.26 1007.98 1381.86C1007.98 1383.48 1007.71 1384.88 1007.16 1386.07C1006.61 1387.25 1005.84 1388.16 1004.87 1388.81C1003.89 1389.46 1002.77 1389.78 1001.5 1389.78C1000.52 1389.78 999.732 1389.62 999.142 1389.29C998.552 1388.96 998.098 1388.58 997.78 1388.17C997.461 1387.74 997.216 1387.39 997.044 1387.11H996.845V1395.19H994.498ZM996.805 1381.82C996.805 1382.98 996.974 1383.99 997.312 1384.88C997.65 1385.75 998.144 1386.44 998.794 1386.93C999.443 1387.42 1000.24 1387.67 1001.18 1387.67C1002.16 1387.67 1002.98 1387.41 1003.64 1386.89C1004.3 1386.37 1004.8 1385.67 1005.13 1384.79C1005.47 1383.9 1005.63 1382.91 1005.63 1381.82C1005.63 1380.75 1005.47 1379.78 1005.14 1378.92C1004.81 1378.05 1004.32 1377.37 1003.66 1376.86C1003 1376.35 1002.17 1376.1 1001.18 1376.1C1000.23 1376.1 999.424 1376.34 998.774 1376.82C998.124 1377.3 997.634 1377.97 997.302 1378.83C996.971 1379.69 996.805 1380.68 996.805 1381.82ZM1011.56 1395.19V1374.19H1013.83V1376.61H1014.11C1014.28 1376.35 1014.52 1376.01 1014.82 1375.6C1015.13 1375.18 1015.58 1374.81 1016.15 1374.49C1016.74 1374.15 1017.53 1373.99 1018.52 1373.99C1019.81 1373.99 1020.94 1374.31 1021.92 1374.95C1022.9 1375.6 1023.67 1376.51 1024.22 1377.69C1024.77 1378.87 1025.04 1380.26 1025.04 1381.86C1025.04 1383.48 1024.77 1384.88 1024.22 1386.07C1023.67 1387.25 1022.91 1388.16 1021.93 1388.81C1020.96 1389.46 1019.83 1389.78 1018.56 1389.78C1017.58 1389.78 1016.79 1389.62 1016.2 1389.29C1015.61 1388.96 1015.16 1388.58 1014.84 1388.17C1014.52 1387.74 1014.28 1387.39 1014.11 1387.11H1013.91V1395.19H1011.56ZM1013.87 1381.82C1013.87 1382.98 1014.04 1383.99 1014.37 1384.88C1014.71 1385.75 1015.21 1386.44 1015.86 1386.93C1016.51 1387.42 1017.3 1387.67 1018.24 1387.67C1019.22 1387.67 1020.04 1387.41 1020.7 1386.89C1021.36 1386.37 1021.86 1385.67 1022.19 1384.79C1022.53 1383.9 1022.7 1382.91 1022.7 1381.82C1022.7 1380.75 1022.53 1379.78 1022.2 1378.92C1021.88 1378.05 1021.38 1377.37 1020.72 1376.86C1020.06 1376.35 1019.24 1376.1 1018.24 1376.1C1017.29 1376.1 1016.49 1376.34 1015.84 1376.82C1015.19 1377.3 1014.7 1377.97 1014.36 1378.83C1014.03 1379.69 1013.87 1380.68 1013.87 1381.82ZM1034.83 1389.78C1033.45 1389.78 1032.24 1389.45 1031.2 1388.79C1030.16 1388.14 1029.36 1387.22 1028.77 1386.04C1028.2 1384.86 1027.91 1383.48 1027.91 1381.9C1027.91 1380.31 1028.2 1378.92 1028.77 1377.74C1029.36 1376.55 1030.16 1375.63 1031.2 1374.97C1032.24 1374.32 1033.45 1373.99 1034.83 1373.99C1036.21 1373.99 1037.41 1374.32 1038.45 1374.97C1039.49 1375.63 1040.3 1376.55 1040.87 1377.74C1041.46 1378.92 1041.75 1380.31 1041.75 1381.9C1041.75 1383.48 1041.46 1384.86 1040.87 1386.04C1040.3 1387.22 1039.49 1388.14 1038.45 1388.79C1037.41 1389.45 1036.21 1389.78 1034.83 1389.78ZM1034.83 1387.67C1035.88 1387.67 1036.74 1387.4 1037.41 1386.86C1038.09 1386.33 1038.59 1385.62 1038.91 1384.75C1039.24 1383.87 1039.4 1382.92 1039.4 1381.9C1039.4 1380.88 1039.24 1379.93 1038.91 1379.05C1038.59 1378.17 1038.09 1377.46 1037.41 1376.91C1036.74 1376.37 1035.88 1376.1 1034.83 1376.1C1033.78 1376.1 1032.92 1376.37 1032.24 1376.91C1031.57 1377.46 1031.07 1378.17 1030.74 1379.05C1030.42 1379.93 1030.25 1380.88 1030.25 1381.9C1030.25 1382.92 1030.42 1383.87 1030.74 1384.75C1031.07 1385.62 1031.57 1386.33 1032.24 1386.86C1032.92 1387.4 1033.78 1387.67 1034.83 1387.67ZM1045.33 1389.46V1374.19H1047.68V1389.46H1045.33ZM1046.52 1371.64C1046.07 1371.64 1045.67 1371.49 1045.34 1371.17C1045.02 1370.86 1044.85 1370.49 1044.85 1370.05C1044.85 1369.61 1045.02 1369.24 1045.34 1368.93C1045.67 1368.62 1046.07 1368.46 1046.52 1368.46C1046.98 1368.46 1047.37 1368.62 1047.7 1368.93C1048.03 1369.24 1048.19 1369.61 1048.19 1370.05C1048.19 1370.49 1048.03 1370.86 1047.7 1371.17C1047.37 1371.49 1046.98 1371.64 1046.52 1371.64ZM1054.32 1380.27V1389.46H1051.97V1374.19H1054.24V1376.57H1054.44C1054.8 1375.8 1055.34 1375.17 1056.07 1374.7C1056.8 1374.23 1057.74 1373.99 1058.9 1373.99C1059.93 1373.99 1060.83 1374.2 1061.61 1374.62C1062.39 1375.04 1062.99 1375.68 1063.42 1376.53C1063.85 1377.38 1064.07 1378.46 1064.07 1379.76V1389.46H1061.72V1379.91C1061.72 1378.71 1061.41 1377.78 1060.78 1377.11C1060.16 1376.43 1059.31 1376.1 1058.22 1376.1C1057.47 1376.1 1056.8 1376.26 1056.21 1376.58C1055.63 1376.91 1055.17 1377.38 1054.83 1378.01C1054.49 1378.63 1054.32 1379.38 1054.32 1380.27ZM1075 1374.19V1376.18H1067.08V1374.19H1075ZM1069.39 1370.53H1071.73V1385.08C1071.73 1385.75 1071.83 1386.24 1072.02 1386.58C1072.22 1386.9 1072.47 1387.12 1072.78 1387.23C1073.09 1387.34 1073.42 1387.39 1073.76 1387.39C1074.02 1387.39 1074.23 1387.38 1074.4 1387.35C1074.56 1387.32 1074.7 1387.29 1074.8 1387.27L1075.27 1389.38C1075.12 1389.44 1074.89 1389.5 1074.61 1389.56C1074.32 1389.63 1073.96 1389.66 1073.52 1389.66C1072.86 1389.66 1072.21 1389.52 1071.58 1389.23C1070.95 1388.95 1070.42 1388.51 1070 1387.93C1069.59 1387.35 1069.39 1386.61 1069.39 1385.72V1370.53ZM1078.53 1389.46V1374.19H1080.79V1376.57H1080.99C1081.31 1375.76 1081.82 1375.13 1082.53 1374.67C1083.24 1374.22 1084.09 1373.99 1085.09 1373.99C1086.1 1373.99 1086.93 1374.22 1087.6 1374.67C1088.28 1375.13 1088.81 1375.76 1089.18 1376.57H1089.34C1089.73 1375.78 1090.32 1375.16 1091.1 1374.69C1091.89 1374.22 1092.82 1373.99 1093.92 1373.99C1095.28 1373.99 1096.4 1374.42 1097.27 1375.27C1098.14 1376.12 1098.57 1377.44 1098.57 1379.24V1389.46H1096.22V1379.24C1096.22 1378.11 1095.92 1377.31 1095.3 1376.82C1094.68 1376.34 1093.96 1376.1 1093.12 1376.1C1092.05 1376.1 1091.22 1376.42 1090.63 1377.07C1090.04 1377.71 1089.74 1378.53 1089.74 1379.52V1389.46H1087.36V1379C1087.36 1378.13 1087.07 1377.43 1086.51 1376.9C1085.95 1376.36 1085.22 1376.1 1084.33 1376.1C1083.72 1376.1 1083.15 1376.26 1082.62 1376.58C1082.1 1376.91 1081.67 1377.36 1081.35 1377.94C1081.03 1378.51 1080.87 1379.17 1080.87 1379.91V1389.46H1078.53ZM1109.27 1389.78C1107.79 1389.78 1106.52 1389.45 1105.46 1388.8C1104.4 1388.15 1103.58 1387.23 1103 1386.06C1102.43 1384.88 1102.15 1383.51 1102.15 1381.94C1102.15 1380.38 1102.43 1379 1103 1377.81C1103.58 1376.61 1104.38 1375.67 1105.41 1375C1106.44 1374.33 1107.65 1373.99 1109.03 1373.99C1109.82 1373.99 1110.61 1374.12 1111.38 1374.39C1112.16 1374.65 1112.86 1375.08 1113.5 1375.68C1114.14 1376.27 1114.64 1377.05 1115.02 1378.03C1115.4 1379 1115.59 1380.2 1115.59 1381.62V1382.62H1103.82V1380.59H1113.2C1113.2 1379.73 1113.03 1378.96 1112.69 1378.28C1112.35 1377.61 1111.86 1377.07 1111.23 1376.68C1110.61 1376.29 1109.87 1376.1 1109.03 1376.1C1108.09 1376.1 1107.28 1376.33 1106.6 1376.79C1105.92 1377.25 1105.4 1377.85 1105.04 1378.58C1104.67 1379.32 1104.49 1380.11 1104.49 1380.95V1382.3C1104.49 1383.45 1104.69 1384.43 1105.09 1385.23C1105.49 1386.03 1106.05 1386.64 1106.77 1387.05C1107.49 1387.46 1108.32 1387.67 1109.27 1387.67C1109.88 1387.67 1110.44 1387.58 1110.94 1387.41C1111.44 1387.23 1111.87 1386.97 1112.24 1386.62C1112.6 1386.26 1112.88 1385.81 1113.08 1385.28L1115.35 1385.92C1115.11 1386.69 1114.71 1387.37 1114.15 1387.95C1113.58 1388.53 1112.89 1388.98 1112.06 1389.3C1111.23 1389.62 1110.3 1389.78 1109.27 1389.78ZM1121.51 1380.27V1389.46H1119.16V1374.19H1121.43V1376.57H1121.62C1121.98 1375.8 1122.53 1375.17 1123.26 1374.7C1123.98 1374.23 1124.93 1373.99 1126.08 1373.99C1127.11 1373.99 1128.02 1374.2 1128.79 1374.62C1129.57 1375.04 1130.17 1375.68 1130.6 1376.53C1131.03 1377.38 1131.25 1378.46 1131.25 1379.76V1389.46H1128.9V1379.91C1128.9 1378.71 1128.59 1377.78 1127.97 1377.11C1127.35 1376.43 1126.49 1376.1 1125.4 1376.1C1124.65 1376.1 1123.98 1376.26 1123.39 1376.58C1122.81 1376.91 1122.35 1377.38 1122.01 1378.01C1121.67 1378.63 1121.51 1379.38 1121.51 1380.27ZM1142.18 1374.19V1376.18H1134.26V1374.19H1142.18ZM1136.57 1370.53H1138.92V1385.08C1138.92 1385.75 1139.01 1386.24 1139.21 1386.58C1139.41 1386.9 1139.66 1387.12 1139.96 1387.23C1140.27 1387.34 1140.6 1387.39 1140.95 1387.39C1141.2 1387.39 1141.42 1387.38 1141.58 1387.35C1141.75 1387.32 1141.88 1387.29 1141.98 1387.27L1142.46 1389.38C1142.3 1389.44 1142.08 1389.5 1141.79 1389.56C1141.51 1389.63 1141.15 1389.66 1140.71 1389.66C1140.04 1389.66 1139.4 1389.52 1138.76 1389.23C1138.13 1388.95 1137.61 1388.51 1137.19 1387.93C1136.78 1387.35 1136.57 1386.61 1136.57 1385.72V1370.53Z\",fill:\"#0641B6\"})),_path59||(_path59=/*#__PURE__*/React.createElement(\"path\",{d:\"M348 1601.88C338.111 1601.88 328.444 1604.81 320.222 1610.3C311.999 1615.8 305.59 1623.61 301.806 1632.74C298.022 1641.88 297.031 1651.93 298.961 1661.63C300.89 1671.33 305.652 1680.24 312.645 1687.23C319.637 1694.22 328.546 1698.99 338.245 1700.92C347.945 1702.85 357.998 1701.86 367.134 1698.07C376.27 1694.29 384.079 1687.88 389.573 1679.66C395.068 1671.43 398 1661.77 398 1651.88C398 1638.62 392.732 1625.9 383.355 1616.52C373.979 1607.14 361.261 1601.88 348 1601.88ZM343.288 1629.78C343.407 1629.16 343.649 1628.57 344 1628.05C344.179 1627.79 344.379 1627.54 344.6 1627.32C345.523 1626.46 346.74 1625.97 348.004 1625.97C349.268 1625.97 350.485 1626.46 351.408 1627.32C352.298 1628.23 352.8 1629.45 352.808 1630.72C352.836 1631.03 352.836 1631.35 352.808 1631.66C352.69 1632.28 352.448 1632.87 352.096 1633.39C351.913 1633.65 351.712 1633.89 351.496 1634.12C350.83 1634.83 349.964 1635.32 349.014 1635.53C348.064 1635.73 347.074 1635.65 346.174 1635.28C345.274 1634.91 344.507 1634.28 343.974 1633.46C343.441 1632.65 343.167 1631.69 343.188 1630.72C343.193 1630.41 343.226 1630.09 343.288 1629.78ZM354.154 1676.88H341.846C340.826 1676.88 339.848 1676.47 339.126 1675.75C338.405 1675.03 338 1674.05 338 1673.03C338 1672.01 338.405 1671.03 339.126 1670.31C339.848 1669.59 340.826 1669.18 341.846 1669.18H344.154V1648.03H342.231C341.211 1648.03 340.233 1647.63 339.511 1646.9C338.79 1646.18 338.385 1645.2 338.385 1644.18C338.385 1643.16 338.79 1642.19 339.511 1641.47C340.233 1640.74 341.211 1640.34 342.231 1640.34H348C348.505 1640.34 349.005 1640.44 349.472 1640.63C349.938 1640.82 350.362 1641.11 350.72 1641.47C351.077 1641.82 351.36 1642.25 351.553 1642.71C351.747 1643.18 351.846 1643.68 351.846 1644.18V1669.18H354.154C355.174 1669.18 356.152 1669.59 356.874 1670.31C357.595 1671.03 358 1672.01 358 1673.03C358 1674.05 357.595 1675.03 356.874 1675.75C356.152 1676.47 355.174 1676.88 354.154 1676.88Z\",fill:\"#0641B6\"})),_path60||(_path60=/*#__PURE__*/React.createElement(\"path\",{d:\"M292.402 1769.88H282.303V1737.15H292.85C296.025 1737.15 298.741 1737.8 301 1739.12C303.258 1740.41 304.989 1742.28 306.193 1744.72C307.397 1747.15 307.999 1750.06 307.999 1753.45C307.999 1756.86 307.392 1759.79 306.177 1762.25C304.963 1764.7 303.194 1766.59 300.872 1767.91C298.549 1769.22 295.726 1769.88 292.402 1769.88ZM286.266 1766.36H292.147C294.853 1766.36 297.095 1765.84 298.874 1764.8C300.653 1763.75 301.98 1762.27 302.853 1760.34C303.727 1758.41 304.164 1756.11 304.164 1753.45C304.164 1750.81 303.732 1748.53 302.869 1746.63C302.006 1744.71 300.717 1743.24 299.002 1742.22C297.287 1741.18 295.151 1740.67 292.594 1740.67H286.266V1766.36ZM324.426 1770.39C322.061 1770.39 320.021 1769.87 318.306 1768.82C316.602 1767.77 315.286 1766.3 314.359 1764.41C313.443 1762.52 312.985 1760.31 312.985 1757.8C312.985 1755.28 313.443 1753.07 314.359 1751.15C315.286 1749.22 316.575 1747.72 318.226 1746.64C319.888 1745.56 321.827 1745.01 324.043 1745.01C325.321 1745.01 326.584 1745.22 327.83 1745.65C329.077 1746.08 330.211 1746.77 331.234 1747.73C332.257 1748.68 333.072 1749.93 333.679 1751.5C334.286 1753.07 334.59 1754.99 334.59 1757.28V1758.88H315.669V1755.62H330.755C330.755 1754.24 330.478 1753 329.924 1751.92C329.38 1750.83 328.603 1749.97 327.591 1749.34C326.589 1748.71 325.407 1748.4 324.043 1748.4C322.541 1748.4 321.241 1748.77 320.144 1749.52C319.057 1750.25 318.221 1751.21 317.635 1752.39C317.049 1753.58 316.756 1754.84 316.756 1756.2V1758.37C316.756 1760.22 317.076 1761.8 317.715 1763.09C318.365 1764.36 319.265 1765.34 320.415 1766.01C321.566 1766.67 322.903 1767 324.426 1767C325.417 1767 326.312 1766.86 327.111 1766.59C327.921 1766.3 328.619 1765.87 329.205 1765.31C329.79 1764.73 330.243 1764.02 330.563 1763.17L334.206 1764.19C333.823 1765.42 333.178 1766.51 332.273 1767.45C331.367 1768.37 330.249 1769.1 328.917 1769.62C327.585 1770.13 326.088 1770.39 324.426 1770.39ZM351.001 1745.33V1748.53H338.281V1745.33H351.001ZM341.989 1739.45H345.76V1762.85C345.76 1763.91 345.914 1764.71 346.223 1765.24C346.543 1765.76 346.948 1766.12 347.438 1766.3C347.939 1766.47 348.466 1766.55 349.02 1766.55C349.435 1766.55 349.776 1766.53 350.043 1766.49C350.309 1766.44 350.522 1766.39 350.682 1766.36L351.449 1769.75C351.193 1769.84 350.836 1769.94 350.378 1770.04C349.92 1770.14 349.339 1770.2 348.636 1770.2C347.571 1770.2 346.527 1769.97 345.504 1769.51C344.492 1769.05 343.651 1768.35 342.979 1767.42C342.319 1766.48 341.989 1765.3 341.989 1763.87V1739.45ZM363.897 1770.45C362.342 1770.45 360.93 1770.16 359.663 1769.57C358.395 1768.98 357.388 1768.12 356.642 1767C355.897 1765.87 355.524 1764.51 355.524 1762.91C355.524 1761.5 355.801 1760.36 356.355 1759.49C356.909 1758.61 357.649 1757.91 358.576 1757.41C359.503 1756.91 360.526 1756.54 361.644 1756.29C362.773 1756.04 363.908 1755.84 365.048 1755.69C366.539 1755.49 367.749 1755.35 368.675 1755.26C369.613 1755.15 370.295 1754.97 370.721 1754.73C371.158 1754.48 371.376 1754.06 371.376 1753.45V1753.32C371.376 1751.74 370.945 1750.52 370.082 1749.65C369.229 1748.77 367.935 1748.34 366.199 1748.34C364.398 1748.34 362.987 1748.73 361.964 1749.52C360.941 1750.31 360.222 1751.15 359.806 1752.04L356.227 1750.76C356.866 1749.27 357.718 1748.11 358.784 1747.28C359.86 1746.44 361.032 1745.85 362.299 1745.52C363.578 1745.18 364.835 1745.01 366.071 1745.01C366.859 1745.01 367.765 1745.11 368.787 1745.3C369.821 1745.48 370.817 1745.86 371.776 1746.43C372.745 1747.01 373.549 1747.88 374.189 1749.04C374.828 1750.2 375.147 1751.76 375.147 1753.71V1769.88H371.376V1766.55H371.184C370.929 1767.09 370.502 1767.66 369.906 1768.26C369.309 1768.87 368.516 1769.39 367.525 1769.81C366.534 1770.24 365.325 1770.45 363.897 1770.45ZM364.473 1767.06C365.964 1767.06 367.221 1766.77 368.244 1766.19C369.277 1765.6 370.055 1764.84 370.577 1763.92C371.11 1762.99 371.376 1762.01 371.376 1760.99V1757.54C371.216 1757.73 370.865 1757.91 370.321 1758.07C369.789 1758.22 369.171 1758.35 368.468 1758.47C367.775 1758.57 367.099 1758.67 366.438 1758.75C365.788 1758.83 365.261 1758.89 364.856 1758.95C363.876 1759.07 362.96 1759.28 362.108 1759.57C361.266 1759.85 360.584 1760.27 360.062 1760.83C359.551 1761.39 359.295 1762.14 359.295 1763.1C359.295 1764.41 359.78 1765.4 360.749 1766.07C361.729 1766.73 362.971 1767.06 364.473 1767.06ZM382.031 1769.88V1745.33H385.802V1769.88H382.031ZM383.948 1741.24C383.213 1741.24 382.579 1740.99 382.047 1740.49C381.525 1739.99 381.264 1739.39 381.264 1738.68C381.264 1737.98 381.525 1737.38 382.047 1736.88C382.579 1736.38 383.213 1736.13 383.948 1736.13C384.684 1736.13 385.312 1736.38 385.834 1736.88C386.367 1737.38 386.633 1737.98 386.633 1738.68C386.633 1739.39 386.367 1739.99 385.834 1740.49C385.312 1740.99 384.684 1741.24 383.948 1741.24ZM396.481 1737.15V1769.88H392.71V1737.15H396.481ZM420.775 1750.83L417.387 1751.79C417.174 1751.22 416.859 1750.67 416.444 1750.14C416.039 1749.6 415.485 1749.15 414.782 1748.8C414.079 1748.45 413.179 1748.27 412.081 1748.27C410.579 1748.27 409.328 1748.62 408.326 1749.31C407.335 1749.99 406.84 1750.86 406.84 1751.92C406.84 1752.85 407.181 1753.59 407.863 1754.14C408.544 1754.68 409.61 1755.13 411.059 1755.49L414.702 1756.39C416.897 1756.92 418.532 1757.74 419.608 1758.83C420.684 1759.92 421.222 1761.32 421.222 1763.04C421.222 1764.44 420.817 1765.7 420.008 1766.81C419.209 1767.92 418.09 1768.79 416.652 1769.43C415.214 1770.07 413.541 1770.39 411.634 1770.39C409.13 1770.39 407.058 1769.84 405.418 1768.76C403.777 1767.67 402.738 1766.08 402.302 1764L405.881 1763.1C406.222 1764.42 406.867 1765.41 407.815 1766.07C408.774 1766.73 410.025 1767.06 411.57 1767.06C413.328 1767.06 414.723 1766.69 415.757 1765.95C416.801 1765.19 417.323 1764.28 417.323 1763.23C417.323 1762.38 417.025 1761.66 416.428 1761.09C415.831 1760.5 414.915 1760.07 413.679 1759.78L409.589 1758.82C407.341 1758.29 405.689 1757.46 404.635 1756.34C403.591 1755.21 403.069 1753.8 403.069 1752.11C403.069 1750.72 403.457 1749.5 404.235 1748.43C405.024 1747.37 406.094 1746.53 407.447 1745.92C408.811 1745.32 410.356 1745.01 412.081 1745.01C414.51 1745.01 416.417 1745.54 417.802 1746.61C419.198 1747.68 420.189 1749.08 420.775 1750.83Z\",fill:\"#0641B6\"})),_path61||(_path61=/*#__PURE__*/React.createElement(\"path\",{d:\"M647.418 1769.88V1737.15H658.476C661.033 1737.15 663.132 1737.59 664.773 1738.46C666.413 1739.32 667.628 1740.51 668.416 1742.02C669.204 1743.54 669.599 1745.26 669.599 1747.19C669.599 1749.11 669.204 1750.82 668.416 1752.31C667.628 1753.81 666.419 1754.98 664.789 1755.83C663.159 1756.67 661.076 1757.09 658.54 1757.09H649.591V1753.51H658.412C660.16 1753.51 661.566 1753.26 662.631 1752.75C663.707 1752.23 664.485 1751.51 664.964 1750.57C665.454 1749.62 665.699 1748.5 665.699 1747.19C665.699 1745.87 665.454 1744.73 664.964 1743.75C664.474 1742.77 663.691 1742.01 662.615 1741.48C661.539 1740.94 660.117 1740.67 658.349 1740.67H651.381V1769.88H647.418ZM662.823 1755.18L670.877 1769.88H666.275L658.349 1755.18H662.823ZM685.718 1770.39C683.353 1770.39 681.313 1769.87 679.598 1768.82C677.894 1767.77 676.578 1766.3 675.651 1764.41C674.735 1762.52 674.277 1760.31 674.277 1757.8C674.277 1755.28 674.735 1753.07 675.651 1751.15C676.578 1749.22 677.867 1747.72 679.518 1746.64C681.18 1745.56 683.119 1745.01 685.335 1745.01C686.613 1745.01 687.876 1745.22 689.122 1745.65C690.369 1746.08 691.503 1746.77 692.526 1747.73C693.549 1748.68 694.364 1749.93 694.971 1751.5C695.578 1753.07 695.882 1754.99 695.882 1757.28V1758.88H676.961V1755.62H692.047C692.047 1754.24 691.77 1753 691.216 1751.92C690.672 1750.83 689.895 1749.97 688.883 1749.34C687.881 1748.71 686.699 1748.4 685.335 1748.4C683.833 1748.4 682.533 1748.77 681.436 1749.52C680.349 1750.25 679.513 1751.21 678.927 1752.39C678.341 1753.58 678.048 1754.84 678.048 1756.2V1758.37C678.048 1760.22 678.368 1761.8 679.007 1763.09C679.657 1764.36 680.557 1765.34 681.707 1766.01C682.858 1766.67 684.195 1767 685.718 1767C686.709 1767 687.604 1766.86 688.403 1766.59C689.213 1766.3 689.911 1765.87 690.497 1765.31C691.082 1764.73 691.535 1764.02 691.855 1763.17L695.498 1764.19C695.115 1765.42 694.47 1766.51 693.565 1767.45C692.659 1768.37 691.541 1769.1 690.209 1769.62C688.877 1770.13 687.38 1770.39 685.718 1770.39ZM701.619 1779.08V1745.33H705.262V1749.23H705.71C705.987 1748.8 706.37 1748.26 706.86 1747.6C707.361 1746.93 708.075 1746.33 709.002 1745.81C709.939 1745.28 711.207 1745.01 712.805 1745.01C714.872 1745.01 716.693 1745.53 718.27 1746.56C719.847 1747.6 721.077 1749.06 721.961 1750.96C722.846 1752.85 723.288 1755.09 723.288 1757.67C723.288 1760.27 722.846 1762.52 721.961 1764.43C721.077 1766.32 719.852 1767.79 718.286 1768.84C716.72 1769.87 714.914 1770.39 712.869 1770.39C711.292 1770.39 710.03 1770.13 709.081 1769.61C708.133 1769.07 707.403 1768.47 706.892 1767.8C706.381 1767.12 705.987 1766.55 705.71 1766.11H705.39V1779.08H701.619ZM705.326 1757.6C705.326 1759.46 705.598 1761.09 706.141 1762.51C706.684 1763.92 707.478 1765.02 708.522 1765.82C709.566 1766.61 710.845 1767 712.357 1767C713.934 1767 715.25 1766.59 716.304 1765.75C717.37 1764.91 718.169 1763.78 718.701 1762.37C719.245 1760.94 719.516 1759.35 719.516 1757.6C719.516 1755.88 719.25 1754.32 718.717 1752.94C718.195 1751.54 717.402 1750.44 716.336 1749.63C715.282 1748.81 713.955 1748.4 712.357 1748.4C710.823 1748.4 709.534 1748.79 708.49 1749.57C707.446 1750.33 706.658 1751.41 706.125 1752.79C705.592 1754.17 705.326 1755.77 705.326 1757.6ZM739.012 1770.39C736.796 1770.39 734.852 1769.86 733.179 1768.81C731.517 1767.75 730.218 1766.28 729.28 1764.38C728.353 1762.48 727.89 1760.27 727.89 1757.73C727.89 1755.18 728.353 1752.94 729.28 1751.04C730.218 1749.13 731.517 1747.65 733.179 1746.59C734.852 1745.54 736.796 1745.01 739.012 1745.01C741.228 1745.01 743.167 1745.54 744.829 1746.59C746.502 1747.65 747.801 1749.13 748.728 1751.04C749.666 1752.94 750.134 1755.18 750.134 1757.73C750.134 1760.27 749.666 1762.48 748.728 1764.38C747.801 1766.28 746.502 1767.75 744.829 1768.81C743.167 1769.86 741.228 1770.39 739.012 1770.39ZM739.012 1767C740.695 1767 742.08 1766.57 743.167 1765.71C744.254 1764.84 745.058 1763.71 745.58 1762.3C746.102 1760.9 746.363 1759.37 746.363 1757.73C746.363 1756.09 746.102 1754.56 745.58 1753.15C745.058 1751.73 744.254 1750.58 743.167 1749.71C742.08 1748.84 740.695 1748.4 739.012 1748.4C737.329 1748.4 735.944 1748.84 734.857 1749.71C733.771 1750.58 732.966 1751.73 732.444 1753.15C731.922 1754.56 731.661 1756.09 731.661 1757.73C731.661 1759.37 731.922 1760.9 732.444 1762.3C732.966 1763.71 733.771 1764.84 734.857 1765.71C735.944 1766.57 737.329 1767 739.012 1767ZM755.891 1769.88V1745.33H759.535V1749.04H759.79C760.238 1747.82 761.047 1746.84 762.219 1746.08C763.391 1745.33 764.712 1744.95 766.182 1744.95C766.459 1744.95 766.806 1744.95 767.221 1744.96C767.637 1744.97 767.951 1744.99 768.164 1745.01V1748.85C768.036 1748.82 767.743 1748.77 767.285 1748.7C766.838 1748.63 766.363 1748.59 765.863 1748.59C764.67 1748.59 763.604 1748.84 762.667 1749.34C761.74 1749.83 761.005 1750.51 760.461 1751.39C759.929 1752.25 759.662 1753.24 759.662 1754.34V1769.88H755.891ZM784.847 1745.33V1748.53H772.127V1745.33H784.847ZM775.834 1739.45H779.606V1762.85C779.606 1763.91 779.76 1764.71 780.069 1765.24C780.389 1765.76 780.794 1766.12 781.284 1766.3C781.784 1766.47 782.312 1766.55 782.866 1766.55C783.281 1766.55 783.622 1766.53 783.888 1766.49C784.155 1766.44 784.368 1766.39 784.528 1766.36L785.295 1769.75C785.039 1769.84 784.682 1769.94 784.224 1770.04C783.766 1770.14 783.185 1770.2 782.482 1770.2C781.417 1770.2 780.373 1769.97 779.35 1769.51C778.338 1769.05 777.496 1768.35 776.825 1767.42C776.165 1766.48 775.834 1765.3 775.834 1763.87V1739.45ZM807.467 1750.83L804.079 1751.79C803.866 1751.22 803.552 1750.67 803.136 1750.14C802.732 1749.6 802.178 1749.15 801.474 1748.8C800.771 1748.45 799.871 1748.27 798.774 1748.27C797.272 1748.27 796.02 1748.62 795.018 1749.31C794.028 1749.99 793.532 1750.86 793.532 1751.92C793.532 1752.85 793.873 1753.59 794.555 1754.14C795.237 1754.68 796.302 1755.13 797.751 1755.49L801.395 1756.39C803.589 1756.92 805.224 1757.74 806.3 1758.83C807.376 1759.92 807.914 1761.32 807.914 1763.04C807.914 1764.44 807.51 1765.7 806.7 1766.81C805.901 1767.92 804.782 1768.79 803.344 1769.43C801.906 1770.07 800.233 1770.39 798.326 1770.39C795.823 1770.39 793.751 1769.84 792.11 1768.76C790.469 1767.67 789.431 1766.08 788.994 1764L792.574 1763.1C792.914 1764.42 793.559 1765.41 794.507 1766.07C795.466 1766.73 796.718 1767.06 798.262 1767.06C800.02 1767.06 801.416 1766.69 802.449 1765.95C803.493 1765.19 804.015 1764.28 804.015 1763.23C804.015 1762.38 803.717 1761.66 803.12 1761.09C802.524 1760.5 801.608 1760.07 800.372 1759.78L796.281 1758.82C794.033 1758.29 792.382 1757.46 791.327 1756.34C790.283 1755.21 789.761 1753.8 789.761 1752.11C789.761 1750.72 790.15 1749.5 790.928 1748.43C791.716 1747.37 792.787 1746.53 794.14 1745.92C795.503 1745.32 797.048 1745.01 798.774 1745.01C801.203 1745.01 803.11 1745.54 804.495 1746.61C805.89 1747.68 806.881 1749.08 807.467 1750.83Z\",fill:\"#0641B6\"})),_path62||(_path62=/*#__PURE__*/React.createElement(\"path\",{d:\"M962.081 1769.88H957.926L969.943 1737.15H974.034L986.051 1769.88H981.896L972.116 1742.33H971.861L962.081 1769.88ZM963.615 1757.09H980.362V1760.61H963.615V1757.09ZM1008.02 1750.83L1004.64 1751.79C1004.42 1751.22 1004.11 1750.67 1003.69 1750.14C1003.29 1749.6 1002.73 1749.15 1002.03 1748.8C1001.33 1748.45 1000.43 1748.27 999.33 1748.27C997.828 1748.27 996.577 1748.62 995.575 1749.31C994.584 1749.99 994.089 1750.86 994.089 1751.92C994.089 1752.85 994.43 1753.59 995.112 1754.14C995.794 1754.68 996.859 1755.13 998.308 1755.49L1001.95 1756.39C1004.15 1756.92 1005.78 1757.74 1006.86 1758.83C1007.93 1759.92 1008.47 1761.32 1008.47 1763.04C1008.47 1764.44 1008.07 1765.7 1007.26 1766.81C1006.46 1767.92 1005.34 1768.79 1003.9 1769.43C1002.46 1770.07 1000.79 1770.39 998.883 1770.39C996.379 1770.39 994.307 1769.84 992.667 1768.76C991.026 1767.67 989.987 1766.08 989.551 1764L993.13 1763.1C993.471 1764.42 994.116 1765.41 995.064 1766.07C996.023 1766.73 997.274 1767.06 998.819 1767.06C1000.58 1767.06 1001.97 1766.69 1003.01 1765.95C1004.05 1765.19 1004.57 1764.28 1004.57 1763.23C1004.57 1762.38 1004.27 1761.66 1003.68 1761.09C1003.08 1760.5 1002.16 1760.07 1000.93 1759.78L996.838 1758.82C994.59 1758.29 992.938 1757.46 991.884 1756.34C990.84 1755.21 990.318 1753.8 990.318 1752.11C990.318 1750.72 990.706 1749.5 991.484 1748.43C992.273 1747.37 993.343 1746.53 994.696 1745.92C996.06 1745.32 997.605 1745.01 999.33 1745.01C1001.76 1745.01 1003.67 1745.54 1005.05 1746.61C1006.45 1747.68 1007.44 1749.08 1008.02 1750.83ZM1017.66 1760.93L1017.6 1756.26H1018.37L1029.11 1745.33H1033.77L1022.33 1756.9H1022.01L1017.66 1760.93ZM1014.15 1769.88V1737.15H1017.92V1769.88H1014.15ZM1029.74 1769.88L1020.16 1757.73L1022.84 1755.11L1034.54 1769.88H1029.74ZM1062.21 1745.33V1748.53H1048.98V1745.33H1062.21ZM1052.94 1769.88V1741.94C1052.94 1740.54 1053.27 1739.37 1053.93 1738.43C1054.59 1737.49 1055.45 1736.79 1056.51 1736.32C1057.56 1735.85 1058.68 1735.62 1059.85 1735.62C1060.77 1735.62 1061.53 1735.69 1062.12 1735.84C1062.7 1735.99 1063.14 1736.13 1063.43 1736.25L1062.34 1739.51C1062.15 1739.45 1061.88 1739.37 1061.54 1739.28C1061.21 1739.18 1060.77 1739.13 1060.23 1739.13C1058.98 1739.13 1058.08 1739.45 1057.53 1740.07C1056.99 1740.7 1056.72 1741.62 1056.72 1742.84V1769.88H1052.94ZM1076.46 1770.39C1074.24 1770.39 1072.3 1769.86 1070.63 1768.81C1068.96 1767.75 1067.66 1766.28 1066.73 1764.38C1065.8 1762.48 1065.34 1760.27 1065.34 1757.73C1065.34 1755.18 1065.8 1752.94 1066.73 1751.04C1067.66 1749.13 1068.96 1747.65 1070.63 1746.59C1072.3 1745.54 1074.24 1745.01 1076.46 1745.01C1078.67 1745.01 1080.61 1745.54 1082.28 1746.59C1083.95 1747.65 1085.25 1749.13 1086.17 1751.04C1087.11 1752.94 1087.58 1755.18 1087.58 1757.73C1087.58 1760.27 1087.11 1762.48 1086.17 1764.38C1085.25 1766.28 1083.95 1767.75 1082.28 1768.81C1080.61 1769.86 1078.67 1770.39 1076.46 1770.39ZM1076.46 1767C1078.14 1767 1079.53 1766.57 1080.61 1765.71C1081.7 1764.84 1082.5 1763.71 1083.03 1762.3C1083.55 1760.9 1083.81 1759.37 1083.81 1757.73C1083.81 1756.09 1083.55 1754.56 1083.03 1753.15C1082.5 1751.73 1081.7 1750.58 1080.61 1749.71C1079.53 1748.84 1078.14 1748.4 1076.46 1748.4C1074.78 1748.4 1073.39 1748.84 1072.3 1749.71C1071.22 1750.58 1070.41 1751.73 1069.89 1753.15C1069.37 1754.56 1069.11 1756.09 1069.11 1757.73C1069.11 1759.37 1069.37 1760.9 1069.89 1762.3C1070.41 1763.71 1071.22 1764.84 1072.3 1765.71C1073.39 1766.57 1074.78 1767 1076.46 1767ZM1093.34 1769.88V1745.33H1096.98V1749.04H1097.24C1097.68 1747.82 1098.49 1746.84 1099.67 1746.08C1100.84 1745.33 1102.16 1744.95 1103.63 1744.95C1103.91 1744.95 1104.25 1744.95 1104.67 1744.96C1105.08 1744.97 1105.4 1744.99 1105.61 1745.01V1748.85C1105.48 1748.82 1105.19 1748.77 1104.73 1748.7C1104.28 1748.63 1103.81 1748.59 1103.31 1748.59C1102.12 1748.59 1101.05 1748.84 1100.11 1749.34C1099.19 1749.83 1098.45 1750.51 1097.91 1751.39C1097.38 1752.25 1097.11 1753.24 1097.11 1754.34V1769.88H1093.34ZM1122.74 1769.88V1745.33H1126.51V1769.88H1122.74ZM1124.65 1741.24C1123.92 1741.24 1123.29 1740.99 1122.75 1740.49C1122.23 1739.99 1121.97 1739.39 1121.97 1738.68C1121.97 1737.98 1122.23 1737.38 1122.75 1736.88C1123.29 1736.38 1123.92 1736.13 1124.65 1736.13C1125.39 1736.13 1126.02 1736.38 1126.54 1736.88C1127.07 1737.38 1127.34 1737.98 1127.34 1738.68C1127.34 1739.39 1127.07 1739.99 1126.54 1740.49C1126.02 1740.99 1125.39 1741.24 1124.65 1741.24ZM1133.42 1769.88V1745.33H1137.06V1749.17H1137.38C1137.89 1747.86 1138.72 1746.84 1139.86 1746.11C1141 1745.38 1142.36 1745.01 1143.96 1745.01C1145.58 1745.01 1146.93 1745.38 1148.01 1746.11C1149.09 1746.84 1149.94 1747.86 1150.55 1749.17H1150.8C1151.43 1747.9 1152.37 1746.89 1153.63 1746.15C1154.89 1745.39 1156.39 1745.01 1158.15 1745.01C1160.35 1745.01 1162.14 1745.7 1163.54 1747.07C1164.93 1748.44 1165.63 1750.56 1165.63 1753.45V1769.88H1161.86V1753.45C1161.86 1751.64 1161.36 1750.34 1160.37 1749.57C1159.38 1748.79 1158.22 1748.4 1156.87 1748.4C1155.15 1748.4 1153.81 1748.92 1152.86 1749.97C1151.92 1751 1151.44 1752.31 1151.44 1753.9V1769.88H1147.61V1753.07C1147.61 1751.67 1147.15 1750.55 1146.25 1749.69C1145.34 1748.83 1144.18 1748.4 1142.75 1748.4C1141.77 1748.4 1140.85 1748.66 1140 1749.18C1139.16 1749.7 1138.48 1750.43 1137.95 1751.36C1137.44 1752.27 1137.19 1753.33 1137.19 1754.54V1769.88H1133.42ZM1179.75 1770.45C1178.19 1770.45 1176.78 1770.16 1175.52 1769.57C1174.25 1768.98 1173.24 1768.12 1172.49 1767C1171.75 1765.87 1171.38 1764.51 1171.38 1762.91C1171.38 1761.5 1171.65 1760.36 1172.21 1759.49C1172.76 1758.61 1173.5 1757.91 1174.43 1757.41C1175.36 1756.91 1176.38 1756.54 1177.5 1756.29C1178.63 1756.04 1179.76 1755.84 1180.9 1755.69C1182.39 1755.49 1183.6 1755.35 1184.53 1755.26C1185.47 1755.15 1186.15 1754.97 1186.57 1754.73C1187.01 1754.48 1187.23 1754.06 1187.23 1753.45V1753.32C1187.23 1751.74 1186.8 1750.52 1185.93 1749.65C1185.08 1748.77 1183.79 1748.34 1182.05 1748.34C1180.25 1748.34 1178.84 1748.73 1177.82 1749.52C1176.79 1750.31 1176.07 1751.15 1175.66 1752.04L1172.08 1750.76C1172.72 1749.27 1173.57 1748.11 1174.64 1747.28C1175.71 1746.44 1176.88 1745.85 1178.15 1745.52C1179.43 1745.18 1180.69 1745.01 1181.92 1745.01C1182.71 1745.01 1183.62 1745.11 1184.64 1745.3C1185.67 1745.48 1186.67 1745.86 1187.63 1746.43C1188.6 1747.01 1189.4 1747.88 1190.04 1749.04C1190.68 1750.2 1191 1751.76 1191 1753.71V1769.88H1187.23V1766.55H1187.04C1186.78 1767.09 1186.36 1767.66 1185.76 1768.26C1185.16 1768.87 1184.37 1769.39 1183.38 1769.81C1182.39 1770.24 1181.18 1770.45 1179.75 1770.45ZM1180.33 1767.06C1181.82 1767.06 1183.07 1766.77 1184.1 1766.19C1185.13 1765.6 1185.91 1764.84 1186.43 1763.92C1186.96 1762.99 1187.23 1762.01 1187.23 1760.99V1757.54C1187.07 1757.73 1186.72 1757.91 1186.17 1758.07C1185.64 1758.22 1185.02 1758.35 1184.32 1758.47C1183.63 1758.57 1182.95 1758.67 1182.29 1758.75C1181.64 1758.83 1181.11 1758.89 1180.71 1758.95C1179.73 1759.07 1178.81 1759.28 1177.96 1759.57C1177.12 1759.85 1176.44 1760.27 1175.91 1760.83C1175.4 1761.39 1175.15 1762.14 1175.15 1763.1C1175.15 1764.41 1175.63 1765.4 1176.6 1766.07C1177.58 1766.73 1178.82 1767.06 1180.33 1767.06ZM1207.79 1779.59C1205.97 1779.59 1204.4 1779.36 1203.09 1778.89C1201.78 1778.43 1200.69 1777.82 1199.82 1777.07C1198.95 1776.32 1198.27 1775.52 1197.76 1774.67L1200.76 1772.56C1201.1 1773.01 1201.53 1773.52 1202.05 1774.1C1202.58 1774.68 1203.29 1775.19 1204.2 1775.61C1205.11 1776.05 1206.31 1776.27 1207.79 1776.27C1209.77 1776.27 1211.41 1775.79 1212.7 1774.83C1213.99 1773.87 1214.63 1772.37 1214.63 1770.32V1765.34H1214.31C1214.03 1765.79 1213.64 1766.34 1213.13 1767C1212.63 1767.65 1211.9 1768.23 1210.96 1768.74C1210.02 1769.24 1208.75 1769.49 1207.15 1769.49C1205.17 1769.49 1203.39 1769.02 1201.81 1768.09C1200.25 1767.15 1199.01 1765.79 1198.09 1764C1197.19 1762.21 1196.73 1760.03 1196.73 1757.48C1196.73 1754.96 1197.17 1752.77 1198.06 1750.91C1198.94 1749.03 1200.17 1747.58 1201.75 1746.56C1203.33 1745.53 1205.15 1745.01 1207.22 1745.01C1208.81 1745.01 1210.08 1745.28 1211.02 1745.81C1211.97 1746.33 1212.69 1746.93 1213.19 1747.6C1213.7 1748.26 1214.1 1748.8 1214.37 1749.23H1214.76V1745.33H1218.4V1770.58C1218.4 1772.69 1217.92 1774.4 1216.96 1775.73C1216.02 1777.06 1214.74 1778.03 1213.13 1778.65C1211.53 1779.28 1209.75 1779.59 1207.79 1779.59ZM1207.66 1766.11C1209.18 1766.11 1210.45 1765.76 1211.5 1765.07C1212.54 1764.37 1213.34 1763.38 1213.88 1762.08C1214.42 1760.78 1214.69 1759.22 1214.69 1757.41C1214.69 1755.64 1214.43 1754.08 1213.9 1752.73C1213.36 1751.38 1212.57 1750.32 1211.53 1749.55C1210.49 1748.78 1209.2 1748.4 1207.66 1748.4C1206.07 1748.4 1204.73 1748.8 1203.67 1749.61C1202.61 1750.42 1201.82 1751.51 1201.29 1752.87C1200.77 1754.24 1200.5 1755.75 1200.5 1757.41C1200.5 1759.12 1200.77 1760.62 1201.3 1761.93C1201.85 1763.23 1202.65 1764.26 1203.7 1765C1204.77 1765.74 1206.09 1766.11 1207.66 1766.11ZM1235.6 1770.39C1233.23 1770.39 1231.19 1769.87 1229.48 1768.82C1227.77 1767.77 1226.46 1766.3 1225.53 1764.41C1224.61 1762.52 1224.15 1760.31 1224.15 1757.8C1224.15 1755.28 1224.61 1753.07 1225.53 1751.15C1226.46 1749.22 1227.74 1747.72 1229.4 1746.64C1231.06 1745.56 1233 1745.01 1235.21 1745.01C1236.49 1745.01 1237.75 1745.22 1239 1745.65C1240.25 1746.08 1241.38 1746.77 1242.4 1747.73C1243.43 1748.68 1244.24 1749.93 1244.85 1751.5C1245.46 1753.07 1245.76 1754.99 1245.76 1757.28V1758.88H1226.84V1755.62H1241.92C1241.92 1754.24 1241.65 1753 1241.09 1751.92C1240.55 1750.83 1239.77 1749.97 1238.76 1749.34C1237.76 1748.71 1236.58 1748.4 1235.21 1748.4C1233.71 1748.4 1232.41 1748.77 1231.31 1749.52C1230.23 1750.25 1229.39 1751.21 1228.8 1752.39C1228.22 1753.58 1227.93 1754.84 1227.93 1756.2V1758.37C1227.93 1760.22 1228.25 1761.8 1228.88 1763.09C1229.53 1764.36 1230.43 1765.34 1231.59 1766.01C1232.74 1766.67 1234.07 1767 1235.6 1767C1236.59 1767 1237.48 1766.86 1238.28 1766.59C1239.09 1766.3 1239.79 1765.87 1240.37 1765.31C1240.96 1764.73 1241.41 1764.02 1241.73 1763.17L1245.38 1764.19C1244.99 1765.42 1244.35 1766.51 1243.44 1767.45C1242.54 1768.37 1241.42 1769.1 1240.09 1769.62C1238.76 1770.13 1237.26 1770.39 1235.6 1770.39Z\",fill:\"#0641B6\"})),_path63||(_path63=/*#__PURE__*/React.createElement(\"path\",{d:\"M757.518 1615.13H749.084V1606.7C749.08 1605.42 748.572 1604.2 747.669 1603.29C746.766 1602.39 745.543 1601.88 744.266 1601.88H682.819C681.542 1601.88 680.318 1602.39 679.416 1603.29C678.513 1604.2 678.004 1605.42 678 1606.7V1683.8C678.004 1685.08 678.513 1686.31 679.416 1687.21C680.318 1688.11 681.542 1688.62 682.819 1688.62H691.253V1697.06C691.257 1698.33 691.766 1699.56 692.669 1700.46C693.571 1701.36 694.795 1701.87 696.072 1701.88H737.035C740.097 1701.71 743.021 1700.56 745.363 1698.58L758.825 1685.9C760.923 1683.7 762.168 1680.82 762.335 1677.78V1619.95C762.331 1618.67 761.823 1617.45 760.92 1616.55C760.018 1615.64 758.795 1615.13 757.518 1615.13ZM682.818 1685.01C682.501 1685 682.199 1684.88 681.975 1684.65C681.752 1684.43 681.623 1684.13 681.618 1683.81V1606.7C681.623 1606.38 681.752 1606.08 681.975 1605.85C682.199 1605.63 682.501 1605.5 682.818 1605.5H744.266C744.582 1605.5 744.884 1605.63 745.108 1605.85C745.332 1606.08 745.46 1606.38 745.466 1606.7V1615.13H696.066C694.789 1615.13 693.565 1615.64 692.663 1616.55C691.76 1617.45 691.251 1618.67 691.247 1619.95V1685.01H682.818ZM696.071 1698.26C695.754 1698.26 695.452 1698.13 695.228 1697.91C695.004 1697.68 694.876 1697.38 694.871 1697.06V1619.95C694.876 1619.63 695.004 1619.33 695.228 1619.11C695.452 1618.88 695.754 1618.75 696.071 1618.75H757.518C757.835 1618.75 758.137 1618.88 758.361 1619.11C758.584 1619.33 758.713 1619.63 758.718 1619.95V1677.78C758.707 1678.18 758.652 1678.59 758.554 1678.98H744.866C743.109 1678.98 741.426 1679.68 740.184 1680.92C738.942 1682.17 738.242 1683.85 738.239 1685.61V1698.11C737.845 1698.19 737.443 1698.24 737.039 1698.25L696.071 1698.26ZM742.884 1695.94C742.566 1696.23 742.221 1696.48 741.853 1696.7V1685.61C741.855 1684.81 742.173 1684.05 742.738 1683.48C743.302 1682.92 744.067 1682.6 744.865 1682.6H756.92C756.749 1682.84 756.558 1683.06 756.348 1683.27L742.884 1695.94Z\",fill:\"#0641B6\"})),_path64||(_path64=/*#__PURE__*/React.createElement(\"path\",{d:\"M713.244 1635.19H742.244C742.642 1635.19 743.023 1635.03 743.305 1634.75C743.586 1634.47 743.744 1634.09 743.744 1633.69C743.744 1633.29 743.586 1632.91 743.305 1632.63C743.023 1632.35 742.642 1632.19 742.244 1632.19H713.244C712.846 1632.19 712.465 1632.35 712.183 1632.63C711.902 1632.91 711.744 1633.29 711.744 1633.69C711.744 1634.09 711.902 1634.47 712.183 1634.75C712.465 1635.03 712.846 1635.19 713.244 1635.19Z\",fill:\"#0641B6\"})),_path65||(_path65=/*#__PURE__*/React.createElement(\"path\",{d:\"M713.244 1659.44H742.244C742.642 1659.44 743.023 1659.28 743.305 1659C743.586 1658.72 743.744 1658.34 743.744 1657.94C743.744 1657.54 743.586 1657.16 743.305 1656.88C743.023 1656.6 742.642 1656.44 742.244 1656.44H713.244C712.846 1656.44 712.465 1656.6 712.183 1656.88C711.902 1657.16 711.744 1657.54 711.744 1657.94C711.744 1658.34 711.902 1658.72 712.183 1659C712.465 1659.28 712.846 1659.44 713.244 1659.44Z\",fill:\"#0641B6\"})),_path66||(_path66=/*#__PURE__*/React.createElement(\"path\",{d:\"M726.888 1668.57H710.888C710.49 1668.57 710.108 1668.72 709.827 1669C709.546 1669.29 709.388 1669.67 709.388 1670.07C709.388 1670.46 709.546 1670.84 709.827 1671.13C710.108 1671.41 710.49 1671.57 710.888 1671.57H726.888C727.286 1671.57 727.667 1671.41 727.948 1671.13C728.23 1670.84 728.388 1670.46 728.388 1670.07C728.388 1669.67 728.23 1669.29 727.948 1669C727.667 1668.72 727.286 1668.57 726.888 1668.57Z\",fill:\"#0641B6\"})),_path67||(_path67=/*#__PURE__*/React.createElement(\"path\",{d:\"M713.244 1647.31H742.244C742.642 1647.31 743.023 1647.16 743.305 1646.87C743.586 1646.59 743.744 1646.21 743.744 1645.81C743.744 1645.42 743.586 1645.03 743.305 1644.75C743.023 1644.47 742.642 1644.31 742.244 1644.31H713.244C712.846 1644.31 712.465 1644.47 712.183 1644.75C711.902 1645.03 711.744 1645.42 711.744 1645.81C711.744 1646.21 711.902 1646.59 712.183 1646.87C712.465 1647.16 712.846 1647.31 713.244 1647.31Z\",fill:\"#0641B6\"})),_path68||(_path68=/*#__PURE__*/React.createElement(\"path\",{d:\"M1144.19 1593.02H1139.77V1588.59C1139.77 1587.69 1139.59 1586.8 1139.24 1585.96C1138.9 1585.13 1138.39 1584.37 1137.75 1583.73C1137.11 1583.09 1136.35 1582.59 1135.52 1582.24C1134.69 1581.89 1133.79 1581.72 1132.89 1581.72H1122.35C1120.53 1581.72 1118.78 1582.44 1117.49 1583.73C1116.2 1585.02 1115.47 1586.77 1115.47 1588.59V1593.02H1111.05C1109.23 1593.02 1107.48 1593.74 1106.19 1595.03C1104.9 1596.32 1104.17 1598.07 1104.17 1599.89V1602.04H1040.08C1039.26 1602.04 1038.45 1602.2 1037.69 1602.51C1036.93 1602.83 1036.24 1603.29 1035.66 1603.87C1035.08 1604.45 1034.62 1605.14 1034.31 1605.9C1033.99 1606.66 1033.83 1607.47 1033.83 1608.29V1695.83C1033.83 1697.49 1034.49 1699.08 1035.66 1700.25C1036.83 1701.42 1038.42 1702.08 1040.08 1702.08H1124.49C1126.15 1702.08 1127.74 1701.42 1128.92 1700.25C1130.09 1699.08 1130.75 1697.49 1130.75 1695.83V1628.62H1132.89C1133.79 1628.62 1134.69 1628.44 1135.52 1628.09C1136.36 1627.75 1137.11 1627.24 1137.75 1626.6C1138.39 1625.96 1138.9 1625.21 1139.24 1624.37C1139.59 1623.54 1139.77 1622.64 1139.77 1621.74V1617.31H1144.19C1145.09 1617.31 1145.99 1617.13 1146.82 1616.79C1147.66 1616.44 1148.42 1615.93 1149.05 1615.3C1149.69 1614.66 1150.2 1613.9 1150.55 1613.06C1150.89 1612.23 1151.07 1611.34 1151.07 1610.43V1599.9C1151.07 1598.99 1150.89 1598.1 1150.55 1597.26C1150.2 1596.43 1149.69 1595.67 1149.05 1595.03C1148.42 1594.39 1147.66 1593.89 1146.82 1593.54C1145.99 1593.19 1145.09 1593.02 1144.19 1593.02ZM1040.08 1695.83V1608.29H1104.17V1610.43C1104.17 1612.26 1104.9 1614.01 1106.19 1615.3C1107.48 1616.59 1109.23 1617.31 1111.05 1617.31H1115.48V1621.73C1115.48 1623.56 1116.2 1625.31 1117.49 1626.6C1118.78 1627.89 1120.53 1628.61 1122.35 1628.61H1124.5V1695.83H1040.08ZM1144.82 1610.43C1144.82 1610.59 1144.75 1610.75 1144.63 1610.87C1144.51 1610.99 1144.36 1611.05 1144.19 1611.05H1136.64C1136.23 1611.05 1135.82 1611.13 1135.44 1611.29C1135.06 1611.45 1134.72 1611.68 1134.43 1611.97C1134.14 1612.26 1133.91 1612.6 1133.75 1612.98C1133.59 1613.36 1133.51 1613.77 1133.51 1614.18V1621.73C1133.51 1621.89 1133.45 1622.05 1133.33 1622.17C1133.21 1622.29 1133.05 1622.35 1132.89 1622.35H1122.35C1122.19 1622.35 1122.03 1622.29 1121.91 1622.17C1121.79 1622.05 1121.73 1621.89 1121.73 1621.73V1614.18C1121.73 1613.35 1121.4 1612.55 1120.81 1611.97C1120.23 1611.38 1119.43 1611.05 1118.6 1611.05H1111.05C1110.89 1611.05 1110.73 1610.99 1110.61 1610.87C1110.49 1610.75 1110.43 1610.59 1110.43 1610.43V1599.9C1110.43 1599.73 1110.49 1599.57 1110.61 1599.45C1110.73 1599.34 1110.89 1599.27 1111.05 1599.27H1118.6C1119.43 1599.27 1120.23 1598.94 1120.81 1598.36C1121.4 1597.77 1121.73 1596.97 1121.73 1596.15V1588.6C1121.73 1588.43 1121.79 1588.27 1121.91 1588.15C1122.03 1588.04 1122.19 1587.97 1122.35 1587.97H1132.9C1133.07 1587.97 1133.23 1588.04 1133.35 1588.15C1133.46 1588.27 1133.53 1588.43 1133.53 1588.6V1596.15C1133.53 1596.56 1133.61 1596.96 1133.77 1597.34C1133.92 1597.72 1134.15 1598.07 1134.44 1598.36C1134.73 1598.65 1135.08 1598.88 1135.46 1599.03C1135.84 1599.19 1136.24 1599.27 1136.65 1599.27H1144.2C1144.37 1599.27 1144.53 1599.34 1144.65 1599.45C1144.76 1599.57 1144.83 1599.73 1144.83 1599.9L1144.82 1610.43Z\",fill:\"#0641B6\"})),_path69||(_path69=/*#__PURE__*/React.createElement(\"path\",{d:\"M1082.19 1651.24C1084.83 1651.24 1087.42 1650.45 1089.62 1648.98C1091.82 1647.51 1093.53 1645.42 1094.54 1642.98C1095.56 1640.53 1095.82 1637.84 1095.31 1635.25C1094.79 1632.65 1093.52 1630.27 1091.64 1628.4C1089.77 1626.53 1087.39 1625.25 1084.8 1624.74C1082.2 1624.22 1079.51 1624.49 1077.07 1625.5C1074.62 1626.51 1072.53 1628.23 1071.06 1630.43C1069.59 1632.63 1068.81 1635.21 1068.81 1637.86C1068.81 1641.41 1070.22 1644.81 1072.73 1647.32C1075.24 1649.83 1078.64 1651.24 1082.19 1651.24ZM1082.19 1630.43C1083.66 1630.43 1085.09 1630.86 1086.31 1631.68C1087.54 1632.5 1088.49 1633.66 1089.05 1635.01C1089.61 1636.37 1089.76 1637.87 1089.47 1639.31C1089.19 1640.75 1088.48 1642.07 1087.44 1643.11C1086.4 1644.15 1085.08 1644.86 1083.64 1645.15C1082.19 1645.43 1080.7 1645.29 1079.34 1644.72C1077.98 1644.16 1076.82 1643.21 1076.01 1641.99C1075.19 1640.77 1074.75 1639.33 1074.75 1637.86C1074.75 1636.88 1074.95 1635.92 1075.32 1635.01C1075.69 1634.11 1076.24 1633.29 1076.93 1632.6C1077.62 1631.91 1078.44 1631.37 1079.34 1630.99C1080.24 1630.62 1081.21 1630.43 1082.19 1630.43Z\",fill:\"#0641B6\"})),_path70||(_path70=/*#__PURE__*/React.createElement(\"path\",{d:\"M1082.05 1654.12C1075.76 1654.07 1069.63 1656.07 1064.58 1659.83C1059.54 1663.58 1055.86 1668.89 1054.11 1674.93C1053.91 1675.68 1054.02 1676.49 1054.41 1677.17C1054.8 1677.84 1055.44 1678.34 1056.2 1678.55C1056.95 1678.76 1057.76 1678.66 1058.44 1678.27C1059.12 1677.89 1059.63 1677.26 1059.85 1676.5C1061.33 1671.63 1064.38 1667.39 1068.52 1664.42C1072.67 1661.46 1077.67 1659.94 1082.76 1660.1C1087.85 1660.26 1092.74 1662.09 1096.69 1665.3C1100.64 1668.52 1103.42 1672.95 1104.6 1677.9C1104.77 1678.67 1105.23 1679.33 1105.89 1679.76C1106.54 1680.18 1107.34 1680.33 1108.1 1680.17C1108.87 1680.01 1109.54 1679.56 1109.98 1678.91C1110.41 1678.26 1110.57 1677.47 1110.43 1676.7C1109 1670.26 1105.4 1664.5 1100.24 1660.39C1095.07 1656.27 1088.65 1654.06 1082.05 1654.12Z\",fill:\"#0641B6\"})),_path71||(_path71=/*#__PURE__*/React.createElement(\"path\",{d:\"M538.237 1144.88V1142.13L548.56 1130.83C549.771 1129.51 550.769 1128.35 551.553 1127.38C552.336 1126.39 552.917 1125.46 553.293 1124.6C553.68 1123.72 553.874 1122.81 553.874 1121.85C553.874 1120.75 553.609 1119.8 553.08 1118.99C552.56 1118.19 551.848 1117.57 550.942 1117.13C550.036 1116.69 549.018 1116.47 547.888 1116.47C546.687 1116.47 545.638 1116.72 544.742 1117.22C543.857 1117.71 543.169 1118.4 542.681 1119.28C542.202 1120.17 541.963 1121.21 541.963 1122.4H538.359C538.359 1120.57 538.782 1118.96 539.627 1117.57C540.472 1116.19 541.622 1115.11 543.078 1114.34C544.544 1113.56 546.188 1113.18 548.01 1113.18C549.842 1113.18 551.466 1113.56 552.881 1114.34C554.296 1115.11 555.406 1116.15 556.21 1117.47C557.014 1118.78 557.416 1120.24 557.416 1121.85C557.416 1123 557.208 1124.13 556.79 1125.22C556.383 1126.31 555.67 1127.53 554.652 1128.87C553.645 1130.21 552.245 1131.84 550.453 1133.76L543.429 1141.27V1141.52H557.966V1144.88H538.237ZM562.868 1138.46V1135.35L576.61 1113.6H578.87V1118.43H577.343L566.96 1134.86V1135.1H585.467V1138.46H562.868ZM577.588 1144.88V1137.52V1136.07V1113.6H581.191V1144.88H577.588ZM614.4 1112.14L604.321 1149.58H601.023L611.101 1112.14H614.4ZM631.254 1144.88V1113.6H650.005V1116.96H635.041V1127.53H648.6V1130.89H635.041V1144.88H631.254ZM664.115 1145.37C661.855 1145.37 659.905 1144.87 658.266 1143.87C656.637 1142.86 655.38 1141.46 654.494 1139.65C653.619 1137.84 653.181 1135.74 653.181 1133.33C653.181 1130.93 653.619 1128.81 654.494 1126.98C655.38 1125.14 656.612 1123.7 658.19 1122.67C659.778 1121.64 661.631 1121.12 663.748 1121.12C664.97 1121.12 666.176 1121.32 667.367 1121.73C668.558 1122.14 669.642 1122.8 670.619 1123.71C671.597 1124.62 672.376 1125.82 672.956 1127.32C673.536 1128.81 673.826 1130.66 673.826 1132.84V1134.37H655.747V1131.26H670.161C670.161 1129.93 669.897 1128.75 669.367 1127.71C668.848 1126.68 668.105 1125.86 667.138 1125.26C666.181 1124.65 665.051 1124.35 663.748 1124.35C662.313 1124.35 661.071 1124.71 660.022 1125.42C658.984 1126.13 658.185 1127.04 657.625 1128.17C657.065 1129.3 656.785 1130.51 656.785 1131.81V1133.88C656.785 1135.65 657.09 1137.16 657.701 1138.39C658.322 1139.61 659.182 1140.54 660.282 1141.18C661.381 1141.81 662.659 1142.13 664.115 1142.13C665.061 1142.13 665.916 1142 666.68 1141.73C667.454 1141.46 668.12 1141.05 668.68 1140.51C669.24 1139.96 669.673 1139.28 669.978 1138.46L673.46 1139.44C673.093 1140.62 672.477 1141.66 671.612 1142.56C670.747 1143.44 669.678 1144.13 668.405 1144.63C667.133 1145.12 665.703 1145.37 664.115 1145.37ZM679.308 1144.88V1121.42H682.79V1125.09H683.095C683.584 1123.84 684.373 1122.86 685.462 1122.17C686.551 1121.47 687.859 1121.12 689.386 1121.12C690.934 1121.12 692.221 1121.47 693.249 1122.17C694.288 1122.86 695.097 1123.84 695.677 1125.09H695.922C696.522 1123.88 697.423 1122.91 698.624 1122.2C699.826 1121.48 701.266 1121.12 702.946 1121.12C705.043 1121.12 706.758 1121.77 708.092 1123.09C709.425 1124.39 710.092 1126.42 710.092 1129.18V1144.88H706.488V1129.18C706.488 1127.45 706.015 1126.21 705.068 1125.47C704.122 1124.73 703.007 1124.35 701.724 1124.35C700.075 1124.35 698.798 1124.85 697.892 1125.85C696.986 1126.84 696.532 1128.09 696.532 1129.61V1144.88H692.868V1128.81C692.868 1127.48 692.435 1126.41 691.57 1125.59C690.704 1124.77 689.59 1124.35 688.226 1124.35C687.289 1124.35 686.414 1124.6 685.599 1125.1C684.795 1125.6 684.144 1126.29 683.645 1127.18C683.156 1128.05 682.912 1129.07 682.912 1130.22V1144.88H679.308ZM723.583 1145.43C722.097 1145.43 720.748 1145.15 719.537 1144.59C718.325 1144.02 717.363 1143.2 716.651 1142.13C715.938 1141.05 715.582 1139.75 715.582 1138.22C715.582 1136.88 715.846 1135.79 716.376 1134.95C716.905 1134.11 717.613 1133.44 718.498 1132.97C719.384 1132.49 720.361 1132.13 721.43 1131.9C722.509 1131.65 723.593 1131.46 724.683 1131.32C726.108 1131.13 727.263 1131 728.149 1130.91C729.045 1130.8 729.696 1130.64 730.103 1130.4C730.521 1130.17 730.729 1129.76 730.729 1129.18V1129.06C730.729 1127.55 730.317 1126.38 729.493 1125.55C728.678 1124.71 727.441 1124.29 725.782 1124.29C724.062 1124.29 722.713 1124.67 721.735 1125.42C720.758 1126.18 720.071 1126.98 719.674 1127.84L716.254 1126.61C716.864 1125.19 717.679 1124.08 718.697 1123.29C719.725 1122.48 720.845 1121.92 722.056 1121.61C723.278 1121.28 724.479 1121.12 725.66 1121.12C726.413 1121.12 727.278 1121.21 728.256 1121.39C729.243 1121.56 730.195 1121.93 731.111 1122.48C732.038 1123.03 732.806 1123.86 733.417 1124.97C734.028 1126.07 734.333 1127.56 734.333 1129.42V1144.88H730.729V1141.7H730.546C730.302 1142.21 729.895 1142.75 729.325 1143.33C728.754 1143.91 727.996 1144.41 727.049 1144.82C726.103 1145.22 724.947 1145.43 723.583 1145.43ZM724.133 1142.19C725.558 1142.19 726.759 1141.91 727.737 1141.35C728.724 1140.79 729.467 1140.07 729.966 1139.18C730.475 1138.3 730.729 1137.36 730.729 1136.39V1133.09C730.577 1133.27 730.241 1133.44 729.722 1133.59C729.213 1133.74 728.622 1133.86 727.95 1133.97C727.289 1134.08 726.642 1134.17 726.011 1134.25C725.39 1134.32 724.886 1134.38 724.499 1134.43C723.563 1134.55 722.687 1134.75 721.873 1135.03C721.069 1135.29 720.417 1135.69 719.918 1136.23C719.43 1136.76 719.185 1137.49 719.185 1138.4C719.185 1139.65 719.649 1140.6 720.575 1141.24C721.511 1141.87 722.697 1142.19 724.133 1142.19ZM744.514 1113.6V1144.88H740.911V1113.6H744.514ZM760.949 1145.37C758.689 1145.37 756.739 1144.87 755.1 1143.87C753.471 1142.86 752.214 1141.46 751.328 1139.65C750.453 1137.84 750.015 1135.74 750.015 1133.33C750.015 1130.93 750.453 1128.81 751.328 1126.98C752.214 1125.14 753.446 1123.7 755.024 1122.67C756.612 1121.64 758.465 1121.12 760.582 1121.12C761.804 1121.12 763.01 1121.32 764.201 1121.73C765.392 1122.14 766.476 1122.8 767.453 1123.71C768.431 1124.62 769.21 1125.82 769.79 1127.32C770.37 1128.81 770.66 1130.66 770.66 1132.84V1134.37H752.581V1131.26H766.995C766.995 1129.93 766.731 1128.75 766.201 1127.71C765.682 1126.68 764.939 1125.86 763.972 1125.26C763.015 1124.65 761.885 1124.35 760.582 1124.35C759.147 1124.35 757.905 1124.71 756.856 1125.42C755.818 1126.13 755.019 1127.04 754.459 1128.17C753.899 1129.3 753.619 1130.51 753.619 1131.81V1133.88C753.619 1135.65 753.924 1137.16 754.535 1138.39C755.156 1139.61 756.016 1140.54 757.116 1141.18C758.215 1141.81 759.493 1142.13 760.949 1142.13C761.895 1142.13 762.75 1142 763.514 1141.73C764.288 1141.46 764.954 1141.05 765.514 1140.51C766.074 1139.96 766.507 1139.28 766.812 1138.46L770.294 1139.44C769.927 1140.62 769.311 1141.66 768.446 1142.56C767.581 1143.44 766.512 1144.13 765.239 1144.63C763.967 1145.12 762.537 1145.37 760.949 1145.37Z\",fill:\"#0641B6\"})),_path72||(_path72=/*#__PURE__*/React.createElement(\"path\",{d:\"M539.716 1220.88H536.023L546.705 1191.79H550.341L561.023 1220.88H557.33L548.636 1196.39H548.409L539.716 1220.88ZM541.08 1209.51H555.966V1212.64H541.08V1209.51ZM568.452 1207.75V1220.88H565.099V1199.06H568.338V1202.47H568.622C569.134 1201.36 569.91 1200.47 570.952 1199.8C571.993 1199.12 573.338 1198.77 574.986 1198.77C576.463 1198.77 577.756 1199.08 578.864 1199.68C579.972 1200.28 580.833 1201.19 581.449 1202.41C582.064 1203.62 582.372 1205.16 582.372 1207.01V1220.88H579.02V1207.24C579.02 1205.53 578.575 1204.19 577.685 1203.23C576.795 1202.27 575.573 1201.79 574.02 1201.79C572.95 1201.79 571.993 1202.02 571.151 1202.48C570.317 1202.95 569.659 1203.62 569.176 1204.51C568.693 1205.4 568.452 1206.48 568.452 1207.75ZM591.85 1207.75V1220.88H588.498V1199.06H591.737V1202.47H592.021C592.532 1201.36 593.308 1200.47 594.35 1199.8C595.392 1199.12 596.737 1198.77 598.384 1198.77C599.862 1198.77 601.154 1199.08 602.262 1199.68C603.37 1200.28 604.232 1201.19 604.847 1202.41C605.463 1203.62 605.771 1205.16 605.771 1207.01V1220.88H602.418V1207.24C602.418 1205.53 601.973 1204.19 601.083 1203.23C600.193 1202.27 598.971 1201.79 597.418 1201.79C596.348 1201.79 595.392 1202.02 594.549 1202.48C593.716 1202.95 593.058 1203.62 592.575 1204.51C592.092 1205.4 591.85 1206.48 591.85 1207.75ZM618.317 1221.39C616.934 1221.39 615.679 1221.13 614.553 1220.61C613.426 1220.08 612.531 1219.31 611.868 1218.32C611.205 1217.32 610.874 1216.1 610.874 1214.68C610.874 1213.43 611.12 1212.42 611.612 1211.64C612.105 1210.86 612.763 1210.24 613.587 1209.8C614.411 1209.35 615.32 1209.02 616.314 1208.8C617.318 1208.58 618.326 1208.4 619.339 1208.26C620.665 1208.09 621.74 1207.97 622.564 1207.88C623.397 1207.79 624.003 1207.63 624.382 1207.41C624.77 1207.19 624.964 1206.81 624.964 1206.27V1206.16C624.964 1204.76 624.581 1203.67 623.814 1202.89C623.056 1202.12 621.906 1201.73 620.362 1201.73C618.762 1201.73 617.507 1202.08 616.598 1202.78C615.689 1203.48 615.05 1204.23 614.68 1205.02L611.499 1203.89C612.067 1202.56 612.824 1201.53 613.771 1200.79C614.728 1200.04 615.769 1199.52 616.896 1199.23C618.033 1198.93 619.15 1198.77 620.249 1198.77C620.949 1198.77 621.754 1198.86 622.663 1199.03C623.582 1199.19 624.467 1199.53 625.32 1200.04C626.181 1200.55 626.896 1201.32 627.464 1202.35C628.033 1203.39 628.317 1204.77 628.317 1206.5V1220.88H624.964V1217.92H624.794C624.567 1218.4 624.188 1218.9 623.658 1219.44C623.127 1219.98 622.422 1220.44 621.541 1220.82C620.661 1221.2 619.586 1221.39 618.317 1221.39ZM618.828 1218.38C620.154 1218.38 621.271 1218.12 622.18 1217.6C623.099 1217.07 623.79 1216.4 624.254 1215.58C624.728 1214.75 624.964 1213.89 624.964 1212.98V1209.91C624.822 1210.08 624.51 1210.24 624.027 1210.38C623.554 1210.51 623.004 1210.63 622.379 1210.73C621.764 1210.83 621.162 1210.91 620.575 1210.99C619.998 1211.06 619.529 1211.11 619.169 1211.16C618.298 1211.27 617.483 1211.46 616.726 1211.72C615.978 1211.96 615.372 1212.34 614.908 1212.84C614.453 1213.33 614.226 1214 614.226 1214.85C614.226 1216.02 614.657 1216.9 615.518 1217.5C616.39 1218.08 617.493 1218.38 618.828 1218.38ZM634.435 1229.06V1199.06H637.674V1202.52H638.072C638.318 1202.15 638.659 1201.66 639.094 1201.08C639.54 1200.48 640.174 1199.95 640.998 1199.48C641.831 1199.01 642.958 1198.77 644.379 1198.77C646.216 1198.77 647.835 1199.23 649.237 1200.15C650.638 1201.07 651.732 1202.37 652.518 1204.06C653.304 1205.74 653.697 1207.73 653.697 1210.02C653.697 1212.34 653.304 1214.34 652.518 1216.03C651.732 1217.72 650.643 1219.03 649.251 1219.95C647.859 1220.87 646.254 1221.33 644.435 1221.33C643.034 1221.33 641.912 1221.1 641.069 1220.64C640.226 1220.16 639.577 1219.63 639.123 1219.03C638.668 1218.42 638.318 1217.92 638.072 1217.52H637.788V1229.06H634.435ZM637.731 1209.97C637.731 1211.62 637.972 1213.07 638.455 1214.33C638.938 1215.58 639.644 1216.56 640.572 1217.27C641.5 1217.97 642.636 1218.32 643.981 1218.32C645.382 1218.32 646.552 1217.95 647.489 1217.21C648.436 1216.46 649.147 1215.46 649.62 1214.2C650.103 1212.93 650.344 1211.52 650.344 1209.97C650.344 1208.43 650.108 1207.05 649.634 1205.82C649.17 1204.58 648.465 1203.6 647.518 1202.88C646.58 1202.15 645.401 1201.79 643.981 1201.79C642.617 1201.79 641.471 1202.13 640.543 1202.82C639.615 1203.5 638.915 1204.46 638.441 1205.69C637.968 1206.91 637.731 1208.34 637.731 1209.97ZM672.56 1211.96V1199.06H675.913V1220.88H672.56V1217.18H672.333C671.822 1218.29 671.026 1219.23 669.947 1220.01C668.867 1220.78 667.504 1221.16 665.856 1221.16C664.492 1221.16 663.28 1220.86 662.219 1220.27C661.159 1219.66 660.326 1218.75 659.719 1217.54C659.113 1216.32 658.81 1214.78 658.81 1212.92V1199.06H662.163V1212.7C662.163 1214.29 662.608 1215.55 663.498 1216.5C664.397 1217.45 665.543 1217.92 666.935 1217.92C667.769 1217.92 668.616 1217.71 669.478 1217.28C670.349 1216.86 671.078 1216.2 671.665 1215.32C672.262 1214.44 672.56 1213.32 672.56 1211.96ZM682.053 1220.88V1199.06H685.291V1202.35H685.518C685.916 1201.27 686.636 1200.4 687.678 1199.73C688.719 1199.05 689.893 1198.72 691.2 1198.72C691.446 1198.72 691.754 1198.72 692.124 1198.73C692.493 1198.74 692.772 1198.76 692.962 1198.77V1202.18C692.848 1202.16 692.588 1202.11 692.18 1202.06C691.783 1201.99 691.361 1201.96 690.916 1201.96C689.856 1201.96 688.909 1202.18 688.075 1202.62C687.251 1203.06 686.598 1203.67 686.115 1204.44C685.642 1205.21 685.405 1206.09 685.405 1207.07V1220.88H682.053ZM700.288 1207.75V1220.88H696.935V1199.06H700.174V1202.47H700.458C700.969 1201.36 701.746 1200.47 702.788 1199.8C703.829 1199.12 705.174 1198.77 706.822 1198.77C708.299 1198.77 709.592 1199.08 710.7 1199.68C711.808 1200.28 712.669 1201.19 713.285 1202.41C713.9 1203.62 714.208 1205.16 714.208 1207.01V1220.88H710.856V1207.24C710.856 1205.53 710.411 1204.19 709.521 1203.23C708.63 1202.27 707.409 1201.79 705.856 1201.79C704.786 1201.79 703.829 1202.02 702.987 1202.48C702.153 1202.95 701.495 1203.62 701.012 1204.51C700.529 1205.4 700.288 1206.48 700.288 1207.75ZM726.754 1221.39C725.372 1221.39 724.117 1221.13 722.99 1220.61C721.863 1220.08 720.968 1219.31 720.305 1218.32C719.643 1217.32 719.311 1216.1 719.311 1214.68C719.311 1213.43 719.557 1212.42 720.05 1211.64C720.542 1210.86 721.2 1210.24 722.024 1209.8C722.848 1209.35 723.757 1209.02 724.751 1208.8C725.755 1208.58 726.764 1208.4 727.777 1208.26C729.103 1208.09 730.178 1207.97 731.001 1207.88C731.835 1207.79 732.441 1207.63 732.82 1207.41C733.208 1207.19 733.402 1206.81 733.402 1206.27V1206.16C733.402 1204.76 733.018 1203.67 732.251 1202.89C731.494 1202.12 730.343 1201.73 728.8 1201.73C727.199 1201.73 725.945 1202.08 725.036 1202.78C724.126 1203.48 723.487 1204.23 723.118 1205.02L719.936 1203.89C720.504 1202.56 721.262 1201.53 722.209 1200.79C723.165 1200.04 724.207 1199.52 725.334 1199.23C726.47 1198.93 727.588 1198.77 728.686 1198.77C729.387 1198.77 730.192 1198.86 731.101 1199.03C732.019 1199.19 732.905 1199.53 733.757 1200.04C734.619 1200.55 735.334 1201.32 735.902 1202.35C736.47 1203.39 736.754 1204.77 736.754 1206.5V1220.88H733.402V1217.92H733.232C733.004 1218.4 732.625 1218.9 732.095 1219.44C731.565 1219.98 730.859 1220.44 729.979 1220.82C729.098 1221.2 728.023 1221.39 726.754 1221.39ZM727.266 1218.38C728.591 1218.38 729.709 1218.12 730.618 1217.6C731.536 1217.07 732.228 1216.4 732.692 1215.58C733.165 1214.75 733.402 1213.89 733.402 1212.98V1209.91C733.26 1210.08 732.947 1210.24 732.464 1210.38C731.991 1210.51 731.442 1210.63 730.817 1210.73C730.201 1210.83 729.6 1210.91 729.013 1210.99C728.435 1211.06 727.966 1211.11 727.607 1211.16C726.735 1211.27 725.921 1211.46 725.163 1211.72C724.415 1211.96 723.809 1212.34 723.345 1212.84C722.891 1213.33 722.663 1214 722.663 1214.85C722.663 1216.02 723.094 1216.9 723.956 1217.5C724.827 1218.08 725.93 1218.38 727.266 1218.38ZM754.577 1220.88V1191.79H772.134V1194.91H758.1V1204.74H771.225V1207.87H758.1V1217.75H772.362V1220.88H754.577ZM793.484 1203.95L790.472 1204.8C790.283 1204.3 790.004 1203.81 789.634 1203.33C789.274 1202.85 788.782 1202.45 788.157 1202.14C787.532 1201.83 786.732 1201.67 785.756 1201.67C784.421 1201.67 783.308 1201.98 782.418 1202.6C781.538 1203.2 781.097 1203.97 781.097 1204.91C781.097 1205.74 781.4 1206.4 782.006 1206.89C782.612 1207.37 783.559 1207.77 784.847 1208.09L788.086 1208.89C790.037 1209.36 791.49 1210.09 792.447 1211.06C793.403 1212.03 793.881 1213.27 793.881 1214.8C793.881 1216.05 793.522 1217.16 792.802 1218.15C792.092 1219.13 791.097 1219.91 789.819 1220.48C788.54 1221.05 787.054 1221.33 785.359 1221.33C783.133 1221.33 781.291 1220.85 779.833 1219.88C778.375 1218.92 777.451 1217.51 777.063 1215.65L780.245 1214.85C780.548 1216.03 781.121 1216.91 781.964 1217.5C782.816 1218.08 783.929 1218.38 785.302 1218.38C786.864 1218.38 788.105 1218.05 789.023 1217.38C789.951 1216.71 790.415 1215.91 790.415 1214.97C790.415 1214.21 790.15 1213.58 789.62 1213.06C789.09 1212.54 788.275 1212.16 787.177 1211.9L783.54 1211.05C781.542 1210.57 780.075 1209.84 779.137 1208.85C778.209 1207.84 777.745 1206.59 777.745 1205.08C777.745 1203.85 778.091 1202.76 778.782 1201.81C779.483 1200.87 780.434 1200.12 781.637 1199.58C782.849 1199.04 784.222 1198.77 785.756 1198.77C787.915 1198.77 789.611 1199.25 790.842 1200.2C792.082 1201.14 792.963 1202.39 793.484 1203.95ZM808.416 1199.06V1201.9H797.109V1199.06H808.416ZM800.405 1193.83H803.757V1214.63C803.757 1215.57 803.894 1216.28 804.169 1216.76C804.453 1217.22 804.813 1217.53 805.249 1217.7C805.694 1217.85 806.162 1217.92 806.655 1217.92C807.024 1217.92 807.327 1217.9 807.564 1217.87C807.801 1217.82 807.99 1217.78 808.132 1217.75L808.814 1220.76C808.587 1220.85 808.269 1220.93 807.862 1221.02C807.455 1221.11 806.939 1221.16 806.314 1221.16C805.367 1221.16 804.439 1220.96 803.53 1220.55C802.63 1220.14 801.882 1219.52 801.286 1218.69C800.698 1217.86 800.405 1216.8 800.405 1215.54V1193.83ZM819.879 1221.39C818.497 1221.39 817.242 1221.13 816.115 1220.61C814.988 1220.08 814.093 1219.31 813.43 1218.32C812.768 1217.32 812.436 1216.1 812.436 1214.68C812.436 1213.43 812.682 1212.42 813.175 1211.64C813.667 1210.86 814.325 1210.24 815.149 1209.8C815.973 1209.35 816.882 1209.02 817.876 1208.8C818.88 1208.58 819.889 1208.4 820.902 1208.26C822.228 1208.09 823.303 1207.97 824.126 1207.88C824.96 1207.79 825.566 1207.63 825.945 1207.41C826.333 1207.19 826.527 1206.81 826.527 1206.27V1206.16C826.527 1204.76 826.143 1203.67 825.376 1202.89C824.619 1202.12 823.468 1201.73 821.925 1201.73C820.324 1201.73 819.07 1202.08 818.161 1202.78C817.251 1203.48 816.612 1204.23 816.243 1205.02L813.061 1203.89C813.629 1202.56 814.387 1201.53 815.334 1200.79C816.29 1200.04 817.332 1199.52 818.459 1199.23C819.595 1198.93 820.713 1198.77 821.811 1198.77C822.512 1198.77 823.317 1198.86 824.226 1199.03C825.144 1199.19 826.03 1199.53 826.882 1200.04C827.744 1200.55 828.459 1201.32 829.027 1202.35C829.595 1203.39 829.879 1204.77 829.879 1206.5V1220.88H826.527V1217.92H826.357C826.129 1218.4 825.75 1218.9 825.22 1219.44C824.69 1219.98 823.984 1220.44 823.104 1220.82C822.223 1221.2 821.148 1221.39 819.879 1221.39ZM820.391 1218.38C821.716 1218.38 822.834 1218.12 823.743 1217.6C824.661 1217.07 825.353 1216.4 825.817 1215.58C826.29 1214.75 826.527 1213.89 826.527 1212.98V1209.91C826.385 1210.08 826.072 1210.24 825.589 1210.38C825.116 1210.51 824.567 1210.63 823.942 1210.73C823.326 1210.83 822.725 1210.91 822.138 1210.99C821.56 1211.06 821.091 1211.11 820.732 1211.16C819.86 1211.27 819.046 1211.46 818.288 1211.72C817.54 1211.96 816.934 1212.34 816.47 1212.84C816.016 1213.33 815.788 1214 815.788 1214.85C815.788 1216.02 816.219 1216.9 817.081 1217.5C817.952 1218.08 819.055 1218.38 820.391 1218.38ZM845.487 1199.06V1201.9H834.18V1199.06H845.487ZM837.475 1193.83H840.827V1214.63C840.827 1215.57 840.965 1216.28 841.239 1216.76C841.523 1217.22 841.883 1217.53 842.319 1217.7C842.764 1217.85 843.233 1217.92 843.725 1217.92C844.094 1217.92 844.397 1217.9 844.634 1217.87C844.871 1217.82 845.06 1217.78 845.202 1217.75L845.884 1220.76C845.657 1220.85 845.34 1220.93 844.933 1221.02C844.525 1221.11 844.009 1221.16 843.384 1221.16C842.437 1221.16 841.509 1220.96 840.6 1220.55C839.701 1220.14 838.952 1219.52 838.356 1218.69C837.769 1217.86 837.475 1216.8 837.475 1215.54V1193.83ZM859.442 1221.33C857.34 1221.33 855.527 1220.87 854.002 1219.94C852.487 1219 851.317 1217.7 850.494 1216.02C849.679 1214.33 849.272 1212.37 849.272 1210.14C849.272 1207.9 849.679 1205.93 850.494 1204.23C851.317 1202.52 852.463 1201.18 853.931 1200.22C855.408 1199.26 857.132 1198.77 859.102 1198.77C860.238 1198.77 861.36 1198.96 862.468 1199.34C863.576 1199.72 864.585 1200.34 865.494 1201.19C866.403 1202.03 867.127 1203.15 867.667 1204.54C868.207 1205.93 868.477 1207.65 868.477 1209.68V1211.1H851.658V1208.21H865.067C865.067 1206.98 864.821 1205.88 864.329 1204.91C863.846 1203.95 863.155 1203.18 862.255 1202.62C861.365 1202.07 860.314 1201.79 859.102 1201.79C857.766 1201.79 856.611 1202.12 855.636 1202.78C854.67 1203.43 853.926 1204.29 853.406 1205.34C852.885 1206.39 852.624 1207.52 852.624 1208.72V1210.65C852.624 1212.3 852.908 1213.69 853.477 1214.84C854.054 1215.98 854.854 1216.84 855.877 1217.44C856.9 1218.03 858.088 1218.32 859.442 1218.32C860.323 1218.32 861.119 1218.2 861.829 1217.95C862.549 1217.7 863.169 1217.32 863.69 1216.81C864.21 1216.3 864.613 1215.67 864.897 1214.91L868.136 1215.82C867.795 1216.92 867.222 1217.88 866.417 1218.72C865.612 1219.54 864.618 1220.19 863.434 1220.65C862.25 1221.1 860.92 1221.33 859.442 1221.33ZM878.576 1216.9L878.349 1218.43C878.188 1219.51 877.942 1220.67 877.61 1221.9C877.288 1223.13 876.952 1224.29 876.602 1225.38C876.251 1226.47 875.962 1227.34 875.735 1227.98H873.178C873.301 1227.37 873.462 1226.57 873.661 1225.58C873.86 1224.58 874.059 1223.47 874.258 1222.24C874.466 1221.02 874.637 1219.77 874.769 1218.49L874.94 1216.9H878.576ZM896.491 1220.88V1191.79H913.935V1194.91H900.014V1204.74H912.628V1207.87H900.014V1220.88H896.491ZM925.934 1221.39C924.551 1221.39 923.297 1221.13 922.17 1220.61C921.043 1220.08 920.148 1219.31 919.485 1218.32C918.822 1217.32 918.491 1216.1 918.491 1214.68C918.491 1213.43 918.737 1212.42 919.229 1211.64C919.722 1210.86 920.38 1210.24 921.204 1209.8C922.028 1209.35 922.937 1209.02 923.931 1208.8C924.935 1208.58 925.943 1208.4 926.957 1208.26C928.282 1208.09 929.357 1207.97 930.181 1207.88C931.014 1207.79 931.621 1207.63 931.999 1207.41C932.388 1207.19 932.582 1206.81 932.582 1206.27V1206.16C932.582 1204.76 932.198 1203.67 931.431 1202.89C930.674 1202.12 929.523 1201.73 927.979 1201.73C926.379 1201.73 925.124 1202.08 924.215 1202.78C923.306 1203.48 922.667 1204.23 922.298 1205.02L919.116 1203.89C919.684 1202.56 920.442 1201.53 921.388 1200.79C922.345 1200.04 923.387 1199.52 924.513 1199.23C925.65 1198.93 926.767 1198.77 927.866 1198.77C928.567 1198.77 929.371 1198.86 930.281 1199.03C931.199 1199.19 932.085 1199.53 932.937 1200.04C933.799 1200.55 934.513 1201.32 935.082 1202.35C935.65 1203.39 935.934 1204.77 935.934 1206.5V1220.88H932.582V1217.92H932.411C932.184 1218.4 931.805 1218.9 931.275 1219.44C930.745 1219.98 930.039 1220.44 929.158 1220.82C928.278 1221.2 927.203 1221.39 925.934 1221.39ZM926.445 1218.38C927.771 1218.38 928.888 1218.12 929.798 1217.6C930.716 1217.07 931.407 1216.4 931.871 1215.58C932.345 1214.75 932.582 1213.89 932.582 1212.98V1209.91C932.44 1210.08 932.127 1210.24 931.644 1210.38C931.171 1210.51 930.621 1210.63 929.996 1210.73C929.381 1210.83 928.78 1210.91 928.192 1210.99C927.615 1211.06 927.146 1211.11 926.786 1211.16C925.915 1211.27 925.101 1211.46 924.343 1211.72C923.595 1211.96 922.989 1212.34 922.525 1212.84C922.07 1213.33 921.843 1214 921.843 1214.85C921.843 1216.02 922.274 1216.9 923.136 1217.5C924.007 1218.08 925.11 1218.38 926.445 1218.38ZM951.541 1199.06V1201.9H940.234V1199.06H951.541ZM943.53 1193.83H946.882V1214.63C946.882 1215.57 947.019 1216.28 947.294 1216.76C947.578 1217.22 947.938 1217.53 948.374 1217.7C948.819 1217.85 949.287 1217.92 949.78 1217.92C950.149 1217.92 950.452 1217.9 950.689 1217.87C950.926 1217.82 951.115 1217.78 951.257 1217.75L951.939 1220.76C951.712 1220.85 951.394 1220.93 950.987 1221.02C950.58 1221.11 950.064 1221.16 949.439 1221.16C948.492 1221.16 947.564 1220.96 946.655 1220.55C945.755 1220.14 945.007 1219.52 944.411 1218.69C943.823 1217.86 943.53 1216.8 943.53 1215.54V1193.83ZM956.584 1220.88V1199.06H959.822V1202.35H960.05C960.447 1201.27 961.167 1200.4 962.209 1199.73C963.25 1199.05 964.425 1198.72 965.732 1198.72C965.978 1198.72 966.286 1198.72 966.655 1198.73C967.024 1198.74 967.304 1198.76 967.493 1198.77V1202.18C967.379 1202.16 967.119 1202.11 966.712 1202.06C966.314 1201.99 965.893 1201.96 965.447 1201.96C964.387 1201.96 963.44 1202.18 962.607 1202.62C961.783 1203.06 961.129 1203.67 960.646 1204.44C960.173 1205.21 959.936 1206.09 959.936 1207.07V1220.88H956.584ZM979.95 1221.33C977.848 1221.33 976.035 1220.87 974.51 1219.94C972.995 1219 971.825 1217.7 971.001 1216.02C970.187 1214.33 969.78 1212.37 969.78 1210.14C969.78 1207.9 970.187 1205.93 971.001 1204.23C971.825 1202.52 972.971 1201.18 974.439 1200.22C975.916 1199.26 977.64 1198.77 979.609 1198.77C980.746 1198.77 981.868 1198.96 982.976 1199.34C984.084 1199.72 985.092 1200.34 986.001 1201.19C986.911 1202.03 987.635 1203.15 988.175 1204.54C988.714 1205.93 988.984 1207.65 988.984 1209.68V1211.1H972.166V1208.21H985.575C985.575 1206.98 985.329 1205.88 984.837 1204.91C984.354 1203.95 983.662 1203.18 982.763 1202.62C981.873 1202.07 980.821 1201.79 979.609 1201.79C978.274 1201.79 977.119 1202.12 976.143 1202.78C975.178 1203.43 974.434 1204.29 973.913 1205.34C973.393 1206.39 973.132 1207.52 973.132 1208.72V1210.65C973.132 1212.3 973.416 1213.69 973.984 1214.84C974.562 1215.98 975.362 1216.84 976.385 1217.44C977.408 1218.03 978.596 1218.32 979.95 1218.32C980.831 1218.32 981.626 1218.2 982.337 1217.95C983.056 1217.7 983.677 1217.32 984.197 1216.81C984.718 1216.3 985.121 1215.67 985.405 1214.91L988.643 1215.82C988.303 1216.92 987.73 1217.88 986.925 1218.72C986.12 1219.54 985.125 1220.19 983.942 1220.65C982.758 1221.1 981.428 1221.33 979.95 1221.33ZM997.436 1207.75V1220.88H994.084V1199.06H997.322V1202.47H997.607C998.118 1201.36 998.894 1200.47 999.936 1199.8C1000.98 1199.12 1002.32 1198.77 1003.97 1198.77C1005.45 1198.77 1006.74 1199.08 1007.85 1199.68C1008.96 1200.28 1009.82 1201.19 1010.43 1202.41C1011.05 1203.62 1011.36 1205.16 1011.36 1207.01V1220.88H1008V1207.24C1008 1205.53 1007.56 1204.19 1006.67 1203.23C1005.78 1202.27 1004.56 1201.79 1003 1201.79C1001.93 1201.79 1000.98 1202.02 1000.13 1202.48C999.302 1202.95 998.643 1203.62 998.161 1204.51C997.678 1205.4 997.436 1206.48 997.436 1207.75ZM1032.94 1203.95L1029.93 1204.8C1029.74 1204.3 1029.46 1203.81 1029.09 1203.33C1028.73 1202.85 1028.24 1202.45 1027.61 1202.14C1026.99 1201.83 1026.18 1201.67 1025.21 1201.67C1023.87 1201.67 1022.76 1201.98 1021.87 1202.6C1020.99 1203.2 1020.55 1203.97 1020.55 1204.91C1020.55 1205.74 1020.85 1206.4 1021.46 1206.89C1022.07 1207.37 1023.01 1207.77 1024.3 1208.09L1027.54 1208.89C1029.49 1209.36 1030.94 1210.09 1031.9 1211.06C1032.86 1212.03 1033.33 1213.27 1033.33 1214.8C1033.33 1216.05 1032.97 1217.16 1032.25 1218.15C1031.54 1219.13 1030.55 1219.91 1029.27 1220.48C1027.99 1221.05 1026.51 1221.33 1024.81 1221.33C1022.59 1221.33 1020.74 1220.85 1019.29 1219.88C1017.83 1218.92 1016.9 1217.51 1016.52 1215.65L1019.7 1214.85C1020 1216.03 1020.57 1216.91 1021.42 1217.5C1022.27 1218.08 1023.38 1218.38 1024.75 1218.38C1026.32 1218.38 1027.56 1218.05 1028.48 1217.38C1029.4 1216.71 1029.87 1215.91 1029.87 1214.97C1029.87 1214.21 1029.6 1213.58 1029.07 1213.06C1028.54 1212.54 1027.73 1212.16 1026.63 1211.9L1022.99 1211.05C1021 1210.57 1019.53 1209.84 1018.59 1208.85C1017.66 1207.84 1017.2 1206.59 1017.2 1205.08C1017.2 1203.85 1017.54 1202.76 1018.24 1201.81C1018.94 1200.87 1019.89 1200.12 1021.09 1199.58C1022.3 1199.04 1023.68 1198.77 1025.21 1198.77C1027.37 1198.77 1029.06 1199.25 1030.29 1200.2C1031.54 1201.14 1032.42 1202.39 1032.94 1203.95ZM1047.24 1221.33C1045.27 1221.33 1043.55 1220.86 1042.06 1219.93C1040.58 1218.99 1039.43 1217.68 1038.59 1215.99C1037.77 1214.3 1037.36 1212.34 1037.36 1210.08C1037.36 1207.81 1037.77 1205.82 1038.59 1204.13C1039.43 1202.43 1040.58 1201.12 1042.06 1200.18C1043.55 1199.24 1045.27 1198.77 1047.24 1198.77C1049.21 1198.77 1050.94 1199.24 1052.41 1200.18C1053.9 1201.12 1055.06 1202.43 1055.88 1204.13C1056.71 1205.82 1057.13 1207.81 1057.13 1210.08C1057.13 1212.34 1056.71 1214.3 1055.88 1215.99C1055.06 1217.68 1053.9 1218.99 1052.41 1219.93C1050.94 1220.86 1049.21 1221.33 1047.24 1221.33ZM1047.24 1218.32C1048.74 1218.32 1049.97 1217.94 1050.94 1217.17C1051.9 1216.4 1052.62 1215.39 1053.08 1214.14C1053.55 1212.89 1053.78 1211.54 1053.78 1210.08C1053.78 1208.62 1053.55 1207.26 1053.08 1206C1052.62 1204.75 1051.9 1203.73 1050.94 1202.95C1049.97 1202.17 1048.74 1201.79 1047.24 1201.79C1045.75 1201.79 1044.52 1202.17 1043.55 1202.95C1042.59 1203.73 1041.87 1204.75 1041.41 1206C1040.94 1207.26 1040.71 1208.62 1040.71 1210.08C1040.71 1211.54 1040.94 1212.89 1041.41 1214.14C1041.87 1215.39 1042.59 1216.4 1043.55 1217.17C1044.52 1217.94 1045.75 1218.32 1047.24 1218.32ZM1065.6 1207.75V1220.88H1062.25V1199.06H1065.49V1202.47H1065.77C1066.28 1201.36 1067.06 1200.47 1068.1 1199.8C1069.14 1199.12 1070.49 1198.77 1072.13 1198.77C1073.61 1198.77 1074.9 1199.08 1076.01 1199.68C1077.12 1200.28 1077.98 1201.19 1078.6 1202.41C1079.21 1203.62 1079.52 1205.16 1079.52 1207.01V1220.88H1076.17V1207.24C1076.17 1205.53 1075.72 1204.19 1074.83 1203.23C1073.94 1202.27 1072.72 1201.79 1071.17 1201.79C1070.1 1201.79 1069.14 1202.02 1068.3 1202.48C1067.47 1202.95 1066.81 1203.62 1066.32 1204.51C1065.84 1205.4 1065.6 1206.48 1065.6 1207.75ZM1097.35 1220.88V1191.79H1107.18C1109.45 1191.79 1111.32 1192.17 1112.78 1192.95C1114.24 1193.72 1115.31 1194.77 1116.02 1196.12C1116.72 1197.46 1117.07 1198.99 1117.07 1200.71C1117.07 1202.42 1116.72 1203.94 1116.02 1205.27C1115.31 1206.59 1114.24 1207.63 1112.79 1208.39C1111.34 1209.14 1109.49 1209.51 1107.24 1209.51H1099.28V1206.33H1107.12C1108.68 1206.33 1109.93 1206.1 1110.87 1205.65C1111.83 1205.2 1112.52 1204.55 1112.95 1203.72C1113.38 1202.88 1113.6 1201.87 1113.6 1200.71C1113.6 1199.54 1113.38 1198.52 1112.95 1197.65C1112.51 1196.78 1111.82 1196.11 1110.86 1195.64C1109.9 1195.15 1108.64 1194.91 1107.07 1194.91H1100.87V1220.88H1097.35ZM1111.04 1207.81L1118.2 1220.88H1114.11L1107.07 1207.81H1111.04ZM1130.49 1221.33C1128.67 1221.33 1127.06 1220.87 1125.67 1219.95C1124.28 1219.03 1123.19 1217.72 1122.4 1216.03C1121.62 1214.34 1121.23 1212.34 1121.23 1210.02C1121.23 1207.73 1121.62 1205.74 1122.4 1204.06C1123.19 1202.37 1124.28 1201.07 1125.69 1200.15C1127.09 1199.23 1128.71 1198.77 1130.54 1198.77C1131.96 1198.77 1133.09 1199.01 1133.91 1199.48C1134.74 1199.95 1135.38 1200.48 1135.81 1201.08C1136.26 1201.66 1136.6 1202.15 1136.85 1202.52H1137.13V1191.79H1140.49V1220.88H1137.25V1217.52H1136.85C1136.6 1217.92 1136.25 1218.42 1135.8 1219.03C1135.34 1219.63 1134.7 1220.16 1133.85 1220.64C1133.01 1221.1 1131.89 1221.33 1130.49 1221.33ZM1130.94 1218.32C1132.29 1218.32 1133.42 1217.97 1134.35 1217.27C1135.28 1216.56 1135.98 1215.58 1136.47 1214.33C1136.95 1213.07 1137.19 1211.62 1137.19 1209.97C1137.19 1208.34 1136.95 1206.91 1136.48 1205.69C1136.01 1204.46 1135.31 1203.5 1134.38 1202.82C1133.45 1202.13 1132.3 1201.79 1130.94 1201.79C1129.52 1201.79 1128.34 1202.15 1127.39 1202.88C1126.45 1203.6 1125.75 1204.58 1125.27 1205.82C1124.81 1207.05 1124.58 1208.43 1124.58 1209.97C1124.58 1211.52 1124.81 1212.93 1125.29 1214.2C1125.77 1215.46 1126.48 1216.46 1127.42 1217.21C1128.37 1217.95 1129.54 1218.32 1130.94 1218.32ZM1152.09 1216.9L1151.86 1218.43C1151.7 1219.51 1151.46 1220.67 1151.13 1221.9C1150.8 1223.13 1150.47 1224.29 1150.12 1225.38C1149.77 1226.47 1149.48 1227.34 1149.25 1227.98H1146.69C1146.82 1227.37 1146.98 1226.57 1147.18 1225.58C1147.38 1224.58 1147.57 1223.47 1147.77 1222.24C1147.98 1221.02 1148.15 1219.77 1148.28 1218.49L1148.46 1216.9H1152.09Z\",fill:\"#AAAAAF\"})),_path73||(_path73=/*#__PURE__*/React.createElement(\"path\",{d:\"M561.932 1250.88H558.409C558.201 1249.86 557.836 1248.97 557.315 1248.21C556.804 1247.44 556.179 1246.8 555.44 1246.27C554.711 1245.74 553.902 1245.35 553.011 1245.08C552.121 1244.82 551.193 1244.68 550.227 1244.68C548.466 1244.68 546.87 1245.13 545.44 1246.02C544.02 1246.91 542.888 1248.22 542.045 1249.95C541.212 1251.69 540.795 1253.81 540.795 1256.33C540.795 1258.85 541.212 1260.98 542.045 1262.71C542.888 1264.44 544.02 1265.75 545.44 1266.64C546.87 1267.53 548.466 1267.98 550.227 1267.98C551.193 1267.98 552.121 1267.85 553.011 1267.58C553.902 1267.32 554.711 1266.92 555.44 1266.4C556.179 1265.87 556.804 1265.22 557.315 1264.46C557.836 1263.68 558.201 1262.79 558.409 1261.79H561.932C561.667 1263.27 561.184 1264.6 560.483 1265.78C559.782 1266.95 558.911 1267.95 557.869 1268.77C556.828 1269.59 555.658 1270.21 554.361 1270.64C553.073 1271.06 551.695 1271.27 550.227 1271.27C547.746 1271.27 545.54 1270.67 543.608 1269.46C541.676 1268.24 540.156 1266.52 539.048 1264.29C537.94 1262.05 537.386 1259.4 537.386 1256.33C537.386 1253.26 537.94 1250.61 539.048 1248.38C540.156 1246.14 541.676 1244.42 543.608 1243.21C545.54 1241.99 547.746 1241.39 550.227 1241.39C551.695 1241.39 553.073 1241.6 554.361 1242.03C555.658 1242.45 556.828 1243.08 557.869 1243.9C558.911 1244.72 559.782 1245.71 560.483 1246.89C561.184 1248.05 561.667 1249.38 561.932 1250.88ZM570.522 1257.75V1270.88H567.17V1241.79H570.522V1252.47H570.806C571.317 1251.34 572.085 1250.45 573.107 1249.78C574.139 1249.11 575.513 1248.77 577.227 1248.77C578.713 1248.77 580.015 1249.07 581.133 1249.67C582.25 1250.26 583.117 1251.16 583.732 1252.38C584.357 1253.59 584.67 1255.14 584.67 1257.01V1270.88H581.317V1257.24C581.317 1255.51 580.868 1254.17 579.968 1253.22C579.078 1252.26 577.842 1251.79 576.261 1251.79C575.162 1251.79 574.177 1252.02 573.306 1252.48C572.444 1252.95 571.763 1253.62 571.261 1254.51C570.768 1255.4 570.522 1256.48 570.522 1257.75ZM599.95 1271.33C597.848 1271.33 596.035 1270.87 594.51 1269.94C592.995 1269 591.825 1267.7 591.001 1266.02C590.187 1264.33 589.78 1262.37 589.78 1260.14C589.78 1257.9 590.187 1255.93 591.001 1254.23C591.825 1252.52 592.971 1251.18 594.439 1250.22C595.916 1249.26 597.64 1248.77 599.609 1248.77C600.746 1248.77 601.868 1248.96 602.976 1249.34C604.084 1249.72 605.092 1250.34 606.001 1251.19C606.911 1252.03 607.635 1253.15 608.175 1254.54C608.714 1255.93 608.984 1257.65 608.984 1259.68V1261.1H592.166V1258.21H605.575C605.575 1256.98 605.329 1255.88 604.837 1254.91C604.354 1253.95 603.662 1253.18 602.763 1252.62C601.873 1252.07 600.821 1251.79 599.609 1251.79C598.274 1251.79 597.119 1252.12 596.143 1252.78C595.178 1253.43 594.434 1254.29 593.913 1255.34C593.393 1256.39 593.132 1257.52 593.132 1258.72V1260.65C593.132 1262.3 593.416 1263.69 593.984 1264.84C594.562 1265.98 595.362 1266.84 596.385 1267.44C597.408 1268.03 598.596 1268.32 599.95 1268.32C600.831 1268.32 601.626 1268.2 602.337 1267.95C603.056 1267.7 603.677 1267.32 604.197 1266.81C604.718 1266.3 605.121 1265.67 605.405 1264.91L608.643 1265.82C608.303 1266.92 607.73 1267.88 606.925 1268.72C606.12 1269.54 605.125 1270.19 603.942 1270.65C602.758 1271.1 601.428 1271.33 599.95 1271.33ZM614.084 1270.88V1249.06H617.322V1252.47H617.607C618.061 1251.3 618.795 1250.4 619.808 1249.75C620.821 1249.1 622.038 1248.77 623.459 1248.77C624.898 1248.77 626.096 1249.1 627.053 1249.75C628.018 1250.4 628.771 1251.3 629.311 1252.47H629.538C630.097 1251.34 630.935 1250.45 632.053 1249.78C633.17 1249.11 634.51 1248.77 636.072 1248.77C638.023 1248.77 639.619 1249.39 640.859 1250.61C642.1 1251.82 642.72 1253.71 642.72 1256.27V1270.88H639.368V1256.27C639.368 1254.66 638.928 1253.51 638.047 1252.82C637.166 1252.13 636.129 1251.79 634.936 1251.79C633.402 1251.79 632.214 1252.25 631.371 1253.18C630.528 1254.1 630.107 1255.26 630.107 1256.67V1270.88H626.697V1255.93C626.697 1254.69 626.295 1253.69 625.49 1252.94C624.685 1252.17 623.648 1251.79 622.379 1251.79C621.508 1251.79 620.694 1252.02 619.936 1252.48C619.188 1252.95 618.582 1253.59 618.118 1254.41C617.663 1255.23 617.436 1256.17 617.436 1257.24V1270.88H614.084ZM649.304 1270.88V1241.79H652.656V1252.52H652.94C653.187 1252.15 653.527 1251.66 653.963 1251.08C654.408 1250.48 655.043 1249.95 655.866 1249.48C656.7 1249.01 657.827 1248.77 659.247 1248.77C661.084 1248.77 662.704 1249.23 664.105 1250.15C665.507 1251.07 666.6 1252.37 667.386 1254.06C668.172 1255.74 668.565 1257.73 668.565 1260.02C668.565 1262.34 668.172 1264.34 667.386 1266.03C666.6 1267.72 665.511 1269.03 664.119 1269.95C662.727 1270.87 661.122 1271.33 659.304 1271.33C657.902 1271.33 656.78 1271.1 655.938 1270.64C655.095 1270.16 654.446 1269.63 653.991 1269.03C653.537 1268.42 653.187 1267.92 652.94 1267.52H652.543V1270.88H649.304ZM652.599 1259.97C652.599 1261.62 652.841 1263.07 653.324 1264.33C653.807 1265.58 654.512 1266.56 655.44 1267.27C656.368 1267.97 657.505 1268.32 658.849 1268.32C660.251 1268.32 661.42 1267.95 662.358 1267.21C663.305 1266.46 664.015 1265.46 664.489 1264.2C664.972 1262.93 665.213 1261.52 665.213 1259.97C665.213 1258.43 664.976 1257.05 664.503 1255.82C664.039 1254.58 663.333 1253.6 662.386 1252.88C661.449 1252.15 660.27 1251.79 658.849 1251.79C657.486 1251.79 656.34 1252.13 655.412 1252.82C654.484 1253.5 653.783 1254.46 653.31 1255.69C652.836 1256.91 652.599 1258.34 652.599 1259.97ZM687.443 1261.96V1249.06H690.795V1270.88H687.443V1267.18H687.216C686.705 1268.29 685.909 1269.23 684.83 1270.01C683.75 1270.78 682.386 1271.16 680.739 1271.16C679.375 1271.16 678.163 1270.86 677.102 1270.27C676.042 1269.66 675.208 1268.75 674.602 1267.54C673.996 1266.32 673.693 1264.78 673.693 1262.92V1249.06H677.045V1262.7C677.045 1264.29 677.491 1265.55 678.381 1266.5C679.28 1267.45 680.426 1267.92 681.818 1267.92C682.652 1267.92 683.499 1267.71 684.361 1267.28C685.232 1266.86 685.961 1266.2 686.548 1265.32C687.145 1264.44 687.443 1263.32 687.443 1261.96ZM696.935 1270.88V1249.06H700.174V1252.35H700.401C700.799 1251.27 701.519 1250.4 702.56 1249.73C703.602 1249.05 704.776 1248.72 706.083 1248.72C706.329 1248.72 706.637 1248.72 707.006 1248.73C707.376 1248.74 707.655 1248.76 707.844 1248.77V1252.18C707.731 1252.16 707.47 1252.11 707.063 1252.06C706.665 1251.99 706.244 1251.96 705.799 1251.96C704.738 1251.96 703.791 1252.18 702.958 1252.62C702.134 1253.06 701.481 1253.67 700.998 1254.44C700.524 1255.21 700.288 1256.09 700.288 1257.07V1270.88H696.935ZM723.523 1270.88V1241.79H741.08V1244.91H727.045V1254.74H740.17V1257.87H727.045V1267.75H741.307V1270.88H723.523ZM753.395 1271.39C752.012 1271.39 750.758 1271.13 749.631 1270.61C748.504 1270.08 747.609 1269.31 746.946 1268.32C746.283 1267.32 745.952 1266.1 745.952 1264.68C745.952 1263.43 746.198 1262.42 746.69 1261.64C747.183 1260.86 747.841 1260.24 748.665 1259.8C749.489 1259.35 750.398 1259.02 751.392 1258.8C752.396 1258.58 753.404 1258.4 754.418 1258.26C755.743 1258.09 756.818 1257.97 757.642 1257.88C758.475 1257.79 759.081 1257.63 759.46 1257.41C759.848 1257.19 760.043 1256.81 760.043 1256.27V1256.16C760.043 1254.76 759.659 1253.67 758.892 1252.89C758.134 1252.12 756.984 1251.73 755.44 1251.73C753.84 1251.73 752.585 1252.08 751.676 1252.78C750.767 1253.48 750.128 1254.23 749.759 1255.02L746.577 1253.89C747.145 1252.56 747.902 1251.53 748.849 1250.79C749.806 1250.04 750.848 1249.52 751.974 1249.23C753.111 1248.93 754.228 1248.77 755.327 1248.77C756.027 1248.77 756.832 1248.86 757.741 1249.03C758.66 1249.19 759.545 1249.53 760.398 1250.04C761.259 1250.55 761.974 1251.32 762.543 1252.35C763.111 1253.39 763.395 1254.77 763.395 1256.5V1270.88H760.043V1267.92H759.872C759.645 1268.4 759.266 1268.9 758.736 1269.44C758.205 1269.98 757.5 1270.44 756.619 1270.82C755.739 1271.2 754.664 1271.39 753.395 1271.39ZM753.906 1268.38C755.232 1268.38 756.349 1268.12 757.259 1267.6C758.177 1267.07 758.868 1266.4 759.332 1265.58C759.806 1264.75 760.043 1263.89 760.043 1262.98V1259.91C759.901 1260.08 759.588 1260.24 759.105 1260.38C758.632 1260.51 758.082 1260.63 757.457 1260.73C756.842 1260.83 756.241 1260.91 755.653 1260.99C755.076 1261.06 754.607 1261.11 754.247 1261.16C753.376 1261.27 752.562 1261.46 751.804 1261.72C751.056 1261.96 750.45 1262.34 749.986 1262.84C749.531 1263.33 749.304 1264 749.304 1264.85C749.304 1266.02 749.735 1266.9 750.597 1267.5C751.468 1268.08 752.571 1268.38 753.906 1268.38ZM784.968 1253.95L781.957 1254.8C781.767 1254.3 781.488 1253.81 781.119 1253.33C780.759 1252.85 780.266 1252.45 779.641 1252.14C779.016 1251.83 778.216 1251.67 777.241 1251.67C775.906 1251.67 774.793 1251.98 773.903 1252.6C773.022 1253.2 772.582 1253.97 772.582 1254.91C772.582 1255.74 772.885 1256.4 773.491 1256.89C774.097 1257.37 775.044 1257.77 776.332 1258.09L779.57 1258.89C781.521 1259.36 782.975 1260.09 783.931 1261.06C784.888 1262.03 785.366 1263.27 785.366 1264.8C785.366 1266.05 785.006 1267.16 784.286 1268.15C783.576 1269.13 782.582 1269.91 781.303 1270.48C780.025 1271.05 778.538 1271.33 776.843 1271.33C774.618 1271.33 772.776 1270.85 771.317 1269.88C769.859 1268.92 768.936 1267.51 768.548 1265.65L771.729 1264.85C772.032 1266.03 772.605 1266.91 773.448 1267.5C774.3 1268.08 775.413 1268.38 776.786 1268.38C778.349 1268.38 779.589 1268.05 780.508 1267.38C781.436 1266.71 781.9 1265.91 781.9 1264.97C781.9 1264.21 781.635 1263.58 781.104 1263.06C780.574 1262.54 779.76 1262.16 778.661 1261.9L775.025 1261.05C773.027 1260.57 771.559 1259.84 770.621 1258.85C769.693 1257.84 769.229 1256.59 769.229 1255.08C769.229 1253.85 769.575 1252.76 770.266 1251.81C770.967 1250.87 771.919 1250.12 773.121 1249.58C774.334 1249.04 775.707 1248.77 777.241 1248.77C779.4 1248.77 781.095 1249.25 782.326 1250.2C783.567 1251.14 784.447 1252.39 784.968 1253.95ZM799.901 1249.06V1251.9H788.594V1249.06H799.901ZM791.889 1243.83H795.241V1264.63C795.241 1265.57 795.379 1266.28 795.653 1266.76C795.938 1267.22 796.297 1267.53 796.733 1267.7C797.178 1267.85 797.647 1267.92 798.139 1267.92C798.509 1267.92 798.812 1267.9 799.048 1267.87C799.285 1267.82 799.474 1267.78 799.616 1267.75L800.298 1270.76C800.071 1270.85 799.754 1270.93 799.347 1271.02C798.939 1271.11 798.423 1271.16 797.798 1271.16C796.851 1271.16 795.923 1270.96 795.014 1270.55C794.115 1270.14 793.366 1269.52 792.77 1268.69C792.183 1267.86 791.889 1266.8 791.889 1265.54V1243.83ZM809.943 1266.9L809.716 1268.43C809.555 1269.51 809.309 1270.67 808.977 1271.9C808.655 1273.13 808.319 1274.29 807.969 1275.38C807.618 1276.47 807.33 1277.34 807.102 1277.98H804.545C804.669 1277.37 804.83 1276.57 805.028 1275.58C805.227 1274.58 805.426 1273.47 805.625 1272.24C805.833 1271.02 806.004 1269.77 806.136 1268.49L806.307 1266.9H809.943ZM827.859 1241.79H832.063L841.95 1265.93H842.29L852.177 1241.79H856.381V1270.88H853.086V1248.77H852.802L843.711 1270.88H840.529L831.438 1248.77H831.154V1270.88H827.859V1241.79ZM876.74 1261.96V1249.06H880.092V1270.88H876.74V1267.18H876.513C876.001 1268.29 875.206 1269.23 874.126 1270.01C873.047 1270.78 871.683 1271.16 870.036 1271.16C868.672 1271.16 867.46 1270.86 866.399 1270.27C865.339 1269.66 864.505 1268.75 863.899 1267.54C863.293 1266.32 862.99 1264.78 862.99 1262.92V1249.06H866.342V1262.7C866.342 1264.29 866.787 1265.55 867.678 1266.5C868.577 1267.45 869.723 1267.92 871.115 1267.92C871.948 1267.92 872.796 1267.71 873.658 1267.28C874.529 1266.86 875.258 1266.2 875.845 1265.32C876.442 1264.44 876.74 1263.32 876.74 1261.96ZM886.232 1270.88V1249.06H889.471V1252.47H889.755C890.21 1251.3 890.943 1250.4 891.957 1249.75C892.97 1249.1 894.187 1248.77 895.607 1248.77C897.047 1248.77 898.245 1249.1 899.201 1249.75C900.167 1250.4 900.92 1251.3 901.46 1252.47H901.687C902.246 1251.34 903.084 1250.45 904.201 1249.78C905.318 1249.11 906.658 1248.77 908.221 1248.77C910.172 1248.77 911.767 1249.39 913.008 1250.61C914.248 1251.82 914.869 1253.71 914.869 1256.27V1270.88H911.516V1256.27C911.516 1254.66 911.076 1253.51 910.195 1252.82C909.315 1252.13 908.278 1251.79 907.085 1251.79C905.55 1251.79 904.362 1252.25 903.519 1253.18C902.676 1254.1 902.255 1255.26 902.255 1256.67V1270.88H898.846V1255.93C898.846 1254.69 898.443 1253.69 897.638 1252.94C896.834 1252.17 895.797 1251.79 894.528 1251.79C893.656 1251.79 892.842 1252.02 892.085 1252.48C891.336 1252.95 890.73 1253.59 890.266 1254.41C889.812 1255.23 889.585 1256.17 889.585 1257.24V1270.88H886.232ZM921.452 1270.88V1241.79H924.805V1252.52H925.089C925.335 1252.15 925.676 1251.66 926.112 1251.08C926.557 1250.48 927.191 1249.95 928.015 1249.48C928.848 1249.01 929.975 1248.77 931.396 1248.77C933.233 1248.77 934.852 1249.23 936.254 1250.15C937.655 1251.07 938.749 1252.37 939.535 1254.06C940.321 1255.74 940.714 1257.73 940.714 1260.02C940.714 1262.34 940.321 1264.34 939.535 1266.03C938.749 1267.72 937.66 1269.03 936.268 1269.95C934.876 1270.87 933.271 1271.33 931.452 1271.33C930.051 1271.33 928.929 1271.1 928.086 1270.64C927.243 1270.16 926.594 1269.63 926.14 1269.03C925.685 1268.42 925.335 1267.92 925.089 1267.52H924.691V1270.88H921.452ZM924.748 1259.97C924.748 1261.62 924.989 1263.07 925.472 1264.33C925.955 1265.58 926.661 1266.56 927.589 1267.27C928.517 1267.97 929.653 1268.32 930.998 1268.32C932.399 1268.32 933.569 1267.95 934.506 1267.21C935.453 1266.46 936.164 1265.46 936.637 1264.2C937.12 1262.93 937.362 1261.52 937.362 1259.97C937.362 1258.43 937.125 1257.05 936.651 1255.82C936.187 1254.58 935.482 1253.6 934.535 1252.88C933.597 1252.15 932.418 1251.79 930.998 1251.79C929.634 1251.79 928.488 1252.13 927.56 1252.82C926.632 1253.5 925.932 1254.46 925.458 1255.69C924.985 1256.91 924.748 1258.34 924.748 1259.97ZM952.262 1271.39C950.879 1271.39 949.625 1271.13 948.498 1270.61C947.371 1270.08 946.476 1269.31 945.813 1268.32C945.15 1267.32 944.819 1266.1 944.819 1264.68C944.819 1263.43 945.065 1262.42 945.558 1261.64C946.05 1260.86 946.708 1260.24 947.532 1259.8C948.356 1259.35 949.265 1259.02 950.259 1258.8C951.263 1258.58 952.272 1258.4 953.285 1258.26C954.611 1258.09 955.685 1257.97 956.509 1257.88C957.343 1257.79 957.949 1257.63 958.327 1257.41C958.716 1257.19 958.91 1256.81 958.91 1256.27V1256.16C958.91 1254.76 958.526 1253.67 957.759 1252.89C957.002 1252.12 955.851 1251.73 954.308 1251.73C952.707 1251.73 951.452 1252.08 950.543 1252.78C949.634 1253.48 948.995 1254.23 948.626 1255.02L945.444 1253.89C946.012 1252.56 946.77 1251.53 947.717 1250.79C948.673 1250.04 949.715 1249.52 950.842 1249.23C951.978 1248.93 953.095 1248.77 954.194 1248.77C954.895 1248.77 955.7 1248.86 956.609 1249.03C957.527 1249.19 958.413 1249.53 959.265 1250.04C960.127 1250.55 960.842 1251.32 961.41 1252.35C961.978 1253.39 962.262 1254.77 962.262 1256.5V1270.88H958.91V1267.92H958.739C958.512 1268.4 958.133 1268.9 957.603 1269.44C957.073 1269.98 956.367 1270.44 955.487 1270.82C954.606 1271.2 953.531 1271.39 952.262 1271.39ZM952.773 1268.38C954.099 1268.38 955.217 1268.12 956.126 1267.6C957.044 1267.07 957.736 1266.4 958.2 1265.58C958.673 1264.75 958.91 1263.89 958.91 1262.98V1259.91C958.768 1260.08 958.455 1260.24 957.972 1260.38C957.499 1260.51 956.95 1260.63 956.325 1260.73C955.709 1260.83 955.108 1260.91 954.521 1260.99C953.943 1261.06 953.474 1261.11 953.114 1261.16C952.243 1261.27 951.429 1261.46 950.671 1261.72C949.923 1261.96 949.317 1262.34 948.853 1262.84C948.398 1263.33 948.171 1264 948.171 1264.85C948.171 1266.02 948.602 1266.9 949.464 1267.5C950.335 1268.08 951.438 1268.38 952.773 1268.38ZM968.381 1270.88V1249.06H971.733V1270.88H968.381ZM970.085 1245.42C969.432 1245.42 968.868 1245.2 968.395 1244.75C967.931 1244.31 967.699 1243.77 967.699 1243.15C967.699 1242.52 967.931 1241.99 968.395 1241.54C968.868 1241.1 969.432 1240.88 970.085 1240.88C970.739 1240.88 971.297 1241.1 971.761 1241.54C972.235 1241.99 972.472 1242.52 972.472 1243.15C972.472 1243.77 972.235 1244.31 971.761 1244.75C971.297 1245.2 970.739 1245.42 970.085 1245.42Z\",fill:\"#AAAAAF\"})))),_path74||(_path74=/*#__PURE__*/React.createElement(\"path\",{d:\"M129.25 457H106.807V384.273H130.244C137.299 384.273 143.336 385.729 148.355 388.641C153.374 391.529 157.221 395.684 159.896 401.105C162.571 406.503 163.909 412.966 163.909 420.494C163.909 428.07 162.56 434.592 159.861 440.061C157.162 445.506 153.232 449.696 148.071 452.632C142.91 455.544 136.636 457 129.25 457ZM115.614 449.188H128.682C134.695 449.188 139.679 448.027 143.632 445.707C147.586 443.387 150.533 440.085 152.474 435.8C154.416 431.515 155.386 426.413 155.386 420.494C155.386 414.623 154.428 409.569 152.51 405.331C150.592 401.07 147.728 397.803 143.916 395.53C140.105 393.233 135.358 392.085 129.676 392.085H115.614V449.188ZM199.705 458.136C194.78 458.136 190.46 456.964 186.743 454.621C183.05 452.277 180.161 448.998 178.078 444.784C176.018 440.57 174.989 435.646 174.989 430.011C174.989 424.33 176.018 419.37 178.078 415.132C180.161 410.894 183.05 407.604 186.743 405.26C190.46 402.916 194.78 401.744 199.705 401.744C204.629 401.744 208.938 402.916 212.631 405.26C216.348 407.604 219.236 410.894 221.295 415.132C223.379 419.37 224.42 424.33 224.42 430.011C224.42 435.646 223.379 440.57 221.295 444.784C219.236 448.998 216.348 452.277 212.631 454.621C208.938 456.964 204.629 458.136 199.705 458.136ZM199.705 450.608C203.445 450.608 206.523 449.649 208.938 447.732C211.352 445.814 213.14 443.293 214.3 440.168C215.46 437.043 216.04 433.657 216.04 430.011C216.04 426.366 215.46 422.968 214.3 419.82C213.14 416.671 211.352 414.126 208.938 412.185C206.523 410.243 203.445 409.273 199.705 409.273C195.964 409.273 192.886 410.243 190.472 412.185C188.057 414.126 186.269 416.671 185.109 419.82C183.949 422.968 183.369 426.366 183.369 430.011C183.369 433.657 183.949 437.043 185.109 440.168C186.269 443.293 188.057 445.814 190.472 447.732C192.886 449.649 195.964 450.608 199.705 450.608ZM259.373 458.136C254.259 458.136 249.855 456.929 246.162 454.514C242.469 452.099 239.628 448.773 237.64 444.536C235.651 440.298 234.657 435.456 234.657 430.011C234.657 424.472 235.675 419.583 237.711 415.345C239.77 411.084 242.635 407.758 246.304 405.366C249.998 402.952 254.306 401.744 259.23 401.744C263.066 401.744 266.522 402.455 269.6 403.875C272.677 405.295 275.199 407.284 277.164 409.841C279.129 412.398 280.348 415.381 280.821 418.79H272.441C271.801 416.304 270.381 414.102 268.179 412.185C266.001 410.243 263.066 409.273 259.373 409.273C256.105 409.273 253.241 410.125 250.779 411.83C248.34 413.51 246.435 415.89 245.061 418.967C243.712 422.021 243.037 425.608 243.037 429.727C243.037 433.941 243.7 437.611 245.026 440.736C246.375 443.861 248.269 446.287 250.708 448.016C253.17 449.744 256.058 450.608 259.373 450.608C261.551 450.608 263.527 450.229 265.303 449.472C267.078 448.714 268.582 447.625 269.813 446.205C271.044 444.784 271.92 443.08 272.441 441.091H280.821C280.348 444.311 279.176 447.211 277.306 449.791C275.459 452.348 273.009 454.384 269.955 455.899C266.925 457.391 263.397 458.136 259.373 458.136ZM316.794 402.455V409.557H288.527V402.455H316.794ZM296.766 389.386H305.147V441.375C305.147 443.742 305.49 445.518 306.176 446.702C306.887 447.862 307.786 448.643 308.875 449.045C309.988 449.424 311.16 449.614 312.391 449.614C313.314 449.614 314.072 449.566 314.664 449.472C315.256 449.353 315.729 449.259 316.084 449.188L317.789 456.716C317.221 456.929 316.427 457.142 315.409 457.355C314.391 457.592 313.101 457.71 311.539 457.71C309.171 457.71 306.851 457.201 304.578 456.183C302.329 455.165 300.459 453.615 298.968 451.531C297.5 449.448 296.766 446.82 296.766 443.648V389.386ZM350.974 458.136C346.05 458.136 341.729 456.964 338.012 454.621C334.319 452.277 331.431 448.998 329.348 444.784C327.288 440.57 326.258 435.646 326.258 430.011C326.258 424.33 327.288 419.37 329.348 415.132C331.431 410.894 334.319 407.604 338.012 405.26C341.729 402.916 346.05 401.744 350.974 401.744C355.898 401.744 360.207 402.916 363.9 405.26C367.617 407.604 370.505 410.894 372.565 415.132C374.648 419.37 375.69 424.33 375.69 430.011C375.69 435.646 374.648 440.57 372.565 444.784C370.505 448.998 367.617 452.277 363.9 454.621C360.207 456.964 355.898 458.136 350.974 458.136ZM350.974 450.608C354.715 450.608 357.792 449.649 360.207 447.732C362.622 445.814 364.409 443.293 365.569 440.168C366.729 437.043 367.309 433.657 367.309 430.011C367.309 426.366 366.729 422.968 365.569 419.82C364.409 416.671 362.622 414.126 360.207 412.185C357.792 410.243 354.715 409.273 350.974 409.273C347.234 409.273 344.156 410.243 341.741 412.185C339.326 414.126 337.539 416.671 336.379 419.82C335.219 422.968 334.639 426.366 334.639 430.011C334.639 433.657 335.219 437.043 336.379 440.168C337.539 443.293 339.326 445.814 341.741 447.732C344.156 449.649 347.234 450.608 350.974 450.608ZM388.483 457V402.455H396.58V410.693H397.148C398.142 407.994 399.941 405.804 402.545 404.124C405.15 402.443 408.085 401.602 411.352 401.602C411.968 401.602 412.737 401.614 413.661 401.638C414.584 401.661 415.282 401.697 415.756 401.744V410.267C415.472 410.196 414.821 410.089 413.803 409.947C412.808 409.782 411.755 409.699 410.642 409.699C407.991 409.699 405.623 410.255 403.54 411.368C401.48 412.457 399.847 413.972 398.639 415.913C397.455 417.831 396.864 420.021 396.864 422.483V457H388.483ZM457.934 384.273L479.525 445.494H480.377L501.968 384.273H511.201L484.497 457H475.406L448.701 384.273H457.934ZM539.184 458.136C533.929 458.136 529.395 456.976 525.583 454.656C521.796 452.312 518.872 449.045 516.812 444.855C514.776 440.641 513.758 435.741 513.758 430.153C513.758 424.566 514.776 419.642 516.812 415.381C518.872 411.096 521.736 407.758 525.406 405.366C529.099 402.952 533.408 401.744 538.332 401.744C541.173 401.744 543.978 402.218 546.748 403.165C549.518 404.112 552.039 405.651 554.312 407.781C556.585 409.888 558.396 412.682 559.745 416.162C561.095 419.642 561.77 423.927 561.77 429.017V432.568H519.724V425.324H553.247C553.247 422.246 552.631 419.5 551.4 417.085C550.193 414.67 548.465 412.765 546.216 411.368C543.99 409.971 541.362 409.273 538.332 409.273C534.994 409.273 532.106 410.101 529.667 411.759C527.252 413.392 525.394 415.523 524.092 418.151C522.79 420.778 522.139 423.596 522.139 426.602V431.432C522.139 435.551 522.849 439.043 524.27 441.908C525.714 444.749 527.714 446.915 530.271 448.406C532.828 449.874 535.799 450.608 539.184 450.608C541.386 450.608 543.375 450.3 545.15 449.685C546.949 449.045 548.5 448.098 549.802 446.844C551.104 445.565 552.11 443.979 552.821 442.085L560.917 444.358C560.065 447.104 558.633 449.519 556.62 451.602C554.608 453.662 552.122 455.272 549.163 456.432C546.204 457.568 542.877 458.136 539.184 458.136ZM595.115 458.136C590.569 458.136 586.556 456.988 583.076 454.692C579.596 452.372 576.874 449.105 574.909 444.891C572.944 440.653 571.961 435.646 571.961 429.869C571.961 424.14 572.944 419.169 574.909 414.955C576.874 410.741 579.608 407.485 583.112 405.189C586.616 402.893 590.664 401.744 595.257 401.744C598.808 401.744 601.613 402.336 603.673 403.52C605.756 404.68 607.342 406.006 608.431 407.497C609.544 408.965 610.408 410.172 611.024 411.119H611.734V384.273H620.115V457H612.018V448.619H611.024C610.408 449.614 609.532 450.868 608.396 452.384C607.26 453.875 605.638 455.213 603.531 456.396C601.424 457.556 598.618 458.136 595.115 458.136ZM596.251 450.608C599.613 450.608 602.454 449.732 604.774 447.98C607.094 446.205 608.858 443.754 610.065 440.629C611.272 437.481 611.876 433.847 611.876 429.727C611.876 425.655 611.284 422.092 610.1 419.038C608.917 415.961 607.165 413.57 604.845 411.865C602.525 410.137 599.66 409.273 596.251 409.273C592.7 409.273 589.741 410.184 587.373 412.007C585.029 413.806 583.266 416.257 582.082 419.358C580.922 422.436 580.342 425.892 580.342 429.727C580.342 433.61 580.934 437.137 582.118 440.31C583.325 443.458 585.1 445.968 587.444 447.838C589.812 449.685 592.747 450.608 596.251 450.608ZM636.627 457V402.455H645.008V457H636.627ZM640.889 393.364C639.255 393.364 637.847 392.807 636.663 391.695C635.503 390.582 634.923 389.244 634.923 387.682C634.923 386.119 635.503 384.782 636.663 383.669C637.847 382.556 639.255 382 640.889 382C642.522 382 643.919 382.556 645.079 383.669C646.263 384.782 646.855 386.119 646.855 387.682C646.855 389.244 646.263 390.582 645.079 391.695C643.919 392.807 642.522 393.364 640.889 393.364ZM668.17 437.114L668.028 426.744H669.733L693.597 402.455H703.966L678.54 428.165H677.83L668.17 437.114ZM660.358 457V384.273H668.739V457H660.358ZM695.017 457L673.71 430.011L679.676 424.188L705.67 457H695.017ZM730.804 458.278C727.347 458.278 724.21 457.627 721.393 456.325C718.576 455 716.339 453.094 714.681 450.608C713.024 448.098 712.196 445.068 712.196 441.517C712.196 438.392 712.811 435.859 714.042 433.918C715.273 431.953 716.919 430.414 718.978 429.301C721.038 428.188 723.311 427.36 725.797 426.815C728.306 426.247 730.827 425.797 733.36 425.466C736.675 425.04 739.362 424.72 741.422 424.507C743.505 424.27 745.02 423.88 745.967 423.335C746.938 422.791 747.423 421.844 747.423 420.494V420.21C747.423 416.706 746.464 413.984 744.547 412.043C742.653 410.101 739.776 409.131 735.917 409.131C731.916 409.131 728.779 410.007 726.507 411.759C724.234 413.51 722.636 415.381 721.713 417.369L713.758 414.528C715.179 411.214 717.073 408.634 719.44 406.787C721.831 404.917 724.435 403.615 727.252 402.881C730.093 402.123 732.887 401.744 735.633 401.744C737.385 401.744 739.397 401.957 741.67 402.384C743.967 402.786 746.18 403.626 748.311 404.905C750.465 406.183 752.252 408.113 753.673 410.693C755.093 413.274 755.804 416.73 755.804 421.062V457H747.423V449.614H746.997C746.429 450.797 745.482 452.064 744.156 453.413C742.83 454.763 741.066 455.911 738.865 456.858C736.663 457.805 733.976 458.278 730.804 458.278ZM732.082 450.75C735.396 450.75 738.19 450.099 740.463 448.797C742.759 447.495 744.487 445.814 745.647 443.754C746.831 441.695 747.423 439.528 747.423 437.256V429.585C747.068 430.011 746.287 430.402 745.079 430.757C743.895 431.089 742.522 431.384 740.96 431.645C739.421 431.882 737.918 432.095 736.45 432.284C735.006 432.45 733.834 432.592 732.934 432.71C730.756 432.994 728.72 433.456 726.826 434.095C724.956 434.711 723.441 435.646 722.281 436.901C721.145 438.132 720.576 439.812 720.576 441.943C720.576 444.855 721.654 447.057 723.808 448.548C725.986 450.016 728.744 450.75 732.082 450.75Z\",fill:\"#4974CA\"}))),_defs||(_defs=/*#__PURE__*/React.createElement(\"defs\",null,/*#__PURE__*/React.createElement(\"filter\",{id:\"filter0_d_431_2\",x:538.235,y:1030.37,width:483.285,height:54.2197,filterUnits:\"userSpaceOnUse\",colorInterpolationFilters:\"sRGB\"},/*#__PURE__*/React.createElement(\"feFlood\",{floodOpacity:0,result:\"BackgroundImageFix\"}),/*#__PURE__*/React.createElement(\"feColorMatrix\",{in:\"SourceAlpha\",type:\"matrix\",values:\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",result:\"hardAlpha\"}),/*#__PURE__*/React.createElement(\"feOffset\",{dy:1}),/*#__PURE__*/React.createElement(\"feGaussianBlur\",{stdDeviation:0.5}),/*#__PURE__*/React.createElement(\"feComposite\",{in2:\"hardAlpha\",operator:\"out\"}),/*#__PURE__*/React.createElement(\"feColorMatrix\",{type:\"matrix\",values:\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\"}),/*#__PURE__*/React.createElement(\"feBlend\",{mode:\"normal\",in2:\"BackgroundImageFix\",result:\"effect1_dropShadow_431_2\"}),/*#__PURE__*/React.createElement(\"feBlend\",{mode:\"normal\",in:\"SourceGraphic\",in2:\"effect1_dropShadow_431_2\",result:\"shape\"})),/*#__PURE__*/React.createElement(\"pattern\",{id:\"pattern0\",patternContentUnits:\"objectBoundingBox\",width:1,height:1},/*#__PURE__*/React.createElement(\"use\",{xlinkHref:\"#image0_431_2\",transform:\"scale(0.00125)\"})),/*#__PURE__*/React.createElement(\"clipPath\",{id:\"clip0_431_2\"},/*#__PURE__*/React.createElement(\"rect\",{width:1440,height:2560,fill:\"white\"})),/*#__PURE__*/React.createElement(\"image\",{id:\"image0_431_2\",width:800,height:800,xlinkHref:\"data:image/jpeg;base64,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\"}))));}var ForwardRef=/*#__PURE__*/React.forwardRef(SvgImg2New);export default __webpack_public_path__+\"static/media/img2_new.d0c97925d06d181deaa9b601d7fedfb0.svg\";export{ForwardRef as ReactComponent};","import React from \"react\";\nimport img1 from \"../images/newSplashScreen.svg\";\nimport img2_new from \"../images/img2_new.svg\";\nimport img3 from \"../images/phones.svg\";\nimport \"../styles/Phone.scss\";\n\nconst Phone: React.FC = () => {\n return (\n
\n
\n
\n \"Skinsy\n
\n
\n
\n
\n \"Skinnzi\n
\n
\n
\n );\n};\n\nexport default Phone;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { getTransitionProps, reflow } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const timer = React.useRef();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import React, { useState, useEffect, useRef } from \"react\";\nimport { Grow } from \"@mui/material\";\ninterface Props {\n children: React.ReactNode;\n}\n\nconst FadeIn: React.FC = ({ children }) => {\n const [isVisible, setVisible] = useState(false);\n const domRef = useRef(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // console.log(`entry`, entry, `is = ${entry.isIntersecting}`);\n setVisible(entry.isIntersecting);\n });\n });\n\n const { current } = domRef;\n if (current) observer.observe(current);\n\n return () => {\n if (current) observer.unobserve(current);\n };\n }, []);\n\n return (\n \n
{children}
\n
\n );\n};\n\nexport default FadeIn;\n","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgSnap(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n preserveAspectRatio: \"xMidYMid meet\",\n viewBox: \"0 0 640 640\",\n width: 640,\n height: 640,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"\",\n id: \"d48XHYhHI\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M520.01 0C480.01 0 160 0 120 0C86.95 0 58.68 11.7 35.21 35.1C11.74 58.49 0 86.67 0 119.62C0 159.5 0 478.5 0 518.37C0 551.32 11.74 579.5 35.21 602.9C58.68 626.3 86.95 638 120 638C160 638 480.01 638 520.01 638C553.06 638 581.33 626.3 604.79 602.9C628.26 579.5 640 551.32 640 518.37C640 478.5 640 159.5 640 119.62C640 86.67 628.26 58.49 604.79 35.1C581.33 11.7 553.06 0 520.01 0Z\",\n id: \"b6MlTYu7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M520 300.85C520 411.88 427.43 502.02 313.41 502.02C199.39 502.02 106.82 411.88 106.82 300.85C106.82 189.83 199.39 99.69 313.41 99.69C427.43 99.69 520 189.83 520 300.85Z\",\n id: \"c1fbscsOB\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#d48XHYhHI\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#a84bd7\",\n strokeWidth: 1,\n strokeOpacity: 1\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b6MlTYu7\",\n opacity: 1,\n fill: \"#3F67F6\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b6MlTYu7\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c1fbscsOB\",\n opacity: 1,\n fill: \"#000000\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c1fbscsOB\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#fcfcfc\",\n strokeWidth: 15,\n strokeOpacity: 1\n })))))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSnap);\nexport default __webpack_public_path__ + \"static/media/snap.d11a0a6b61ae5f616dbe853bfd0e240a.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst GridContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n GridContext.displayName = 'GridContext';\n}\nexport default GridContext;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getGridUtilityClass(slot) {\n return generateUtilityClass('MuiGrid', slot);\n}\nconst SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];\nconst WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];\nconst GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nconst gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', 'zeroMinWidth',\n// spacings\n...SPACINGS.map(spacing => `spacing-xs-${spacing}`),\n// direction values\n...DIRECTIONS.map(direction => `direction-xs-${direction}`),\n// wrap values\n...WRAPS.map(wrap => `wrap-xs-${wrap}`),\n// grid sizes for all breakpoints\n...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);\nexport default gridClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"columns\", \"columnSpacing\", \"component\", \"container\", \"direction\", \"item\", \"rowSpacing\", \"spacing\", \"wrap\", \"zeroMinWidth\"];\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_extendSxProp as extendSxProp, handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport requirePropFactory from '../utils/requirePropFactory';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport GridContext from './GridContext';\nimport gridClasses, { getGridUtilityClass } from './gridClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getOffset(val) {\n const parse = parseFloat(val);\n return `${parse}${String(val).replace(String(parse), '') || 'px'}`;\n}\nexport function generateGrid({\n theme,\n ownerState\n}) {\n let size;\n return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {\n // Use side effect over immutability for better performance.\n let styles = {};\n if (ownerState[breakpoint]) {\n size = ownerState[breakpoint];\n }\n if (!size) {\n return globalStyles;\n }\n if (size === true) {\n // For the auto layouting\n styles = {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%'\n };\n } else if (size === 'auto') {\n styles = {\n flexBasis: 'auto',\n flexGrow: 0,\n flexShrink: 0,\n maxWidth: 'none',\n width: 'auto'\n };\n } else {\n const columnsBreakpointValues = resolveBreakpointValues({\n values: ownerState.columns,\n breakpoints: theme.breakpoints.values\n });\n const columnValue = typeof columnsBreakpointValues === 'object' ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;\n if (columnValue === undefined || columnValue === null) {\n return globalStyles;\n }\n // Keep 7 significant numbers.\n const width = `${Math.round(size / columnValue * 10e7) / 10e5}%`;\n let more = {};\n if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {\n const themeSpacing = theme.spacing(ownerState.columnSpacing);\n if (themeSpacing !== '0px') {\n const fullWidth = `calc(${width} + ${getOffset(themeSpacing)})`;\n more = {\n flexBasis: fullWidth,\n maxWidth: fullWidth\n };\n }\n }\n\n // Close to the bootstrap implementation:\n // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n styles = _extends({\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width\n }, more);\n }\n\n // No need for a media query for the first size.\n if (theme.breakpoints.values[breakpoint] === 0) {\n Object.assign(globalStyles, styles);\n } else {\n globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n }\n return globalStyles;\n }, {});\n}\nexport function generateDirection({\n theme,\n ownerState\n}) {\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n });\n return handleBreakpoints({\n theme\n }, directionValues, propValue => {\n const output = {\n flexDirection: propValue\n };\n if (propValue.indexOf('column') === 0) {\n output[`& > .${gridClasses.item}`] = {\n maxWidth: 'none'\n };\n }\n return output;\n });\n}\n\n/**\n * Extracts zero value breakpoint keys before a non-zero value breakpoint key.\n * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]\n * @returns [xs, sm]\n */\nfunction extractZeroValueBreakpointKeys({\n breakpoints,\n values\n}) {\n let nonZeroKey = '';\n Object.keys(values).forEach(key => {\n if (nonZeroKey !== '') {\n return;\n }\n if (values[key] !== 0) {\n nonZeroKey = key;\n }\n });\n const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {\n return breakpoints[a] - breakpoints[b];\n });\n return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));\n}\nexport function generateRowGap({\n theme,\n ownerState\n}) {\n const {\n container,\n rowSpacing\n } = ownerState;\n let styles = {};\n if (container && rowSpacing !== 0) {\n const rowSpacingValues = resolveBreakpointValues({\n values: rowSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof rowSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: rowSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, rowSpacingValues, (propValue, breakpoint) => {\n var _zeroValueBreakpointK;\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n marginTop: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingTop: getOffset(themeSpacing)\n }\n };\n }\n if ((_zeroValueBreakpointK = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK.includes(breakpoint)) {\n return {};\n }\n return {\n marginTop: 0,\n [`& > .${gridClasses.item}`]: {\n paddingTop: 0\n }\n };\n });\n }\n return styles;\n}\nexport function generateColumnGap({\n theme,\n ownerState\n}) {\n const {\n container,\n columnSpacing\n } = ownerState;\n let styles = {};\n if (container && columnSpacing !== 0) {\n const columnSpacingValues = resolveBreakpointValues({\n values: columnSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof columnSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: columnSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, columnSpacingValues, (propValue, breakpoint) => {\n var _zeroValueBreakpointK2;\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n width: `calc(100% + ${getOffset(themeSpacing)})`,\n marginLeft: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: getOffset(themeSpacing)\n }\n };\n }\n if ((_zeroValueBreakpointK2 = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK2.includes(breakpoint)) {\n return {};\n }\n return {\n width: '100%',\n marginLeft: 0,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: 0\n }\n };\n });\n }\n return styles;\n}\nexport function resolveSpacingStyles(spacing, breakpoints, styles = {}) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [styles[`spacing-xs-${String(spacing)}`]];\n }\n // in case of object `spacing`\n const spacingStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n spacingStyles.push(styles[`spacing-${breakpoint}-${String(value)}`]);\n }\n });\n return spacingStyles;\n}\n\n// Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\nconst GridRoot = styled('div', {\n name: 'MuiGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingStyles = [];\n\n // in case of grid item\n if (container) {\n spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);\n }\n const breakpointsStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsStyles.push(styles[`grid-${breakpoint}-${String(value)}`]);\n }\n });\n return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];\n }\n})(({\n ownerState\n}) => _extends({\n boxSizing: 'border-box'\n}, ownerState.container && {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%'\n}, ownerState.item && {\n margin: 0 // For instance, it's useful when used with a `figure` element.\n}, ownerState.zeroMinWidth && {\n minWidth: 0\n}, ownerState.wrap !== 'wrap' && {\n flexWrap: ownerState.wrap\n}), generateDirection, generateRowGap, generateColumnGap, generateGrid);\nexport function resolveSpacingClasses(spacing, breakpoints) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [`spacing-xs-${String(spacing)}`];\n }\n // in case of object `spacing`\n const classes = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n const className = `spacing-${breakpoint}-${String(value)}`;\n classes.push(className);\n }\n });\n return classes;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingClasses = [];\n\n // in case of grid item\n if (container) {\n spacingClasses = resolveSpacingClasses(spacing, breakpoints);\n }\n const breakpointsClasses = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);\n }\n });\n const slots = {\n root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]\n };\n return composeClasses(slots, getGridUtilityClass, classes);\n};\nconst Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiGrid'\n });\n const {\n breakpoints\n } = useTheme();\n const props = extendSxProp(themeProps);\n const {\n className,\n columns: columnsProp,\n columnSpacing: columnSpacingProp,\n component = 'div',\n container = false,\n direction = 'row',\n item = false,\n rowSpacing: rowSpacingProp,\n spacing = 0,\n wrap = 'wrap',\n zeroMinWidth = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rowSpacing = rowSpacingProp || spacing;\n const columnSpacing = columnSpacingProp || spacing;\n const columnsContext = React.useContext(GridContext);\n\n // columns set with default breakpoint unit of 12\n const columns = container ? columnsProp || 12 : columnsContext;\n const breakpointsValues = {};\n const otherFiltered = _extends({}, other);\n breakpoints.keys.forEach(breakpoint => {\n if (other[breakpoint] != null) {\n breakpointsValues[breakpoint] = other[breakpoint];\n delete otherFiltered[breakpoint];\n }\n });\n const ownerState = _extends({}, props, {\n columns,\n container,\n direction,\n item,\n rowSpacing,\n columnSpacing,\n wrap,\n zeroMinWidth,\n spacing\n }, breakpointsValues, {\n breakpoints: breakpoints.keys\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridContext.Provider, {\n value: columns,\n children: /*#__PURE__*/_jsx(GridRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n as: component,\n ref: ref\n }, otherFiltered))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grid.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The number of columns.\n * @default 12\n */\n columns: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number, PropTypes.object]),\n /**\n * Defines the horizontal space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n columnSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n container: PropTypes.bool,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'row'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n item: PropTypes.bool,\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n * @default false\n */\n lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n * @default false\n */\n md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the vertical space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n * @default false\n */\n sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the space between the type `item` components.\n * It can only be used on a type `container` component.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n * @default 'wrap'\n */\n wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n * @default false\n */\n xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n * @default false\n */\n zeroMinWidth: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n const requireProp = requirePropFactory('Grid', Grid);\n // eslint-disable-next-line no-useless-concat\n Grid['propTypes' + ''] = _extends({}, Grid.propTypes, {\n direction: requireProp('container'),\n lg: requireProp('item'),\n md: requireProp('item'),\n sm: requireProp('item'),\n spacing: requireProp('container'),\n wrap: requireProp('container'),\n xs: requireProp('item'),\n zeroMinWidth: requireProp('item')\n });\n}\nexport default Grid;","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"fixed\", \"maxWidth\", \"classes\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_capitalize as capitalize, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nimport useThemePropsSystem from '../useThemeProps';\nimport systemStyled from '../styled';\nimport createTheme from '../createTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n});\nconst useThemePropsDefault = inProps => useThemePropsSystem({\n props: inProps,\n name: 'MuiContainer',\n defaultTheme\n});\nconst useUtilityClasses = (ownerState, componentName) => {\n const getContainerUtilityClass = slot => {\n return generateUtilityClass(componentName, slot);\n };\n const {\n classes,\n fixed,\n disableGutters,\n maxWidth\n } = ownerState;\n const slots = {\n root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getContainerUtilityClass, classes);\n};\nexport default function createContainer(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiContainer'\n } = options;\n const ContainerRoot = createStyledComponent(({\n theme,\n ownerState\n }) => _extends({\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n display: 'block'\n }, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n }), ({\n theme,\n ownerState\n }) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpointValueKey) => {\n const breakpoint = breakpointValueKey;\n const value = theme.breakpoints.values[breakpoint];\n if (value !== 0) {\n // @ts-ignore\n acc[theme.breakpoints.up(breakpoint)] = {\n maxWidth: `${value}${theme.breakpoints.unit}`\n };\n }\n return acc;\n }, {}), ({\n theme,\n ownerState\n }) => _extends({}, ownerState.maxWidth === 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('xs')]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n }\n }, ownerState.maxWidth &&\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ownerState.maxWidth !== 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up(ownerState.maxWidth)]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`\n }\n }));\n const Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {\n const props = useThemeProps(inProps);\n const {\n className,\n component = 'div',\n disableGutters = false,\n fixed = false,\n maxWidth = 'lg'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n fixed,\n maxWidth\n });\n\n // @ts-ignore module augmentation fails if custom breakpoints are used\n const classes = useUtilityClasses(ownerState, componentName);\n return (\n /*#__PURE__*/\n // @ts-ignore theme is injected by the styled util\n _jsx(ContainerRoot, _extends({\n as: component\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other))\n );\n });\n process.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n component: PropTypes.elementType,\n disableGutters: PropTypes.bool,\n fixed: PropTypes.bool,\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Container;\n}","/* eslint-disable material-ui/mui-name-matches-component-name */\nimport PropTypes from 'prop-types';\nimport { createContainer } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Container = createContainer({\n createStyledComponent: styled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiContainer'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgPlaystore(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 180,\n height: 54,\n viewBox: \"0 0 180 54\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.095 53.707H6.6575C2.99754 53.707 0 50.6843 0 46.9936V6.71329C0 3.0226 2.99754 -0.00010531 6.6575 -0.00010531H173.095C176.755 -0.00010531 179.753 3.0226 179.753 6.71329V46.9936C179.753 50.6843 176.755 53.707 173.095 53.707Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.095 1.07572C176.177 1.07572 178.686 3.60499 178.686 6.71329V46.9936C178.686 50.1019 176.177 52.6312 173.095 52.6312H6.6575C3.57508 52.6312 1.06686 50.1019 1.06686 46.9936V6.71329C1.06686 3.60499 3.57508 1.07572 6.6575 1.07572H173.095ZM173.095 -0.00010531H6.6575C2.99754 -0.00010531 0 3.0226 0 6.71329V46.9936C0 50.6843 2.99754 53.707 6.6575 53.707H173.095C176.755 53.707 179.753 50.6843 179.753 46.9936V6.71329C179.753 3.0226 176.755 -0.00010531 173.095 -0.00010531Z\",\n fill: \"#A6A6A6\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.1364 13.7539C63.1364 14.875 62.8036 15.7729 62.1478 16.4426C61.3938 17.2364 60.4118 17.6359 59.2085 17.6359C58.0584 17.6359 57.0764 17.2297 56.2709 16.4291C55.4636 15.6168 55.0609 14.6199 55.0609 13.4266C55.0609 12.2333 55.4636 11.2363 56.2709 10.4307C57.0764 9.62345 58.0584 9.21729 59.2085 9.21729C59.781 9.21729 60.327 9.33645 60.8479 9.55799C61.3672 9.78121 61.7899 10.0833 62.0962 10.4559L61.4005 11.1642C60.8662 10.5281 60.1389 10.2142 59.2085 10.2142C58.3697 10.2142 57.6423 10.5096 57.0248 11.1054C56.414 11.7029 56.1078 12.4766 56.1078 13.4266C56.1078 14.3765 56.414 15.157 57.0248 15.7544C57.6423 16.3435 58.3697 16.6457 59.2085 16.6457C60.0989 16.6457 60.8479 16.3435 61.4388 15.7477C61.8282 15.3533 62.0496 14.8095 62.1078 14.1147H59.2085V13.1446H63.0765C63.1231 13.3544 63.1364 13.5575 63.1364 13.7539Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.273 10.3906H65.6396V12.9417H68.9151V13.9118H65.6396V16.4629H69.273V17.4515H64.611V9.4021H69.273V10.3906Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.6037 17.4515H72.5751V10.3906H70.3465V9.4021H75.8339V10.3906H73.6037V17.4515Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.8051 17.4515V9.4021H80.8321V17.4515H79.8051Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.3841 17.4515H84.3638V10.3906H82.1269V9.4021H87.621V10.3906H85.3841V17.4515Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.0101 16.4157C97.2228 17.2297 96.2475 17.6359 95.0841 17.6359C93.9141 17.6359 92.9387 17.2297 92.1515 16.4157C91.3659 15.6034 90.9748 14.6065 90.9748 13.4266C90.9748 12.2467 91.3659 11.2498 92.1515 10.4374C92.9387 9.62345 93.9141 9.21729 95.0841 9.21729C96.2409 9.21729 97.2162 9.62345 98.0034 10.4442C98.7957 11.2632 99.1868 12.2534 99.1868 13.4266C99.1868 14.6065 98.7957 15.6034 98.0101 16.4157ZM92.9121 15.741C93.5046 16.3435 94.2253 16.6457 95.0841 16.6457C95.9363 16.6457 96.6636 16.3435 97.2495 15.741C97.8403 15.1385 98.1399 14.3648 98.1399 13.4266C98.1399 12.4884 97.8403 11.7147 97.2495 11.1121C96.6636 10.5096 95.9363 10.2075 95.0841 10.2075C94.2253 10.2075 93.5046 10.5096 92.9121 11.1121C92.3213 11.7147 92.0217 12.4884 92.0217 13.4266C92.0217 14.3648 92.3213 15.1385 92.9121 15.741Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.63 17.4515V9.4021H101.878L105.759 15.6623H105.804L105.759 14.1149V9.4021H106.786V17.4515H105.714L101.65 10.8824H101.605L101.65 12.4366V17.4515H100.63Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 0.16,\n strokeMiterlimit: 10\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.7218 29.2066C87.5944 29.2066 85.0396 31.6067 85.0396 34.918C85.0396 38.2026 87.5944 40.6278 90.7218 40.6278C93.8558 40.6278 96.4106 38.2026 96.4106 34.918C96.4106 31.6067 93.8558 29.2066 90.7218 29.2066ZM90.7218 38.3788C89.0058 38.3788 87.5295 36.9505 87.5295 34.918C87.5295 32.8587 89.0058 31.4556 90.7218 31.4556C92.4377 31.4556 93.9207 32.8587 93.9207 34.918C93.9207 36.9505 92.4377 38.3788 90.7218 38.3788ZM78.3238 29.2066C75.1898 29.2066 72.6417 31.6067 72.6417 34.918C72.6417 38.2026 75.1898 40.6278 78.3238 40.6278C81.4562 40.6278 84.006 38.2026 84.006 34.918C84.006 31.6067 81.4562 29.2066 78.3238 29.2066ZM78.3238 38.3788C76.6062 38.3788 75.1249 36.9505 75.1249 34.918C75.1249 32.8587 76.6062 31.4556 78.3238 31.4556C80.0398 31.4556 81.5161 32.8587 81.5161 34.918C81.5161 36.9505 80.0398 38.3788 78.3238 38.3788ZM63.5708 30.9571V33.384H69.3179C69.1498 34.7401 68.7004 35.7371 68.0114 36.4319C67.1725 37.2711 65.866 38.2026 63.5708 38.2026C60.034 38.2026 57.2645 35.3242 57.2645 31.7577C57.2645 28.1912 60.034 25.3129 63.5708 25.3129C65.4832 25.3129 66.8746 26.0664 67.9015 27.0432L69.5975 25.333C68.1612 23.95 66.2505 22.8876 63.5708 22.8876C58.7208 22.8876 54.6448 26.867 54.6448 31.7577C54.6448 36.6484 58.7208 40.6278 63.5708 40.6278C66.1922 40.6278 68.1612 39.7617 69.709 38.1371C71.2952 36.5376 71.7895 34.2887 71.7895 32.4727C71.7895 31.9088 71.7429 31.3901 71.6597 30.9571H63.5708ZM123.898 32.8386C123.43 31.5613 121.987 29.2066 119.048 29.2066C116.135 29.2066 113.71 31.5211 113.71 34.918C113.71 38.117 116.11 40.6278 119.327 40.6278C121.929 40.6278 123.43 39.0283 124.048 38.0968L122.117 36.7995C121.473 37.7494 120.596 38.3788 119.327 38.3788C118.067 38.3788 117.164 37.7964 116.584 36.6484L124.159 33.4881L123.898 32.8386ZM116.175 34.7401C116.11 32.5381 117.871 31.4103 119.133 31.4103C120.121 31.4103 120.96 31.9088 121.24 32.6221L116.175 34.7401ZM110.019 40.2804H112.508V23.4969H110.019V40.2804ZM105.941 30.4788H105.858C105.298 29.8108 104.232 29.2066 102.88 29.2066C100.044 29.2066 97.4508 31.7174 97.4508 34.9365C97.4508 38.1371 100.044 40.6278 102.88 40.6278C104.232 40.6278 105.298 40.0185 105.858 39.3304H105.941V40.1494C105.941 42.333 104.784 43.5061 102.918 43.5061C101.397 43.5061 100.453 42.3984 100.064 41.4669L97.8986 42.3783C98.5227 43.8922 100.175 45.7551 102.918 45.7551C105.838 45.7551 108.301 44.0231 108.301 39.8087V29.554H105.941V30.4788ZM103.093 38.3788C101.377 38.3788 99.9407 36.9304 99.9407 34.9365C99.9407 32.9242 101.377 31.4556 103.093 31.4556C104.784 31.4556 106.117 32.9242 106.117 34.9365C106.117 36.9304 104.784 38.3788 103.093 38.3788ZM135.555 23.4969H129.6V40.2804H132.083V33.9211H135.555C138.313 33.9211 141.018 31.9088 141.018 28.7081C141.018 25.5092 138.306 23.4969 135.555 23.4969ZM135.62 31.5865H132.083V25.8315H135.62C137.474 25.8315 138.533 27.3839 138.533 28.7081C138.533 30.0072 137.474 31.5865 135.62 31.5865ZM150.97 29.1747C149.176 29.1747 147.311 29.9736 146.543 31.7443L148.747 32.6758C149.221 31.7443 150.093 31.4422 151.015 31.4422C152.304 31.4422 153.61 32.2226 153.63 33.6005V33.7768C153.181 33.5149 152.219 33.1272 151.035 33.1272C148.662 33.1272 146.244 34.4447 146.244 36.9035C146.244 39.1525 148.188 40.6009 150.373 40.6009C152.044 40.6009 152.966 39.8406 153.545 38.9561H153.63V40.2535H156.029V33.8154C156.029 30.8397 153.825 29.1747 150.97 29.1747ZM150.671 38.3721C149.859 38.3721 148.727 37.9659 148.727 36.9505C148.727 35.6515 150.138 35.153 151.36 35.153C152.453 35.153 152.966 35.3964 153.63 35.7169C153.435 37.2711 152.109 38.3721 150.671 38.3721ZM164.766 29.5423L161.912 36.8179H161.827L158.876 29.5423H156.198L160.632 39.7097L158.102 45.3674H160.697L167.529 29.5423H164.766ZM142.382 40.2804H144.872V23.4969H142.382V40.2804Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.8942 10.1221C13.5031 10.535 13.2767 11.1778 13.2767 12.0103V41.7036C13.2767 42.5361 13.5031 43.1789 13.8942 43.5917L13.9907 43.6824L30.4914 27.0499V26.6572L13.9907 10.0248L13.8942 10.1221Z\",\n fill: \"url(#paint0_linear_8_102)\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.9855 32.5967L30.4913 27.0497V26.657L35.9921 21.1101L36.1153 21.1822L42.6296 24.9199C44.4887 25.9806 44.4887 27.7261 42.6296 28.7935L36.1153 32.5245L35.9855 32.5967Z\",\n fill: \"url(#paint1_linear_8_102)\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.1153 32.5246L30.4914 26.8535L13.8942 43.5916C14.5117 44.2462 15.5186 44.3251 16.6637 43.6705L36.1153 32.5246Z\",\n fill: \"url(#paint2_linear_8_102)\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.1153 21.1824L16.6637 10.0365C15.5186 9.38863 14.5117 9.46751 13.8942 10.1221L30.4914 26.8535L36.1153 21.1824Z\",\n fill: \"url(#paint3_linear_8_102)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_8_102\",\n x1: 29.0263,\n y1: 42.0128,\n x2: 6.49372,\n y2: 19.6678,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#00A0FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.0066,\n stopColor: \"#00A1FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.2601,\n stopColor: \"#00BEFF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5122,\n stopColor: \"#00D2FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.7604,\n stopColor: \"#00DFFF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#00E3FF\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_8_102\",\n x1: 45.0505,\n y1: 26.8515,\n x2: 12.8323,\n y2: 26.8515,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFE000\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.4087,\n stopColor: \"#FFBD00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.7754,\n stopColor: \"#FFA500\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FF9C00\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_8_102\",\n x1: 33.0572,\n y1: 23.7706,\n x2: 2.50115,\n y2: -6.53107,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF3A44\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C31162\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_8_102\",\n x1: 9.71636,\n y1: 53.4705,\n x2: 23.361,\n y2: 39.9396,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#32A071\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.0685,\n stopColor: \"#2DA771\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.4762,\n stopColor: \"#15CF74\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.8009,\n stopColor: \"#06E775\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#00F076\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlaystore);\nexport default __webpack_public_path__ + \"static/media/playstore.605dc4b109d700c3bf0479567a2c5429.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgAppstore(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 180,\n height: 54,\n viewBox: \"0 0 180 54\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179 47.5134C179 50.3755 176.709 52.6939 173.874 52.6939H6.13243C3.2995 52.6939 1 50.3755 1 47.5134V6.20068C1 3.33991 3.2995 1.01343 6.13243 1.01343H173.873C176.709 1.01343 178.999 3.33991 178.999 6.20068L179 47.5134Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.333 1.07572C176.42 1.07572 178.932 3.60499 178.932 6.71329V46.9936C178.932 50.1019 176.42 52.6312 173.333 52.6312H6.66667C3.58 52.6312 1.06833 50.1019 1.06833 46.9936V6.71329C1.06833 3.60499 3.58 1.07572 6.66667 1.07572H173.333ZM173.333 -0.00010531H6.66667C3.00167 -0.00010531 0 3.0226 0 6.71329V46.9936C0 50.6843 3.00167 53.707 6.66667 53.707H173.333C176.998 53.707 180 50.6843 180 46.9936V6.71329C180 3.0226 176.998 -0.00010531 173.333 -0.00010531Z\",\n fill: \"#A6A6A6\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.1707 26.5635C40.132 22.2361 43.6893 20.1308 43.852 20.0327C41.8373 17.0748 38.7147 16.6707 37.6173 16.6385C34.9947 16.3605 32.4507 18.2188 31.1147 18.2188C29.752 18.2188 27.6947 16.6653 25.4773 16.711C22.624 16.7553 19.9547 18.4188 18.4907 21.0022C15.4693 26.2695 17.7227 34.01 20.6173 38.2677C22.0653 40.3528 23.7573 42.681 25.972 42.5991C28.1387 42.5092 28.948 41.2081 31.5627 41.2081C34.1533 41.2081 34.9133 42.5991 37.172 42.5468C39.4973 42.5092 40.9613 40.4522 42.3587 38.3482C44.032 35.9582 44.704 33.6045 44.7307 33.4837C44.676 33.4649 40.2147 31.7503 40.1707 26.5635Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.904 13.8376C37.0693 12.3701 37.8667 10.3735 37.6453 8.34741C35.9587 8.4226 33.8493 9.52226 32.6347 10.9576C31.56 12.2224 30.6 14.2955 30.848 16.245C32.7427 16.3874 34.688 15.2823 35.904 13.8376Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.5267 42.2995H68.4987L66.84 37.051H61.0747L59.4947 42.2995H56.5467L62.2587 24.4312H65.7867L71.5267 42.2995ZM66.34 34.849L64.84 30.1832C64.6813 29.7065 64.384 28.5841 63.9453 26.8171H63.892C63.7173 27.577 63.436 28.6995 63.0493 30.1832L61.576 34.849H66.34Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.216 35.6991C86.216 37.8904 85.628 39.6224 84.452 40.8939C83.3987 42.0258 82.0907 42.5911 80.5293 42.5911C78.844 42.5911 77.6333 41.9815 76.896 40.7624H76.8427V47.5496H74V33.6569C74 32.2793 73.964 30.8655 73.8947 29.4154H76.3947L76.5533 31.4576H76.6067C77.5547 29.9189 78.9933 29.1509 80.924 29.1509C82.4333 29.1509 83.6933 29.7511 84.7013 30.9528C85.712 32.1558 86.216 33.7375 86.216 35.6991ZM83.32 35.8039C83.32 34.5498 83.04 33.5159 82.4773 32.7023C81.8627 31.8537 81.0373 31.4294 80.0027 31.4294C79.3013 31.4294 78.664 31.6657 78.0947 32.1316C77.524 32.6016 77.1506 33.2152 76.976 33.9751C76.888 34.3296 76.844 34.6196 76.844 34.8479V36.9962C76.844 37.9333 77.1293 38.7242 77.7 39.37C78.2707 40.0158 79.012 40.3381 79.924 40.3381C80.9947 40.3381 81.828 39.9218 82.424 39.0921C83.0213 38.261 83.32 37.1653 83.32 35.8039Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.932 35.6991C100.932 37.8904 100.344 39.6224 99.1667 40.8939C98.1147 42.0258 96.8067 42.5911 95.2453 42.5911C93.56 42.5911 92.3493 41.9815 91.6133 40.7624H91.56V47.5496H88.7173V33.6569C88.7173 32.2793 88.6813 30.8655 88.612 29.4154H91.112L91.2707 31.4576H91.324C92.2707 29.9189 93.7093 29.1509 95.6413 29.1509C97.1493 29.1509 98.4093 29.7511 99.42 30.9528C100.427 32.1558 100.932 33.7375 100.932 35.6991ZM98.036 35.8039C98.036 34.5498 97.7547 33.5159 97.192 32.7023C96.5773 31.8537 95.7547 31.4294 94.7187 31.4294C94.016 31.4294 93.38 31.6657 92.8093 32.1316C92.2387 32.6016 91.8667 33.2152 91.692 33.9751C91.6053 34.3296 91.56 34.6196 91.56 34.8479V36.9962C91.56 37.9333 91.8453 38.7242 92.4133 39.37C92.984 40.0145 93.7253 40.3381 94.64 40.3381C95.7107 40.3381 96.544 39.9218 97.14 39.0921C97.7373 38.261 98.036 37.1653 98.036 35.8039Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.385 37.2887C117.385 38.8087 116.861 40.0453 115.809 40.9999C114.653 42.0432 113.044 42.5641 110.976 42.5641C109.067 42.5641 107.536 42.1936 106.377 41.451L107.036 39.0651C108.284 39.8251 109.653 40.2064 111.145 40.2064C112.216 40.2064 113.049 39.962 113.648 39.476C114.244 38.9899 114.541 38.3374 114.541 37.5237C114.541 36.7987 114.296 36.1877 113.804 35.6923C113.315 35.1969 112.497 34.7363 111.356 34.3107C108.249 33.1439 106.697 31.4347 106.697 29.187C106.697 27.7181 107.241 26.5138 108.331 25.5766C109.416 24.638 110.864 24.1694 112.675 24.1694C114.289 24.1694 115.631 24.4527 116.701 25.018L115.991 27.3516C114.991 26.8038 113.86 26.5299 112.595 26.5299C111.595 26.5299 110.813 26.7783 110.253 27.2724C109.78 27.7141 109.543 28.2525 109.543 28.8903C109.543 29.5965 109.813 30.1806 110.357 30.6398C110.831 31.0641 111.691 31.5233 112.939 32.0187C114.465 32.6377 115.587 33.3614 116.308 34.1912C117.027 35.0183 117.385 36.0535 117.385 37.2887Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.784 31.5635H123.651V37.819C123.651 39.4101 124.203 40.2049 125.309 40.2049C125.817 40.2049 126.239 40.1606 126.572 40.072L126.651 42.2458C126.091 42.4566 125.353 42.5627 124.44 42.5627C123.317 42.5627 122.44 42.2176 121.807 41.5288C121.176 40.8387 120.859 39.6813 120.859 38.0553V31.5608H118.992V29.4125H120.859V27.0534L123.651 26.2048V29.4125H126.784V31.5635Z\",\n fill: \"white\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.921 35.7514C140.921 37.7318 140.359 39.3578 139.236 40.6293C138.059 41.9384 136.496 42.591 134.548 42.591C132.671 42.591 131.176 41.9639 130.061 40.7099C128.947 39.4558 128.389 37.8728 128.389 35.9648C128.389 33.9683 128.963 32.3329 130.113 31.0614C131.261 29.7885 132.811 29.1521 134.759 29.1521C136.636 29.1521 138.147 29.7791 139.287 31.0345C140.377 32.2523 140.921 33.8246 140.921 35.7514ZM137.972 35.844C137.972 34.6557 137.72 33.6366 137.209 32.7867C136.613 31.7582 135.761 31.2453 134.657 31.2453C133.515 31.2453 132.647 31.7596 132.051 32.7867C131.54 33.638 131.288 34.6732 131.288 35.8977C131.288 37.086 131.54 38.1051 132.051 38.9537C132.665 39.9821 133.524 40.495 134.632 40.495C135.717 40.495 136.569 39.9714 137.184 38.9268C137.708 38.0608 137.972 37.0309 137.972 35.844Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.161 31.9329C149.88 31.8805 149.58 31.8537 149.265 31.8537C148.265 31.8537 147.492 32.2337 146.948 32.995C146.475 33.6663 146.237 34.5149 146.237 35.5393V42.2997H143.396L143.423 33.473C143.423 31.988 143.387 30.6359 143.316 29.4167H145.792L145.896 31.8819H145.975C146.275 31.0347 146.748 30.3526 147.396 29.841C148.029 29.3805 148.713 29.1509 149.451 29.1509C149.713 29.1509 149.951 29.1697 150.161 29.2032V31.9329Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.875 35.248C162.875 35.7609 162.841 36.1932 162.771 36.5463H154.243C154.276 37.8192 154.688 38.7927 155.48 39.464C156.199 40.0642 157.128 40.3649 158.269 40.3649C159.532 40.3649 160.684 40.1622 161.72 39.7553L162.165 41.7425C160.955 42.2742 159.525 42.5387 157.876 42.5387C155.892 42.5387 154.335 41.9506 153.201 40.7758C152.071 39.6009 151.504 38.0233 151.504 36.0442C151.504 34.1013 152.031 32.4834 153.085 31.1931C154.189 29.8155 155.681 29.1267 157.559 29.1267C159.403 29.1267 160.799 29.8155 161.747 31.1931C162.497 32.2874 162.875 33.6408 162.875 35.248ZM160.164 34.5055C160.183 33.6569 159.997 32.9238 159.612 32.3048C159.12 31.5086 158.364 31.1112 157.347 31.1112C156.417 31.1112 155.661 31.4992 155.084 32.278C154.611 32.897 154.329 33.6395 154.243 34.5041H160.164V34.5055Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.4 13.4388C65.4 15.0191 64.9294 16.2087 63.9894 17.0076C63.1187 17.7448 61.8814 18.114 60.2787 18.114C59.484 18.114 58.804 18.0791 58.2347 18.0093V9.3745C58.9773 9.25366 59.7773 9.19189 60.6413 9.19189C62.168 9.19189 63.3187 9.52622 64.0947 10.1949C64.964 10.9508 65.4 12.0317 65.4 13.4388ZM63.9267 13.4777C63.9267 12.4533 63.6574 11.6678 63.1187 11.12C62.58 10.5735 61.7934 10.2996 60.7574 10.2996C60.3174 10.2996 59.9427 10.3291 59.632 10.3909V16.9553C59.804 16.9821 60.1187 16.9942 60.576 16.9942C61.6454 16.9942 62.4707 16.6948 63.052 16.0959C63.6334 15.4971 63.9267 14.6244 63.9267 13.4777Z\",\n fill: \"white\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.212 14.8191C73.212 15.7925 72.936 16.5901 72.384 17.2158C71.8054 17.8589 71.0387 18.1798 70.0814 18.1798C69.1587 18.1798 68.424 17.8724 67.876 17.2547C67.3294 16.6384 67.056 15.861 67.056 14.9238C67.056 13.9437 67.3374 13.1394 67.9027 12.5151C68.468 11.8907 69.228 11.5779 70.1854 11.5779C71.108 11.5779 71.8494 11.8854 72.4107 12.5016C72.944 13.1005 73.212 13.8739 73.212 14.8191ZM71.7627 14.8648C71.7627 14.2807 71.6374 13.7799 71.388 13.3623C71.0947 12.8575 70.6774 12.605 70.1347 12.605C69.5734 12.605 69.1467 12.8575 68.8534 13.3623C68.6027 13.7799 68.4787 14.2887 68.4787 14.8903C68.4787 15.4743 68.604 15.9752 68.8534 16.3927C69.156 16.8976 69.5774 17.15 70.1214 17.15C70.6547 17.15 71.0734 16.8935 71.3747 16.3793C71.6334 15.9537 71.7627 15.4488 71.7627 14.8648Z\",\n fill: \"white\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.6867 11.7068L81.72 18.0362H80.44L79.6253 15.2877C79.4187 14.6016 79.2507 13.9195 79.12 13.2428H79.0947C78.9733 13.9383 78.8053 14.6191 78.5893 15.2877L77.724 18.0362H76.4293L74.58 11.7068H76.016L76.7267 14.7157C76.8987 15.4273 77.04 16.1054 77.1533 16.7472H77.1787C77.2827 16.2182 77.4547 15.5442 77.6973 14.7292L78.5893 11.7081H79.728L80.5827 14.6647C80.7893 15.3857 80.9573 16.0799 81.0867 16.7485H81.1253C81.22 16.0973 81.3627 15.4032 81.552 14.6647L82.3147 11.7081H83.6867V11.7068Z\",\n fill: \"white\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.9307 18.036H89.5333V14.4108C89.5333 13.2937 89.112 12.7351 88.2667 12.7351C87.852 12.7351 87.5173 12.8882 87.2574 13.1957C87 13.5032 86.8694 13.8657 86.8694 14.2806V18.0347H85.472V13.5152C85.472 12.9594 85.4547 12.3565 85.4214 11.704H86.6494L86.7147 12.6935H86.7534C86.916 12.3861 87.1587 12.1323 87.4774 11.9295C87.856 11.6932 88.28 11.5737 88.744 11.5737C89.3307 11.5737 89.8187 11.7644 90.2067 12.1471C90.6893 12.6156 90.9307 13.3152 90.9307 14.2443V18.036Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.784 18.0361H93.388V8.80249H94.784V18.0361Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.011 14.8191C103.011 15.7925 102.735 16.5901 102.183 17.2158C101.604 17.8589 100.836 18.1798 99.88 18.1798C98.956 18.1798 98.2213 17.8724 97.6747 17.2547C97.128 16.6384 96.8547 15.861 96.8547 14.9238C96.8547 13.9437 97.136 13.1394 97.7013 12.5151C98.2667 11.8907 99.0267 11.5779 99.9827 11.5779C100.907 11.5779 101.647 11.8854 102.209 12.5016C102.743 13.1005 103.011 13.8739 103.011 14.8191ZM101.56 14.8648C101.56 14.2807 101.435 13.7799 101.185 13.3623C100.893 12.8575 100.475 12.605 99.9333 12.605C99.3707 12.605 98.944 12.8575 98.652 13.3623C98.4013 13.7799 98.2773 14.2887 98.2773 14.8903C98.2773 15.4743 98.4027 15.9752 98.652 16.3927C98.9547 16.8976 99.376 17.15 99.92 17.15C100.453 17.15 100.871 16.8935 101.172 16.3793C101.432 15.9537 101.56 15.4488 101.56 14.8648Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.773 18.0362H108.519L108.415 17.3071H108.376C107.947 17.8885 107.335 18.1798 106.54 18.1798C105.947 18.1798 105.467 17.9878 105.105 17.6065C104.777 17.2601 104.613 16.8291 104.613 16.3175C104.613 15.5442 104.933 14.9547 105.577 14.5465C106.22 14.1384 107.124 13.9383 108.288 13.9477V13.8296C108.288 12.9957 107.853 12.5795 106.983 12.5795C106.363 12.5795 105.816 12.7366 105.344 13.0481L105.06 12.1244C105.644 11.7605 106.365 11.5779 107.216 11.5779C108.859 11.5779 109.683 12.4506 109.683 14.1961V16.527C109.683 17.1594 109.713 17.6629 109.773 18.0362ZM108.323 15.861V14.8849C106.781 14.858 106.011 15.2837 106.011 16.1604C106.011 16.4907 106.099 16.7378 106.279 16.9029C106.459 17.0681 106.688 17.15 106.961 17.15C107.268 17.15 107.555 17.052 107.816 16.8573C108.079 16.6613 108.24 16.4129 108.3 16.1081C108.315 16.0396 108.323 15.9564 108.323 15.861Z\",\n fill: \"white\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.713 18.0361H116.473L116.408 17.0197H116.369C115.973 17.7931 115.299 18.1798 114.351 18.1798C113.593 18.1798 112.963 17.8803 112.463 17.2815C111.963 16.6827 111.713 15.9053 111.713 14.9506C111.713 13.9262 111.984 13.0964 112.528 12.4626C113.055 11.8719 113.7 11.5765 114.468 11.5765C115.312 11.5765 115.903 11.8625 116.239 12.4358H116.265V8.80249H117.664V16.3309C117.664 16.9472 117.68 17.5151 117.713 18.0361ZM116.265 15.3668V14.3115C116.265 14.1289 116.252 13.9812 116.227 13.8684C116.148 13.5301 115.979 13.2454 115.721 13.0158C115.461 12.7862 115.148 12.6707 114.787 12.6707C114.265 12.6707 113.857 12.8789 113.557 13.2964C113.26 13.714 113.109 14.2471 113.109 14.8983C113.109 15.5239 113.252 16.0315 113.539 16.4222C113.841 16.8384 114.249 17.0465 114.76 17.0465C115.219 17.0465 115.585 16.8733 115.864 16.5256C116.133 16.2047 116.265 15.818 116.265 15.3668Z\",\n fill: \"white\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.664 14.8191C129.664 15.7925 129.388 16.5901 128.836 17.2158C128.257 17.8589 127.492 18.1798 126.533 18.1798C125.612 18.1798 124.877 17.8724 124.328 17.2547C123.781 16.6384 123.508 15.861 123.508 14.9238C123.508 13.9437 123.789 13.1394 124.355 12.5151C124.92 11.8907 125.68 11.5779 126.639 11.5779C127.56 11.5779 128.303 11.8854 128.863 12.5016C129.396 13.1005 129.664 13.8739 129.664 14.8191ZM128.216 14.8648C128.216 14.2807 128.091 13.7799 127.841 13.3623C127.547 12.8575 127.131 12.605 126.587 12.605C126.027 12.605 125.6 12.8575 125.305 13.3623C125.055 13.7799 124.931 14.2887 124.931 14.8903C124.931 15.4743 125.056 15.9752 125.305 16.3927C125.608 16.8976 126.029 17.15 126.573 17.15C127.107 17.15 127.527 16.8935 127.828 16.3793C128.085 15.9537 128.216 15.4488 128.216 14.8648Z\",\n fill: \"white\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.177 18.036H135.781V14.4108C135.781 13.2937 135.36 12.7351 134.513 12.7351C134.099 12.7351 133.764 12.8882 133.505 13.1957C133.247 13.5032 133.117 13.8657 133.117 14.2806V18.0347H131.719V13.5152C131.719 12.9594 131.703 12.3565 131.669 11.704H132.896L132.961 12.6935H133C133.164 12.3861 133.407 12.1323 133.724 11.9295C134.104 11.6932 134.527 11.5737 134.992 11.5737C135.577 11.5737 136.065 11.7644 136.453 12.1471C136.937 12.6156 137.177 13.3152 137.177 14.2443V18.036Z\",\n fill: \"white\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M146.581 12.7607H145.043V15.8354C145.043 16.6168 145.316 17.0076 145.857 17.0076C146.108 17.0076 146.316 16.9861 146.48 16.9418L146.516 18.0092C146.24 18.1139 145.877 18.1663 145.431 18.1663C144.879 18.1663 144.449 17.9971 144.139 17.6588C143.827 17.3204 143.672 16.7511 143.672 15.9522V12.7607H142.753V11.7067H143.672V10.5466L145.041 10.1304V11.7053H146.58V12.7607H146.581Z\",\n fill: \"white\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153.979 18.0361H152.58V14.4377C152.58 13.3031 152.159 12.7352 151.315 12.7352C150.667 12.7352 150.224 13.0642 149.981 13.7221C149.94 13.8604 149.916 14.0295 149.916 14.2283V18.0347H148.52V8.80249H149.916V12.617H149.943C150.383 11.9229 151.013 11.5765 151.831 11.5765C152.409 11.5765 152.888 11.7671 153.268 12.1498C153.741 12.6264 153.979 13.3354 153.979 14.2726V18.0361Z\",\n fill: \"white\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.609 14.5719C161.609 14.8244 161.591 15.0365 161.557 15.2097H157.367C157.385 15.8354 157.585 16.312 157.973 16.6423C158.328 16.9377 158.785 17.0854 159.345 17.0854C159.965 17.0854 160.531 16.9861 161.04 16.786L161.259 17.7635C160.663 18.024 159.961 18.1542 159.149 18.1542C158.176 18.1542 157.409 17.8655 156.855 17.2882C156.297 16.7108 156.021 15.9361 156.021 14.964C156.021 14.0093 156.279 13.2145 156.797 12.5807C157.339 11.904 158.071 11.5657 158.995 11.5657C159.899 11.5657 160.585 11.904 161.049 12.5807C161.424 13.1178 161.609 13.7824 161.609 14.5719ZM160.276 14.2081C160.287 13.7905 160.195 13.4307 160.005 13.1272C159.763 12.7365 159.393 12.5405 158.893 12.5405C158.437 12.5405 158.065 12.7311 157.781 13.1138C157.549 13.4186 157.412 13.7824 157.367 14.2081H160.276Z\",\n fill: \"white\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAppstore);\nexport default __webpack_public_path__ + \"static/media/appstore.70d2894286a59311413f08c565dd2a3f.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgStethoscope(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n preserveAspectRatio: \"xMidYMid meet\",\n viewBox: \"0 0 640 640\",\n width: 640,\n height: 640,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.48 468.27C245.48 455.23 245.48 390.03 245.48 272.66C217.54 272.66 202.02 272.66 198.91 272.66C195.54 272.66 192.42 270.83 190.77 267.88C189.13 264.93 189.21 261.32 190.99 258.44C203.1 238.88 299.97 82.4 312.08 62.84C315.48 57.36 324.52 57.36 327.92 62.84C340.03 82.4 436.9 238.88 449.01 258.44C450.79 261.32 450.87 264.93 449.23 267.88C447.58 270.83 444.46 272.66 441.09 272.66C437.98 272.66 422.46 272.66 394.52 272.66C394.52 390.03 394.52 455.23 394.52 468.27C394.52 473.41 390.35 477.58 385.2 477.58C359.12 477.58 267.84 477.58 254.8 477.58C249.65 477.58 245.48 473.41 245.48 468.27ZM375.89 263.35C375.89 258.21 380.05 254.03 385.2 254.03C387.81 254.03 400.87 254.03 424.37 254.03C417.41 242.79 382.62 186.59 320 85.44C257.38 186.59 222.59 242.79 215.63 254.03C239.13 254.03 252.19 254.03 254.8 254.03C259.94 254.03 264.11 258.21 264.11 263.35C264.11 276.39 264.11 341.59 264.11 458.95C271.56 458.95 308.82 458.95 375.89 458.95C375.89 337.24 375.89 272.04 375.89 263.35Z\",\n id: \"celrR0ouT\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.48 468.27C245.48 455.23 245.48 390.03 245.48 272.66C217.54 272.66 202.02 272.66 198.91 272.66C195.54 272.66 192.42 270.83 190.77 267.88C189.13 264.93 189.21 261.32 190.99 258.44C203.1 238.88 299.97 82.4 312.08 62.84C315.48 57.36 324.52 57.36 327.92 62.84C340.03 82.4 436.9 238.88 449.01 258.44C450.79 261.32 450.87 264.93 449.23 267.88C447.58 270.83 444.46 272.66 441.09 272.66C437.98 272.66 422.46 272.66 394.52 272.66C394.52 390.03 394.52 455.23 394.52 468.27C394.52 473.41 390.35 477.58 385.2 477.58C359.12 477.58 267.84 477.58 254.8 477.58C249.65 477.58 245.48 473.41 245.48 468.27ZM375.89 263.35C375.89 258.21 380.05 254.03 385.2 254.03C387.81 254.03 400.87 254.03 424.37 254.03C417.41 242.79 382.62 186.59 320 85.44C257.38 186.59 222.59 242.79 215.63 254.03C239.13 254.03 252.19 254.03 254.8 254.03C259.94 254.03 264.11 258.21 264.11 263.35C264.11 276.39 264.11 341.59 264.11 458.95C271.56 458.95 308.82 458.95 375.89 458.95C375.89 337.24 375.89 272.04 375.89 263.35Z\",\n id: \"c1aj2bLU65\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.77 561.41C105.77 551.17 105.77 469.2 105.77 458.95C105.77 453.81 109.93 449.64 115.08 449.64C120.67 449.64 165.38 449.64 170.97 449.64C176.12 449.64 180.28 453.81 180.28 458.95C180.28 461.44 180.28 473.89 180.28 496.31C208.22 496.31 431.78 496.31 459.72 496.31C459.72 474.16 459.72 461.85 459.72 459.39C459.72 454.25 463.88 450.08 469.03 450.08C474.62 450.08 519.33 450.08 524.92 450.08C530.07 450.08 534.23 454.25 534.23 459.39C534.23 469.6 534.23 551.21 534.23 561.41C534.23 566.56 530.07 570.73 524.92 570.73C442.95 570.73 156.06 570.73 115.08 570.73C109.93 570.73 105.77 566.56 105.77 561.41ZM515.6 468.71C493.24 468.71 480.82 468.71 478.34 468.71C478.34 490.86 478.34 503.16 478.34 505.62C478.34 510.76 474.18 514.94 469.03 514.94C439.22 514.94 200.77 514.94 170.97 514.94C165.82 514.94 161.65 510.76 161.65 505.62C161.65 503.13 161.65 490.68 161.65 468.27C159.17 468.27 146.75 468.27 124.39 468.27L124.39 552.1L515.6 552.1L515.6 468.71Z\",\n id: \"a8SYResJRJ\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.77 561.41C105.77 551.17 105.77 469.2 105.77 458.95C105.77 453.81 109.93 449.64 115.08 449.64C120.67 449.64 165.38 449.64 170.97 449.64C176.12 449.64 180.28 453.81 180.28 458.95C180.28 461.44 180.28 473.89 180.28 496.31C208.22 496.31 431.78 496.31 459.72 496.31C459.72 474.16 459.72 461.85 459.72 459.39C459.72 454.25 463.88 450.08 469.03 450.08C474.62 450.08 519.33 450.08 524.92 450.08C530.07 450.08 534.23 454.25 534.23 459.39C534.23 469.6 534.23 551.21 534.23 561.41C534.23 566.56 530.07 570.73 524.92 570.73C442.95 570.73 156.06 570.73 115.08 570.73C109.93 570.73 105.77 566.56 105.77 561.41ZM515.6 468.71C493.24 468.71 480.82 468.71 478.34 468.71C478.34 490.86 478.34 503.16 478.34 505.62C478.34 510.76 474.18 514.94 469.03 514.94C439.22 514.94 200.77 514.94 170.97 514.94C165.82 514.94 161.65 510.76 161.65 505.62C161.65 503.13 161.65 490.68 161.65 468.27C159.17 468.27 146.75 468.27 124.39 468.27L124.39 552.1L515.6 552.1L515.6 468.71Z\",\n id: \"bx5n2Wmqo\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120 0C86.95 0 58.68 11.74 35.21 35.21C11.74 58.68 0 86.95 0 120C0 160 0 480 0 520C0 553.05 11.74 581.32 35.21 604.79C58.68 628.26 86.95 640 120 640C160 640 480.01 640 520.01 640C553.06 640 581.33 628.26 604.79 604.79C628.26 581.32 640 553.05 640 520C640 480 640 160 640 120C640 86.95 628.26 58.67 604.79 35.21C581.33 11.74 553.06 0 520.01 0C480.01 0 160 0 120 0Z\",\n id: \"a1bgwYKeEz\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120 0C86.95 0 58.68 11.74 35.21 35.21C11.74 58.68 0 86.95 0 120C0 160 0 480 0 520C0 553.05 11.74 581.32 35.21 604.79C58.68 628.26 86.95 640 120 640C160 640 480.01 640 520.01 640C553.06 640 581.33 628.26 604.79 604.79C628.26 581.32 640 553.05 640 520C640 480 640 160 640 120C640 86.95 628.26 58.67 604.79 35.21C581.33 11.74 553.06 0 520.01 0C480.01 0 160 0 120 0Z\",\n id: \"c2M3Ue79fX\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.35 257.79C122.69 244.75 93.37 140.39 89.7 127.35C89.66 127.2 89.63 127.06 89.59 126.91C85.14 105.86 99.63 85.41 122.57 80.34C126.63 79.45 159.06 72.28 163.11 71.39C167.58 70.4 172.07 72.88 173.16 76.93C174.24 80.98 171.51 85.06 167.05 86.05C162.99 86.94 130.56 94.11 126.51 95C112.27 98.15 103.25 110.8 105.88 123.86C109.55 136.9 138.86 241.24 142.53 254.28C142.57 254.42 142.6 254.57 142.64 254.72C150.09 289.97 184.2 315.55 223.75 315.55C263.3 315.55 297.42 289.97 304.87 254.72C304.9 254.57 304.93 254.42 304.97 254.28C308.64 241.24 337.96 136.9 341.62 123.86C344.26 110.8 335.24 98.15 320.99 95C316.94 94.11 284.51 86.94 280.46 86.05C275.99 85.06 273.26 80.98 274.34 76.93C275.43 72.88 279.92 70.4 284.39 71.39C288.44 72.28 320.87 79.45 324.93 80.34C347.87 85.41 362.36 105.86 357.91 126.91C357.88 127.06 357.84 127.2 357.8 127.35C354.13 140.39 324.81 244.75 321.15 257.79C312.1 300.02 271.18 330.64 223.75 330.64C176.32 330.64 135.4 300.02 126.35 257.79Z\",\n id: \"aVxHSLOXN\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.66 102.61C190.97 101.21 200.5 90.28 198.96 78.2C197.41 66.13 185.37 57.48 172.06 58.88C158.75 60.28 140.18 72.16 141.73 84.24C143.28 96.32 164.35 104.01 177.66 102.61Z\",\n id: \"ayIsG2Wli\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M269.84 102.61C256.53 101.21 247 90.28 248.55 78.2C250.09 66.13 262.13 57.48 275.44 58.88C288.75 60.28 307.32 72.16 305.77 84.24C304.23 96.32 283.15 104.01 269.84 102.61Z\",\n id: \"aW3iM4kQ\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.07 437.28C209.08 427.35 209.08 347.95 209.08 338.03C209.08 336.57 207.92 335.32 206.34 335.08C206.34 335.08 206.34 335.08 206.34 335.08C173.08 330.03 144.25 310.64 129.21 283.2C126.99 279.14 127.22 274.4 129.82 270.51C132.45 266.56 137.05 264.15 142.11 264.07C142.13 264.07 142.35 264.07 142.37 264.07C147.87 264.07 153.09 267.06 155.66 271.68C168.7 295.18 194.8 309.78 223.75 309.78C252.49 309.78 279.31 294.66 292.08 271.26C294.47 266.89 299.58 264.07 305.1 264.07C310.23 264.07 314.91 266.43 317.61 270.4C320.29 274.31 320.54 279.1 318.29 283.2C303.26 310.64 274.43 330.03 241.17 335.08C241.11 335.09 240.69 335.13 240.64 335.13C238.96 335.29 237.69 336.57 237.69 338.1C237.69 348.02 237.73 427.35 237.73 437.26C237.73 489.91 284.91 532.72 342.91 532.72C346.76 532.72 377.57 532.72 381.42 532.72C439.51 532.72 486.6 489.99 486.6 437.28C486.6 422.33 486.6 347.59 486.6 213.04L515.26 213.04C515.26 347.58 515.26 422.33 515.26 437.28C515.26 504.35 455.34 558.73 381.42 558.73C378.86 558.73 366.02 558.73 342.91 558.73C253.69 522.41 209.07 481.92 209.07 437.28Z\",\n id: \"b3KdaB5jLe\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M499.2 156.18C466.06 156.18 439.2 180.56 439.2 210.63C439.2 240.71 466.06 265.09 499.2 265.09C532.34 265.09 559.21 240.71 559.21 210.63C559.21 180.56 532.34 156.18 499.2 156.18Z\",\n id: \"d2a4A1DgHx\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M504.74 264.84C535.28 262.3 559.2 239.01 559.2 210.63C559.2 182.25 535.28 158.96 504.74 156.42C504.74 178.1 504.74 254 504.74 264.84Z\",\n id: \"dJknZY5xX\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M499.2 189.42C486.29 189.42 475.83 198.92 475.83 210.63C475.83 222.35 486.29 231.85 499.2 231.85C512.12 231.85 522.58 222.35 522.58 210.63C522.58 198.92 512.12 189.42 499.2 189.42Z\",\n id: \"d58LgbkD4R\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#celrR0ouT\",\n opacity: 1,\n fill: \"#fffefe\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#celrR0ouT\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c1aj2bLU65\",\n opacity: 1,\n fill: \"#000000\",\n fillOpacity: 0\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c1aj2bLU65\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a8SYResJRJ\",\n opacity: 1,\n fill: \"#fffefe\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a8SYResJRJ\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#bx5n2Wmqo\",\n opacity: 1,\n fill: \"#000000\",\n fillOpacity: 0\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#bx5n2Wmqo\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a1bgwYKeEz\",\n opacity: 1,\n fill: \"#3F67F6\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a1bgwYKeEz\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c2M3Ue79fX\",\n opacity: 1,\n fill: \"#000000\",\n fillOpacity: 0\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c2M3Ue79fX\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#aVxHSLOXN\",\n opacity: 1,\n fill: \"#caddea\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#aVxHSLOXN\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#ayIsG2Wli\",\n opacity: 1,\n fill: \"#65db57\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#ayIsG2Wli\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#aW3iM4kQ\",\n opacity: 1,\n fill: \"#65db57\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#aW3iM4kQ\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b3KdaB5jLe\",\n opacity: 1,\n fill: \"#2c5871\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b3KdaB5jLe\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#d2a4A1DgHx\",\n opacity: 1,\n fill: \"#5d6d7d\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#d2a4A1DgHx\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#dJknZY5xX\",\n opacity: 1,\n fill: \"#35495d\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#dJknZY5xX\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#d58LgbkD4R\",\n opacity: 1,\n fill: \"#e1effb\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#d58LgbkD4R\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))))))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStethoscope);\nexport default __webpack_public_path__ + \"static/media/stethoscope.94284b94145efd329cdccf8fa8c53999.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgReview(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n preserveAspectRatio: \"xMidYMid meet\",\n viewBox: \"0 0 640 640\",\n width: 640,\n height: 640,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.87 447.85C284.87 496.12 244.03 535.32 193.74 535.32C143.44 535.32 102.6 496.12 102.6 447.85C102.6 399.57 143.44 360.38 193.74 360.38C244.03 360.38 284.87 399.57 284.87 447.85Z\",\n id: \"a1M5KAzH5j\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M520.01 0C480.01 0 160 0 120 0C86.95 0 58.68 11.74 35.21 35.21C11.74 58.68 0 86.95 0 120C0 160 0 480 0 520C0 553.05 11.74 581.32 35.21 604.79C58.68 628.26 86.95 640 120 640C160 640 480.01 640 520.01 640C553.06 640 581.33 628.26 604.79 604.79C628.26 581.32 640 553.05 640 520C640 480 640 160 640 120C640 86.95 628.26 58.67 604.79 35.21C581.33 11.74 553.06 0 520.01 0Z\",\n id: \"ak7xDDdYS\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.87 197.5C284.87 245.78 244.03 284.97 193.74 284.97C143.44 284.97 102.6 245.78 102.6 197.5C102.6 149.22 143.44 110.03 193.74 110.03C244.03 110.03 284.87 149.22 284.87 197.5Z\",\n id: \"h4s7ssf3R0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.87 430.75C284.87 479.03 244.03 518.23 193.74 518.23C143.44 518.23 102.6 479.03 102.6 430.75C102.6 382.48 143.44 343.28 193.74 343.28C244.03 343.28 284.87 382.48 284.87 430.75Z\",\n id: \"a1ISjZgyj\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a1M5KAzH5j\",\n opacity: 1,\n fill: \"#ffffff\",\n fillOpacity: 1\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#ak7xDDdYS\",\n opacity: 1,\n fill: \"#3F67F6\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#ak7xDDdYS\",\n opacity: 1,\n fillOpacity: 0,\n stroke: \"#000000\",\n strokeWidth: 1,\n strokeOpacity: 0\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#h4s7ssf3R0\",\n opacity: 1,\n fill: \"#ffffff\",\n fillOpacity: 1\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a1ISjZgyj\",\n opacity: 1,\n fill: \"#ffffff\",\n fillOpacity: 1\n }))))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReview);\nexport default __webpack_public_path__ + \"static/media/review.59a43e2539315ec95cc742117e6534c4.svg\";\nexport { ForwardRef as ReactComponent };","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext({});\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\nexport default DialogContext;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { unstable_useId as useId } from '@mui/utils';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `${theme.breakpoints.values.xs}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth && ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n const handleBackdropClick = event => {\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n backdropClick.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n closeAfterTransition: true,\n components: {\n Backdrop: DialogBackdrop\n },\n componentsProps: {\n backdrop: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps)\n },\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogTitleUtilityClass(slot) {\n return generateUtilityClass('MuiDialogTitle', slot);\n}\nconst dialogTitleClasses = generateUtilityClasses('MuiDialogTitle', ['root']);\nexport default dialogTitleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"id\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogTitleUtilityClass } from './dialogTitleClasses';\nimport DialogContext from '../Dialog/DialogContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDialogTitleUtilityClass, classes);\n};\nconst DialogTitleRoot = styled(Typography, {\n name: 'MuiDialogTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: '16px 24px',\n flex: '0 0 auto'\n});\nconst DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogTitle'\n });\n const {\n className,\n id: idProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const {\n titleId: id = idProp\n } = React.useContext(DialogContext);\n return /*#__PURE__*/_jsx(DialogTitleRoot, _extends({\n component: \"h2\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n variant: \"h6\",\n id: id\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n id: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogTitle;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogContentUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContent', slot);\n}\nconst dialogContentClasses = generateUtilityClasses('MuiDialogContent', ['root', 'dividers']);\nexport default dialogContentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"dividers\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogContentUtilityClass } from './dialogContentClasses';\nimport dialogTitleClasses from '../DialogTitle/dialogTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n dividers\n } = ownerState;\n const slots = {\n root: ['root', dividers && 'dividers']\n };\n return composeClasses(slots, getDialogContentUtilityClass, classes);\n};\nconst DialogContentRoot = styled('div', {\n name: 'MuiDialogContent',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dividers && styles.dividers];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n overflowY: 'auto',\n padding: '20px 24px'\n}, ownerState.dividers ? {\n padding: '16px 24px',\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`,\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n} : {\n [`.${dialogTitleClasses.root} + &`]: {\n paddingTop: 0\n }\n}));\nconst DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogContent'\n });\n const {\n className,\n dividers = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n dividers\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Display the top and bottom dividers.\n * @default false\n */\n dividers: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogContent;","import React, { useState } from \"react\";\nimport Phone from \"./Phone\";\nimport FadeIn from \"./FadeIn\";\nimport snap from \"../images/snap.svg\";\nimport {\n Grid,\n Container,\n Typography,\n Button,\n List,\n ListItemText,\n ListItemIcon,\n ListItem,\n} from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport ShopIcon from \"@mui/icons-material/Shop\";\nimport AppleIcon from \"@mui/icons-material/Apple\";\n//import peace from \"../images/peace.svg\";\nimport playstore from \"../images/playstore.svg\";\nimport appstore from \"../images/appstore.svg\";\nimport stet from \"../images/stethoscope.svg\";\n// import send from \"../images/send.svg\";\nimport review from \"../images/review.svg\";\nimport { PredictionBody } from \"./PredictionBody\";\n//import logo from \"../images/Dermalens1.png\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\n\nexport const useStyles = makeStyles((theme) => ({\n content1: {\n fontSize: \"1.2rem\",\n lineHeight: \"1.6\",\n color: \"#333\",\n },\n patented: {\n color: \"white\", \n fontWeight: \"bold\",\n cursor: \"pointer\",\n textDecoration: \"none\", \n padding: \"5px 10px\", \n border: \"2px solid white\", \n borderRadius: \"8px\", \n transition: \"all 0.3s ease-in-out\", \n \n \n },\n dialogTitle: {\n backgroundColor: \"#f5f5f5\",\n fontWeight: \"bold\",\n },\n download: {\n paddingTop: \"5.5vh\",\n background: \"#3F67F6\",\n paddingBottom: \"5.5vh\",\n },\n downloadContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n marginTop: \"40px\",\n },\n head: {\n color: \"#FFFFFF\",\n fontSize: \"3em\",\n fontWeight: 400,\n marginBottom: \"0\",\n [theme.breakpoints.down('md')]: {\n textAlign:\"center\"\n },\n },\n derma: {\n fontWeight: \"700\",\n \n },\n infoContainer: {\n padding: \"10% 80px 10% 20px\",\n [theme.breakpoints.down('md')]: {\n padding: \"10%\",\n },\n },\n content: {\n fontFamily: \"Nunito Sans\",\n fontWeight: \"500\",\n color: \"#FFFFFF\",\n fontSize: \"1.5em\",\n padding: \"5px\",\n margin: \"0 !important\",\n lineHeight: \"1.6\",\n position: \"relative\",\n display: \"inline-block\",\n [theme.breakpoints.down('md')]: {\n textAlign:\"center\",\n fontSize: \"1.25rem\",\n },\n },\n byContent: {\n margin: \"0\",\n },\n content11: {\n marginTop: \"30px\",\n fontFamily: \"Nunito Sans\",\n fontWeight: \"500\",\n color: \"#FFFFFF\",\n fontSize: \"1.5em\",\n padding: \"5px\",\n [theme.breakpoints.down('md')]: {\n textAlign:\"center\",\n fontSize: \"1.35rem\",\n },\n },\n content2: {\n \n },\n\n button: {\n borderRadius: 40,\n width: \"90%\",\n textTransform: \"none\",\n fontSize: \"18px\",\n background: \"#3F67F6\",\n margin: theme.spacing(1),\n boxShadow: \"none\",\n border: \"3px solid #FFFFFF\",\n \"&:hover\": {\n background: \"#0641b6\",\n color: \"#FFFFFF\"\n },\n },\n\n button0: {\n color: \"#3F67F6\",\n background: \"#FFFFFF\",\n },\n download_button: {\n borderRadius: 10,\n // height: \"50px\",\n width: \"70%\",\n border: 0,\n transition: \"0.2s\",\n \"&:hover\": {\n transform: \"translate(0px, -10px)\",\n background: \"#3F67F6\",\n },\n [theme.breakpoints.down('md')]: {\n marginLeft: \"15%\",\n },\n },\n center: {\n textAlign: \"center\",\n },\n buttonContainer: {\n marginTop: \"25px\",\n },\n}));\nfunction StartNow() {\n return (\n
\n
\n Get your skin issues resolved !\n
\n Start Now!\n \n \n \n \"Skin\n \n \n \n \n \n \"Aim4u\n \n \n \n \n \n \"Consult\"\n \n \n \n
\n Get your skin review.\n
\n
\n );\n}\n\nfunction Intro({ classes }) {\n const [open, setOpen] = useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n return (\n
\n \n - By AiM4u Software Solutions \n \n
\n {/* Main Typography */}\n \n \n A Patented AI and Deep Learning-powered\n Skincare Assistant that analyzes your skin concerns and provides instant access to dermatologists\n anytime, anywhere.\n \n \n\n {/* Modal Dialog */}\n \n Patented Technology Details\n \n \n \n \n Patented Technology: \n \n
    \n
  • Utility Model - German Patent
  • \n
  • Grant No.: 20 2024 100 262.8
  • \n
  • Dated: 26th February 2024
  • \n
\n \n
\n
\n
\n \n \n \n Features\n \n \n \n \n Get it Now\n \n \n \n
\n );\n}\nfunction GetNow({ classes }) {\n return (\n
\n );\n}\n\nexport default function Download({ bottom = undefined }) {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n

\n DERMALENS\n

\n {bottom === undefined ? (\n \n ) : (\n \n )}\n\n
\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport \"../styles/Frame.css\";\nimport img1 from \"../images/img1.jpeg\";\n\nconst useStyles = makeStyles((theme) => ({\n px__screen__frame: {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n overflow: \"hidden\",\n borderRadius: \"inherit\",\n backgroundSize: \"cover\",\n backgroundPosition: \"center center\",\n backgroundImage: `url(${img1})`,\n },\n}));\n\nconst Frame: React.FC = () => {\n const classes = useStyles();\n return (\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default Frame;\n","var _path, _path2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgAi(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 97,\n height: 91,\n viewBox: \"0 0 97 91\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.875 41.7083V34.125H76.7917V26.5417C76.7853 24.5323 75.9316 22.6069 74.417 21.1861C72.9025 19.7652 70.8502 18.9643 68.7083 18.9583H60.625V11.375H52.5417V18.9583H44.4583V11.375H36.375V18.9583H28.2917C26.1498 18.9643 24.0975 19.7652 22.583 21.1861C21.0684 22.6069 20.2147 24.5323 20.2083 26.5417V34.125H12.125V41.7083H20.2083V49.2917H12.125V56.875H20.2083V64.4583C20.2147 66.4677 21.0684 68.3931 22.583 69.8139C24.0975 71.2348 26.1498 72.0357 28.2917 72.0417H36.375V79.625H44.4583V72.0417H52.5417V79.625H60.625V72.0417H68.7083C70.8502 72.0357 72.9025 71.2348 74.417 69.8139C75.9316 68.3931 76.7853 66.4677 76.7917 64.4583V56.875H84.875V49.2917H76.7917V41.7083H84.875ZM68.7083 64.4583H28.2917V26.5417H68.7083V64.4583Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.9174 30.3333H40.4813L32.3576 60.6667H36.5084L38.3837 53.5573H47.7442L49.571 60.6667H53.8633L45.9174 30.3333ZM38.9293 50.5202L43.0437 33.9354H43.2297L47.2026 50.5202H38.9293ZM57.5695 30.3333H61.6112V60.6667H57.5695V30.3333Z\",\n fill: \"black\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAi);\nexport default __webpack_public_path__ + \"static/media/ai.c1d8085f7e93b375b086c601d9bdccbc.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgControl(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 83,\n height: 82,\n viewBox: \"0 0 83 82\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M29.3958 11.9583C29.3958 10.5991 29.9424 9.29555 30.9152 8.33442C31.8881 7.3733 33.2075 6.83334 34.5833 6.83334H48.4167C49.7925 6.83334 51.1119 7.3733 52.0848 8.33442C53.0576 9.29555 53.6042 10.5991 53.6042 11.9583H58.7917C60.1675 11.9583 61.4869 12.4983 62.4598 13.4594C63.4326 14.4205 63.9792 15.7241 63.9792 17.0833V42.7083H60.5208V17.0833C60.5208 16.6303 60.3386 16.1957 60.0144 15.8754C59.6901 15.555 59.2503 15.375 58.7917 15.375H53.6042C53.6042 16.7342 53.0576 18.0378 52.0848 18.9989C51.1119 19.9601 49.7925 20.5 48.4167 20.5H34.5833C33.2075 20.5 31.8881 19.9601 30.9152 18.9989C29.9424 18.0378 29.3958 16.7342 29.3958 15.375H24.2083C23.7497 15.375 23.3099 15.555 22.9856 15.8754C22.6613 16.1957 22.4792 16.6303 22.4792 17.0833V64.9167C22.4792 65.3698 22.6613 65.8043 22.9856 66.1246C23.3099 66.445 23.7497 66.625 24.2083 66.625H44.9583V70.0417H24.2083C22.8325 70.0417 21.5131 69.5017 20.5402 68.5406C19.5674 67.5795 19.0208 66.2759 19.0208 64.9167V17.0833C19.0208 15.7241 19.5674 14.4205 20.5402 13.4594C21.5131 12.4983 22.8325 11.9583 24.2083 11.9583H29.3958ZM34.5833 10.25C34.1247 10.25 33.6849 10.43 33.3606 10.7504C33.0363 11.0707 32.8542 11.5053 32.8542 11.9583V15.375C32.8542 15.8281 33.0363 16.2626 33.3606 16.583C33.6849 16.9034 34.1247 17.0833 34.5833 17.0833H48.4167C48.8753 17.0833 49.3151 16.9034 49.6394 16.583C49.9636 16.2626 50.1458 15.8281 50.1458 15.375V11.9583C50.1458 11.5053 49.9636 11.0707 49.6394 10.7504C49.3151 10.43 48.8753 10.25 48.4167 10.25H34.5833ZM39.7708 27.3333V32.4583H34.5833V35.875H39.7708V41H43.2292V35.875H48.4167V32.4583H43.2292V27.3333H39.7708ZM48.4167 46.125C47.9581 46.125 47.5182 46.305 47.194 46.6254C46.8697 46.9457 46.6875 47.3803 46.6875 47.8333V59.4312C46.6876 61.3998 47.1796 63.3379 48.1198 65.0735C49.06 66.8091 50.4194 68.2886 52.0773 69.3805L57.832 73.173C58.1161 73.3604 58.4501 73.4603 58.7917 73.4603C59.1333 73.4603 59.4672 73.3604 59.7514 73.173L65.506 69.3805C67.1637 68.2887 68.5229 66.8095 69.4631 65.0742C70.4033 63.3389 70.8955 61.4012 70.8958 59.4329V47.8333C70.8958 47.3803 70.7136 46.9457 70.3894 46.6254C70.0651 46.305 69.6253 46.125 69.1667 46.125H48.4167ZM65.2017 55.8745L58.285 62.7078C57.9608 63.0281 57.521 63.208 57.0625 63.208C56.604 63.208 56.1642 63.0281 55.84 62.7078L52.3816 59.2911L54.8267 56.8755L57.0625 59.0844L62.7566 53.4589L65.2017 55.8745Z\",\n fill: \"black\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgControl);\nexport default __webpack_public_path__ + \"static/media/control.ca52ddf8ae0eff792a1d1ab5204a0cdd.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgNintyfive(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 73,\n height: 70,\n viewBox: \"0 0 73 70\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.5 35C71.5 53.4428 55.8899 68.5 36.5 68.5C17.1101 68.5 1.5 53.4428 1.5 35C1.5 16.5572 17.1101 1.5 36.5 1.5C55.8899 1.5 71.5 16.5572 71.5 35Z\",\n fill: \"white\",\n stroke: \"black\",\n strokeWidth: 3\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.4455 26.2557C25.0516 26.2604 25.6387 26.3835 26.2069 26.625C26.7798 26.8617 27.2959 27.2453 27.7551 27.7756C28.2144 28.3011 28.579 29.0019 28.8489 29.8778C29.1188 30.7491 29.2537 31.8215 29.2537 33.0952C29.2537 34.2836 29.1496 35.3726 28.9412 36.3622C28.7329 37.3518 28.4204 38.2088 28.0037 38.9332C27.5918 39.6529 27.071 40.2116 26.4412 40.6094C25.8162 41.0024 25.0847 41.1989 24.2466 41.1989C23.4654 41.1989 22.7717 41.0355 22.1657 40.7088C21.5643 40.3821 21.0766 39.9299 20.7026 39.3523C20.3285 38.7699 20.0965 38.0975 20.0066 37.3352H21.3134C21.4412 38.1117 21.7537 38.7509 22.2509 39.2528C22.7528 39.7547 23.418 40.0057 24.2466 40.0057C25.4351 40.0057 26.3584 39.4517 27.0165 38.3438C27.6747 37.2358 28.0037 35.6591 28.0037 33.6136H27.9114C27.6841 34.0398 27.3858 34.4115 27.0165 34.7287C26.6519 35.0459 26.2353 35.2945 25.7665 35.4744C25.2978 35.6496 24.803 35.7372 24.2821 35.7372C23.4725 35.7372 22.7315 35.5336 22.0591 35.1264C21.3868 34.7145 20.8494 34.1534 20.4469 33.4432C20.0444 32.7282 19.8432 31.9138 19.8432 31C19.8432 30.1383 20.0326 29.3475 20.4114 28.6278C20.7949 27.9034 21.33 27.3258 22.0165 26.8949C22.7078 26.4593 23.5175 26.2462 24.4455 26.2557ZM24.4455 27.4489C23.8158 27.4489 23.2499 27.6098 22.748 27.9318C22.2509 28.2491 21.8555 28.6776 21.562 29.2173C21.2731 29.7524 21.1287 30.3466 21.1287 31C21.1287 31.6581 21.2731 32.2571 21.562 32.7969C21.8555 33.3319 22.2509 33.758 22.748 34.0753C23.2499 34.3878 23.8158 34.544 24.4455 34.544C24.9284 34.544 25.3783 34.447 25.7949 34.2528C26.2116 34.054 26.5714 33.7841 26.8745 33.4432C27.1822 33.1023 27.4142 32.7164 27.5705 32.2855C27.7315 31.8499 27.7954 31.393 27.7623 30.9148C27.7054 30.2519 27.5279 29.66 27.2296 29.1392C26.936 28.6136 26.5478 28.2017 26.0648 27.9034C25.5866 27.6004 25.0468 27.4489 24.4455 27.4489ZM36.5123 41.1989C35.7026 41.1989 34.9782 41.0355 34.339 40.7088C33.7045 40.3774 33.1979 39.9228 32.8191 39.3452C32.445 38.7675 32.2462 38.107 32.2225 37.3636H33.508C33.5506 38.1354 33.8536 38.7699 34.4171 39.267C34.9805 39.7595 35.6789 40.0057 36.5123 40.0057C37.1609 40.0057 37.7386 39.8518 38.2452 39.544C38.7518 39.2315 39.1472 38.8054 39.4313 38.2656C39.7201 37.7211 39.8645 37.108 39.8645 36.4261C39.8598 35.7159 39.7059 35.0909 39.4029 34.5511C39.0998 34.0066 38.6879 33.5805 38.1671 33.2727C37.651 32.965 37.071 32.8111 36.427 32.8111C35.9393 32.8063 35.4611 32.8868 34.9924 33.0526C34.5236 33.2183 34.133 33.4313 33.8205 33.6918L32.4924 33.5213L33.3659 26.4545H40.5534V27.6477H34.481L33.8986 32.5128H33.9696C34.2916 32.2429 34.6822 32.0227 35.1415 31.8523C35.6055 31.6818 36.0956 31.5966 36.6117 31.5966C37.4687 31.5966 38.2381 31.8026 38.9199 32.2145C39.6065 32.6264 40.1486 33.1946 40.5463 33.919C40.9488 34.6387 41.15 35.4673 41.15 36.4048C41.15 37.3234 40.9488 38.1449 40.5463 38.8693C40.1486 39.589 39.5994 40.1572 38.8986 40.5739C38.2026 40.9905 37.4071 41.1989 36.5123 41.1989ZM51.53 38.3011V37.6406C51.53 37.0961 51.6389 36.6061 51.8567 36.1705C52.0745 35.7301 52.3846 35.3821 52.7871 35.1264C53.1896 34.8707 53.6678 34.7429 54.2218 34.7429C54.7805 34.7429 55.2587 34.8707 55.6564 35.1264C56.0542 35.3821 56.3596 35.7301 56.5726 36.1705C56.7857 36.6061 56.8922 37.0961 56.8922 37.6406V38.3011C56.8922 38.8456 56.7833 39.3357 56.5655 39.7713C56.3525 40.2069 56.0471 40.5549 55.6493 40.8153C55.2516 41.071 54.7757 41.1989 54.2218 41.1989C53.6583 41.1989 53.1754 41.071 52.7729 40.8153C52.3752 40.5549 52.0674 40.2069 51.8496 39.7713C51.6365 39.3357 51.53 38.8456 51.53 38.3011ZM52.6451 37.6406V38.3011C52.6451 38.8362 52.7753 39.2931 53.0357 39.6719C53.3008 40.0459 53.6962 40.233 54.2218 40.233C54.7331 40.233 55.119 40.0459 55.3794 39.6719C55.6399 39.2931 55.7701 38.8362 55.7701 38.3011V37.6406C55.7701 37.1056 55.6422 36.651 55.3865 36.277C55.1309 35.8982 54.7426 35.7088 54.2218 35.7088C53.7057 35.7088 53.3127 35.8982 53.0428 36.277C52.7776 36.651 52.6451 37.1056 52.6451 37.6406ZM44.2005 29.8139V29.1534C44.2005 28.6089 44.3094 28.1188 44.5272 27.6832C44.745 27.2476 45.0551 26.902 45.4576 26.6463C45.86 26.3859 46.3382 26.2557 46.8922 26.2557C47.4509 26.2557 47.9292 26.3859 48.3269 26.6463C48.7246 26.902 49.03 27.2476 49.2431 27.6832C49.4561 28.1188 49.5627 28.6089 49.5627 29.1534V29.8139C49.5627 30.3584 49.4538 30.8509 49.236 31.2912C49.0229 31.7268 48.7175 32.0724 48.3198 32.3281C47.9221 32.5838 47.4462 32.7116 46.8922 32.7116C46.3288 32.7116 45.8458 32.5838 45.4434 32.3281C45.0456 32.0724 44.7379 31.7268 44.5201 31.2912C44.307 30.8509 44.2005 30.3584 44.2005 29.8139ZM45.3155 29.1534V29.8139C45.3155 30.349 45.4457 30.8059 45.7061 31.1847C45.9713 31.5587 46.3667 31.7457 46.8922 31.7457C47.4036 31.7457 47.7895 31.5587 48.0499 31.1847C48.3103 30.8059 48.4405 30.349 48.4405 29.8139V29.1534C48.4405 28.6184 48.3127 28.1638 48.057 27.7898C47.8013 27.411 47.4131 27.2216 46.8922 27.2216C46.3761 27.2216 45.9831 27.411 45.7132 27.7898C45.4481 28.1638 45.3155 28.6184 45.3155 29.1534ZM44.8539 41L54.8468 26.4545H56.1039L46.111 41H44.8539Z\",\n fill: \"black\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNintyfive);\nexport default __webpack_public_path__ + \"static/media/nintyfive.ce661d53f7e73fed0403aae8b7558a63.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport Frame from \"./Frame\";\nimport FadeIn from \"./FadeIn\";\nimport { Container, Typography } from \"@mui/material\";\nimport snap from \"../images/snap.svg\";\n//import send from \"../images/send.svg\";\nimport review from \"../images/review.svg\";\n//import peace from \"../images/peace.svg\";\nimport stet from \"../images/stethoscope.svg\";\nimport ai from \"../images/ai.svg\";\nimport control from \"../images/control.svg\";\nimport nintyfive from \"../images/nintyfive.svg\";\n//import book from \"../images/Book.svg\";\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: \"20px\",\n },\n gettingStarted: {\n textAlign: \"center\",\n color: \"#555555\",\n fontSize: \"17px\",\n },\n infoContainer: {\n textAlign: \"center\",\n },\n info: {\n display: \"inline-block\",\n padding: \"20px 0px\",\n },\n leftFeature: {\n textAlign: \"right\",\n },\n rightFeature: {\n textAlign: \"left\",\n },\n contentText: {\n fontSize: \"18px\",\n fontWeight: 500,\n },\n icons: {\n marginTop: \"10px\",\n },\n contentHead: { fontWeight: 550, fontSize: \"30px\" },\n}));\n\nconst Start: React.FC = () => {\n const classes = useStyles();\n return (\n <>\n
\n \n

GETTING STARTED

\n
\n
\n \n \n \n \n \n \n \n \n \"snap\"\n \n \n \n Click\n \n \n\n \n Take the photo of your skin problem.\n \n \n \n \n {/* \n \n \n \n \n Upload\n \n \n \n \"send\"\n \n \n Crop the affected area and send it for the analysis.\n \n \n \n */}\n \n \n \n \n \"send\"\n \n \n \n Detect\n \n \n\n \n Our AI assistant will provide three most prominent\n diseases.\n \n \n \n \n\n {/* \n \n \n \n \n Book\n \n \n \n \"book\"\n \n \n Get your skin issue resolved with our dermatologists\n at your convenience.\n \n \n \n */}\n\n \n \n \n \n \"consult\"\n \n \n \n Consult\n \n \n\n \n Talk to the dermatologist over a Video Call. Only on\n receiving a prescription by the dermatologists, the money\n will get deducted from the wallet.\n \n \n \n \n \n \n \n \n \n {/* \n \n \n Why Dermalens?\n
*/}\n \n \n \n \n \n Why Dermalens?\n
\n \n \n \n \n \n \n \n \n \n DermaLens Uses AI to analyze an uploaded photo of your\n skin and detect a wide array of skin diseases\n \n \n \n \n\n \n \n \n \n \n \n \n DermaLens can predict skin conditions with 95% accuracy.\n \n \n \n \n\n \n \n \n \n \n \n \n DermaLens helps you take control of your skin.\n \n \n \n \n \n \n {/*

Take control of your skin.

\n

\n On finding any concern, just click and upload.\n

\n

\n Our technology analyzes your photo and gives you instant result,\n reducing your anxiety.\n

\n

\n Detect skin issues when it is most treatable and does not spread\n much.\n

*/}\n {/* \n */}\n\n {/* \n \n \n \n \n \n \n \n \n \n \n \n Book\n \n \n\n \n Get your skin issue resolved with our dermatologists\n at your convenience.\n \n \n \n {/* \n \n \n \"peace\"\n \n \n \n Pay\n \n \n\n \n Make your payment to confirm your slot. The money will\n be safe in our wallet.\n \n \n \n \n \n \n \"peace\"\n \n \n \n Consult\n \n \n\n \n Talk to the dermatologist over a Video Call. Only on\n receiving a prescription by the dermatologists, the\n money will get deducted from the wallet.\n \n \n \n \n \n \n \n */}\n \n \n \n );\n};\n\nexport default Start;\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","let updateQueue = makeQueue();\nconst raf = fn => schedule(fn, updateQueue);\nlet writeQueue = makeQueue();\n\nraf.write = fn => schedule(fn, writeQueue);\n\nlet onStartQueue = makeQueue();\n\nraf.onStart = fn => schedule(fn, onStartQueue);\n\nlet onFrameQueue = makeQueue();\n\nraf.onFrame = fn => schedule(fn, onFrameQueue);\n\nlet onFinishQueue = makeQueue();\n\nraf.onFinish = fn => schedule(fn, onFinishQueue);\n\nlet timeouts = [];\n\nraf.setTimeout = (handler, ms) => {\n let time = raf.now() + ms;\n\n let cancel = () => {\n let i = timeouts.findIndex(t => t.cancel == cancel);\n if (~i) timeouts.splice(i, 1);\n pendingCount -= ~i ? 1 : 0;\n };\n\n let timeout = {\n time,\n handler,\n cancel\n };\n timeouts.splice(findTimeout(time), 0, timeout);\n pendingCount += 1;\n start();\n return timeout;\n};\n\nlet findTimeout = time => ~(~timeouts.findIndex(t => t.time > time) || ~timeouts.length);\n\nraf.cancel = fn => {\n onStartQueue.delete(fn);\n onFrameQueue.delete(fn);\n onFinishQueue.delete(fn);\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\n\nraf.sync = fn => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\n\nraf.throttle = fn => {\n let lastArgs;\n\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n\n throttled.handler = fn;\n\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n\n return throttled;\n};\n\nlet nativeRaf = typeof window != 'undefined' ? window.requestAnimationFrame : () => {};\n\nraf.use = impl => nativeRaf = impl;\n\nraf.now = typeof performance != 'undefined' ? () => performance.now() : Date.now;\n\nraf.batchedUpdates = fn => fn();\n\nraf.catch = console.error;\nraf.frameLoop = 'always';\n\nraf.advance = () => {\n if (raf.frameLoop !== 'demand') {\n console.warn('Cannot call the manual advancement of rafz whilst frameLoop is not set as demand');\n } else {\n update();\n }\n};\n\nlet ts = -1;\nlet pendingCount = 0;\nlet sync = false;\n\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\n\nfunction start() {\n if (ts < 0) {\n ts = 0;\n\n if (raf.frameLoop !== 'demand') {\n nativeRaf(loop);\n }\n }\n}\n\nfunction stop() {\n ts = -1;\n}\n\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\n\nfunction update() {\n let prevTs = ts;\n ts = raf.now();\n let count = findTimeout(ts);\n\n if (count) {\n eachSafely(timeouts.splice(0, count), t => t.handler());\n pendingCount -= count;\n }\n\n if (!pendingCount) {\n stop();\n return;\n }\n\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\n\nfunction makeQueue() {\n let next = new Set();\n let current = next;\n return {\n add(fn) {\n pendingCount += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n\n delete(fn) {\n pendingCount -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n\n flush(arg) {\n if (current.size) {\n next = new Set();\n pendingCount -= current.size;\n eachSafely(current, fn => fn(arg) && next.add(fn));\n pendingCount += next.size;\n current = next;\n }\n }\n\n };\n}\n\nfunction eachSafely(values, each) {\n values.forEach(value => {\n try {\n each(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\n\nconst __raf = {\n count() {\n return pendingCount;\n },\n\n isRunning() {\n return ts >= 0;\n },\n\n clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n pendingCount = 0;\n }\n\n};\n\nexport { __raf, raf };\n","import { raf } from '@react-spring/rafz';\nexport { raf } from '@react-spring/rafz';\nimport { useRef, useEffect, useLayoutEffect, useState } from 'react';\n\nfunction noop() {}\nconst defineHidden = (obj, key, value) => Object.defineProperty(obj, key, {\n value,\n writable: true,\n configurable: true\n});\nconst is = {\n arr: Array.isArray,\n obj: a => !!a && a.constructor.name === 'Object',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === undefined\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n return a === b;\n}\nconst each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n\n return;\n }\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nconst toArray = a => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nconst flushCalls = (queue, ...args) => flush(queue, fn => fn(...args));\nconst isSSR = () => typeof window === 'undefined' || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\n\nlet createStringInterpolator$1;\nlet to;\nlet colors$1 = null;\nlet skipAnimation = false;\nlet willAdvance = noop;\nconst assign = globals => {\n if (globals.to) to = globals.to;\n if (globals.now) raf.now = globals.now;\n if (globals.colors !== undefined) colors$1 = globals.colors;\n if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator;\n if (globals.requestAnimationFrame) raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates) raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance) willAdvance = globals.willAdvance;\n if (globals.frameLoop) raf.frameLoop = globals.frameLoop;\n};\n\nvar globals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get createStringInterpolator () { return createStringInterpolator$1; },\n get to () { return to; },\n get colors () { return colors$1; },\n get skipAnimation () { return skipAnimation; },\n get willAdvance () { return willAdvance; },\n assign: assign\n});\n\nconst startQueue = new Set();\nlet currentFrame = [];\nlet prevFrame = [];\nlet priority = 0;\nconst frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n\n advance,\n\n sort(animation) {\n if (priority) {\n raf.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n\n};\n\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\n\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation)) startUnsafely(animation);\n}\n\nfunction startUnsafely(animation) {\n currentFrame.splice(findIndex(currentFrame, other => other.priority > animation.priority), 0, animation);\n}\n\nfunction advance(dt) {\n const nextFrame = prevFrame;\n\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\n\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\nconst clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...parts) {\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n }\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n\n if (colors$1 && colors$1[color] !== undefined) {\n return colors$1[color];\n }\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 0x000000ff) >>> 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + 'ff', 16) >>> 0;\n }\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 0x000000ff) >>> 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nconst createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (is.str(range.output[0])) {\n return createStringInterpolator$1(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n};\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\n}\n\nconst steps = (steps, direction = 'end') => progress => {\n progress = direction === 'end' ? Math.min(progress, 0.999) : Math.max(progress, 0.001);\n const expanded = progress * steps;\n const rounded = direction === 'end' ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n};\n\nconst c1 = 1.70158;\nconst c2 = c1 * 1.525;\nconst c3 = c1 + 1;\nconst c4 = 2 * Math.PI / 3;\nconst c5 = 2 * Math.PI / 4.5;\n\nconst bounceOut = x => {\n const n1 = 7.5625;\n const d1 = 2.75;\n\n if (x < 1 / d1) {\n return n1 * x * x;\n } else if (x < 2 / d1) {\n return n1 * (x -= 1.5 / d1) * x + 0.75;\n } else if (x < 2.5 / d1) {\n return n1 * (x -= 2.25 / d1) * x + 0.9375;\n } else {\n return n1 * (x -= 2.625 / d1) * x + 0.984375;\n }\n};\n\nconst easings = {\n linear: x => x,\n easeInQuad: x => x * x,\n easeOutQuad: x => 1 - (1 - x) * (1 - x),\n easeInOutQuad: x => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,\n easeInCubic: x => x * x * x,\n easeOutCubic: x => 1 - Math.pow(1 - x, 3),\n easeInOutCubic: x => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2,\n easeInQuart: x => x * x * x * x,\n easeOutQuart: x => 1 - Math.pow(1 - x, 4),\n easeInOutQuart: x => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2,\n easeInQuint: x => x * x * x * x * x,\n easeOutQuint: x => 1 - Math.pow(1 - x, 5),\n easeInOutQuint: x => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2,\n easeInSine: x => 1 - Math.cos(x * Math.PI / 2),\n easeOutSine: x => Math.sin(x * Math.PI / 2),\n easeInOutSine: x => -(Math.cos(Math.PI * x) - 1) / 2,\n easeInExpo: x => x === 0 ? 0 : Math.pow(2, 10 * x - 10),\n easeOutExpo: x => x === 1 ? 1 : 1 - Math.pow(2, -10 * x),\n easeInOutExpo: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2,\n easeInCirc: x => 1 - Math.sqrt(1 - Math.pow(x, 2)),\n easeOutCirc: x => Math.sqrt(1 - Math.pow(x - 1, 2)),\n easeInOutCirc: x => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2,\n easeInBack: x => c3 * x * x * x - c1 * x * x,\n easeOutBack: x => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2),\n easeInOutBack: x => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2,\n easeInElastic: x => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4),\n easeOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1,\n easeInOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1,\n easeInBounce: x => 1 - bounceOut(1 - x),\n easeOutBounce: bounceOut,\n easeInOutBounce: x => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2,\n steps\n};\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nconst $get = Symbol.for('FluidValue.get');\nconst $observers = Symbol.for('FluidValue.observers');\n\nconst hasFluidValue = arg => Boolean(arg && arg[$get]);\n\nconst getFluidValue = arg => arg && arg[$get] ? arg[$get]() : arg;\n\nconst getFluidObservers = target => target[$observers] || null;\n\nfunction callFluidObserver(observer, event) {\n if (observer.eventObserved) {\n observer.eventObserved(event);\n } else {\n observer(event);\n }\n}\n\nfunction callFluidObservers(target, event) {\n let observers = target[$observers];\n\n if (observers) {\n observers.forEach(observer => {\n callFluidObserver(observer, event);\n });\n }\n}\n\nclass FluidValue {\n constructor(get) {\n this[$get] = void 0;\n this[$observers] = void 0;\n\n if (!get && !(get = this.get)) {\n throw Error('Unknown getter');\n }\n\n setFluidGetter(this, get);\n }\n\n}\n\nconst setFluidGetter = (target, get) => setHidden(target, $get, get);\n\nfunction addFluidObserver(target, observer) {\n if (target[$get]) {\n let observers = target[$observers];\n\n if (!observers) {\n setHidden(target, $observers, observers = new Set());\n }\n\n if (!observers.has(observer)) {\n observers.add(observer);\n\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer);\n }\n }\n }\n\n return observer;\n}\n\nfunction removeFluidObserver(target, observer) {\n let observers = target[$observers];\n\n if (observers && observers.has(observer)) {\n const count = observers.size - 1;\n\n if (count) {\n observers.delete(observer);\n } else {\n target[$observers] = null;\n }\n\n if (target.observerRemoved) {\n target.observerRemoved(count, observer);\n }\n }\n}\n\nconst setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\nconst numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nconst unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, 'i');\nconst rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\nconst cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\n\nconst variableToRgba = input => {\n const [token, fallback] = parseCSSVariable(input);\n\n if (!token || isSSR()) {\n return input;\n }\n\n const value = window.getComputedStyle(document.documentElement).getPropertyValue(token);\n\n if (value) {\n return value.trim();\n } else if (fallback && fallback.startsWith('--')) {\n const _value = window.getComputedStyle(document.documentElement).getPropertyValue(fallback);\n\n if (_value) {\n return _value;\n } else {\n return input;\n }\n } else if (fallback && cssVariableRegex.test(fallback)) {\n return variableToRgba(fallback);\n } else if (fallback) {\n return fallback;\n }\n\n return input;\n};\n\nconst parseCSSVariable = current => {\n const match = cssVariableRegex.exec(current);\n if (!match) return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n};\n\nlet namedColorRegex;\n\nconst rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\n\nconst createStringInterpolator = config => {\n if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join('|')})(?!\\\\w)`, 'g') : /^\\b$/;\n const output = config.output.map(value => {\n return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);\n });\n const keyframes = output.map(value => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map((_, i) => keyframes.map(values => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n\n return values[i];\n }));\n const interpolators = outputRanges.map(output => createInterpolator(_extends({}, config, {\n output\n })));\n return input => {\n var _output$find;\n\n const missingUnit = !unitRegex.test(output[0]) && ((_output$find = output.find(value => unitRegex.test(value))) == null ? void 0 : _output$find.replace(numberRegex, ''));\n let i = 0;\n return output[0].replace(numberRegex, () => `${interpolators[i++](input)}${missingUnit || ''}`).replace(rgbaRegex, rgbaRound);\n };\n};\n\nconst prefix = 'react-spring: ';\nconst once = fn => {\n const func = fn;\n let called = false;\n\n if (typeof func != 'function') {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\nconst warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(`${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`);\n}\nconst warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`);\n}\n\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == '#' || /\\d/.test(value) || !isSSR() && cssVariableRegex.test(value) || value in (colors$1 || {}));\n}\n\nlet observer;\nconst resizeHandlers = new WeakMap();\n\nconst handleObservation = entries => entries.forEach(({\n target,\n contentRect\n}) => {\n var _resizeHandlers$get;\n\n return (_resizeHandlers$get = resizeHandlers.get(target)) == null ? void 0 : _resizeHandlers$get.forEach(handler => handler(contentRect));\n});\n\nfunction resizeElement(handler, target) {\n if (!observer) {\n if (typeof ResizeObserver !== 'undefined') {\n observer = new ResizeObserver(handleObservation);\n }\n }\n\n let elementHandlers = resizeHandlers.get(target);\n\n if (!elementHandlers) {\n elementHandlers = new Set();\n resizeHandlers.set(target, elementHandlers);\n }\n\n elementHandlers.add(handler);\n\n if (observer) {\n observer.observe(target);\n }\n\n return () => {\n const elementHandlers = resizeHandlers.get(target);\n if (!elementHandlers) return;\n elementHandlers.delete(handler);\n\n if (!elementHandlers.size && observer) {\n observer.unobserve(target);\n }\n };\n}\n\nconst listeners = new Set();\nlet cleanupWindowResizeHandler;\n\nconst createResizeHandler = () => {\n const handleResize = () => {\n listeners.forEach(callback => callback({\n width: window.innerWidth,\n height: window.innerHeight\n }));\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n};\n\nconst resizeWindow = callback => {\n listeners.add(callback);\n\n if (!cleanupWindowResizeHandler) {\n cleanupWindowResizeHandler = createResizeHandler();\n }\n\n return () => {\n listeners.delete(callback);\n\n if (!listeners.size && cleanupWindowResizeHandler) {\n cleanupWindowResizeHandler();\n cleanupWindowResizeHandler = undefined;\n }\n };\n};\n\nconst onResize = (callback, {\n container: _container = document.documentElement\n} = {}) => {\n if (_container === document.documentElement) {\n return resizeWindow(callback);\n } else {\n return resizeElement(callback, _container);\n }\n};\n\nconst progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nconst SCROLL_KEYS = {\n x: {\n length: 'Width',\n position: 'Left'\n },\n y: {\n length: 'Height',\n position: 'Top'\n }\n};\nclass ScrollHandler {\n constructor(callback, container) {\n this.callback = void 0;\n this.container = void 0;\n this.info = void 0;\n\n this.createAxis = () => ({\n current: 0,\n progress: 0,\n scrollLength: 0\n });\n\n this.updateAxis = axisName => {\n const axis = this.info[axisName];\n const {\n length,\n position\n } = SCROLL_KEYS[axisName];\n axis.current = this.container[`scroll${position}`];\n axis.scrollLength = this.container['scroll' + length] - this.container['client' + length];\n axis.progress = progress(0, axis.scrollLength, axis.current);\n };\n\n this.update = () => {\n this.updateAxis('x');\n this.updateAxis('y');\n };\n\n this.sendEvent = () => {\n this.callback(this.info);\n };\n\n this.advance = () => {\n this.update();\n this.sendEvent();\n };\n\n this.callback = callback;\n this.container = container;\n this.info = {\n time: 0,\n x: this.createAxis(),\n y: this.createAxis()\n };\n }\n\n}\n\nconst scrollListeners = new WeakMap();\nconst resizeListeners = new WeakMap();\nconst onScrollHandlers = new WeakMap();\n\nconst getTarget = container => container === document.documentElement ? window : container;\n\nconst onScroll = (callback, {\n container: _container = document.documentElement\n} = {}) => {\n let containerHandlers = onScrollHandlers.get(_container);\n\n if (!containerHandlers) {\n containerHandlers = new Set();\n onScrollHandlers.set(_container, containerHandlers);\n }\n\n const containerHandler = new ScrollHandler(callback, _container);\n containerHandlers.add(containerHandler);\n\n if (!scrollListeners.has(_container)) {\n const listener = () => {\n var _containerHandlers;\n\n (_containerHandlers = containerHandlers) == null ? void 0 : _containerHandlers.forEach(handler => handler.advance());\n return true;\n };\n\n scrollListeners.set(_container, listener);\n const target = getTarget(_container);\n window.addEventListener('resize', listener, {\n passive: true\n });\n\n if (_container !== document.documentElement) {\n resizeListeners.set(_container, onResize(listener, {\n container: _container\n }));\n }\n\n target.addEventListener('scroll', listener, {\n passive: true\n });\n }\n\n const animateScroll = scrollListeners.get(_container);\n raf(animateScroll);\n return () => {\n raf.cancel(animateScroll);\n const containerHandlers = onScrollHandlers.get(_container);\n if (!containerHandlers) return;\n containerHandlers.delete(containerHandler);\n if (containerHandlers.size) return;\n const listener = scrollListeners.get(_container);\n scrollListeners.delete(_container);\n\n if (listener) {\n var _resizeListeners$get;\n\n getTarget(_container).removeEventListener('scroll', listener);\n window.removeEventListener('resize', listener);\n (_resizeListeners$get = resizeListeners.get(_container)) == null ? void 0 : _resizeListeners$get();\n }\n };\n};\n\nfunction useConstant(init) {\n const ref = useRef(null);\n\n if (ref.current === null) {\n ref.current = init();\n }\n\n return ref.current;\n}\n\nconst useIsomorphicLayoutEffect = isSSR() ? useEffect : useLayoutEffect;\n\nconst useIsMounted = () => {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n};\n\nfunction useForceUpdate() {\n const update = useState()[1];\n const isMounted = useIsMounted();\n return () => {\n if (isMounted.current) {\n update(Math.random());\n }\n };\n}\n\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState(() => ({\n inputs,\n result: getResult()\n }));\n const committed = useRef();\n const prevCache = committed.current;\n let cache = prevCache;\n\n if (cache) {\n const useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs));\n\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n\n useEffect(() => {\n committed.current = cache;\n\n if (prevCache == initial) {\n initial.inputs = initial.result = undefined;\n }\n }, [cache]);\n return cache.result;\n}\n\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nconst useOnce = effect => useEffect(effect, emptyDeps);\nconst emptyDeps = [];\n\nfunction usePrev(value) {\n const prevRef = useRef();\n useEffect(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\nconst useReducedMotion = () => {\n const [reducedMotion, setReducedMotion] = useState(null);\n useIsomorphicLayoutEffect(() => {\n const mql = window.matchMedia('(prefers-reduced-motion)');\n\n const handleMediaChange = e => {\n setReducedMotion(e.matches);\n assign({\n skipAnimation: e.matches\n });\n };\n\n handleMediaChange(mql);\n mql.addEventListener('change', handleMediaChange);\n return () => {\n mql.removeEventListener('change', handleMediaChange);\n };\n }, []);\n return reducedMotion;\n};\n\nexport { FluidValue, globals as Globals, addFluidObserver, callFluidObserver, callFluidObservers, clamp, colorToRgba, colors, createInterpolator, createStringInterpolator, defineHidden, deprecateDirectCall, deprecateInterpolate, each, eachProp, easings, flush, flushCalls, frameLoop, getFluidObservers, getFluidValue, hasFluidValue, hex3, hex4, hex6, hex8, hsl, hsla, is, isAnimatedString, isEqual, isSSR, noop, onResize, onScroll, once, prefix, removeFluidObserver, rgb, rgba, setFluidGetter, toArray, useConstant, useForceUpdate, useIsomorphicLayoutEffect, useMemoOne, useOnce, usePrev, useReducedMotion };\n","import { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useIsomorphicLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\n\nconst $node = Symbol.for('Animated:node');\nconst isAnimated = value => !!value && value[$node] === value;\nconst getAnimated = owner => owner && owner[$node];\nconst setAnimated = (owner, node) => defineHidden(owner, $node, node);\nconst getPayload = owner => owner && owner[$node] && owner[$node].getPayload();\nclass Animated {\n constructor() {\n this.payload = void 0;\n setAnimated(this, this);\n }\n\n getPayload() {\n return this.payload || [];\n }\n\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n super();\n this.done = true;\n this.elapsedTime = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.v0 = void 0;\n this.durationProgress = 0;\n this._value = _value;\n\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n\n static create(value) {\n return new AnimatedValue(value);\n }\n\n getPayload() {\n return [this];\n }\n\n getValue() {\n return this._value;\n }\n\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n\n if (step) {\n value = Math.round(value / step) * step;\n\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n\n if (this._value === value) {\n return false;\n }\n\n this._value = value;\n return true;\n }\n\n reset() {\n const {\n done\n } = this;\n this.done = false;\n\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done) this.lastVelocity = null;\n this.v0 = null;\n }\n }\n\n}\n\nclass AnimatedString extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = void 0;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n\n static create(value) {\n return new AnimatedString(value);\n }\n\n getValue() {\n let value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n\n setValue(value) {\n if (is.str(value)) {\n if (value == this._string) {\n return false;\n }\n\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n\n return true;\n }\n\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n\n this._value = 0;\n super.reset();\n }\n\n}\n\nconst TreeContext = {\n dependencies: null\n};\n\nclass AnimatedObject extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n\n reset() {\n if (this.payload) {\n each(this.payload, node => node.reset());\n }\n }\n\n _makePayload(source) {\n if (source) {\n const payload = new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n\n const payload = getPayload(source);\n\n if (payload) {\n each(payload, node => this.add(node));\n }\n }\n\n}\n\nclass AnimatedArray extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n\n static create(source) {\n return new AnimatedArray(source);\n }\n\n getValue() {\n return this.source.map(node => node.getValue());\n }\n\n setValue(source) {\n const payload = this.getPayload();\n\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n\n super.setValue(source.map(makeAnimated));\n return true;\n }\n\n}\n\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nconst withAnimated = (Component, host) => {\n const hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && useCallback(value => {\n instanceRef.current = updateRef(givenRef, value);\n }, [givenRef]);\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n\n const callback = () => {\n const instance = instanceRef.current;\n\n if (hasInstance && !instance) {\n return;\n }\n\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useIsomorphicLayoutEffect(() => {\n observerRef.current = observer;\n each(deps, dep => addFluidObserver(dep, observer));\n return () => {\n if (observerRef.current) {\n each(observerRef.current.deps, dep => removeFluidObserver(dep, observerRef.current));\n raf.cancel(observerRef.current.update);\n }\n };\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer = observerRef.current;\n each(observer.deps, dep => removeFluidObserver(dep, observer));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return React.createElement(Component, _extends({}, usedProps, {\n ref: ref\n }));\n });\n};\n\nclass PropsObserver {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n raf.write(this.update);\n }\n }\n\n}\n\nfunction getAnimatedState(props, host) {\n const dependencies = new Set();\n TreeContext.dependencies = dependencies;\n if (props.style) props = _extends({}, props, {\n style: host.createAnimatedStyle(props.style)\n });\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n if (ref) {\n if (is.fun(ref)) ref(value);else ref.current = value;\n }\n\n return value;\n}\n\nconst cacheKey = Symbol.for('AnimatedComponent');\nconst createHost = (components, {\n applyAnimatedValues: _applyAnimatedValues = () => false,\n createAnimatedStyle: _createAnimatedStyle = style => new AnimatedObject(style),\n getComponentProps: _getComponentProps = props => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues: _applyAnimatedValues,\n createAnimatedStyle: _createAnimatedStyle,\n getComponentProps: _getComponentProps\n };\n\n const animated = Component => {\n const displayName = getDisplayName(Component) || 'Anonymous';\n\n if (is.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n\n eachProp(components, (Component, key) => {\n if (is.arr(components)) {\n key = getDisplayName(Component);\n }\n\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\n\nconst getDisplayName = arg => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };\n","import { eachProp, is, toArray, getFluidValue, isAnimatedString, Globals, useIsomorphicLayoutEffect, each, easings, raf, flush, FluidValue, deprecateInterpolate, callFluidObservers, frameLoop, hasFluidValue, flushCalls, isEqual, getFluidObservers, addFluidObserver, removeFluidObserver, noop, useMemoOne, deprecateDirectCall, useForceUpdate, usePrev, useOnce, useConstant, onScroll, onResize, createInterpolator, createStringInterpolator } from '@react-spring/shared';\nexport { Globals, createInterpolator, easings, useIsomorphicLayoutEffect, useReducedMotion } from '@react-spring/shared';\nimport * as React from 'react';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { getAnimated, AnimatedValue, getPayload, AnimatedString, getAnimatedType, setAnimated } from '@react-spring/animated';\nexport * from '@react-spring/types/animated';\nexport * from '@react-spring/types/interpolation';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nconst matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nconst resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nconst getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : undefined;\n\nconst noopTransform = value => value;\n\nconst getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n\n const defaults = {};\n\n for (const key of keys) {\n const value = transform(props[key], key);\n\n if (!is.und(value)) {\n defaults[key] = value;\n }\n }\n\n return defaults;\n};\nconst DEFAULT_PROPS = ['config', 'onProps', 'onStart', 'onChange', 'onPause', 'onResume', 'onRest'];\nconst RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n keys: 1,\n callId: 1,\n parentId: 1\n};\n\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n\n if (count) {\n return forward;\n }\n}\n\nfunction inferTo(props) {\n const to = getForwardProps(props);\n\n if (to) {\n const out = {\n to\n };\n eachProp(props, (val, key) => key in to || (out[key] = val));\n return out;\n }\n\n return _extends({}, props);\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? Globals.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props) return true;\n\n return false;\n}\nfunction isAsyncTo(to) {\n return is.fun(to) || is.arr(to) && is.obj(to[0]);\n}\nfunction detachRefs(ctrl, ref) {\n var _ctrl$ref;\n\n (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref.delete(ctrl);\n ref == null ? void 0 : ref.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n var _ctrl$ref2;\n\n (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\nfunction useChain(refs, timeSteps, timeFrame = 1000) {\n useIsomorphicLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay)) delay = prevDelay;else prevDelay = delay;\n each(controllers, ctrl => {\n each(ctrl.queue, props => {\n const memoizedDelayProp = props.delay;\n\n props.delay = key => delay + callProp(memoizedDelayProp || 0, key);\n });\n });\n ref.start();\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, ref => {\n const controllers = ref.current;\n\n if (controllers.length) {\n const queues = controllers.map(ctrl => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(controllers, (ctrl, i) => each(queues[i] || [], update => ctrl.queue.push(update)));\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\nconst defaults = _extends({}, config.default, {\n mass: 1,\n damping: 1,\n easing: easings.linear,\n clamp: false\n});\n\nclass AnimationConfig {\n constructor() {\n this.tension = void 0;\n this.friction = void 0;\n this.frequency = void 0;\n this.damping = void 0;\n this.mass = void 0;\n this.velocity = 0;\n this.restVelocity = void 0;\n this.precision = void 0;\n this.progress = void 0;\n this.duration = void 0;\n this.easing = void 0;\n this.clamp = void 0;\n this.bounce = void 0;\n this.decay = void 0;\n this.round = void 0;\n Object.assign(this, defaults);\n }\n\n}\nfunction mergeConfig(config, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = _extends({}, defaultConfig);\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = _extends({}, defaultConfig, newConfig);\n }\n\n sanitizeConfig(config, newConfig);\n Object.assign(config, newConfig);\n\n for (const key in defaults) {\n if (config[key] == null) {\n config[key] = defaults[key];\n }\n }\n\n let {\n mass,\n frequency,\n damping\n } = config;\n\n if (!is.und(frequency)) {\n if (frequency < 0.01) frequency = 0.01;\n if (damping < 0) damping = 0;\n config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config.friction = 4 * Math.PI * damping * mass / frequency;\n }\n\n return config;\n}\n\nfunction sanitizeConfig(config, props) {\n if (!is.und(props.decay)) {\n config.duration = undefined;\n } else {\n const isTensionConfig = !is.und(props.tension) || !is.und(props.friction);\n\n if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) {\n config.duration = undefined;\n config.decay = undefined;\n }\n\n if (isTensionConfig) {\n config.frequency = undefined;\n }\n }\n}\n\nconst emptyArray = [];\nclass Animation {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.to = void 0;\n this.from = void 0;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n\n}\n\nfunction scheduleProps(callId, {\n key,\n props,\n defaultProps,\n state,\n actions\n}) {\n return new Promise((resolve, reject) => {\n var _props$cancel;\n\n let delay;\n let timeout;\n let cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key);\n\n if (cancel) {\n onStart();\n } else {\n if (!is.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n\n let pause = defaultProps == null ? void 0 : defaultProps.pause;\n\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n\n delay = callProp(props.delay || 0, key);\n\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n\n function onResume() {\n if (delay > 0 && !Globals.skipAnimation) {\n state.delayed = true;\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n\n function onStart() {\n if (state.delayed) {\n state.delayed = false;\n }\n\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n\n try {\n actions.start(_extends({}, props, {\n callId,\n cancel\n }), resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\nconst getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some(result => result.cancelled) ? getCancelledResult(target.get()) : results.every(result => result.noop) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every(result => result.finished));\nconst getNoopResult = value => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nconst getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nconst getCancelledResult = value => ({\n value,\n cancelled: true,\n finished: false\n});\n\nfunction runAsync(to, props, state, target) {\n const {\n callId,\n parentId,\n onRest\n } = props;\n const {\n asyncTo: prevTo,\n promise: prevPromise\n } = state;\n\n if (!parentId && to === prevTo && !props.reset) {\n return prevPromise;\n }\n\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to;\n const defaultProps = getDefaultProps(props, (value, key) => key === 'onRest' ? undefined : value);\n let preventBail;\n let bail;\n const bailPromise = new Promise((resolve, reject) => (preventBail = resolve, bail = reject));\n\n const bailIfEnded = bailSignal => {\n const bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false);\n\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAnimationSignal();\n return (async () => {\n if (Globals.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n\n bailIfEnded(bailSignal);\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n to: arg1\n });\n props.parentId = callId;\n eachProp(defaultProps, (value, key) => {\n if (is.und(props[key])) {\n props[key] = value;\n }\n });\n const result = await target.start(props);\n bailIfEnded(bailSignal);\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n return result;\n })();\n };\n\n let result;\n\n if (Globals.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n\n try {\n let animating;\n\n if (is.arr(to)) {\n animating = (async queue => {\n for (const props of queue) {\n await animate(props);\n }\n })(to);\n } else {\n animating = Promise.resolve(to(animate, target.stop.bind(target)));\n }\n\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAnimationSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : undefined;\n state.promise = parentId ? prevPromise : undefined;\n }\n }\n\n if (is.fun(onRest)) {\n raf.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, t => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = undefined;\n if (cancelId) state.cancelId = cancelId;\n}\nclass BailSignal extends Error {\n constructor() {\n super('An async animation has been interrupted. You see this error because you ' + 'forgot to use `await` or `.catch(...)` on its returned promise.');\n this.result = void 0;\n }\n\n}\nclass SkipAnimationSignal extends Error {\n constructor() {\n super('SkipAnimationSignal');\n this.result = void 0;\n }\n\n}\n\nconst isFrameValue = value => value instanceof FrameValue;\nlet nextId$1 = 1;\nclass FrameValue extends FluidValue {\n constructor(...args) {\n super(...args);\n this.id = nextId$1++;\n this.key = void 0;\n this._priority = 0;\n }\n\n get priority() {\n return this._priority;\n }\n\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n\n this._onPriorityChange(priority);\n }\n }\n\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n\n to(...args) {\n return Globals.to(this, args);\n }\n\n interpolate(...args) {\n deprecateInterpolate();\n return Globals.to(this, args);\n }\n\n toJSON() {\n return this.get();\n }\n\n observerAdded(count) {\n if (count == 1) this._attach();\n }\n\n observerRemoved(count) {\n if (count == 0) this._detach();\n }\n\n _attach() {}\n\n _detach() {}\n\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: 'change',\n parent: this,\n value,\n idle\n });\n }\n\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n\n callFluidObservers(this, {\n type: 'priority',\n parent: this,\n priority\n });\n }\n\n}\n\nconst $P = Symbol.for('SpringPhase');\nconst HAS_ANIMATED = 1;\nconst IS_ANIMATING = 2;\nconst IS_PAUSED = 4;\nconst hasAnimated = target => (target[$P] & HAS_ANIMATED) > 0;\nconst isAnimating = target => (target[$P] & IS_ANIMATING) > 0;\nconst isPaused = target => (target[$P] & IS_PAUSED) > 0;\nconst setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nconst setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\nclass SpringValue extends FrameValue {\n constructor(arg1, arg2) {\n super();\n this.key = void 0;\n this.animation = new Animation();\n this.queue = void 0;\n this.defaultProps = {};\n this._state = {\n paused: false,\n delayed: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._pendingCalls = new Set();\n this._lastCallId = 0;\n this._lastToId = 0;\n this._memoizedDuration = 0;\n\n if (!is.und(arg1) || !is.und(arg2)) {\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n from: arg1\n });\n\n if (is.und(props.default)) {\n props.default = true;\n }\n\n this.start(props);\n }\n }\n\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n\n get goal() {\n return getFluidValue(this.animation.to);\n }\n\n get velocity() {\n const node = getAnimated(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map(node => node.lastVelocity || 0);\n }\n\n get hasAnimated() {\n return hasAnimated(this);\n }\n\n get isAnimating() {\n return isAnimating(this);\n }\n\n get isPaused() {\n return isPaused(this);\n }\n\n get isDelayed() {\n return this._state.delayed;\n }\n\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let {\n config,\n toValues\n } = anim;\n const payload = getPayload(anim.to);\n\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray(getFluidValue(anim.to));\n }\n\n anim.values.forEach((node, i) => {\n if (node.done) return;\n const to = node.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i];\n let finished = anim.immediate;\n let position = to;\n\n if (!finished) {\n position = node.lastPosition;\n\n if (config.tension <= 0) {\n node.done = true;\n return;\n }\n\n let elapsed = node.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node.v0 != null ? node.v0 : node.v0 = is.arr(config.velocity) ? config.velocity[i] : config.velocity;\n let velocity;\n const precision = config.precision || (from == to ? 0.005 : Math.min(1, Math.abs(to - from) * 0.001));\n\n if (!is.und(config.duration)) {\n let p = 1;\n\n if (config.duration > 0) {\n if (this._memoizedDuration !== config.duration) {\n this._memoizedDuration = config.duration;\n\n if (node.durationProgress > 0) {\n node.elapsedTime = config.duration * node.durationProgress;\n elapsed = node.elapsedTime += dt;\n }\n }\n\n p = (config.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node.durationProgress = p;\n }\n\n position = from + config.easing(p) * (to - from);\n velocity = (position - node.lastPosition) / dt;\n finished = p == 1;\n } else if (config.decay) {\n const decay = config.decay === true ? 0.998 : config.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node.lastPosition - position) <= precision;\n velocity = v0 * e;\n } else {\n velocity = node.lastVelocity == null ? v0 : node.lastVelocity;\n const restVelocity = config.restVelocity || precision / 10;\n const bounceFactor = config.clamp ? 0 : config.bounce;\n const canBounce = !is.und(bounceFactor);\n const isGrowing = from == to ? node.v0 > 0 : from < to;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n\n if (!isMoving) {\n finished = Math.abs(to - position) <= precision;\n\n if (finished) {\n break;\n }\n }\n\n if (canBounce) {\n isBouncing = position == to || position > to == isGrowing;\n\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to;\n }\n }\n\n const springForce = -config.tension * 0.000001 * (position - to);\n const dampingForce = -config.friction * 0.001 * velocity;\n const acceleration = (springForce + dampingForce) / config.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n\n node.lastVelocity = velocity;\n\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n\n if (payload && !payload[i].done) {\n finished = false;\n }\n\n if (finished) {\n node.done = true;\n } else {\n idle = false;\n }\n\n if (node.setValue(position, config.round)) {\n changed = true;\n }\n });\n const node = getAnimated(this);\n const currVal = node.getValue();\n\n if (idle) {\n const finalVal = getFluidValue(anim.to);\n\n if ((currVal !== finalVal || changed) && !config.decay) {\n node.setValue(finalVal);\n\n this._onChange(finalVal);\n } else if (changed && config.decay) {\n this._onChange(currVal);\n }\n\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n\n set(value) {\n raf.batchedUpdates(() => {\n this._stop();\n\n this._focus(value);\n\n this._set(value);\n });\n return this;\n }\n\n pause() {\n this._update({\n pause: true\n });\n }\n\n resume() {\n this._update({\n pause: false\n });\n }\n\n finish() {\n if (isAnimating(this)) {\n const {\n to,\n config\n } = this.animation;\n raf.batchedUpdates(() => {\n this._onStart();\n\n if (!config.decay) {\n this._set(to, false);\n }\n\n this._stop();\n });\n }\n\n return this;\n }\n\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n\n start(to, arg2) {\n let queue;\n\n if (!is.und(to)) {\n queue = [is.obj(to) ? to : _extends({}, arg2, {\n to\n })];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n\n return Promise.all(queue.map(props => {\n const up = this._update(props);\n\n return up;\n })).then(results => getCombinedResult(this, results));\n }\n\n stop(cancel) {\n const {\n to\n } = this.animation;\n\n this._focus(this.get());\n\n stopAsync(this._state, cancel && this._lastCallId);\n raf.batchedUpdates(() => this._stop(to, cancel));\n return this;\n }\n\n reset() {\n this._update({\n reset: true\n });\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._start();\n } else if (event.type == 'priority') {\n this.priority = event.priority + 1;\n }\n }\n\n _prepareNode(props) {\n const key = this.key || '';\n let {\n to,\n from\n } = props;\n to = is.obj(to) ? to[key] : to;\n\n if (to == null || isAsyncTo(to)) {\n to = undefined;\n }\n\n from = is.obj(from) ? from[key] : from;\n\n if (from == null) {\n from = undefined;\n }\n\n const range = {\n to,\n from\n };\n\n if (!hasAnimated(this)) {\n if (props.reverse) [to, from] = [from, to];\n from = getFluidValue(from);\n\n if (!is.und(from)) {\n this._set(from);\n } else if (!getAnimated(this)) {\n this._set(to);\n }\n }\n\n return range;\n }\n\n _update(_ref, isLoop) {\n let props = _extends({}, _ref);\n\n const {\n key,\n defaultProps\n } = this;\n if (props.default) Object.assign(defaultProps, getDefaultProps(props, (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value));\n mergeActiveFn(this, props, 'onProps');\n sendEvent(this, 'onProps', props, this);\n\n const range = this._prepareNode(props);\n\n if (Object.isFrozen(this)) {\n throw Error('Cannot animate a `SpringValue` object that is frozen. ' + 'Did you forget to pass your component to `animated(...)` before animating its props?');\n }\n\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(this, 'onPause', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n\n if (isAnimating(this)) {\n this._resume();\n }\n\n flushCalls(state.resumeQueue);\n sendEvent(this, 'onResume', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then(result => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n\n return result;\n });\n }\n\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n\n const hasToProp = !is.und(range.to);\n const hasFromProp = !is.und(range.from);\n\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n\n const {\n key,\n defaultProps,\n animation: anim\n } = this;\n const {\n to: prevTo,\n from: prevFrom\n } = anim;\n let {\n to = prevTo,\n from = prevFrom\n } = range;\n\n if (hasFromProp && !hasToProp && (!props.default || is.und(to))) {\n to = from;\n }\n\n if (props.reverse) [to, from] = [from, to];\n const hasFromChanged = !isEqual(from, prevFrom);\n\n if (hasFromChanged) {\n anim.from = from;\n }\n\n from = getFluidValue(from);\n const hasToChanged = !isEqual(to, prevTo);\n\n if (hasToChanged) {\n this._focus(to);\n }\n\n const hasAsyncTo = isAsyncTo(props.to);\n const {\n config\n } = anim;\n const {\n decay,\n velocity\n } = config;\n\n if (hasToProp || hasFromProp) {\n config.velocity = 0;\n }\n\n if (props.config && !hasAsyncTo) {\n mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0);\n }\n\n let node = getAnimated(this);\n\n if (!node || is.und(to)) {\n return resolve(getFinishedResult(this, true));\n }\n\n const reset = is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key);\n const value = reset ? from : this.get();\n const goal = computeGoal(to);\n const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n\n if (hasToChanged) {\n const nodeType = getAnimatedType(to);\n\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else throw Error(`Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`);\n }\n }\n\n const goalType = node.constructor;\n let started = hasFluidValue(to);\n let finished = false;\n\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config.decay, decay) || !isEqual(config.velocity, velocity)) {\n started = true;\n }\n }\n\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to) ? null : goalType == AnimatedString ? [1] : toArray(goal);\n }\n\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n\n if (started) {\n const {\n onRest\n } = anim;\n each(ACTIVE_EVENTS, type => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n\n this._pendingCalls.add(resolve);\n\n if (anim.changed) raf.batchedUpdates(() => {\n anim.changed = !reset;\n onRest == null ? void 0 : onRest(result, this);\n\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart == null ? void 0 : anim.onStart(result, this);\n }\n });\n }\n }\n\n if (reset) {\n this._set(value);\n }\n\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n\n _focus(value) {\n const anim = this.animation;\n\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n\n anim.to = value;\n\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n\n _attach() {\n let priority = 0;\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n addFluidObserver(to, this);\n\n if (isFrameValue(to)) {\n priority = to.priority + 1;\n }\n }\n\n this.priority = priority;\n }\n\n _detach() {\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n removeFluidObserver(to, this);\n }\n }\n\n _set(arg, idle = true) {\n const value = getFluidValue(arg);\n\n if (!is.und(value)) {\n const oldNode = getAnimated(this);\n\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n\n if (oldNode) {\n raf.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n\n return getAnimated(this);\n }\n\n _onStart() {\n const anim = this.animation;\n\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(this, 'onStart', getFinishedResult(this, checkFinished(this, anim.to)), this);\n }\n }\n\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n\n callProp(this.animation.onChange, value, this);\n }\n\n callProp(this.defaultProps.onChange, value, this);\n\n super._onChange(value, idle);\n }\n\n _start() {\n const anim = this.animation;\n getAnimated(this).reset(getFluidValue(anim.to));\n\n if (!anim.immediate) {\n anim.fromValues = anim.values.map(node => node.lastPosition);\n }\n\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n\n _resume() {\n if (Globals.skipAnimation) {\n this.finish();\n } else {\n frameLoop.start(this);\n }\n }\n\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each(anim.values, node => {\n node.done = true;\n });\n\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = undefined;\n }\n\n callFluidObservers(this, {\n type: 'idle',\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to));\n flushCalls(this._pendingCalls, result);\n\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, 'onRest', result, this);\n }\n }\n }\n\n}\n\nfunction checkFinished(target, to) {\n const goal = computeGoal(to);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\n\nfunction createLoopUpdate(props, loop = props.loop, to = props.to) {\n let loopRet = callProp(loop);\n\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate(_extends({}, props, {\n loop,\n default: false,\n pause: undefined,\n to: !reverse || isAsyncTo(to) ? to : undefined,\n from: reset ? props.from : undefined,\n reset\n }, overrides));\n }\n}\nfunction createUpdate(props) {\n const {\n to,\n from\n } = props = inferTo(props);\n const keys = new Set();\n if (is.obj(to)) findDefined(to, keys);\n if (is.obj(from)) findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update = createUpdate(props);\n\n if (is.und(update.default)) {\n update.default = getDefaultProps(update);\n }\n\n return update;\n}\n\nfunction findDefined(values, keys) {\n eachProp(values, (value, key) => value != null && keys.add(key));\n}\n\nconst ACTIVE_EVENTS = ['onStart', 'onRest', 'onChange', 'onPause', 'onResume'];\n\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined;\n}\n\nfunction sendEvent(target, type, ...args) {\n var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps;\n\n (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : _target$animation$typ.call(_target$animation, ...args);\n (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : _target$defaultProps$.call(_target$defaultProps, ...args);\n}\n\nconst BATCHED_EVENTS = ['onStart', 'onChange', 'onRest'];\nlet nextId = 1;\nclass Controller {\n constructor(props, flush) {\n this.id = nextId++;\n this.springs = {};\n this.queue = [];\n this.ref = void 0;\n this._flush = void 0;\n this._initialProps = void 0;\n this._lastAsyncId = 0;\n this._active = new Set();\n this._changed = new Set();\n this._started = false;\n this._item = void 0;\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._events = {\n onStart: new Map(),\n onChange: new Map(),\n onRest: new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n\n if (flush) {\n this._flush = flush;\n }\n\n if (props) {\n this.start(_extends({\n default: true\n }, props));\n }\n }\n\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every(spring => {\n return spring.idle && !spring.isDelayed && !spring.isPaused;\n });\n }\n\n get item() {\n return this._item;\n }\n\n set item(item) {\n this._item = item;\n }\n\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n\n set(values) {\n for (const key in values) {\n const value = values[key];\n\n if (!is.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n\n return this;\n }\n\n start(props) {\n let {\n queue\n } = this;\n\n if (props) {\n queue = toArray(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n\n if (this._flush) {\n return this._flush(this, queue);\n }\n\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n\n if (keys) {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each(spring => spring.stop(!!arg));\n }\n\n return this;\n }\n\n pause(keys) {\n if (is.und(keys)) {\n this.start({\n pause: true\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].pause());\n }\n\n return this;\n }\n\n resume(keys) {\n if (is.und(keys)) {\n this.start({\n pause: false\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].resume());\n }\n\n return this;\n }\n\n each(iterator) {\n eachProp(this.springs, iterator);\n }\n\n _onFrame() {\n const {\n onStart,\n onChange,\n onRest\n } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush(onStart, ([onStart, result]) => {\n result.value = this.get();\n onStart(result, this, this._item);\n });\n }\n\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n\n if (changed && onChange.size) {\n flush(onChange, ([onChange, result]) => {\n result.value = values;\n onChange(result, this, this._item);\n });\n }\n\n if (idle) {\n this._started = false;\n flush(onRest, ([onRest, result]) => {\n result.value = values;\n onRest(result, this, this._item);\n });\n }\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._changed.add(event.parent);\n\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else return;\n\n raf.onFrame(this._onFrame);\n }\n\n}\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map(props => flushUpdate(ctrl, props))).then(results => getCombinedResult(ctrl, results));\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const {\n keys,\n to,\n from,\n loop,\n onRest,\n onResolve\n } = props;\n const defaults = is.obj(props.default) && props.default;\n\n if (loop) {\n props.loop = false;\n }\n\n if (to === false) props.to = null;\n if (from === false) props.from = null;\n const asyncTo = is.arr(to) || is.fun(to) ? to : undefined;\n\n if (asyncTo) {\n props.to = undefined;\n props.onRest = undefined;\n\n if (defaults) {\n defaults.onRest = undefined;\n }\n } else {\n each(BATCHED_EVENTS, key => {\n const handler = props[key];\n\n if (is.fun(handler)) {\n const queue = ctrl['_events'][key];\n\n props[key] = ({\n finished,\n cancelled\n }) => {\n const result = queue.get(handler);\n\n if (result) {\n if (!finished) result.finished = false;\n if (cancelled) result.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n\n if (defaults) {\n defaults[key] = props[key];\n }\n }\n });\n }\n\n const state = ctrl['_state'];\n\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n\n const promises = (keys || Object.keys(ctrl.springs)).map(key => ctrl.springs[key].start(props));\n const cancel = props.cancel === true || getDefaultProp(props, 'cancel') === true;\n\n if (asyncTo || cancel && state.asyncId) {\n promises.push(scheduleProps(++ctrl['_lastAsyncId'], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n\n start(props, resolve) {\n if (cancel) {\n stopAsync(state, ctrl['_lastAsyncId']);\n resolve(getCancelledResult(ctrl));\n } else {\n props.onRest = onRest;\n resolve(runAsync(asyncTo, props, state, ctrl));\n }\n }\n\n }\n }));\n }\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to);\n\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n\n if (onResolve) {\n raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = _extends({}, ctrl.springs);\n\n if (props) {\n each(toArray(props), props => {\n if (is.und(props.keys)) {\n props = createUpdate(props);\n }\n\n if (!is.obj(props.to)) {\n props = _extends({}, props, {\n to: undefined\n });\n }\n\n prepareSprings(springs, props, key => {\n return createSpring(key);\n });\n });\n }\n\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver(spring, ctrl);\n }\n });\n}\n\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n\n if (observer) {\n addFluidObserver(spring, observer);\n }\n\n return spring;\n}\n\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each(props.keys, key => {\n const spring = springs[key] || (springs[key] = create(key));\n spring['_prepareNode'](props);\n });\n }\n}\n\nfunction prepareKeys(ctrl, queue) {\n each(queue, props => {\n prepareSprings(ctrl.springs, props, key => {\n return createSpring(key, ctrl);\n });\n });\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$6 = [\"children\"];\nconst SpringContext = _ref => {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$6);\n\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause,\n immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({\n pause,\n immediate\n }), [pause, immediate]);\n const {\n Provider\n } = ctx;\n return React.createElement(Provider, {\n value: props\n }, children);\n};\nconst ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\n\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\nconst SpringRef = () => {\n const current = [];\n\n const SpringRef = function SpringRef(props) {\n deprecateDirectCall();\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = _getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.current = current;\n\n SpringRef.add = function (ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n\n SpringRef.delete = function (ctrl) {\n const i = current.indexOf(ctrl);\n if (~i) current.splice(i, 1);\n };\n\n SpringRef.pause = function () {\n each(current, ctrl => ctrl.pause(...arguments));\n return this;\n };\n\n SpringRef.resume = function () {\n each(current, ctrl => ctrl.resume(...arguments));\n return this;\n };\n\n SpringRef.set = function (values) {\n each(current, ctrl => ctrl.set(values));\n };\n\n SpringRef.start = function (props) {\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = this._getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.stop = function () {\n each(current, ctrl => ctrl.stop(...arguments));\n return this;\n };\n\n SpringRef.update = function (props) {\n each(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n\n const _getProps = function _getProps(arg, ctrl, index) {\n return is.fun(arg) ? arg(index, ctrl) : arg;\n };\n\n SpringRef._getProps = _getProps;\n return SpringRef;\n};\n\nfunction useSprings(length, props, deps) {\n const propsFn = is.fun(props) && props;\n if (propsFn && !deps) deps = [];\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(() => ({\n ctrls: [],\n queue: [],\n\n flush(ctrl, updates) {\n const springs = getSprings(ctrl, updates);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some(key => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise(resolve => {\n setSprings(ctrl, springs);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates));\n });\n forceUpdate();\n });\n }\n\n }), []);\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each(ctrls.current.slice(length, prevLength), ctrl => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update = propsFn ? propsFn(i, ctrl) : props[i];\n\n if (update) {\n updates[i] = declareUpdate(update);\n }\n }\n }\n\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const {\n queue\n } = state;\n\n if (queue.length) {\n state.queue = [];\n each(queue, cb => cb());\n }\n\n each(ctrls.current, (ctrl, i) => {\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext) {\n ctrl.start({\n default: context\n });\n }\n\n const update = updates[i];\n\n if (update) {\n replaceRef(ctrl, update.ref);\n\n if (ctrl.ref) {\n ctrl.queue.push(update);\n } else {\n ctrl.start(update);\n }\n }\n });\n });\n useOnce(() => () => {\n each(state.ctrls, ctrl => ctrl.stop(true));\n });\n const values = springs.map(x => _extends({}, x));\n return ref ? [values, ref] : values;\n}\n\nfunction useSpring(props, deps) {\n const isFn = is.fun(props);\n const [[values], ref] = useSprings(1, isFn ? props : [props], isFn ? deps || [] : deps);\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\nconst initSpringRef = () => SpringRef();\n\nconst useSpringRef = () => useState(initSpringRef)[0];\n\nconst useSpringValue = (initial, props) => {\n const springValue = useConstant(() => new SpringValue(initial, props));\n useOnce(() => () => {\n springValue.stop();\n });\n return springValue;\n};\n\nfunction useTrail(length, propsArg, deps) {\n const propsFn = is.fun(propsArg) && propsArg;\n if (propsFn && !deps) deps = [];\n let reverse = true;\n let passedRef = undefined;\n const result = useSprings(length, (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n passedRef = props.ref;\n reverse = reverse && props.reverse;\n return props;\n }, deps || [{}]);\n useIsomorphicLayoutEffect(() => {\n each(result[1].current, (ctrl, i) => {\n const parent = result[1].current[i + (reverse ? 1 : -1)];\n replaceRef(ctrl, passedRef);\n\n if (ctrl.ref) {\n if (parent) {\n ctrl.update({\n to: parent.springs\n });\n }\n\n return;\n }\n\n if (parent) {\n ctrl.start({\n to: parent.springs\n });\n } else {\n ctrl.start();\n }\n });\n }, deps);\n\n if (propsFn || arguments.length == 3) {\n var _passedRef;\n\n const ref = (_passedRef = passedRef) != null ? _passedRef : result[1];\n\n ref['_getProps'] = (propsArg, ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent) props.to = parent.springs;\n return props;\n }\n };\n\n return result;\n }\n\n return result[0];\n}\n\nlet TransitionPhase;\n\n(function (TransitionPhase) {\n TransitionPhase[\"MOUNT\"] = \"mount\";\n TransitionPhase[\"ENTER\"] = \"enter\";\n TransitionPhase[\"UPDATE\"] = \"update\";\n TransitionPhase[\"LEAVE\"] = \"leave\";\n})(TransitionPhase || (TransitionPhase = {}));\n\nfunction useTransition(data, props, deps) {\n const propsFn = is.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n exitBeforeEnter = false,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const items = toArray(data);\n const transitions = [];\n const usedTransitions = useRef(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useIsomorphicLayoutEffect(() => {\n usedTransitions.current = transitions;\n });\n useOnce(() => {\n each(transitions, t => {\n ref == null ? void 0 : ref.add(t.ctrl);\n t.ctrl.ref = ref;\n });\n return () => {\n each(usedTransitions.current, t => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n });\n };\n });\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useIsomorphicLayoutEffect(() => each(expired, ({\n ctrl,\n item,\n key\n }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n }));\n const reused = [];\n if (prevTransitions) each(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i) transitions[i] = t;\n }\n });\n each(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: TransitionPhase.MOUNT,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n\n if (reused.length) {\n let i = -1;\n const {\n leave\n } = propsFn ? propsFn() : props;\n each(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = _extends({}, t, {\n item: items[keyIndex]\n });\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n\n if (is.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n\n let delay = -trail;\n const forceUpdate = useForceUpdate();\n const defaultProps = getDefaultProps(props);\n const changes = new Map();\n const exitingTransitions = useRef(new Map());\n const forceChange = useRef(false);\n each(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to;\n let phase;\n let propsDelay = callProp(p.delay || 0, key);\n\n if (prevPhase == TransitionPhase.MOUNT) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n\n if (prevPhase != TransitionPhase.LEAVE) {\n if (isLeave) {\n to = p.leave;\n phase = TransitionPhase.LEAVE;\n } else if (to = p.update) {\n phase = TransitionPhase.UPDATE;\n } else return;\n } else if (!isLeave) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else return;\n }\n\n to = callProp(to, t.item, i);\n to = is.obj(to) ? inferTo(to) : {\n to\n };\n\n if (!to.config) {\n const config = propsConfig || defaultProps.config;\n to.config = callProp(config, t.item, i, phase);\n }\n\n delay += trail;\n\n const payload = _extends({}, defaultProps, {\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n reset: false\n }, to);\n\n if (phase == TransitionPhase.ENTER && is.und(payload.from)) {\n const _p = propsFn ? propsFn() : props;\n\n const from = is.und(_p.initial) || prevTransitions ? _p.from : _p.initial;\n payload.from = callProp(from, t.item, i);\n }\n\n const {\n onResolve\n } = payload;\n\n payload.onResolve = result => {\n callProp(onResolve, result);\n const transitions = usedTransitions.current;\n const t = transitions.find(t => t.key === key);\n if (!t) return;\n\n if (result.cancelled && t.phase != TransitionPhase.UPDATE) {\n return;\n }\n\n if (t.ctrl.idle) {\n const idle = transitions.every(t => t.ctrl.idle);\n\n if (t.phase == TransitionPhase.LEAVE) {\n const expiry = callProp(expires, t.item);\n\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t.expired = true;\n\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 0x7fffffff) t.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n\n if (idle && transitions.some(t => t.expired)) {\n exitingTransitions.current.delete(t);\n\n if (exitBeforeEnter) {\n forceChange.current = true;\n }\n\n forceUpdate();\n }\n }\n };\n\n const springs = getSprings(t.ctrl, payload);\n\n if (phase === TransitionPhase.LEAVE && exitBeforeEnter) {\n exitingTransitions.current.set(t, {\n phase,\n springs,\n payload\n });\n } else {\n changes.set(t, {\n phase,\n springs,\n payload\n });\n }\n });\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect(() => {\n if (hasContext) {\n each(transitions, t => {\n t.ctrl.start({\n default: context\n });\n });\n }\n }, [context]);\n each(changes, (_, t) => {\n if (exitingTransitions.current.size) {\n const ind = transitions.findIndex(state => state.key === t.key);\n transitions.splice(ind, 1);\n }\n });\n useIsomorphicLayoutEffect(() => {\n each(exitingTransitions.current.size ? exitingTransitions.current : changes, ({\n phase,\n payload\n }, t) => {\n const {\n ctrl\n } = t;\n t.phase = phase;\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext && phase == TransitionPhase.ENTER) {\n ctrl.start({\n default: context\n });\n }\n\n if (payload) {\n replaceRef(ctrl, payload.ref);\n\n if ((ctrl.ref || ref) && !forceChange.current) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n\n if (forceChange.current) {\n forceChange.current = false;\n }\n }\n }\n });\n }, reset ? void 0 : deps);\n\n const renderTransitions = render => React.createElement(React.Fragment, null, transitions.map((t, i) => {\n const {\n springs\n } = changes.get(t) || t.ctrl;\n const elem = render(_extends({}, springs), t.item, t, i);\n return elem && elem.type ? React.createElement(elem.type, _extends({}, elem.props, {\n key: is.str(t.key) || is.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n })) : elem;\n }));\n\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nlet nextKey = 1;\n\nfunction getKeys(items, {\n key,\n keys = key\n}, prevTransitions) {\n if (keys === null) {\n const reused = new Set();\n return items.map(item => {\n const t = prevTransitions && prevTransitions.find(t => t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t));\n\n if (t) {\n reused.add(t);\n return t.key;\n }\n\n return nextKey++;\n });\n }\n\n return is.und(keys) ? items : is.fun(keys) ? items.map(keys) : toArray(keys);\n}\n\nconst _excluded$5 = [\"container\"];\nconst useScroll = (_ref = {}) => {\n let {\n container\n } = _ref,\n springOptions = _objectWithoutPropertiesLoose(_ref, _excluded$5);\n\n const [scrollValues, api] = useSpring(() => _extends({\n scrollX: 0,\n scrollY: 0,\n scrollXProgress: 0,\n scrollYProgress: 0\n }, springOptions), []);\n useIsomorphicLayoutEffect(() => {\n const cleanupScroll = onScroll(({\n x,\n y\n }) => {\n api.start({\n scrollX: x.current,\n scrollXProgress: x.progress,\n scrollY: y.current,\n scrollYProgress: y.progress\n });\n }, {\n container: (container == null ? void 0 : container.current) || undefined\n });\n return () => {\n each(Object.values(scrollValues), value => value.stop());\n cleanupScroll();\n };\n }, []);\n return scrollValues;\n};\n\nconst _excluded$4 = [\"container\"];\nconst useResize = _ref => {\n let {\n container\n } = _ref,\n springOptions = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n\n const [sizeValues, api] = useSpring(() => _extends({\n width: 0,\n height: 0\n }, springOptions), []);\n useIsomorphicLayoutEffect(() => {\n const cleanupScroll = onResize(({\n width,\n height\n }) => {\n api.start({\n width,\n height,\n immediate: sizeValues.width.get() === 0 || sizeValues.height.get() === 0\n });\n }, {\n container: (container == null ? void 0 : container.current) || undefined\n });\n return () => {\n each(Object.values(sizeValues), value => value.stop());\n cleanupScroll();\n };\n }, []);\n return sizeValues;\n};\n\nconst _excluded$3 = [\"to\", \"from\"],\n _excluded2 = [\"root\", \"once\", \"amount\"];\nconst defaultThresholdOptions = {\n any: 0,\n all: 1\n};\nfunction useInView(props, args) {\n const [isInView, setIsInView] = useState(false);\n const ref = useRef();\n const propsFn = is.fun(props) && props;\n const springsProps = propsFn ? propsFn() : {};\n\n const {\n to = {},\n from = {}\n } = springsProps,\n restSpringProps = _objectWithoutPropertiesLoose(springsProps, _excluded$3);\n\n const intersectionArguments = propsFn ? args : props;\n const [springs, api] = useSpring(() => _extends({\n from\n }, restSpringProps), []);\n useIsomorphicLayoutEffect(() => {\n const element = ref.current;\n\n const _ref = intersectionArguments != null ? intersectionArguments : {},\n {\n root,\n once,\n amount = 'any'\n } = _ref,\n restArgs = _objectWithoutPropertiesLoose(_ref, _excluded2);\n\n if (!element || once && isInView || typeof IntersectionObserver === 'undefined') return;\n const activeIntersections = new WeakMap();\n\n const onEnter = () => {\n if (to) {\n api.start(to);\n }\n\n setIsInView(true);\n\n const cleanup = () => {\n if (from) {\n api.start(from);\n }\n\n setIsInView(false);\n };\n\n return once ? undefined : cleanup;\n };\n\n const handleIntersection = entries => {\n entries.forEach(entry => {\n const onLeave = activeIntersections.get(entry.target);\n\n if (entry.isIntersecting === Boolean(onLeave)) {\n return;\n }\n\n if (entry.isIntersecting) {\n const newOnLeave = onEnter();\n\n if (is.fun(newOnLeave)) {\n activeIntersections.set(entry.target, newOnLeave);\n } else {\n observer.unobserve(entry.target);\n }\n } else if (onLeave) {\n onLeave();\n activeIntersections.delete(entry.target);\n }\n });\n };\n\n const observer = new IntersectionObserver(handleIntersection, _extends({\n root: root && root.current || undefined,\n threshold: typeof amount === 'number' || Array.isArray(amount) ? amount : defaultThresholdOptions[amount]\n }, restArgs));\n observer.observe(element);\n return () => observer.unobserve(element);\n }, [intersectionArguments]);\n\n if (propsFn) {\n return [ref, springs];\n }\n\n return [ref, isInView];\n}\n\nconst _excluded$2 = [\"children\"];\nfunction Spring(_ref) {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return children(useSpring(props));\n}\n\nconst _excluded$1 = [\"items\", \"children\"];\nfunction Trail(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is.fun(result) ? result(trails[index]) : result;\n });\n}\n\nconst _excluded = [\"items\", \"children\"];\nfunction Transition(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return useTransition(items, props)(children);\n}\n\nclass Interpolation extends FrameValue {\n constructor(source, args) {\n super();\n this.key = void 0;\n this.idle = true;\n this.calc = void 0;\n this._active = new Set();\n this.source = source;\n this.calc = createInterpolator(...args);\n\n const value = this._get();\n\n const nodeType = getAnimatedType(value);\n setAnimated(this, nodeType.create(value));\n }\n\n advance(_dt) {\n const value = this._get();\n\n const oldValue = this.get();\n\n if (!isEqual(value, oldValue)) {\n getAnimated(this).setValue(value);\n\n this._onChange(value, this.idle);\n }\n\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n\n _get() {\n const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source));\n return this.calc(...inputs);\n }\n\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each(getPayload(this), node => {\n node.done = false;\n });\n\n if (Globals.skipAnimation) {\n raf.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop.start(this);\n }\n }\n }\n\n _attach() {\n let priority = 1;\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n addFluidObserver(source, this);\n }\n\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n\n this._start();\n }\n\n _detach() {\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n removeFluidObserver(source, this);\n }\n });\n\n this._active.clear();\n\n becomeIdle(this);\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n\n this._start();\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else if (event.type == 'priority') {\n this.priority = toArray(this.source).reduce((highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), 0);\n }\n }\n\n}\n\nfunction isIdle(source) {\n return source.idle !== false;\n}\n\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\n\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each(getPayload(self), node => {\n node.done = true;\n });\n callFluidObservers(self, {\n type: 'idle',\n parent: self\n });\n }\n}\n\nconst to = (source, ...args) => new Interpolation(source, args);\nconst interpolate = (source, ...args) => (deprecateInterpolate(), new Interpolation(source, args));\n\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nconst update = frameLoop.advance;\n\nexport { BailSignal, Controller, FrameValue, Interpolation, Spring, SpringContext, SpringRef, SpringValue, Trail, Transition, config, inferTo, interpolate, to, update, useChain, useInView, useResize, useScroll, useSpring, useSpringRef, useSpringValue, useSprings, useTrail, useTransition };\n","import { Globals } from '@react-spring/core';\nexport * from '@react-spring/core';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { eachProp, is, toArray, FluidValue, each, getFluidValue, hasFluidValue, addFluidObserver, removeFluidObserver, callFluidObservers, createStringInterpolator, colors } from '@react-spring/shared';\nimport { AnimatedObject, createHost } from '@react-spring/animated';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$2 = [\"style\", \"children\", \"scrollTop\", \"scrollLeft\", \"viewBox\"];\nconst isCustomPropRE = /^--/;\n\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (typeof value === 'number' && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px';\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n\n const isFilterElement = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n\n const _ref = props,\n {\n style,\n children,\n scrollTop,\n scrollLeft,\n viewBox\n } = _ref,\n attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(name => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase())));\n\n if (children !== void 0) {\n instance.textContent = children;\n }\n\n for (let name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n\n if (viewBox !== void 0) {\n instance.setAttribute('viewBox', viewBox);\n }\n}\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nconst _excluded$1 = [\"x\", \"y\", \"z\"];\nconst domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nconst pxTransforms = /^(translate)/;\nconst degTransforms = /^(rotate|skew)/;\n\nconst addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\n\nconst isValueIdentity = (value, id) => is.arr(value) ? value.every(v => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(_ref) {\n let {\n x,\n y,\n z\n } = _ref,\n style = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const inputs = [];\n const transforms = [];\n\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push(xyz => [`translate3d(${xyz.map(v => addUnit(v, 'px')).join(',')})`, isValueIdentity(xyz, 0)]);\n }\n\n eachProp(style, (value, key) => {\n if (key === 'transform') {\n inputs.push([value || '']);\n transforms.push(transform => [transform, transform === '']);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value)) return;\n const unit = pxTransforms.test(key) ? 'px' : degTransforms.test(key) ? 'deg' : '';\n inputs.push(toArray(value));\n transforms.push(key === 'rotate3d' ? ([x, y, z, deg]) => [`rotate3d(${x},${y},${z},${addUnit(deg, unit)})`, isValueIdentity(deg, 0)] : input => [`${key}(${input.map(v => addUnit(v, unit)).join(',')})`, isValueIdentity(input, key.startsWith('scale') ? 1 : 0)]);\n }\n });\n\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n\n super(style);\n }\n\n}\n\nclass FluidTransform extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this._value = null;\n this.inputs = inputs;\n this.transforms = transforms;\n }\n\n get() {\n return this._value || (this._value = this._get());\n }\n\n _get() {\n let transform = '';\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](is.arr(arg1) ? arg1 : input.map(getFluidValue));\n transform += ' ' + t;\n identity = identity && id;\n });\n return identity ? 'none' : transform;\n }\n\n observerAdded(count) {\n if (count == 1) each(this.inputs, input => each(input, value => hasFluidValue(value) && addFluidObserver(value, this)));\n }\n\n observerRemoved(count) {\n if (count == 0) each(this.inputs, input => each(input, value => hasFluidValue(value) && removeFluidObserver(value, this)));\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._value = null;\n }\n\n callFluidObservers(this, event);\n }\n\n}\n\nconst primitives = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nconst _excluded = [\"scrollTop\", \"scrollLeft\"];\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nconst host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: style => new AnimatedStyle(style),\n getComponentProps: _ref => {\n let props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return props;\n }\n});\nconst animated = host.animated;\n\nexport { animated as a, animated };\n","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgQuote(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n width: \"512px\",\n height: \"512px\",\n viewBox: \"0 0 95.333 95.332\",\n style: {\n enableBackground: \"new 0 0 95.333 95.332\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.512,43.939c-2.348-0.676-4.696-1.019-6.98-1.019c-3.527,0-6.47,0.806-8.752,1.793 c2.2-8.054,7.485-21.951,18.013-23.516c0.975-0.145,1.774-0.85,2.04-1.799l2.301-8.23c0.194-0.696,0.079-1.441-0.318-2.045 s-1.035-1.007-1.75-1.105c-0.777-0.106-1.569-0.16-2.354-0.16c-12.637,0-25.152,13.19-30.433,32.076 c-3.1,11.08-4.009,27.738,3.627,38.223c4.273,5.867,10.507,9,18.529,9.313c0.033,0.001,0.065,0.002,0.098,0.002 c9.898,0,18.675-6.666,21.345-16.209c1.595-5.705,0.874-11.688-2.032-16.851C40.971,49.307,36.236,45.586,30.512,43.939z\",\n \"data-original\": \"#000000\",\n className: \"active-path\",\n \"data-old_color\": \"#000000\",\n fill: \"#3F67F6\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.471,54.413c-2.875-5.106-7.61-8.827-13.334-10.474c-2.348-0.676-4.696-1.019-6.979-1.019 c-3.527,0-6.471,0.806-8.753,1.793c2.2-8.054,7.485-21.951,18.014-23.516c0.975-0.145,1.773-0.85,2.04-1.799l2.301-8.23 c0.194-0.696,0.079-1.441-0.318-2.045c-0.396-0.604-1.034-1.007-1.75-1.105c-0.776-0.106-1.568-0.16-2.354-0.16 c-12.637,0-25.152,13.19-30.434,32.076c-3.099,11.08-4.008,27.738,3.629,38.225c4.272,5.866,10.507,9,18.528,9.312 c0.033,0.001,0.065,0.002,0.099,0.002c9.897,0,18.675-6.666,21.345-16.209C96.098,65.559,95.376,59.575,92.471,54.413z\",\n \"data-original\": \"#000000\",\n className: \"active-path\",\n \"data-old_color\": \"#000000\",\n fill: \"#3F67F6\"\n }))))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuote);\nexport default __webpack_public_path__ + \"static/media/quote.82753be52b859834111c623456012372.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Spring, animated, SpringConfig } from \"react-spring\";\nimport { Grid } from \"@mui/material\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport quote from \"../images/quote.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n SlideContainer: {\n position: \"absolute\",\n height: \"50%\",\n top: \"50%\",\n width: \"inherit\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transformOrigin: \"50% 50%\",\n },\n SlideCard: {\n position: \"relative\",\n padding: \"5%\",\n width: \"70%\",\n minWidth: \"30%\",\n background: \"white\",\n fontSize: \"35px\",\n transformOrigin: \"50% 50%\",\n },\n quote: {\n fontSize: \"17px\",\n fontWeight: 450,\n color: \"#727375\",\n },\n customer: {\n paddingTop: \"10px\",\n fontSize: \"22px\",\n fontWeight: 600,\n },\n}));\n\ninterface Props {\n content: any;\n offsetRadius: number;\n index: number;\n animationConfig: SpringConfig;\n moveSlide: (direction: any) => void;\n delta?: any;\n down?: any;\n up?: any;\n}\n\nconst Slide: React.FC = ({\n content,\n offsetRadius,\n index,\n animationConfig,\n moveSlide,\n delta,\n down,\n up,\n}) => {\n const offsetFromMiddle = index - offsetRadius;\n const totalPresentables = 2 * offsetRadius + 1;\n const distanceFactor = 1 - Math.abs(offsetFromMiddle / (offsetRadius + 1));\n const classes = useStyles();\n\n const translateYoffset =\n 50 * (Math.abs(offsetFromMiddle) / (offsetRadius + 1));\n let translateY = -50;\n\n if (offsetRadius !== 0) {\n if (index === 0) {\n translateY = 0;\n } else if (index === totalPresentables - 1) {\n translateY = -100;\n }\n }\n\n if (offsetFromMiddle === 0 && down) {\n translateY += delta[1] / (offsetRadius + 1);\n if (translateY > -40) {\n moveSlide(-1);\n }\n if (translateY < -100) {\n moveSlide(1);\n }\n }\n if (offsetFromMiddle > 0) {\n translateY += translateYoffset;\n } else if (offsetFromMiddle < 0) {\n translateY -= translateYoffset;\n }\n\n return (\n \n {(style) => (\n \n moveSlide(offsetFromMiddle)}\n >\n \n \n \"quotes\"\n
{content.quote}
\n
{content.name}
\n
\n \n
\n \n
\n
\n
\n
\n \n )}\n \n );\n};\n\nexport default Slide;\n","import React, { useState } from \"react\";\nimport Slide from \"./Slide\";\nimport { IconButton } from \"@mui/material\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport { SpringConfig } from \"react-spring\";\nimport ArrowDropUpIcon from \"@mui/icons-material/ArrowDropUp\";\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\";\n\nconst useStyles = makeStyles((theme) => ({\n Wrapper: {\n position: \"relative\",\n display: \"flex\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n },\n NavigationButtons: {\n position: \"relative\",\n display: \"flex\",\n height: \"60px\",\n margin: \"0 auto\",\n justifyContent: \"space-between\",\n zIndex: 1000,\n },\n navIcon: { color: \"#3F67F6\", fontSize: \"50px\" },\n}));\n\nfunction mod(a, b) {\n return ((a % b) + b) % b;\n}\n\ninterface Props {\n slides: {\n [key: string]: string;\n }[];\n offsetRadius: number;\n showNavigation: boolean;\n animationConfig: SpringConfig;\n}\n\nconst VerticalCarousel = ({\n slides,\n offsetRadius,\n showNavigation,\n animationConfig,\n}) => {\n const classes = useStyles();\n const [state, setState] = useState<{\n index: number;\n goToSlide: any;\n prevPropsGoToSlide: number;\n newSlide: boolean;\n }>({\n index: 0,\n goToSlide: null,\n prevPropsGoToSlide: 0,\n newSlide: false,\n });\n\n const modBySlidesLength = (index: number) => {\n return mod(index, slides.length);\n };\n\n const moveSlide = (direction: number) => {\n setState({\n ...state,\n index: modBySlidesLength(state.index + direction),\n goToSlide: null,\n });\n };\n\n const clampOffsetRadius = (offsetRadius: number) => {\n const upperBound = Math.floor((slides.length - 1) / 2);\n\n if (offsetRadius < 0) {\n return 0;\n }\n if (offsetRadius > upperBound) {\n return upperBound;\n }\n\n return offsetRadius;\n };\n\n const getPresentableSlides = () => {\n const { index } = state;\n let offsetRad: number = clampOffsetRadius(offsetRadius);\n let presentableSlides = [];\n\n for (let i = -offsetRad; i < 1 + offsetRad; i++) {\n presentableSlides.push(slides[modBySlidesLength(index + i)]);\n }\n\n return presentableSlides;\n };\n\n return (\n \n {showNavigation && (\n
\n moveSlide(1)} aria-label=\"up\" size=\"large\">\n \n \n
\n )}\n
\n {getPresentableSlides().map((slide, presentableIndex) => (\n \n ))}\n
\n {showNavigation && (\n
\n moveSlide(1)} aria-label=\"down\" size=\"large\">\n \n \n
\n )}\n
\n );\n};\n\nexport default VerticalCarousel;\n","import React from \"react\";\nimport VerticalCarousel from \"./VerticalCarousel\";\nimport { config, SpringConfig } from \"react-spring\";\n\ninterface Props {\n testimonials: { [key: string]: any }[];\n}\n\nconst Slider: React.FC = ({ testimonials }) => {\n const sliderState: {\n goToSlide: number;\n offsetRadius: number;\n showNavigation: boolean;\n config: SpringConfig;\n } = {\n goToSlide: 0,\n offsetRadius: 2,\n showNavigation: true,\n config: config.gentle,\n };\n\n return (\n
\n \n \n
\n
\n );\n};\n\nexport default Slider;\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport Slider from \"./Slider\";\nimport FadeIn from \"./FadeIn\";\nimport Testimonials from \"../../metadata/testimonials.json\";\n\nconst useStyles = makeStyles((theme) => ({\n testimonial: {\n paddingTop: \"5vh\",\n background: \"#B0C4DE\",\n },\n testimonialContent: {\n padding: \"20px\",\n [theme.breakpoints.up(\"md\")]: {\n padding: \"100px\",\n },\n },\n heading: {\n fontSize: \"56px\",\n fontWeight: 600,\n wordSpacing: \"10px\",\n },\n content: {\n marginTop: \"50px\",\n background: \"#ffffff\",\n border: \"10px solid #f2f2f2\",\n padding: \"20px 20px\",\n fontSize: \"17px\",\n fontWeight: 500,\n },\n}));\n\nconst Testimonial: React.FC = () => {\n const classes = useStyles();\n return (\n \n {Testimonials.length > 0 && (\n \n \n
\n
\n Our customers love what we do...\n
\n
\n Our users appreciate our simple UI and quick consultation\n
\n
\n
\n \n \n \n
\n )}\n
\n );\n};\n\nexport default Testimonial;\n","var _defs, _path, _path2, _path3;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgInstagramIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 132.004 132\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"b\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#3771c8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#3771c8\",\n offset: 0.128\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#60f\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#fd5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.1,\n stopColor: \"#fd5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"#ff543e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#c837ab\"\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"c\",\n cx: 158.429,\n cy: 578.088,\n r: 65,\n xlinkHref: \"#a\",\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"matrix(0 -1.98198 1.8439 0 -1031.402 454.004)\",\n fx: 158.429,\n fy: 578.088\n }), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"d\",\n cx: 147.694,\n cy: 473.455,\n r: 65,\n xlinkHref: \"#b\",\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"matrix(.17394 .86872 -3.5818 .71718 1648.348 -458.493)\",\n fx: 147.694,\n fy: 473.455\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#c)\",\n d: \"M65.03 0C37.888 0 29.95.028 28.407.156c-5.57.463-9.036 1.34-12.812 3.22-2.91 1.445-5.205 3.12-7.47 5.468C4 13.126 1.5 18.394.595 24.656c-.44 3.04-.568 3.66-.594 19.188-.01 5.176 0 11.988 0 21.125 0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56 3.44 7.14 10.01 12.5 17.75 14.5 2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.207 6.955-.55 9.78-1.28 7.79-2.01 14.24-7.29 17.75-14.53 1.765-3.64 2.66-7.18 3.065-12.317.088-1.12.125-18.977.125-36.81 0-17.836-.04-35.66-.128-36.78-.41-5.22-1.305-8.73-3.127-12.44-1.495-3.037-3.155-5.305-5.565-7.624C116.9 4 111.64 1.5 105.372.596 102.335.157 101.73.027 86.19 0H65.03z\",\n transform: \"translate(1.004 1)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#d)\",\n d: \"M65.03 0C37.888 0 29.95.028 28.407.156c-5.57.463-9.036 1.34-12.812 3.22-2.91 1.445-5.205 3.12-7.47 5.468C4 13.126 1.5 18.394.595 24.656c-.44 3.04-.568 3.66-.594 19.188-.01 5.176 0 11.988 0 21.125 0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56 3.44 7.14 10.01 12.5 17.75 14.5 2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.207 6.955-.55 9.78-1.28 7.79-2.01 14.24-7.29 17.75-14.53 1.765-3.64 2.66-7.18 3.065-12.317.088-1.12.125-18.977.125-36.81 0-17.836-.04-35.66-.128-36.78-.41-5.22-1.305-8.73-3.127-12.44-1.495-3.037-3.155-5.305-5.565-7.624C116.9 4 111.64 1.5 105.372.596 102.335.157 101.73.027 86.19 0H65.03z\",\n transform: \"translate(1.004 1)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M66.004 18c-13.036 0-14.672.057-19.792.29-5.11.234-8.598 1.043-11.65 2.23-3.157 1.226-5.835 2.866-8.503 5.535-2.67 2.668-4.31 5.346-5.54 8.502-1.19 3.053-2 6.542-2.23 11.65C18.06 51.327 18 52.964 18 66s.058 14.667.29 19.787c.235 5.11 1.044 8.598 2.23 11.65 1.227 3.157 2.867 5.835 5.536 8.503 2.667 2.67 5.345 4.314 8.5 5.54 3.054 1.187 6.543 1.996 11.652 2.23 5.12.233 6.755.29 19.79.29 13.037 0 14.668-.057 19.788-.29 5.11-.234 8.602-1.043 11.656-2.23 3.156-1.226 5.83-2.87 8.497-5.54 2.67-2.668 4.31-5.346 5.54-8.502 1.18-3.053 1.99-6.542 2.23-11.65.23-5.12.29-6.752.29-19.788 0-13.036-.06-14.672-.29-19.792-.24-5.11-1.05-8.598-2.23-11.65-1.23-3.157-2.87-5.835-5.54-8.503-2.67-2.67-5.34-4.31-8.5-5.535-3.06-1.187-6.55-1.996-11.66-2.23-5.12-.233-6.75-.29-19.79-.29zm-4.306 8.65c1.278-.002 2.704 0 4.306 0 12.816 0 14.335.046 19.396.276 4.68.214 7.22.996 8.912 1.653 2.24.87 3.837 1.91 5.516 3.59 1.68 1.68 2.72 3.28 3.592 5.52.657 1.69 1.44 4.23 1.653 8.91.23 5.06.28 6.58.28 19.39s-.05 14.33-.28 19.39c-.214 4.68-.996 7.22-1.653 8.91-.87 2.24-1.912 3.835-3.592 5.514-1.68 1.68-3.275 2.72-5.516 3.59-1.69.66-4.232 1.44-8.912 1.654-5.06.23-6.58.28-19.396.28-12.817 0-14.336-.05-19.396-.28-4.68-.216-7.22-.998-8.913-1.655-2.24-.87-3.84-1.91-5.52-3.59-1.68-1.68-2.72-3.276-3.592-5.517-.657-1.69-1.44-4.23-1.653-8.91-.23-5.06-.276-6.58-.276-19.398s.046-14.33.276-19.39c.214-4.68.996-7.22 1.653-8.912.87-2.24 1.912-3.84 3.592-5.52 1.68-1.68 3.28-2.72 5.52-3.592 1.692-.66 4.233-1.44 8.913-1.655 4.428-.2 6.144-.26 15.09-.27zm29.928 7.97c-3.18 0-5.76 2.577-5.76 5.758 0 3.18 2.58 5.76 5.76 5.76 3.18 0 5.76-2.58 5.76-5.76 0-3.18-2.58-5.76-5.76-5.76zm-25.622 6.73c-13.613 0-24.65 11.037-24.65 24.65 0 13.613 11.037 24.645 24.65 24.645C79.617 90.645 90.65 79.613 90.65 66S79.616 41.35 66.003 41.35zm0 8.65c8.836 0 16 7.163 16 16 0 8.836-7.164 16-16 16-8.837 0-16-7.164-16-16 0-8.837 7.163-16 16-16z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInstagramIcon);\nexport default __webpack_public_path__ + \"static/media/instagram-icon.ff0d2e5b78a841746025447f6b4d0b33.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgFacebookIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 124.8 123.36\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-2{fill:none;}.cls-1{clip-rule:evenodd;}.cls-3{clip-path:url(#clip-path);}.cls-4{clip-path:url(#clip-path-2);}.cls-5{fill:#fff;}\"), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\",\n transform: \"translate(0.69 0.51)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M27.75,0H95.13a27.83,27.83,0,0,1,27.75,27.75V94.57a27.83,27.83,0,0,1-27.75,27.74H27.75A27.83,27.83,0,0,1,0,94.57V27.75A27.83,27.83,0,0,1,27.75,0Z\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-2\",\n transform: \"translate(0.69 0.51)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-2\",\n width: 122.88,\n height: 122.31\n })))), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"facebook-app\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-4\"\n }, /*#__PURE__*/React.createElement(\"image\", {\n width: 260,\n height: 257,\n transform: \"matrix(0.48, 0, 0, -0.48, 0, 123.36)\",\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQQAAAEBCAYAAACexdu5AAAACXBIWXMAABcRAAAXEQHKJvM/AAAEFUlEQVR4Xu3dwXEdIRBFUb4kZ+HwHJbDcxrSeAG+hctVJgDO2cyG9aumoYfX8zzP68evAdzr+fl9jDHG22EdcJGPMcZ4vV6ndcAFPubn+f8q4Aq2DEBmhWDLAAxbBmCzAkGFAKgQgM3qIRxWAVdwygBkVQhyAdBUBDZKAyCaikBmIDxfh2XADda0o50DUFNRhQBoKgIbgQBEIABx7AhEhQBEIACZW4a398My4AYqBCACAYhZBiCrh6BQAFQIwGZOO55WAVewVwDin4pAVlNRIACaisDG689ANBWBeLkJyOoheP0Z8Bw8sNFUBKJCAKKbCEQgAHHsCGQ99npaBtxAaQDEsSMQ045ANBWBqBCAKA2AeA4eiAoBiEAAIhCA6CEAUSEAWcNNcgEwywBs3FQEYpYBiAoByHr9WYUAqBCAzXqXwSkD4KEWYOPqMhDHjkBsGYCYZQCyjh1VCEAXk3QVAT0EYCMQgDh2BLIqBLMMQBXC+2EZcAPTjkD0EICsm4qnZcANlAZAjD8D0VQEoqkIxNVlIEoDIJqKQOY9hNMq4AoqBCB6CEDWL9RMOwIqBGDjbUcgq6noYhJglgHYaCoCWRXC52EZcIP1xyRNRaAK4bAKuIKry0D8IAWIl5uAqBCA+IUakFUh6CoCph2BzbqHYMsAuIcAbGwZgPhBChAVApA17XhaBtxAhQBEIAARCEAEAhCzDEBMOwKxZQAiEIAYbgJilgGILQOQOctwWgVcQQ8BiC0DkPUcvFwA+smql5sALzcBG8NNQGwZgKx/KtoyAO4hABulARBNRSCaikDcQwCiqQjElgHIqhDeD8uAG6xfqKkQADcVgY2mIhBNRSCaikBWhfB5WAbcwCwDEMcLQNax42kZcAMVAhCBAMTFJCDr5Sb3EAA3FYHNPGVQIQBDUxHYuLoMRFMRiKYiEBUCEBeTgDhlADLvIZxWAVfwgxQgtgxANBWBzED4clMR7vZtjOEeArBxUxGIHgIQ/0MAYvwZGLUTD6uAi8xY0EQAhqYisHEPAYimIjDGmEWB8Wcgxp+BOHYEoqkIRFMRGH82C7YMQAw3AfkYY4zH/xDgcnOzoEIAYpYBiKYiEIEAxJYBiAoBiGlHILYMQPxTEYiXm4Dx103F8aa3CDhlADa2DMCwZQD+oUIAxt/jz/9dCNzCb9iBaB4AEQhAzDIAUSEAEQhAnDIAUSEAcTEJiFMGIAIByBpuOqwCrqBCACIQgNgyAFEhAHExCYhAADJvKtoyAEOFAGwEAhCBAEQgAHEPAYgKAYhAACIQgAgEIAIBiEAAIhCACAQgAgGIQAAiEIAIBCACAYhAACIQgAgEIAIBiEAAIhCACAQgAgGIQAAiEIAIBCACAYhAACIQgAgEIAIBiEAAIhCA/AafC2PbZ0osjAAAAABJRU5ErkJggg==\"\n })))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-5\",\n d: \"M85.36,78.92l2.72-17.76H71V49.63c0-4.86,2.38-9.59,10-9.59H88.8V24.92a94.45,94.45,0,0,0-13.75-1.2c-14,0-23.21,8.5-23.21,23.9V61.16H36.24V78.92h15.6v43.57H71V78.92Z\",\n transform: \"translate(0.69 0.51)\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebookIcon);\nexport default __webpack_public_path__ + \"static/media/facebook-icon.96aae638f64819737959c12664ce19c7.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path, _polygon, _path2, _path3;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLinkedinIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 122.88 122.88\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#0077b5;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:#fff;}\"))), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"linkedin-square-color\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M25.2,0H97.68a25.27,25.27,0,0,1,25.2,25.2V97.68a25.27,25.27,0,0,1-25.2,25.2H25.2A25.27,25.27,0,0,1,0,97.68V25.2A25.27,25.27,0,0,1,25.2,0Z\"\n })), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-2\",\n points: \"30.43 50.37 43.72 50.37 43.72 90.23 30.43 90.23 30.43 50.37 30.43 50.37\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M43.72,39.29a6.65,6.65,0,1,1-6.64-6.64,6.64,6.64,0,0,1,6.64,6.64Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M52.58,50.37H64.84v6.28H65c1.71-3.06,5.88-6.28,12.11-6.28,12.93,0,15.33,8.05,15.33,18.52V90.23H79.67V71.32C79.67,66.81,79.58,61,73,61s-7.67,4.91-7.67,10V90.23H52.58V50.37Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkedinIcon);\nexport default __webpack_public_path__ + \"static/media/linkedin-icon.c73f6c4de0b9299e5254ddc304ab732a.svg\";\nexport { ForwardRef as ReactComponent };","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListItemTextUtilityClass(slot) {\n return generateUtilityClass('MuiListItemText', slot);\n}\nconst listItemTextClasses = generateUtilityClasses('MuiListItemText', ['root', 'multiline', 'dense', 'inset', 'primary', 'secondary']);\nexport default listItemTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"disableTypography\", \"inset\", \"primary\", \"primaryTypographyProps\", \"secondary\", \"secondaryTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport ListContext from '../List/ListContext';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport listItemTextClasses, { getListItemTextUtilityClass } from './listItemTextClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n inset,\n primary,\n secondary,\n dense\n } = ownerState;\n const slots = {\n root: ['root', inset && 'inset', dense && 'dense', primary && secondary && 'multiline'],\n primary: ['primary'],\n secondary: ['secondary']\n };\n return composeClasses(slots, getListItemTextUtilityClass, classes);\n};\nconst ListItemTextRoot = styled('div', {\n name: 'MuiListItemText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${listItemTextClasses.primary}`]: styles.primary\n }, {\n [`& .${listItemTextClasses.secondary}`]: styles.secondary\n }, styles.root, ownerState.inset && styles.inset, ownerState.primary && ownerState.secondary && styles.multiline, ownerState.dense && styles.dense];\n }\n})(({\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n minWidth: 0,\n marginTop: 4,\n marginBottom: 4\n}, ownerState.primary && ownerState.secondary && {\n marginTop: 6,\n marginBottom: 6\n}, ownerState.inset && {\n paddingLeft: 56\n}));\nconst ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemText'\n });\n const {\n children,\n className,\n disableTypography = false,\n inset = false,\n primary: primaryProp,\n primaryTypographyProps,\n secondary: secondaryProp,\n secondaryTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n dense\n } = React.useContext(ListContext);\n let primary = primaryProp != null ? primaryProp : children;\n let secondary = secondaryProp;\n const ownerState = _extends({}, props, {\n disableTypography,\n inset,\n primary: !!primary,\n secondary: !!secondary,\n dense\n });\n const classes = useUtilityClasses(ownerState);\n if (primary != null && primary.type !== Typography && !disableTypography) {\n primary = /*#__PURE__*/_jsx(Typography, _extends({\n variant: dense ? 'body2' : 'body1',\n className: classes.primary,\n component: primaryTypographyProps != null && primaryTypographyProps.variant ? undefined : 'span',\n display: \"block\"\n }, primaryTypographyProps, {\n children: primary\n }));\n }\n if (secondary != null && secondary.type !== Typography && !disableTypography) {\n secondary = /*#__PURE__*/_jsx(Typography, _extends({\n variant: \"body2\",\n className: classes.secondary,\n color: \"text.secondary\",\n display: \"block\"\n }, secondaryTypographyProps, {\n children: secondary\n }));\n }\n return /*#__PURE__*/_jsxs(ListItemTextRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [primary, secondary]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemText.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Alias for the `primary` prop.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the children won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `children` (or `primary`) text, and optional `secondary` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * If `true`, the children are indented.\n * This should be used if there is no left avatar or left icon.\n * @default false\n */\n inset: PropTypes.bool,\n /**\n * The main content element.\n */\n primary: PropTypes.node,\n /**\n * These props will be forwarded to the primary typography component\n * (as long as disableTypography is not `true`).\n */\n primaryTypographyProps: PropTypes.object,\n /**\n * The secondary content element.\n */\n secondary: PropTypes.node,\n /**\n * These props will be forwarded to the secondary typography component\n * (as long as disableTypography is not `true`).\n */\n secondaryTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemText;","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, NavLink } from \"react-router-dom\";\nimport makeStyles from \"@mui/styles/makeStyles\";\n// import InstagramIcon from \"@mui/icons-material/Instagram\";\n// import FacebookIcon from \"@mui/icons-material/Facebook\";\n// import LinkedInIcon from \"@mui/icons-material/LinkedIn\";\nimport InstagramIcon from '../images/instagram-icon.svg'\nimport FacebookIcon from '../images/facebook-icon.svg'\nimport LinkedInIcon from '../images/linkedin-icon.svg'\nimport { menu2 } from \"./utils\";\nimport {\n Grid,\n Typography,\n Button,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n List,\n ListItem,\n ListItemText,\n ListItemIcon,\n} from \"@mui/material\";\nimport axios from \"axios\";\nconst useStyles = makeStyles((theme) => ({\n root: {\n background: \"#000000\",\n textAlign: \"left\",\n padding: \"80px 0 30px\",\n [theme.breakpoints.down(\"md\")]: {\n padding: \"60px 50px\"\n },\n },\n content: {\n color: \"#FFFFFF\",\n fontSize: \"1.5em\",\n fontWeight: \"600\",\n padding: \"5px 5px 5px 0\",\n },\n contentPara: {\n color: \"#FFFFFF\",\n fontSize: \"1.15rem\",\n paddingTop: \"10px\",\n },\n visitors: {\n color: \"#FFFFFF\",\n fontSize: \"1.5em\",\n padding: \"5px 5px 5px 0\",\n display: \"flex\",\n alignItems: \"center\"\n },\n head: {\n color: \"#FFFFFF\",\n fontSize: \"2.5em\",\n fontWeight: 400,\n marginBottom: \"0\",\n },\n button: {\n borderRadius: 0,\n width: \"90%\",\n textTransform: \"none\",\n background: \"#000000\",\n fontSize: \"18px\",\n marginLeft: \"10px\",\n marginRight: \"10px\",\n margin: theme.spacing(1),\n boxShadow: \"none\",\n border: \"3px solid #FFFFFF\",\n },\n item_head: {\n color: \"#FFFFFF\",\n fontSize: \"1.5em\",\n letterSpacing: \"2px\",\n fontWeight: \"700\",\n [theme.breakpoints.down(\"md\")]: {\n marginTop: \"35px\",\n },\n },\n item_head_follow: {\n display: \"inline-block\",\n color: \"#FFFFFF\",\n fontSize: \"1.2em\",\n letterSpacing: \"2px\",\n margin: \"auto 10px auto 0\"\n // marginRight: \"10px\",\n },\n item_content: {\n color: \"#FFFFFF\",\n fontSize: \"0.5em\",\n },\n list_item0: {\n padding: 0,\n marginBottom: '8px',\n \"&:hover\": {\n color: \"#3F67F6\",\n },\n },\n list_item01: {\n padding: 0,\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n list_item02: {\n padding: 0,\n marginBottom: '8px',\n \"&:hover\": {\n // color: \"#3F67F6\",\n },\n },\n list_item: {\n paddingRight: 0,\n paddingLeft: 0,\n },\n divider: {\n border: \"1px solid #FFF\",\n width: \"90%\",\n margin: \"3rem auto 2rem\",\n [theme.breakpoints.down(\"md\")]: {\n display: \"none\",\n },\n },\n socialLink: {\n \"&:hover\": {\n textDecoration: \"none\"\n },\n },\n socialContainer: {\n [theme.breakpoints.down(\"md\")]: {\n marginTop: \"15px\",\n // textAlign: \"center\",\n },\n },\n socialIcon: {\n width: \"35px\",\n height: \"35px\",\n margin: \"0 5px\",\n },\n copyright: {\n fontSize: \"1.1rem\",\n color: \"#FFFFFF\",\n display: \"inline-block\",\n width: \"100%\",\n textAlign: \"right\",\n [theme.breakpoints.down(\"md\")]: {\n marginTop: \"50px\",\n textAlign: \"center\",\n },\n },\n copyrightBrand: {\n color: \"#3F67F6\",\n },\n}));\n\nconst FootDialog: React.FC<{\n open: boolean;\n handleClose: () => void;\n title: string;\n}> = ({ open, handleClose, title, children }) => {\n return (\n \n {title}\n {children}\n \n \n \n \n );\n};\n\nconst Block = (number, index) => {\n return (\n
\n {number}\n
\n );\n}\n\nconst VisitCount: React.FC =({visitors}) => {\n const v = String(visitors).split('');\n return (\n
\n {v.map((x, index) => {\n return ( Block(x, index) )\n })}\n
\n )\n}\n\nconst Footer: React.FC = () => {\n let history = useHistory();\n const classes = useStyles();\n const [privacy, setPrivacy] = useState(false);\n const [tc, setTc] = useState(false);\n const privacyOpen = () => setPrivacy(true);\n const privacyClose = () => setPrivacy(false);\n const tcOpen = () => setTc(true);\n const tcClose = () => setTc(false);\n \n const [visitors, setVisitors] = useState(0);\n\n const getVisitors = async () => {\n // CountAPI stopped working. Find a new solution\n // const { data } = await axios('https://api.countapi.xyz/update/skinzy.in/dermalens/?amount=1');\n const data = { value: '0' };\n if(data != null || data.value != '0') {\n setVisitors(parseInt(data.value));\n }\n }\n\n useEffect(() => {\n getVisitors();\n }, []);\n\n\n return (\n
\n \n \n
\n \n DERMALENS\n \n \n
\n By AiM4u Software Solutions \n
\n
\n \n An AI powered Skincare Assistant to check your skin issues and connect with the dermatologists anytime, anywhere.\n \n
\n
\n { visitors != 0 &&\n \n
\n Total Visitors \n \n
\n
\n }\n
\n
\n \n \n Explore\n \n \n \n {menu2.map((m, i) => (\n history.push(m.link)}\n disableGutters={true}\n classes={{ root: classes.list_item0 }}\n >\n \n \n ))}\n \n \n \n \n \n Contact\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Legal\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n\n \n \n \n Follow Us\n \n \"Instagram\" \n \"Facebook\" \n \"LinkedIn\" \n \n \n \n Copyright © All Rights Reserved 2023-25 by AiM4u Software Solutions \n \n \n \n
\n );\n};\nexport default Footer;\n","import React from \"react\";\nimport { Container, Grid } from \"@mui/material\";\n\nconst People: React.FC = () => {\n return (\n \n \n \n
4 in 5
\n
people in India develop skin diseases.
\n
\n \n {/* */}\n \n
\n At AiM4u, the health of our user is our priority. Research is the\n core of our organization.\n
\n
Our algorithm detects skin diseases with 95% accuracy.
\n
\n The preview of the Detection Algorithm can be used from the website in the features section.\n
\n
\n 90% of the skin patients do not visit a dermatologist. There are\n just 10,000 dermatologists for 1.3 billion people. Our app helps\n users connect with the dermatologist from anywhere, at anytime.\n
\n
\n \n \n );\n};\n\nexport default People;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/**\n * @namespace Chart.helpers\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ActiveDataPoint, ChartEvent} from '../types/index.js';\n\n/**\n * An empty function that can be used, for example, for optional callback.\n */\nexport function noop() {\n /* noop */\n}\n\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nexport const uid = (() => {\n let id = 0;\n return () => id++;\n})();\n\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isNullOrUndef(value: unknown): value is null | undefined {\n return value === null || typeof value === 'undefined';\n}\n\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nexport function isArray(value: unknown): value is T[] {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isObject(value: unknown): value is AnyObject {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */\nfunction isNumberFinite(value: unknown): value is number {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\nexport {\n isNumberFinite as isFinite,\n};\n\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nexport function finiteOrDefault(value: unknown, defaultValue: number) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nexport function valueOrDefault(value: T | undefined, defaultValue: T) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nexport const toPercentage = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : +value / dimension;\n\nexport const toDimension = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\n\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nexport function callback R, TA, R>(\n fn: T | undefined,\n args: unknown[],\n thisArg?: TA\n): R | undefined {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\n/**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param loopable - The object or array to be iterated.\n * @param fn - The function to call for each item.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n * @param [reverse] - If true, iterates backward on the loopable.\n */\nexport function each(\n loopable: Record,\n fn: (this: TA, v: T, i: string) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[],\n fn: (this: TA, v: T, i: number) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[] | Record,\n fn: (this: TA, v: T, i: any) => void,\n thisArg?: TA,\n reverse?: boolean\n) {\n let i: number, len: number, keys: string[];\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nexport function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]) {\n let i: number, ilen: number, v0: ActiveDataPoint, v1: ActiveDataPoint;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nexport function clone(source: T): T {\n if (isArray(source)) {\n return source.map(clone) as unknown as T;\n }\n\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key: string) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nexport function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\n\nexport interface MergeOptions {\n merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @param [options] - Merging options:\n * @param [options.merger] - The merge method (key, target, source, options)\n * @returns The `target` object.\n */\nexport function merge(target: T, source: [], options?: MergeOptions): T;\nexport function merge(target: T, source: S1, options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1], options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;\nexport function merge(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;\nexport function merge(\n target: T,\n source: [S1, S2, S3, S4],\n options?: MergeOptions\n): T & S1 & S2 & S3 & S4;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n\n if (!isObject(target)) {\n return target as AnyObject;\n }\n\n options = options || {};\n const merger = options.merger || _merger;\n let current: AnyObject;\n\n for (let i = 0; i < ilen; ++i) {\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n\n const keys = Object.keys(current);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, current, options as AnyObject);\n }\n }\n\n return target;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @returns The `target` object.\n */\nexport function mergeIf(target: T, source: []): T;\nexport function mergeIf(target: T, source: S1): T & S1;\nexport function mergeIf(target: T, source: [S1]): T & S1;\nexport function mergeIf(target: T, source: [S1, S2]): T & S1 & S2;\nexport function mergeIf(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;\nexport function mergeIf(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {merger: _mergerIf});\n}\n\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nexport function _mergerIf(key: string, target: AnyObject, source: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n\n/**\n * @private\n */\nexport function _deprecated(scope: string, value: unknown, previous: string, current: string) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': v => v,\n // default resolvers\n x: o => o.x,\n y: o => o.y\n};\n\n/**\n * @private\n */\nexport function _splitKey(key: string) {\n const parts = key.split('.');\n const keys: string[] = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\n\nfunction _getKeyResolver(key: string) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n // For backward compatibility:\n // Chart.helpers.core resolveObjectKey should break at empty key\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\n\nexport function resolveObjectKey(obj: AnyObject, key: string): any {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n\n/**\n * @private\n */\nexport function _capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n\nexport const defined = (value: unknown) => typeof value !== 'undefined';\n\nexport const isFunction = (value: unknown): value is (...args: any[]) => any => typeof value === 'function';\n\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nexport const setsEqual = (a: Set, b: Set) => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * @param e - The event\n * @private\n */\nexport function _isClickEvent(e: ChartEvent) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n","import type {Point} from '../types/geometric.js';\nimport {isFinite as isFiniteNumber} from './helpers.core.js';\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\n\nexport const PI = Math.PI;\nexport const TAU = 2 * PI;\nexport const PITAU = TAU + PI;\nexport const INFINITY = Number.POSITIVE_INFINITY;\nexport const RAD_PER_DEG = PI / 180;\nexport const HALF_PI = PI / 2;\nexport const QUARTER_PI = PI / 4;\nexport const TWO_THIRDS_PI = PI * 2 / 3;\n\nexport const log10 = Math.log10;\nexport const sign = Math.sign;\n\nexport function almostEquals(x: number, y: number, epsilon: number) {\n return Math.abs(x - y) < epsilon;\n}\n\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nexport function niceNum(range: number) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nexport function _factorize(value: number) {\n const result: number[] = [];\n const sqrt = Math.sqrt(value);\n let i: number;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) { // if value is a square number\n result.push(sqrt);\n }\n\n result.sort((a, b) => a - b).pop();\n return result;\n}\n\nexport function isNumber(n: unknown): n is number {\n return !isNaN(parseFloat(n as string)) && isFinite(n as number);\n}\n\nexport function almostWhole(x: number, epsilon: number) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\n\n/**\n * @private\n */\nexport function _setMinAndMaxByKey(\n array: Record[],\n target: { min: number, max: number },\n property: string\n) {\n let i: number, ilen: number, value: number;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nexport function toRadians(degrees: number) {\n return degrees * (PI / 180);\n}\n\nexport function toDegrees(radians: number) {\n return radians * (180 / PI);\n}\n\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nexport function _decimalPlaces(x: number) {\n if (!isFiniteNumber(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\n\n// Gets the angle from vertical upright to the point about a centre.\nexport function getAngleFromPoint(\n centrePoint: Point,\n anglePoint: Point\n) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * PI)) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\n\nexport function distanceBetweenPoints(pt1: Point, pt2: Point) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nexport function _angleDiff(a: number, b: number) {\n return (a - b + PITAU) % TAU - PI;\n}\n\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nexport function _normalizeAngle(a: number) {\n return (a % TAU + TAU) % TAU;\n}\n\n/**\n * @private\n */\nexport function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\n\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nexport function _limitValue(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * @param {number} value\n * @private\n */\nexport function _int16Range(value: number) {\n return _limitValue(value, -32768, 32767);\n}\n\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nexport function _isBetween(value: number, start: number, end: number, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n","import {_capitalize} from './helpers.core.js';\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param value - value to find\n * @param cmp\n * @private\n */\nexport function _lookup(\n table: number[],\n value: number,\n cmp?: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: T[],\n value: number,\n cmp: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: unknown[],\n value: number,\n cmp?: (value: number) => boolean\n) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid: number;\n\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {lo, hi};\n}\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nexport const _lookupByKey = (\n table: Record[],\n key: string,\n value: number,\n last?: boolean\n) =>\n _lookup(table, value, last\n ? index => {\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n }\n : index => table[index][key] < value);\n\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nexport const _rlookupByKey = (\n table: Record[],\n key: string,\n value: number\n) =>\n _lookup(table, value, index => table[index][key] >= value);\n\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nexport function _filterBetween(values: number[], min: number, max: number) {\n let start = 0;\n let end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\n\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'] as const;\n\nexport interface ArrayListener {\n _onDataPush?(...item: T[]): void;\n _onDataPop?(): void;\n _onDataShift?(): void;\n _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;\n _onDataUnshift?(...item: T[]): void;\n}\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.\n */\nexport function listenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nexport function unlistenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n\n delete array._chartjs;\n}\n\n/**\n * @param items\n */\nexport function _arrayUnique(items: T[]) {\n const set = new Set(items);\n\n if (set.size === items.length) {\n return items;\n }\n\n return Array.from(set);\n}\n","import type {ChartMeta, PointElement} from '../types/index.js';\n\nimport {_limitValue} from './helpers.math.js';\nimport {_lookupByKey} from './helpers.collection.js';\n\nexport function fontString(pixelSize: number, fontStyle: string, fontFamily: string) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\n/**\n* Request animation polyfill\n*/\nexport const requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\n\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nexport function throttled>(\n fn: (...args: TArgs) => void,\n thisArg: any,\n) {\n let argsToUse = [] as TArgs;\n let ticking = false;\n\n return function(...args: TArgs) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n\n/**\n * Debounces calling `fn` for `delay` ms\n */\nexport function debounce>(fn: (...args: TArgs) => void, delay: number) {\n let timeout;\n return function(...args: TArgs) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nexport const _toLeftRightCenter = (align: 'start' | 'end' | 'center') => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nexport const _alignStartEnd = (align: 'start' | 'end' | 'center', start: number, end: number) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nexport const _textX = (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\n/**\n * Return start and count of visible points.\n * @private\n */\nexport function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean) {\n const pointCount = points.length;\n\n let start = 0;\n let count = pointCount;\n\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n if (minDefined) {\n start = _limitValue(Math.min(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {start, count};\n}\n\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nexport function _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n","import {PI, TAU, HALF_PI} from './helpers.math.js';\n\nconst atEdge = (t: number) => t === 0 || t === 1;\nconst elasticIn = (t: number, s: number, p: number) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t: number, s: number, p: number) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n linear: (t: number) => t,\n\n easeInQuad: (t: number) => t * t,\n\n easeOutQuad: (t: number) => -t * (t - 2),\n\n easeInOutQuad: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n\n easeInCubic: (t: number) => t * t * t,\n\n easeOutCubic: (t: number) => (t -= 1) * t * t + 1,\n\n easeInOutCubic: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n\n easeInQuart: (t: number) => t * t * t * t,\n\n easeOutQuart: (t: number) => -((t -= 1) * t * t * t - 1),\n\n easeInOutQuart: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n\n easeInQuint: (t: number) => t * t * t * t * t,\n\n easeOutQuint: (t: number) => (t -= 1) * t * t * t * t + 1,\n\n easeInOutQuint: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n\n easeInSine: (t: number) => -Math.cos(t * HALF_PI) + 1,\n\n easeOutSine: (t: number) => Math.sin(t * HALF_PI),\n\n easeInOutSine: (t: number) => -0.5 * (Math.cos(PI * t) - 1),\n\n easeInExpo: (t: number) => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n\n easeOutExpo: (t: number) => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n\n easeInOutExpo: (t: number) => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n\n easeInCirc: (t: number) => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n\n easeOutCirc: (t: number) => Math.sqrt(1 - (t -= 1) * t),\n\n easeInOutCirc: (t: number) => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n\n easeInElastic: (t: number) => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n\n easeOutElastic: (t: number) => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n\n easeInOutElastic(t: number) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n\n easeInBack(t: number) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack(t: number) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack(t: number) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n\n easeInBounce: (t: number) => 1 - effects.easeOutBounce(1 - t),\n\n easeOutBounce(t: number) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n\n easeInOutBounce: (t: number) => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n} as const;\n\nexport type EasingFunction = keyof typeof effects\n\nexport default effects;\n","import {Color} from '@kurkle/color';\n\nexport function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nexport function color(value: CanvasGradient): CanvasGradient;\nexport function color(value: CanvasPattern): CanvasPattern;\nexport function color(\n value:\n | string\n | { r: number; g: number; b: number; a: number }\n | [number, number, number]\n | [number, number, number, number]\n): Color;\nexport function color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\n\nexport function getHoverColor(value: CanvasGradient): CanvasGradient;\nexport function getHoverColor(value: CanvasPattern): CanvasPattern;\nexport function getHoverColor(value: string): string;\nexport function getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n","const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\n\nexport function applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n });\n\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n });\n\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n });\n\n defaults.describe('animations', {\n _fallback: 'animation',\n });\n\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0 // show immediately\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0 // for keeping the dataset visible all the way through the animation\n },\n }\n }\n });\n}\n","\nconst intlCache = new Map();\n\nfunction getNumberFormat(locale: string, options?: Intl.NumberFormatOptions) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\n\nexport function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions) {\n return getNumberFormat(locale, options).format(num);\n}\n","import {isArray} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {log10} from '../helpers/helpers.math.js';\n\n/**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\nconst formatters = {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {string|string[]} the label to display\n */\n values(value) {\n return isArray(value) ? /** @type {string[]} */ (value) : '' + value;\n },\n\n /**\n * Formatter for numeric ticks\n * @method Chart.Ticks.formatters.numeric\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0'; // never show decimal places for 0\n }\n\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue; // This is used when there are less than 2 ticks as the tick interval.\n\n if (ticks.length > 1) {\n // all ticks are small or there huge numbers; use scientific notation\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n const logDelta = log10(Math.abs(delta));\n\n // When datasets have values approaching Number.MAX_VALUE, the tick calculations might result in\n // infinity and eventually NaN. Passing NaN for minimumFractionDigits or maximumFractionDigits\n // will make the number formatter throw. So instead we check for isNaN and use a fallback value.\n //\n // toFixed has a max of 20 decimal places\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n\n return formatNumber(tickValue, locale, options);\n },\n\n\n /**\n * Formatter for logarithmic ticks\n * @method Chart.Ticks.formatters.logarithmic\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || (tickValue / (Math.pow(10, Math.floor(log10(tickValue)))));\n if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n\n};\n\n\nfunction calculateDelta(tickValue, ticks) {\n // Figure out how many digits to show\n // The space between the first two ticks might be smaller than normal spacing\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nexport default {formatters};\n","import {getHoverColor} from '../helpers/helpers.color.js';\nimport {isObject, merge, valueOrDefault} from '../helpers/helpers.core.js';\nimport {applyAnimationsDefaults} from './core.animations.defaults.js';\nimport {applyLayoutsDefaults} from './core.layouts.defaults.js';\nimport {applyScaleDefaults} from './core.scale.defaults.js';\n\nexport const overrides = Object.create(null);\nexport const descriptors = Object.create(null);\n\n/**\n * @param {object} node\n * @param {string} key\n * @return {object}\n */\nfunction getScope(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\n\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope(root, scope), values);\n }\n return merge(getScope(root, ''), scope);\n}\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Defaults {\n constructor(_descriptors, _appliers) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n set(scope, values) {\n return set(this, scope, values);\n }\n\n /**\n\t * @param {string} scope\n\t */\n get(scope) {\n return getScope(this, scope);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n\n override(scope, values) {\n return set(overrides, scope, values);\n }\n\n /**\n\t * Routes the named defaults to fallback to another scope/name.\n\t * This routing is useful when those target values, like defaults.color, are changed runtime.\n\t * If the values would be copied, the runtime change would not take effect. By routing, the\n\t * fallback is evaluated at each access, so its always up to date.\n\t *\n\t * Example:\n\t *\n\t * \tdefaults.route('elements.arc', 'backgroundColor', '', 'color')\n\t * - reads the backgroundColor from defaults.color when undefined locally\n\t *\n\t * @param {string} scope Scope this route applies to.\n\t * @param {string} name Property name that should be routed to different namespace when not defined here.\n\t * @param {string} targetScope The namespace where those properties should be routed to.\n\t * Empty string ('') is the root of defaults.\n\t * @param {string} targetName The target name in the target scope the property should be routed to.\n\t */\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope(this, scope);\n const targetScopeObject = getScope(this, targetScope);\n const privateName = '_' + name;\n\n Object.defineProperties(scopeObject, {\n // A private property is defined to hold the actual value, when this property is set in its scope (set in the setter)\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n // The actual property is defined as getter/setter so we can do the routing when value is not locally set.\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n\n apply(appliers) {\n appliers.forEach((apply) => apply(this));\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n","export function applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n","import Ticks from './core.ticks.js';\n\nexport function applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 3.0.0\n */\n bounds: 'ticks',\n\n clip: true,\n\n /**\n * Addition grace added to max and reduced from min data value.\n * @since 3.0.0\n */\n grace: 0,\n\n // grid line settings\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n },\n\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n\n // scale title\n title: {\n // display property\n display: false,\n\n // actual label\n text: '',\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n });\n\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash',\n });\n\n defaults.describe('scales', {\n _fallback: 'scale',\n });\n\n defaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n });\n}\n","import type {\n Chart,\n Point,\n FontSpec,\n CanvasFontSpec,\n PointStyle,\n RenderTextOpts,\n BackdropOptions\n} from '../types/index.js';\nimport type {\n TRBL,\n SplinePoint,\n RoundedRect,\n TRBLCorners\n} from '../types/geometric.js';\nimport {isArray, isNullOrUndef} from './helpers.core.js';\nimport {PI, TAU, HALF_PI, QUARTER_PI, TWO_THIRDS_PI, RAD_PER_DEG} from './helpers.math.js';\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nexport function toFontString(font: FontSpec) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @private\n */\nexport function _measureText(\n ctx: CanvasRenderingContext2D,\n data: Record,\n gc: string[],\n longest: number,\n string: string\n) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n\ntype Thing = string | undefined | null\ntype Things = (Thing | Thing[])[]\n\n/**\n * @private\n */\n// eslint-disable-next-line complexity\nexport function _longestText(\n ctx: CanvasRenderingContext2D,\n font: string,\n arrayOfThings: Things,\n cache?: {data?: Record, garbageCollect?: string[], font?: string}\n) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i: number, j: number, jlen: number, thing: Thing | Thing[], nestedThing: Thing | Thing[];\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */\nexport function _alignPixel(chart: Chart, pixel: number, width: number) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\n/**\n * Clears the entire canvas.\n */\nexport function clearCanvas(canvas?: HTMLCanvasElement, ctx?: CanvasRenderingContext2D) {\n if (!ctx && !canvas) {\n return;\n }\n\n ctx = ctx || canvas.getContext('2d');\n\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nexport interface DrawPointOptions {\n pointStyle: PointStyle;\n rotation?: number;\n radius: number;\n borderWidth: number;\n}\n\nexport function drawPoint(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number\n) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n\n// eslint-disable-next-line complexity\nexport function drawPointLegend(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number,\n w: number\n) {\n let type: string, xOffset: number, yOffset: number, size: number, cornerRadius: number, width: number, xOffsetW: number, yOffsetW: number;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */\n case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */\n case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */\nexport function _isPointInArea(\n point: Point,\n area: TRBL,\n margin?: number\n) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\n\nexport function clipArea(ctx: CanvasRenderingContext2D, area: TRBL) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nexport function unclipArea(ctx: CanvasRenderingContext2D) {\n ctx.restore();\n}\n\n/**\n * @private\n */\nexport function _steppedLineTo(\n ctx: CanvasRenderingContext2D,\n previous: Point,\n target: Point,\n flip?: boolean,\n mode?: string\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @private\n */\nexport function _bezierCurveTo(\n ctx: CanvasRenderingContext2D,\n previous: SplinePoint,\n target: SplinePoint,\n flip?: boolean\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\n\nfunction setRenderOpts(ctx: CanvasRenderingContext2D, opts: RenderTextOpts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n line: string,\n opts: RenderTextOpts\n) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction drawBackdrop(ctx: CanvasRenderingContext2D, opts: BackdropOptions) {\n const oldColor = ctx.fillStyle;\n\n ctx.fillStyle = opts.color as string;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n\n/**\n * Render text onto the canvas\n */\nexport function renderText(\n ctx: CanvasRenderingContext2D,\n text: string | string[],\n x: number,\n y: number,\n font: CanvasFontSpec,\n opts: RenderTextOpts = {}\n) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i: number, line: string;\n\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n\n y += Number(font.lineHeight);\n }\n\n ctx.restore();\n}\n\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */\nexport function addRoundedRectPath(\n ctx: CanvasRenderingContext2D,\n rect: RoundedRect & { radius: TRBLCorners }\n) {\n const {x, y, w, h, radius} = rect;\n\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n","import defaults from '../core/core.defaults.js';\nimport {isArray, isObject, toDimension, valueOrDefault} from './helpers.core.js';\nimport {toFontString} from './helpers.canvas.js';\nimport type {ChartArea, FontSpec, Point} from '../types/index.js';\nimport type {TRBL, TRBLCorners} from '../types/geometric.js';\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\n/**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nexport function toLineHeight(value: number | string, size: number): number {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n}\n\nconst numberOrZero = (v: unknown) => +v || 0;\n\n/**\n * @param value\n * @param props\n */\nexport function _readValueToProps(value: number | Record, props: K[]): Record;\nexport function _readValueToProps(value: number | Record, props: Record): Record;\nexport function _readValueToProps(value: number | Record, props: string[] | Record) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nexport function toTRBL(value: number | TRBL | Point) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\n\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nexport function toTRBLCorners(value: number | TRBLCorners) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nexport function toPadding(value?: number | TRBL): ChartArea {\n const obj = toTRBL(value) as ChartArea;\n\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n\n return obj;\n}\n\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\n\nexport function toFont(options: Partial, fallback?: Partial) {\n options = options || {};\n fallback = fallback || defaults.font as FontSpec;\n\n let size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n\n font.string = toFontString(font);\n return font;\n}\n\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nexport function resolve(inputs: Array, context?: object, index?: number, info?: { cacheable: boolean }) {\n let cacheable = true;\n let i: number, ilen: number, value: unknown;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nexport function _addGrace(minmax: { min: number; max: number; }, grace: number | string, beginAtZero: boolean) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value: number, add: number) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\n/**\n * Create a context inheriting parentContext\n * @param parentContext\n * @param context\n * @returns\n */\nexport function createContext(parentContext: null, context: T): T;\nexport function createContext(parentContext: P, context: T): P & T;\nexport function createContext(parentContext: object, context: object) {\n return Object.assign(Object.create(parentContext), context);\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartMeta} from '../types/index.js';\nimport type {\n ResolverObjectKey,\n ResolverCache,\n ResolverProxy,\n DescriptorDefaults,\n Descriptor,\n ContextCache,\n ContextProxy\n} from './helpers.config.types.js';\nimport {isArray, isFunction, isObject, resolveObjectKey, _capitalize} from './helpers.core.js';\n\nexport * from './helpers.config.types.js';\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nexport function _createResolver<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n scopes: T,\n prefixes = [''],\n rootScopes?: R,\n fallback?: ResolverObjectKey,\n getTarget = () => scopes[0]\n) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache: ResolverCache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope: AnyObject) => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback),\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop: string) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop: string) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop: string, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n }) as ResolverProxy;\n}\n\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */\nexport function _attachContext<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n proxy: ResolverProxy,\n context: AnyObject,\n subProxy?: ResolverProxy,\n descriptorDefaults?: DescriptorDefaults\n) {\n const cache: ContextCache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx: AnyObject) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope: AnyObject) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n }) as ContextProxy;\n}\n\n/**\n * @private\n */\nexport function _descriptors(\n proxy: ResolverCache,\n defaults: DescriptorDefaults = {scriptable: true, indexable: true}\n): Descriptor {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\n\nconst readKey = (prefix: string, name: string) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop: string, value: unknown) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\n\nfunction _cached(\n target: AnyObject,\n prop: string,\n resolve: () => unknown\n) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(\n target: ContextCache,\n prop: string,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop]; // resolve from proxy\n\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\n\nfunction _resolveScriptable(\n prop: string,\n getValue: (ctx: AnyObject, sub: AnyObject) => unknown,\n target: ContextCache,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\n\nfunction _resolveArray(\n prop: string,\n value: unknown[],\n target: ContextCache,\n isIndexable: (key: string) => boolean\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\n\nfunction resolveFallback(\n fallback: ResolverObjectKey | ((prop: ResolverObjectKey, value: unknown) => ResolverObjectKey),\n prop: ResolverObjectKey,\n value: unknown\n) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nconst getScope = (key: ResolverObjectKey, parent: AnyObject) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n\nfunction addScopes(\n set: Set,\n parentScopes: AnyObject[],\n key: ResolverObjectKey,\n parentFallback: ResolverObjectKey,\n value: unknown\n) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\n\nfunction createSubResolver(\n parentScopes: AnyObject[],\n resolver: ResolverCache,\n prop: ResolverObjectKey,\n value: unknown\n) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop as string, value));\n}\n\nfunction addScopesFromKey(\n set: Set,\n allScopes: AnyObject[],\n key: ResolverObjectKey,\n fallback: ResolverObjectKey,\n item: unknown\n) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\n\nfunction subGetTarget(\n resolver: ResolverCache,\n prop: string,\n value: unknown\n) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\n\nfunction _resolveWithPrefixes(\n prop: string,\n prefixes: string[],\n scopes: AnyObject[],\n proxy: ResolverProxy\n) {\n let value: unknown;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\n\nfunction _resolve(key: string, scopes: AnyObject[]) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\n\nfunction getKeysFromAllScopes(target: ResolverCache) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes: AnyObject[]) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nexport function _parseObjectDataRadialScale(\n meta: ChartMeta<'line' | 'scatter'>,\n data: AnyObject[],\n start: number,\n count: number\n) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array<{r: unknown}>(count);\n let i: number, ilen: number, index: number, item: AnyObject;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n","import {almostEquals, distanceBetweenPoints, sign} from './helpers.math.js';\nimport {_isPointInArea} from './helpers.canvas.js';\nimport type {ChartArea} from '../types/index.js';\nimport type {SplinePoint} from '../types/geometric.js';\n\nconst EPSILON = Number.EPSILON || 1e-14;\n\ntype OptionalSplinePoint = SplinePoint | false\nconst getPoint = (points: SplinePoint[], i: number): OptionalSplinePoint => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis: 'x' | 'y') => indexAxis === 'x' ? 'y' : 'x';\n\nexport function splineCurve(\n firstPoint: SplinePoint,\n middlePoint: SplinePoint,\n afterPoint: SplinePoint,\n t: number\n): {\n previous: SplinePoint\n next: SplinePoint\n } {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points: SplinePoint[], deltaK: number[], mK: number[]) {\n const pointsLen = points.length;\n\n let alphaK: number, betaK: number, tauK: number, squaredMagnitude: number, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points: SplinePoint[], mK: number[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta: number, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nexport function splineCurveMonotone(points: SplinePoint[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK: number[] = Array(pointsLen).fill(0);\n const mK: number[] = Array(pointsLen);\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt: number, min: number, max: number) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points: SplinePoint[], area: ChartArea) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\n/**\n * @private\n */\nexport function _updateBezierControlPoints(\n points: SplinePoint[],\n options,\n area: ChartArea,\n loop: boolean,\n indexAxis: 'x' | 'y'\n) {\n let i: number, ilen: number, point: SplinePoint, controlPoints: ReturnType;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n","import type {ChartArea, Scale} from '../types/index.js';\nimport type Chart from '../core/core.controller.js';\nimport type {ChartEvent} from '../types.js';\nimport {INFINITY} from './helpers.math.js';\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */\n\n/**\n * @private\n */\nexport function _isDomSupported(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * @private\n */\nexport function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = (parent as ShadowRoot).host;\n }\n return parent as HTMLCanvasElement;\n}\n\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\n\nfunction parseMaxStyle(styleValue: string | number, node: HTMLElement, parentProperty: string) {\n let valueInPixels: number;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = (valueInPixels / 100) * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nconst getComputedStyle = (element: HTMLElement): CSSStyleDeclaration =>\n element.ownerDocument.defaultView.getComputedStyle(element, null);\n\nexport function getStyle(el: HTMLElement, property: string): string {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles: CSSStyleDeclaration, style: string, suffix?: string): ChartArea {\n const result = {} as ChartArea;\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nconst useOffsetPos = (x: number, y: number, target: HTMLElement | EventTarget) =>\n (x > 0 || y > 0) && (!target || !(target as HTMLElement).shadowRoot);\n\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(\n e: Event | TouchEvent | MouseEvent,\n canvas: HTMLCanvasElement\n): {\n x: number;\n y: number;\n box: boolean;\n } {\n const touches = (e as TouchEvent).touches;\n const source = (touches && touches.length ? touches[0] : e) as MouseEvent;\n const {offsetX, offsetY} = source as MouseEvent;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\n\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\n\nexport function getRelativePosition(\n event: Event | ChartEvent | TouchEvent | MouseEvent,\n chart: Chart\n): { x: number; y: number } {\n if ('native' in event) {\n return event;\n }\n\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas: HTMLCanvasElement, width: number, height: number): Partial {\n let maxWidth: number, maxHeight: number;\n\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nconst round1 = (v: number) => Math.round(v * 10) / 10;\n\n// eslint-disable-next-line complexity\nexport function getMaximumSize(\n canvas: HTMLCanvasElement,\n bbWidth?: number,\n bbHeight?: number,\n aspectRatio?: number\n): { width: number; height: number } {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n\n return {width, height};\n}\n\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nexport function retinaScale(\n chart: Chart,\n forceRatio: number,\n forceStyle?: boolean\n): boolean | void {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n\n const canvas = chart.canvas;\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nexport const supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() { // This function will be called when the browser attempts to access the passive property.\n passiveSupported = true;\n return false;\n }\n } as EventListenerOptions;\n\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}());\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\n\nexport function readUsedSize(\n element: HTMLElement,\n property: 'width' | 'height'\n): number | undefined {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n","import type {Point, SplinePoint} from '../types/geometric.js';\n\n/**\n * @private\n */\nexport function _pointInLine(p1: Point, p2: Point, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\n/**\n * @private\n */\nexport function _steppedInterpolation(\n p1: Point,\n p2: Point,\n t: number, mode: 'middle' | 'after' | unknown\n) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\n\n/**\n * @private\n */\nexport function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n","export interface RTLAdapter {\n x(x: number): number;\n setWidth(w: number): void;\n textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right';\n xPlus(x: number, value: number): number;\n leftForLtr(x: number, itemWidth: number): number;\n}\n\nconst getRightToLeftAdapter = function(rectX: number, width: number): RTLAdapter {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\n\nconst getLeftToRightAdapter = function(): RTLAdapter {\n return {\n x(x) {\n return x;\n },\n setWidth(w) { // eslint-disable-line no-unused-vars\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return x;\n },\n };\n};\n\nexport function getRtlAdapter(rtl: boolean, rectX: number, width: number) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nexport function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') {\n let style: CSSStyleDeclaration, original: [string, string];\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n\n style.setProperty('direction', direction, 'important');\n (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original;\n }\n}\n\nexport function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) {\n if (original !== undefined) {\n delete (ctx as { prevTextDirection?: [string, string] }).prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n","import {_angleBetween, _angleDiff, _isBetween, _normalizeAngle} from './helpers.math.js';\nimport {createContext} from './helpers.options.js';\nimport {isPatternOrGradient} from './helpers.color.js';\n\n/**\n * @typedef { import('../elements/element.line.js').default } LineElement\n * @typedef { import('../elements/element.point.js').default } PointElement\n * @typedef {{start: number, end: number, loop: boolean, style?: any}} Segment\n */\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\n\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n // eslint-disable-next-line prefer-const\n let {start, end, loop} = segment;\n let i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\n\n/**\n * Returns the sub-segment(s) of a line segment that fall in the given bounds\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} [segment.style] - segment style\n * @param {PointElement[]} points - the points that this segment refers to\n * @param {object} [bounds]\n * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the property\n * @param {number} bounds.end - end value of the property\n * @private\n **/\nexport function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n\n return result;\n}\n\n\n/**\n * Returns the segments of the line that are inside given bounds\n * @param {LineElement} line\n * @param {object} [bounds]\n * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the `property`\n * @param {number} bounds.end - end value of the `property`\n * @private\n */\nexport function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n\n/**\n * Find start and end index of a line.\n */\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n\n if (loop && !spanGaps) {\n // loop and not spanning gaps, first find a gap to start from\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n // find first non skipped point (after the first gap possibly)\n while (start < count && points[start].skip) {\n start++;\n }\n\n // if we looped to count, start needs to be 0\n start %= count;\n\n if (loop) {\n // loop will go past count, if start > 0\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n // end could be more than count, normalize\n end %= count;\n\n return {start, end};\n}\n\n/**\n * Compute solid segments from Points, when spanGaps === false\n * @param {PointElement[]} points - the points\n * @param {number} start - start index\n * @param {number} max - max index (can go past count on a loop)\n * @param {boolean} loop - boolean indicating that this would be a loop if no gaps are found\n */\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n // @ts-ignore\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n\n return result;\n}\n\n/**\n * Compute the continuous segments that define the whole line\n * There can be skipped points within a segment, if spanGaps is true.\n * @param {LineElement} line\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n * @private\n */\nexport function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n\n if (!count) {\n return [];\n }\n\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\n/**\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\n/**\n * @param {LineElement} line\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n // Style can not start/end on a skipped point, adjust indices accordingly\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n","import {requestAnimFrame} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('./core.animation.js').default } Animation\n * @typedef { import('./core.controller.js').default } Chart\n */\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is export for typedoc\n */\nexport class Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n /**\n\t * @private\n\t */\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n\n /**\n\t * @private\n\t */\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n\n if (this._running) {\n this._refresh();\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _update(date = Date.now()) {\n let remaining = 0;\n\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n // if the animation has been updated and its duration prolonged,\n // update to total duration of current animations run (for progress event)\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n // Remove the item by replacing it with last item and removing the last\n // A lot faster than splice.\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n\n /**\n\t * @private\n\t */\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} event - event name\n\t * @param {Function} cb - callback\n\t */\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n\n /**\n\t * Add animations\n\t * @param {Chart} chart\n\t * @param {Animation[]} items - animations\n\t */\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n\n /**\n\t * Counts number of active animations for the chart\n\t * @param {Chart} chart\n\t */\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n\n /**\n\t * Start animating (all charts)\n\t * @param {Chart} chart\n\t */\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n\n /**\n\t * Stop all animations for the chart\n\t * @param {Chart} chart\n\t */\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n\n /**\n\t * Remove chart from Animator\n\t * @param {Chart} chart\n\t */\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Animator();\n","import effects from '../helpers/helpers.easing.js';\nimport {resolve} from '../helpers/helpers.options.js';\nimport {color as helpersColor} from '../helpers/helpers.color.js';\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n /**\n * @param {string} from\n * @param {string} to\n * @param {number} factor\n */\n color(from, to, factor) {\n const c0 = helpersColor(from || transparent);\n const c1 = c0.valid && helpersColor(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nexport default class Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n active() {\n return this._active;\n }\n\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n\n cancel() {\n if (this._active) {\n // update current evaluated value, for smoother animations\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n\n this._active = from !== to && (loop || (elapsed < duration));\n\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n\n this._target[prop] = this._fn(from, to, factor);\n }\n\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n","import animator from './core.animator.js';\nimport Animation from './core.animation.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isObject} from '../helpers/helpers.core.js';\n\nexport default class Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n\n /**\n\t * Utility to handle animation of `options`.\n\t * @private\n\t */\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n // Going to shared options:\n // After all animations are done, assign the shared options object to the element\n // So any new updates to the shared options are observed\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n // rejected, noop\n });\n }\n\n return animations;\n }\n\n /**\n\t * @private\n\t */\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n // There is an existing active animation, let's update that\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n // not animated, set directly to new value\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n\n\n /**\n\t * Update `target` properties to new values, using configured animations\n\t * @param {object} target - object to update\n\t * @param {object} values - new target properties\n\t * @returns {boolean|undefined} - `true` if animations were started\n\t **/\n update(target, values) {\n if (this._properties.size === 0) {\n // Nothing is animated, just apply the new values.\n Object.assign(target, values);\n return;\n }\n\n const animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\n\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n // @ts-ignore\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n // Going from shared options to distinct one:\n // Create new options object containing the old shared values and start updating that.\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n","import Animations from './core.animations.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isFinite, isObject, valueOrDefault, resolveObjectKey, defined} from '../helpers/helpers.core.js';\nimport {listenArrayEvents, unlistenArrayEvents} from '../helpers/helpers.collection.js';\nimport {createContext, sign} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('./core.scale.js').default } Scale\n */\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n let t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\n\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n let found = false;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n\n if (!found && !options.all) {\n return 0;\n }\n\n return value;\n}\n\nfunction convertObjectDataToArray(data, meta) {\n const {iScale, vScale} = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\n\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {}); // map structure is {stackKey: {datasetIndex: value}}\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\n\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n // Not using meta.index here, because it might be already updated if the dataset changed location\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\n\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\n\nexport default class DatasetController {\n\n /**\n * @type {any}\n */\n static defaults = {};\n\n /**\n * Element type used to generate a meta dataset (e.g. Chart.element.LineElement).\n */\n static datasetElementType = null;\n\n /**\n * Element type used to generate a meta data (e.g. Chart.element.PointElement).\n */\n static dataElementType = null;\n\n /**\n\t * @param {Chart} chart\n\t * @param {number} datasetIndex\n\t */\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n /** @type {boolean | object} */\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n\n this.initialize();\n }\n\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n\n /**\n\t * @param {string} scaleID\n\t * @return {Scale}\n\t */\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n\n /**\n\t * @private\n\t */\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n\n reset() {\n this._update('reset');\n }\n\n /**\n\t * @private\n\t */\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n\n /**\n\t * @private\n\t */\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n\n // In order to correctly handle data addition/deletion animation (and thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal metadata accordingly.\n\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(_data, this);\n // Discard old parsed data and stacks\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n\n addElements() {\n const meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n\n this._dataCheck();\n\n // make sure cached _stacked status is current\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n // detect change in stack option\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n // remove values from old stack\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n this._resyncElements(resetNewElements);\n\n // if stack changed, update stack values for the whole dataset\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n\n /**\n\t * Merges user-supplied and default dataset-level options\n\t * @private\n\t */\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n\n /**\n\t * @param {number} start\n\t * @param {number} count\n\t */\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n\n /**\n\t * Parse array of primitive values\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [1,3,4]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {xScale0: 0, yScale0: 1}\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [[1,2],[3,4]]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {x: 0, y: 1}\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [{x:1, y:5}, {x:2, y:10}]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id. _custom is optional\n\t * Example: {xScale0: 0, yScale0: 1, _custom: {r: 10, foo: 'bar'}}\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n\n /**\n\t * @protected\n\t */\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n\n /**\n\t * @protected\n\t */\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n\n /**\n\t * @protected\n\t */\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n // if the data is sorted, we don't need to check further from this end of array\n break;\n }\n }\n if (sorted) {\n // in the sorted case, find first non-skipped value from other end of array\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return false;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n\n /**\n\t * @private\n\t */\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {} // eslint-disable-line no-unused-vars\n\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n\n /**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @param {boolean} [active] - true if hover\n\t * @return {object} style object\n\t */\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n\n /**\n\t * @protected\n\t */\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n\n /**\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n\n /**\n\t * @private\n\t */\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n // context is provided as a function, and is called only if needed,\n // so we don't create a context for each element if not needed.\n const context = () => this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n // `$shared` indicates this set of options can be shared between multiple elements.\n // Sharing is used to reduce number of properties to change during animation.\n values.$shared = sharing;\n\n // We cache options by `mode`, which can be 'active' for example. This enables us\n // to have the 'active' element options and 'default' options to switch between\n // when interacting.\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n\n\n /**\n\t * @private\n\t */\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n\n /**\n\t * Utility for getting the options object shared between elements\n\t * @protected\n\t */\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n\n /**\n\t * Utility for determining if `options` should be included in the updated properties\n\t * @protected\n\t */\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n\n /**\n * @todo v4, rename to getSharedOptions and remove excess functions\n */\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n\n /**\n\t * Utility for updating an element with new properties, using animations when appropriate.\n\t * @protected\n\t */\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n\n /**\n\t * Utility to animate the shared options, that are potentially affecting multiple elements.\n\t * @protected\n\t */\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n\n /**\n\t * @private\n\t */\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n // When going from active to inactive, we need to update to the shared options.\n // This way the once hovered element will end up with the same original shared options instance, after animation.\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n\n /**\n\t * @private\n\t */\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n\n /**\n\t * @private\n\t */\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n\n /**\n\t * @private\n\t */\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n\n // Apply changes detected through array listeners\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n\n if (count) {\n // TODO: It is not optimal to always parse the old data\n // This is done because we are not detecting direct assignments:\n // chart.data.datasets[0].data[5] = 10;\n // chart.data.datasets[0].data[5].y = 10;\n this.parse(0, count);\n }\n\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n\n /**\n\t * @private\n\t */\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n\n updateElements(element, start, count, mode) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @private\n\t */\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n\n /**\n\t * @private\n */\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {\n _arrayUnique, isArray, isNullOrUndef,\n valueOrDefault, resolveObjectKey, sign, defined\n} from '../helpers/index.js';\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n // Ignore truncated pixels\n return;\n }\n if (defined(prev)) {\n // curr - prev === 0 is ignored\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n // When bar thickness is enforced, category and bar percentages are ignored.\n // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n // and deprecate barPercentage since this value is ignored when thickness is absolute.\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n\n if (prev === null) {\n // first data: its size is double based on the next point or,\n // if it's also the last data, we use the scale size.\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n // last data: its size is also double based on the previous point.\n next = curr + curr - prev;\n }\n\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n // Store `barEnd` (furthest away from origin) as parsed value,\n // to make stacking straight forward\n item[vScale.axis] = barEnd;\n\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n\n const {start, end, reverse, top, bottom} = borderProps(properties);\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\n\nexport default class BarController extends DatasetController {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n };\n\n\n /**\n\t * Overriding primitive data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding array data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding object data parsing since we support mixed primitive/array\n\t * value-scale data for float bars\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n // float bar: only one end of the bar is considered by `super`\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n\n initialize() {\n this.enableOptionSharing = true;\n\n super.initialize();\n\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n\n /**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @param {number} [dataIndex] - The data index of the ruler\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n\n const skipNull = (meta) => {\n const parsed = meta._parsed.find(item => item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n\n // stacked | meta.stack\n // | found | not found | undefined\n // false | x | x | x\n // true | | x |\n // undefined | | x | x\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n\n // No stacks? that means there is no visible data. Let's still initialize an `undefined`\n // stack where possible invisible bars will be located.\n // https://github.com/chartjs/Chart.js/issues/6368\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n\n /**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n\n /**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n * @param {number} [dataIndex]\n\t * @returns {number} The stack index\n\t * @private\n\t */\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1; // indexOf returns -1 if element is not present\n\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n\n /**\n\t * @private\n\t */\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n // bar thickness ratio used for non-grouped bars\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n\n /**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked, index: datasetIndex}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n // bars crossing origin are not stacked\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n // When not visible, no height\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n\n if (_stacked && !floating) {\n // visual data coordinates after applying minBarLength\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n\n /**\n\t * @private\n\t */\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n // For non-grouped bar charts, exact pixel values are used\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {valueOrDefault} from '../helpers/helpers.core.js';\n\nexport default class BubbleController extends DatasetController {\n\n static id = 'bubble';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n\n /**\n\t * Parse array of primitive values\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n\n update(mode) {\n const points = this._cachedMeta.data;\n\n // Update Points\n this.updateElements(points, 0, points.length, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n this.updateElement(point, i, properties, mode);\n }\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n\n // In case values were cached (and thus frozen), we need to clone the values\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n\n // Custom radius resolution\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n\n return values;\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isObject, resolveObjectKey, toPercentage, toDimension, valueOrDefault} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {toRadians, PI, TAU, HALF_PI, _angleBetween} from '../helpers/helpers.math.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n // If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\n\nexport default class DoughnutController extends DatasetController {\n\n static id = 'doughnut';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n // Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n // Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n // The percentage of the chart that we cut out of the middle.\n cutout: '50%',\n\n // The rotation of the chart, where the first data arc begins.\n rotation: 0,\n\n // The total circumference of the chart.\n circumference: 360,\n\n // The outer radius of the chart\n radius: '100%',\n\n // Spacing between arcs\n spacing: 0,\n\n indexAxis: 'r',\n };\n\n static descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash'),\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n // Need to override these to give a nice default\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle, color}} = chart.legend.options;\n\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n\n linkScales() {}\n\n /**\n\t * Override data parsing, since we are not using scales\n\t */\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n\n /**\n\t * @private\n\t */\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n\n /**\n\t * Get the maximal rotation & circumference extents\n\t * across all visible datasets.\n\t */\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n\n // Compute the maximal rotation & circumference limits.\n // If we only consider our dataset, this can cause problems when two datasets\n // are both less than a circle with different rotations (starting angles)\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n\n meta.total = this.calculateTotal();\n\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n\n /**\n * @private\n */\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n\n this.updateElement(arc, i, properties, mode);\n }\n }\n\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n\n return {\n label: labels[index] || '',\n value,\n };\n }\n\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n\n if (!arcs) {\n // Find the outmost visible dataset\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n\n getMaxOffset(arcs) {\n let max = 0;\n\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n\n /**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n\n /**\n\t * @private\n\t */\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n\n /**\n\t * Returns the sum of all visible data set weights.\n\t * @private\n\t */\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class LineController extends DatasetController {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n\n showLine: true,\n spanGaps: false,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = 0; i < pointsCount; ++i) {\n const point = points[i];\n const properties = directUpdate ? point : {};\n\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {toRadians, PI, formatNumber, _parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class PolarAreaController extends DatasetController {\n\n static id = 'polarArea';\n\n /**\n * @type {any}\n */\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle, color}} = chart.legend.options;\n\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n\n return {\n label: labels[index] || '',\n value,\n };\n }\n\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n\n update(mode) {\n const arcs = this._cachedMeta.data;\n\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n\n /**\n * @protected\n */\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n\n return range;\n }\n\n /**\n\t * @private\n\t */\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n\n const defaultAngle = 360 / this.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n\n this.updateElement(arc, i, properties, mode);\n }\n }\n\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n\n return count;\n }\n\n /**\n\t * @private\n\t */\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\n","import DoughnutController from './controller.doughnut.js';\n\n// Pie charts are Doughnut chart with different defaults\nexport default class PieController extends DoughnutController {\n\n static id = 'pie';\n\n /**\n * @type {any}\n */\n static defaults = {\n // The percentage of the chart that we cut out of the middle.\n cutout: 0,\n\n // The rotation of the chart, where the first data arc begins.\n rotation: 0,\n\n // The total circumference of the chart.\n circumference: 360,\n\n // The outer radius of the chart\n radius: '100%'\n };\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {_parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class RadarController extends DatasetController {\n\n static id = 'radar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n };\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n\n // Update Line\n line.points = points;\n // In resize mode only point locations change, so no need to set the points or options.\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n\n this.updateElement(line, undefined, properties, mode);\n }\n\n // Update Points\n this.updateElements(points, 0, points.length, mode);\n }\n\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class ScatterController extends DatasetController {\n\n static id = 'scatter';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n\n interaction: {\n mode: 'point'\n },\n\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n if (this.options.showLine) {\n\n // https://github.com/chartjs/Chart.js/issues/11333\n if (!this.datasetElementType) {\n this.addElements();\n }\n const {dataset: line, _dataset} = meta;\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n // https://github.com/chartjs/Chart.js/issues/11333\n delete meta.dataset;\n this.datasetElementType = false;\n }\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n addElements() {\n const {showLine} = this.options;\n\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n\n super.addElements();\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n\n if (!data.length) {\n return border;\n }\n\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n","/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartOptions} from '../types/index.js';\n\nexport type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\n\nexport interface DateAdapter {\n readonly options: T;\n /**\n * Will called with chart options after adapter creation.\n */\n init(this: DateAdapter, chartOptions: ChartOptions): void;\n /**\n * Returns a map of time formats for the supported formatting units defined\n * in Unit as well as 'datetime' representing a detailed date/time string.\n */\n formats(this: DateAdapter): Record;\n /**\n * Parses the given `value` and return the associated timestamp.\n * @param value - the value to parse (usually comes from the data)\n * @param [format] - the expected data format\n */\n parse(this: DateAdapter, value: unknown, format?: TimeUnit): number | null;\n /**\n * Returns the formatted date in the specified `format` for a given `timestamp`.\n * @param timestamp - the timestamp to format\n * @param format - the date/time token\n */\n format(this: DateAdapter, timestamp: number, format: TimeUnit): string;\n /**\n * Adds the specified `amount` of `unit` to the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param amount - the amount to add\n * @param unit - the unit as string\n */\n add(this: DateAdapter, timestamp: number, amount: number, unit: TimeUnit): number;\n /**\n * Returns the number of `unit` between the given timestamps.\n * @param a - the input timestamp (reference)\n * @param b - the timestamp to subtract\n * @param unit - the unit as string\n */\n diff(this: DateAdapter, a: number, b: number, unit: TimeUnit): number;\n /**\n * Returns start of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n * @param [weekday] - the ISO day of the week with 1 being Monday\n * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n */\n startOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek', weekday?: number): number;\n /**\n * Returns end of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n */\n endOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek'): number;\n}\n\nfunction abstract(): T {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase implements DateAdapter {\n\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */\n static override(\n members: Partial, 'options'>>\n ) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n\n readonly options: AnyObject;\n\n constructor(options: AnyObject) {\n this.options = options || {};\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n\n formats(): Record {\n return abstract();\n }\n\n parse(): number | null {\n return abstract();\n }\n\n format(): string {\n return abstract();\n }\n\n add(): number {\n return abstract();\n }\n\n diff(): number {\n return abstract();\n }\n\n startOf(): number {\n return abstract();\n }\n\n endOf(): number {\n return abstract();\n }\n}\n\nexport default {\n _date: DateAdapterBase\n};\n","import {_lookupByKey, _rlookupByKey} from '../helpers/helpers.collection.js';\nimport {getRelativePosition} from '../helpers/helpers.dom.js';\nimport {_angleBetween, getAngleFromPoint} from '../helpers/helpers.math.js';\nimport {_isPointInArea} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef {{axis?: string, intersect?: boolean, includeInvisible?: boolean}} InteractionOptions\n * @typedef {{datasetIndex: number, index: number, element: import('./core.element.js').default}} InteractionItem\n * @typedef { import('../types/index.js').Point } Point\n */\n\n/**\n * Helper function to do binary search when possible\n * @param {object} metaset - the dataset meta\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {number} value - the value to find\n * @param {boolean} [intersect] - should the element intersect\n * @returns {{lo:number, hi:number}} indices to search data array between\n */\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n // _sharedOptions indicates that each element has equal options -> equal proportions\n // So we can do a ranged binary search based on the range of first element and\n // be confident to get the full range of indices that can intersect with the value.\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n // Default to all elements, when binary search can not be used.\n return {lo: 0, hi: data.length - 1};\n}\n\n/**\n * Helper function to select candidate elements for interaction\n * @param {Chart} chart - the chart\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {function} handler - the callback to execute for each visible item\n * @param {boolean} [intersect] - consider intersecting items\n */\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy|r\n */\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {Chart} chart - the chart\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a radial chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a cartesian chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in the chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n\n/**\n * Helper function to get the items matching along the given X or Y axis\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis to match\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nexport default {\n // Part of the public API to facilitate developers creating their own modes\n evaluateInteractionItems,\n\n // Helper function for different modes\n modes: {\n /**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n // Default axis for index mode is 'x' to match old behaviour\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n\n // don't count items that are skipped (null data)\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n\n return elements;\n },\n\n /**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n\n return items;\n },\n\n /**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n\n /**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n","import {defined, each, isObject} from '../helpers/helpers.core.js';\nimport {toPadding} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n */\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n\n/**\n * store dimensions used instead of available chartArea in fitBoxes\n **/\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n\n // dynamically placed boxes size is not considered\n if (!isObject(pos)) {\n if (layout.size) {\n // this layout was already counted for, lets first reduce old size\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n\n // return booleans on the changes per direction\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\n\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n\n // Dimensions changed and there were non full width boxes before this\n // -> we have to refit those\n refit |= same && refitBoxes.length;\n\n // Chart area changed in the opposite direction\n changed = changed || other;\n\n if (!box.fullSize) { // fullSize boxes don't need to be re-fitted in any case\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\n/**\n * @interface LayoutItem\n * @typedef {object} LayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullSize - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} draw - Draws the element\n * @prop {function} [getPadding] - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nexport default {\n\n /**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {LayoutItem} item - the item to add to be laid out\n\t */\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n // initialize item with default values\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n // @ts-ignore\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n\n /**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {LayoutItem} layoutItem - the item to remove from the layout\n\t */\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {LayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n\n /**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n * @param {number} minPadding - minimum padding required for each side of chart area\n\t */\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n\n // Before any changes are made, notify boxes that an update is about to being\n // This is used to clear any cached data (e.g. scale limits)\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n\n // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n // First fit the fullSize boxes, to reduce probability of re-fitting.\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n\n // Then fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n // Then fit horizontal boxes\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n // if the area changed, re-fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n\n handleMaxPadding(chartArea);\n\n // Finally place the boxes to correct coordinates\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n\n // Move to opposite side of chart\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n\n // Finally update boxes in chartArea (radial scale for example)\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n","\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\n/**\n * Abstract class that allows abstracting platform dependencies away from the chart.\n */\nexport default class BasePlatform {\n /**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific)\n\t * @param {number} [aspectRatio] - The chart options\n\t */\n acquireContext(canvas, aspectRatio) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n releaseContext(context) { // eslint-disable-line no-unused-vars\n return false;\n }\n\n /**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link ChartEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link ChartEvent} interface) when an event of the specified type occurs.\n\t */\n addEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link ChartEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n removeEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @returns {number} the current devicePixelRatio of the device this platform is connected to.\n\t */\n getDevicePixelRatio() {\n return 1;\n }\n\n /**\n\t * Returns the maximum size in pixels of given canvas element.\n\t * @param {HTMLCanvasElement} element\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @returns {boolean} true if the canvas is attached to the platform, false if not.\n\t */\n isAttached(canvas) { // eslint-disable-line no-unused-vars\n return true;\n }\n\n /**\n * Updates config with platform specific requirements\n * @param {import('../core/core.config.js').default} config\n */\n updateConfig(config) { // eslint-disable-line no-unused-vars\n // no-op\n }\n}\n","/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nimport BasePlatform from './platform.base.js';\n\n/**\n * Platform class for charts without access to the DOM or to many element properties\n * This platform is used by default for any chart passed an OffscreenCanvas.\n * @extends BasePlatform\n */\nexport default class BasicPlatform extends BasePlatform {\n acquireContext(item) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n","/**\n * Chart.Platform implementation for targeting a web browser\n */\n\nimport BasePlatform from './platform.base.js';\nimport {_getParentNode, getRelativePosition, supportsEventListenerOptions, readUsedSize, getMaximumSize} from '../helpers/helpers.dom.js';\nimport {throttled} from '../helpers/helpers.extras.js';\nimport {isNullOrUndef} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nconst EXPANDO_KEY = '$chartjs';\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nconst isNullOrEmpty = value => value === null || value === '';\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n * @param {HTMLCanvasElement} canvas\n * @param {number} [aspectRatio]\n */\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n\n // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n\n // Chart.js modifies some canvas values that we want to restore on destroy\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n\n // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n style.display = style.display || 'block';\n // Include possible borders in the size\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\n\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\n\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\n\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\n\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n // If the container size shrank during chart resize, let's assume\n // scrollbar appeared. So we resize again with the scrollbar visible -\n // effectively making chart smaller and the scrollbar hidden again.\n // Because we are inside `throttled`, and currently `ticking`, scroll\n // events are ignored during this whole 2 resize process.\n // If we assumed wrong and something else happened, we are resizing\n // twice in a frame (potential performance issue)\n listener();\n }\n }, window);\n\n // @ts-ignore until https://github.com/microsoft/TypeScript/issues/37861 implemented\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n // When its container's display is set to 'none' the callback will be called with a\n // size of (0, 0), which will cause the chart to lose its original height, so skip\n // resizing in such case.\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n // This case can occur if the chart is destroyed while waiting\n // for the throttled function to occur. We prevent crashes by checking\n // for a destroyed chart\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n\n addListener(canvas, type, proxy);\n\n return proxy;\n}\n\n/**\n * Platform class for charts that can access the DOM and global window/document properties\n * @extends BasePlatform\n */\nexport default class DomPlatform extends BasePlatform {\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [aspectRatio]\n\t * @return {CanvasRenderingContext2D|null}\n\t */\n acquireContext(canvas, aspectRatio) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n\n // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the canvas is\n // inside an iframe or when running in a protected environment. We could guess the\n // types from their toString() value but let's keep things flexible and assume it's\n // a sufficient condition if the canvas has a context2D which has canvas as `canvas`.\n // https://github.com/chartjs/Chart.js/issues/3887\n // https://github.com/chartjs/Chart.js/issues/4102\n // https://github.com/chartjs/Chart.js/issues/4152\n if (context && context.canvas === canvas) {\n // Load platform resources on first chart creation, to make it possible to\n // import the library before setting platform options.\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n\n /**\n\t * @param {CanvasRenderingContext2D} context\n\t */\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n\n // The canvas render size might have been changed (and thus the state stack discarded),\n // we can't use save() and restore() to restore the initial state. So make sure that at\n // least the canvas context is reset to the default state by setting the canvas width.\n // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n // eslint-disable-next-line no-self-assign\n canvas.width = canvas.width;\n\n delete canvas[EXPANDO_KEY];\n return true;\n }\n\n /**\n\t *\n\t * @param {Chart} chart\n\t * @param {string} type\n\t * @param {function} listener\n\t */\n addEventListener(chart, type, listener) {\n // Can have only one listener per type, so make sure previous is removed\n this.removeEventListener(chart, type);\n\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} type\n\t */\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t */\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n","import {_isDomSupported} from '../helpers/index.js';\nimport BasePlatform from './platform.base.js';\nimport BasicPlatform from './platform.basic.js';\nimport DomPlatform from './platform.dom.js';\n\nexport function _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nexport {BasePlatform, BasicPlatform, DomPlatform};\n","import type {AnyObject} from '../types/basic.js';\nimport type {Point} from '../types/geometric.js';\nimport type {Animation} from '../types/animation.js';\nimport {isNumber} from '../helpers/helpers.math.js';\n\nexport default class Element {\n\n static defaults = {};\n static defaultRoutes = undefined;\n\n x: number;\n y: number;\n active = false;\n options: O;\n $animations: Record;\n\n tooltipPosition(useFinalPosition: boolean): Point {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y} as Point;\n }\n\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n\n /**\n * Gets the current or final value of each prop. Can return extra properties (whole object).\n * @param props - properties to get\n * @param [final] - get the final value (animation target)\n */\n getProps

(props: P, final?: boolean): Pick;\n getProps

(props: P[], final?: boolean): Partial>;\n getProps(props: string[], final?: boolean): Partial> {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this as Record;\n }\n const ret: Record = {};\n props.forEach((prop) => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop as string];\n });\n return ret;\n }\n}\n","import {isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\nimport {_factorize} from '../helpers/helpers.math.js';\n\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @param {import('./core.scale.js').default} scale\n * @param {Tick[]} ticks\n * @return {Tick[]}\n * @private\n */\nexport function autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n\n // If there are too many major ticks to display them all\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\n/**\n * @param {number[]} majorIndices\n * @param {Tick[]} ticks\n * @param {number} ticksLimit\n */\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n\n // If the major ticks are evenly spaced apart, place the minor ticks\n // so that they divide the major ticks into even chunks\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n\n/**\n * @param {Tick[]} ticks\n */\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number[]} majorIndices\n * @param {number} spacing\n */\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number} spacing\n * @param {number} [majorStart]\n * @param {number} [majorEnd]\n */\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\n\n/**\n * @param {number[]} arr\n */\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n","import Element from './core.element.js';\nimport {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../helpers/helpers.canvas.js';\nimport {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toDegrees, toRadians, _int16Range, _limitValue, HALF_PI} from '../helpers/helpers.math.js';\nimport {_alignStartEnd, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {createContext, toFont, toPadding, _addGrace} from '../helpers/helpers.options.js';\nimport {autoSkip} from './core.scale.autoskip.js';\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit) => Math.min(maxTicksLimit || ticksLength, ticksLength);\n\n/**\n * @typedef { import('../types/index.js').Chart } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a new array containing numItems from arr\n * @param {any[]} arr\n * @param {number} numItems\n */\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @param {boolean} offsetGridLines\n */\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n\n // Return undefined if the pixel is out of the range\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n\n/**\n * @param {object} caches\n * @param {number} length\n */\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n\n/**\n * @param {object} options\n */\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\n/**\n * @param {object} options\n */\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n\n return (lines * font.lineHeight) + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n /** @type {CanvasTextAlign} */\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\n\nexport default class Scale extends Element {\n\n // eslint-disable-next-line max-statements\n constructor(cfg) {\n super();\n\n /** @type {string} */\n this.id = cfg.id;\n /** @type {string} */\n this.type = cfg.type;\n /** @type {any} */\n this.options = undefined;\n /** @type {CanvasRenderingContext2D} */\n this.ctx = cfg.ctx;\n /** @type {Chart} */\n this.chart = cfg.chart;\n\n // implements box\n /** @type {number} */\n this.top = undefined;\n /** @type {number} */\n this.bottom = undefined;\n /** @type {number} */\n this.left = undefined;\n /** @type {number} */\n this.right = undefined;\n /** @type {number} */\n this.width = undefined;\n /** @type {number} */\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n /** @type {number} */\n this.maxWidth = undefined;\n /** @type {number} */\n this.maxHeight = undefined;\n /** @type {number} */\n this.paddingTop = undefined;\n /** @type {number} */\n this.paddingBottom = undefined;\n /** @type {number} */\n this.paddingLeft = undefined;\n /** @type {number} */\n this.paddingRight = undefined;\n\n // scale-specific properties\n /** @type {string=} */\n this.axis = undefined;\n /** @type {number=} */\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n /** @type {Tick[]} */\n this.ticks = [];\n /** @type {object[]|null} */\n this._gridLineItems = null;\n /** @type {object[]|null} */\n this._labelItems = null;\n /** @type {object|null} */\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n /** @type {number} */\n this._startPixel = undefined;\n /** @type {number} */\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n\n /**\n\t * @param {any} options\n\t * @since 3.0\n\t */\n init(options) {\n this.options = options.setContext(this.getContext());\n\n this.axis = options.axis;\n\n // parse min/max value, so we can properly determine min/max for other scales\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n\n /**\n\t * Parse a supported input value to internal representation.\n\t * @param {*} raw\n\t * @param {number} [index]\n\t * @since 3.0\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n return raw;\n }\n\n /**\n\t * @return {{min: number, max: number, minDefined: boolean, maxDefined: boolean}}\n\t * @protected\n\t * @since 3.0\n\t */\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isFinite(_userMin),\n maxDefined: isFinite(_userMax)\n };\n }\n\n /**\n\t * @param {boolean} canStack\n\t * @return {{min: number, max: number}}\n\t * @protected\n\t * @since 3.0\n\t */\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n\n if (minDefined && maxDefined) {\n return {min, max};\n }\n\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n // Make sure min <= max when only min or max is defined by user and the data is outside that range\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n\n /**\n\t * Get the padding needed for the scale\n\t * @return {{top: number, left: number, bottom: number, right: number}} the necessary padding\n\t * @private\n\t */\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n\n /**\n\t * Returns the scale tick objects\n\t * @return {Tick[]}\n\t * @since 2.7\n\t */\n getTicks() {\n return this.ticks;\n }\n\n /**\n\t * @return {string[]}\n\t */\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n\n /**\n * @return {import('../types.js').LabelItem[]}\n */\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n\n // When a new layout is created, reset the data limits cache\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n\n // These methods are ordered by lifecycle. Utilities then follow.\n // Any function defined here is inherited by all scale types.\n // Any function can be extended by the scale type\n\n beforeUpdate() {\n call(this.options.beforeUpdate, [this]);\n }\n\n /**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {{top: number, left: number, bottom: number, right: number}} margins - the space between the edge of the other scales and edge of the chart\n\t * This space comes from two sources:\n\t * - padding - space that's required to show the labels at the edges of the scale\n\t * - thickness of scales or legends in another orientation\n\t */\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n this.beforeUpdate();\n\n // Absorb the master measurements\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n\n // Dimensions\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n\n // Data min/max\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n\n this.beforeBuildTicks();\n\n this.ticks = this.buildTicks() || [];\n\n // Allow modification of ticks in callback.\n this.afterBuildTicks();\n\n // Compute tick rotation and fit using a sampled subset of labels\n // We generally don't need to compute the size of every single label for determining scale size\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n // configure is called twice, once here, once from core.controller.updateLayout.\n // Here we haven't been positioned yet, but dimensions are correct.\n // Variables set in configure are needed for calculateLabelRotation, and\n // it's ok that coordinates are not correct there, only dimensions matter.\n this.configure();\n\n // Tick Rotation\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation(); // Preconditions: number of ticks and sizes of largest labels must be calculated beforehand\n this.afterCalculateLabelRotation();\n\n // Auto-skip\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n\n if (samplingEnabled) {\n // Generate labels using all non-skipped ticks\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit(); // Preconditions: label rotation and label sizes must be calculated beforehand\n this.afterFit();\n\n // IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n this.afterUpdate();\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n // by default vertical scales are from bottom to top, so pixels are reversed\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n\n afterUpdate() {\n call(this.options.afterUpdate, [this]);\n }\n\n //\n\n beforeSetDimensions() {\n call(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n if (this.isHorizontal()) {\n // Reset position before calculating rotation\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n\n // Reset position before calculating rotation\n this.top = 0;\n this.bottom = this.height;\n }\n\n // Reset padding\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n call(this.options.afterSetDimensions, [this]);\n }\n\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n call(this.options[name], [this]);\n }\n\n // Data limits\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n\n //\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n /**\n\t * @return {object[]} the ticks\n\t */\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n\n beforeTickToLabelConversion() {\n call(this.options.beforeTickToLabelConversion, [this]);\n }\n /**\n\t * Convert ticks to label strings\n\t * @param {Tick[]} ticks\n\t */\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = call(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n call(this.options.afterTickToLabelConversion, [this]);\n }\n\n //\n\n beforeCalculateLabelRotation() {\n call(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n\n // Estimate the width of each grid based on the canvas width, the maximum\n // label width and the number of tick intervals\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n // Allow 3 pixels x2 padding either side for label readability\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n call(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n\n //\n\n beforeFit() {\n call(this.options.beforeFit, [this]);\n }\n fit() {\n // Reset\n const minSize = {\n width: 0,\n height: 0\n };\n\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight; // fill all the height\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n // Don't bother fitting the ticks if we are not showing the labels\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n // A horizontal axis is more constrained by the height.\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n // A vertical axis is more constrained by the width. Labels are the\n // dominant factor here, so get that length first and account for padding\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n\n // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n // which means that the right padding is dominated by the font height\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n // Adjust padding taking into account changes in offsets\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n\n /**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n\n afterFit() {\n call(this.options.afterFit, [this]);\n }\n\n // Shared Methods\n /**\n\t * @return {boolean}\n\t */\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n /**\n\t * @return {boolean}\n\t */\n isFullSize() {\n return this.options.fullSize;\n }\n\n /**\n\t * @param {Tick[]} ticks\n\t * @private\n\t */\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n\n this.generateTickLabels(ticks);\n\n // Ticks should be skipped when callback returns null or undef, so lets remove those.\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n this.afterTickToLabelConversion();\n }\n\n /**\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n\n return labelSizes;\n }\n\n /**\n\t * Returns {width, height, offset} objects for the first, last, widest, highest tick\n\t * labels where offset indicates the anchor point offset from the top in pixels.\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; i += increment) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n // if it is an array let's measure each element\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = /** @type {string} */ (label[j]);\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n\n /**\n\t * Used to get the label to display in the tooltip for the given value\n\t * @param {*} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value;\n }\n\n /**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {*} value\n\t * @param {number} [index]\n\t * @return {number}\n\t */\n getPixelForValue(value, index) { // eslint-disable-line no-unused-vars\n return NaN;\n }\n\n /**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} pixel\n\t * @return {*}\n\t */\n getValueForPixel(pixel) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} index\n\t * @return {number}\n\t */\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n /**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} decimal\n\t * @return {number}\n\t */\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n\n /**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @return {number}\n\t */\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n\n /**\n\t * @return {number}\n\t */\n getBaseValue() {\n const {min, max} = this;\n\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n\n /**\n\t * @protected\n\t */\n getContext(index) {\n const ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n\n /**\n\t * @return {number}\n\t * @private\n\t */\n _tickSize() {\n const optionTicks = this.options.ticks;\n\n // Calculate space needed by label in axis direction.\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n // Calculate space needed for 1 tick in axis direction.\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n\n /**\n\t * @return {boolean}\n\t * @private\n\t */\n _isVisible() {\n const display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n\n /**\n\t * @private\n\t */\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position, border} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n\n lineValue = getPixelForGridLine(this, i, offset);\n\n // Skip if the pixel is out of the range\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n\n return items;\n }\n\n /**\n\t * @private\n\t */\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n\n if (isHorizontal) {\n x = pixel;\n\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += (lineHeight / 2) * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n let backdrop;\n\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n default:\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n default:\n break;\n }\n\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n\n color: optsAtIndex.backdropColor,\n };\n }\n\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n }\n });\n }\n\n return items;\n }\n\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n let align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n\n return align;\n }\n\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n\n let textAlign;\n let x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {textAlign, x};\n }\n\n /**\n\t * @private\n\t */\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n const chart = this.chart;\n const position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n\n /**\n * @protected\n */\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {\n const {chart, ctx, options: {border, grid}} = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n const ctx = this.ctx;\n\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n\n const items = this.getLabelItems(chartArea);\n for (const item of items) {\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n\n if (!title.display) {\n return;\n }\n\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n\n /**\n\t * @return {object[]}\n\t * @private\n\t */\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n // backward compatibility: draw has been overridden by custom scale\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: bz,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n\n /**\n\t * Returns visible dataset metas that are attached to this scale\n\t * @param {string} [type] - if specified, also filter by dataset type\n\t * @return {object[]}\n\t */\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n\n /**\n\t * @param {number} index\n\t * @return {object}\n\t * @protected\n \t */\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n\n /**\n * @protected\n */\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n","import {merge} from '../helpers/index.js';\nimport defaults, {overrides} from './core.defaults.js';\n\n/**\n * @typedef {{id: string, defaults: any, overrides?: any, defaultRoutes: any}} IChartComponent\n */\n\nexport default class TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n\n /**\n\t * @param {IChartComponent} item\n\t * @returns {string} The scope where items defaults were registered to.\n\t */\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n\n if (isIChartComponent(proto)) {\n // Make sure the parent is registered and note the scope where its defaults are.\n parentScope = this.register(proto);\n }\n\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n // already registered\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object?}\n\t */\n get(id) {\n return this.items[id];\n }\n\n /**\n\t * @param {IChartComponent} item\n\t */\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\n\nfunction registerDefaults(item, scope, parentScope) {\n // Inherit the parent's defaults and keep existing defaults\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n","import DatasetController from './core.datasetController.js';\nimport Element from './core.element.js';\nimport Scale from './core.scale.js';\nimport TypedRegistry from './core.typedRegistry.js';\nimport {each, callback as call, _capitalize} from '../helpers/helpers.core.js';\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n // Order is important, Scale has Element in prototype chain,\n // so Scales must be before Elements. Plugins are a fallback, so not listed here.\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n /**\n\t * @param {...any} args\n\t */\n add(...args) {\n this._each('register', args);\n }\n\n remove(...args) {\n this._each('unregister', args);\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof DatasetController}\n\t */\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Element}\n\t */\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object}\n\t */\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Scale}\n\t */\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n\n /**\n\t * @private\n\t */\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n // Handle loopable args\n // Use case:\n // import * as plugins from './plugins.js';\n // Chart.register(plugins);\n each(arg, item => {\n // If there are mixed types in the loopable, make sure those are\n // registered in correct registry\n // Use case: (treemap exporting controller, elements etc)\n // import * as treemap from 'chartjs-chart-treemap.js';\n // Chart.register(treemap);\n\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n call(component['before' + camelMethod], [], component); // beforeRegister / beforeUnregister\n registry[method](component);\n call(component['after' + camelMethod], [], component); // afterRegister / afterUnregister\n }\n\n /**\n\t * @private\n\t */\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n // plugins is the fallback registry\n return this.plugins;\n }\n\n /**\n\t * @private\n\t */\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Registry();\n","import registry from './core.registry.js';\nimport {callback as callCallback, isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../plugins/plugin.tooltip.js').default } Tooltip\n */\n\n/**\n * @callback filterCallback\n * @param {{plugin: object, options: object}} value\n * @param {number} [index]\n * @param {array} [array]\n * @param {object} [thisArg]\n * @return {boolean}\n */\n\n\nexport default class PluginService {\n constructor() {\n this._init = [];\n }\n\n /**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {object} [args] - Extra arguments to apply to the hook call.\n * @param {filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n\n /**\n\t * @private\n\t */\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callCallback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n\n return true;\n }\n\n invalidate() {\n // When plugins are registered, there is the possibility of a double\n // invalidate situation. In this case, we only want to invalidate once.\n // If we invalidate multiple times, the `_oldCache` is lost and all of the\n // plugins are restarted without being correctly stopped.\n // See https://github.com/chartjs/Chart.js/issues/8147\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n const descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n // options === false => all plugins are disabled\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n\n/**\n * @param {import('./core.config.js').default} config\n */\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n\n return {plugins, localIds};\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\n\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n // make sure plugin defaults are in scopes for local (not registered) plugins\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n // These are just defaults that plugins can override\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n","import defaults, {overrides, descriptors} from './core.defaults.js';\nimport {mergeIf, resolveObjectKey, isArray, isFunction, valueOrDefault, isObject} from '../helpers/helpers.core.js';\nimport {_attachContext, _createResolver, _descriptors} from '../helpers/helpers.config.js';\n\nexport function getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nexport function determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions) {\n const axis = opts.axis\n || axisFromPosition(opts.position)\n || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\n\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {axis};\n }\n}\n\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d) => d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\n\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n\n // First figure out first scale id's per axis.\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n\n // Then merge dataset defaults to scale configs\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n\n // apply scale defaults, if not overridden by dataset defaults\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n\n return scales;\n}\n\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n\n initOptions(config);\n\n return config;\n}\n\nconst keyCache = new Map();\nconst keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\n\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nexport default class Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n get platform() {\n return this._config.platform;\n }\n\n get type() {\n return this._config.type;\n }\n\n set type(type) {\n this._config.type = type;\n }\n\n get data() {\n return this._config.data;\n }\n\n set data(data) {\n this._config.data = initData(data);\n }\n\n get options() {\n return this._config.options;\n }\n\n set options(options) {\n this._config.options = options;\n }\n\n get plugins() {\n return this._config.plugins;\n }\n\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n\n /**\n * Returns the option scope keys for resolving dataset options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @return {string[][]}\n */\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the option scope keys for resolving dataset animation options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @param {string} transition\n * @return {string[][]}\n */\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n // The following are used for looking up the `animations` and `animation` keys\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n\n /**\n * Returns the options scope keys for resolving element options that belong\n * to an dataset. These keys do not include the dataset itself, because it\n * is not under options.\n * @param {string} datasetType\n * @param {string} elementType\n * @return {string[][]}\n */\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the options scope keys for resolving plugin options.\n * @param {{id: string, additionalOptionScopes?: string[]}} plugin\n * @return {string[][]}\n */\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n\n /**\n * @private\n */\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n\n /**\n * Resolves the objects from options and defaults for option value resolution.\n * @param {object} mainScope - The main scope object for options\n * @param {string[][]} keyLists - The arrays of keys in resolution order\n * @param {boolean} [resetCache] - reset the cache for this mainScope\n */\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n\n const scopes = new Set();\n\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n\n /**\n * Returns the option scopes for resolving chart options\n * @return {object[]}\n */\n chartOptionScopes() {\n const {options, type} = this;\n\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {}, // https://github.com/chartjs/Chart.js/issues/8531\n {type},\n defaults,\n descriptors\n ];\n }\n\n /**\n * @param {object[]} scopes\n * @param {string[]} names\n * @param {function|object} context\n * @param {string[]} [prefixes]\n * @return {object}\n */\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n // subResolver is passed to scriptable options. It should not resolve to hover options.\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n\n /**\n * @param {object[]} scopes\n * @param {object} [context]\n * @param {string[]} [prefixes]\n * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults]\n */\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\n\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).some((key) => isFunction(value[key]));\n\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n","import animator from './core.animator.js';\nimport defaults, {overrides} from './core.defaults.js';\nimport Interaction from './core.interaction.js';\nimport layouts from './core.layouts.js';\nimport {_detectPlatform} from '../platform/index.js';\nimport PluginService from './core.plugins.js';\nimport registry from './core.registry.js';\nimport Config, {determineAxis, getIndexAxis} from './core.config.js';\nimport {retinaScale, _isDomSupported} from '../helpers/helpers.dom.js';\nimport {each, callback as callCallback, uid, valueOrDefault, _elementsEqual, isNullOrUndef, setsEqual, defined, isFunction, _isClickEvent} from '../helpers/helpers.core.js';\nimport {clearCanvas, clipArea, createContext, unclipArea, _isPointInArea} from '../helpers/index.js';\n// @ts-ignore\nimport {version} from '../../package.json';\nimport {debounce} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').Point } Point\n */\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\n\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n\n chart.notifyPlugins('afterRender');\n callCallback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callCallback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\n/**\n * Chart.js can take a string id of a canvas element, a 2d context, or a canvas element itself.\n * Attempt to unwrap the item passed into the chart constructor so that it is a canvas element (if possible).\n */\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n // Support for array based queries (such as jQuery)\n item = item[0];\n }\n\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n return item;\n}\n\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\n\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n\n/**\n * @param {ChartEvent} e\n * @param {ChartEvent|null} lastEvent\n * @param {boolean} inChartArea\n * @param {boolean} isClick\n * @returns {ChartEvent|null}\n */\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\n\nfunction getDatasetArea(meta, chartArea) {\n const {xScale, yScale} = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\n\nclass Chart {\n\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n\n // eslint-disable-next-line max-statements\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n // Store the previously used aspect ratio to determine if a resize\n // is needed during updates. Do this after _options is set since\n // aspectRatio uses a getter\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n /** @type {?{attach?: function, detach?: function, resize?: function}} */\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n\n // Add the chart instance to the global namespace\n instances[this.id] = this;\n\n if (!context || !canvas) {\n // The given item is not a compatible context2d element, let's return before finalizing\n // the chart initialization but after setting basic chart / controller properties that\n // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n // https://github.com/chartjs/Chart.js/issues/2807\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n // If aspectRatio is defined in options, use that.\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n // If maintainAspectRatio is truthly and we had previously determined _aspectRatio, use that\n return _aspectRatio;\n }\n\n // Calculate\n return height ? width / height : null;\n }\n\n get data() {\n return this.config.data;\n }\n\n set data(data) {\n this.config.data = data;\n }\n\n get options() {\n return this._options;\n }\n\n set options(options) {\n this.config.options = options;\n }\n\n get registry() {\n return registry;\n }\n\n /**\n\t * @private\n\t */\n _initialize() {\n // Before init plugin notification\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n\n // After init plugin notification\n this.notifyPlugins('afterInit');\n\n return this;\n }\n\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n\n stop() {\n animator.stop(this);\n return this;\n }\n\n /**\n\t * Resize the chart to its container or to explicit dimensions.\n\t * @param {number} [width]\n\t * @param {number} [height]\n\t */\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {size: newSize});\n\n callCallback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n // The resize update is delayed, only draw without updating.\n this.render();\n }\n }\n }\n\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n\n /**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n // clear up discarded scales\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n\n /**\n\t * @private\n\t */\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n\n /**\n\t * @private\n\t */\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n\n this._updateMetasets();\n return newControllers;\n }\n\n /**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n\n /**\n\t* Resets the chart back to its state before the initial animation\n\t*/\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n\n update(mode) {\n const config = this.config;\n\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n\n // plugins options references might have change, let's invalidate the cache\n // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n // Make sure dataset controllers are updated and new controllers are reset\n const newControllers = this.buildOrUpdateControllers();\n\n this.notifyPlugins('beforeElementsUpdate');\n\n // Make sure all dataset controllers have correct meta data counts\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n // New controllers will be reset after the layout pass, so we only want to modify\n // elements added to new datasets\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n\n // Only reset the controllers if we have animations\n if (!animsDisabled) {\n // Can only reset the new controllers after the scales have been updated\n // Reset is done to get the starting point for the initial animation\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n // Do this before render so that any plugins that need final scale updates can use it\n this.notifyPlugins('afterUpdate', {mode});\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n // Replay last event from before update, or set hover styles on active elements\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n\n this.render();\n }\n\n /**\n * @private\n */\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n\n /**\n * @private\n */\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n // The configured events have changed. Rebind.\n this.unbindEvents();\n this.bindEvents();\n }\n }\n\n /**\n * @private\n */\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n\n /**\n * @private\n */\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n\n /**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n // Skip drawing and configuring chartArea boxes when chartArea is zero or negative\n return;\n }\n\n // configure is called twice, once in core.scale.update and once here.\n // Here the boxes are fully updated and at their final positions.\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n\n /**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n\n /**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n // Unset pending resize request now to avoid possible recursion within _resize\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n\n // Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n // currently be part of layers. Instead, we draw\n // layers <= 0 before(default, backward compat), and the rest after\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n // Rest of layers\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n\n /**\n\t * @private\n\t */\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n\n /**\n\t * Gets the visible dataset metas in drawing order\n\t * @return {object[]}\n\t */\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n\n /**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n\n /**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta, this.chartArea);\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n\n /**\n * Checks whether the given point is in the chart area.\n * @param {Point} point - in relative coordinates (see, e.g., getRelativePosition)\n * @returns {boolean}\n */\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\t\t\t// See isDatasetVisible() comment\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n\n const meta = this.getDatasetMeta(datasetIndex);\n\n // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n\n /**\n\t * @private\n\t */\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n // Animate visible state, so hide animation can be seen. This could be handled better if update / updateDataset returned a Promise.\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n\n /**\n\t * @private\n\t */\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n\n this._stop();\n this.config.clearCache();\n\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n\n delete instances[this.id];\n\n this.notifyPlugins('afterDestroy');\n }\n\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n\n /**\n\t * @private\n\t */\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n\n /**\n * @private\n */\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n\n each(this.options.events, (type) => _add(type, listener));\n }\n\n /**\n * @private\n */\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n\n let detached; // eslint-disable-line prefer-const\n const attached = () => {\n _remove('attach', attached);\n\n this.attached = true;\n this.resize();\n\n _add('resize', listener);\n _add('detach', detached);\n };\n\n detached = () => {\n this.attached = false;\n\n _remove('resize', listener);\n\n // Stop animating and remove metasets, so when re-attached, the animations start from beginning.\n this._stop();\n this._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n\n /**\n\t * @private\n\t */\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n\n /**\n\t * Get active (hovered) elements\n\t * @returns array\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active (hovered) elements\n\t * @param {array} activeElements New active data points\n\t */\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n // Make sure we don't use the previous mouse event to override the active elements in update.\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n\n /**\n\t * Calls enabled plugins on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Object} [args] - Extra arguments to apply to the hook call.\n * @param {import('./core.plugins.js').filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n\n /**\n * Check if a plugin with the specific ID is registered and enabled\n * @param {string} pluginId - The ID of the plugin of which to check if it is enabled\n * @returns {boolean}\n */\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n }\n\n /**\n\t * @private\n\t */\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n\n /**\n\t * @private\n\t */\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n const changed = this._handleEvent(e, replay, args.inChartArea);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e the event to handle\n\t * @param {boolean} [replay] - true if the event was replayed by `update`\n * @param {boolean} [inChartArea] - true if the event is inside chartArea\n\t * @return {boolean} true if the chart needs to re-render\n\t * @private\n\t */\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n\n // If the event is replayed from `update`, we should evaluate with the final positions.\n //\n // The `replay`:\n // It's the last event (excluding click) that has occurred before `update`.\n // So mouse has not moved. It's also over the chart, because there is a `replay`.\n //\n // The why:\n // If animations are active, the elements haven't moved yet compared to state before update.\n // But if they will, we are activating the elements that would be active, if this check\n // was done after the animations have completed. => \"final positions\".\n // If there is no animations, the \"final\" and \"current\" positions are equal.\n // This is done so we do not have to evaluate the active elements each animation frame\n // - it would be expensive.\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n\n if (inChartArea) {\n // Set _lastEvent to null while we are processing the event handlers.\n // This prevents recursion if the handler calls chart.update()\n this._lastEvent = null;\n\n // Invoke onHover hook\n callCallback(options.onHover, [e, active, this], this);\n\n if (isClick) {\n callCallback(options.onClick, [e, active, this], this);\n }\n }\n\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n\n return changed;\n }\n\n /**\n * @param {ChartEvent} e - The event\n * @param {import('../types/index.js').ActiveElement[]} lastActive - Previously active elements\n * @param {boolean} inChartArea - Is the event inside chartArea\n * @param {boolean} useFinalPosition - Should the evaluation be done with current or final (after animation) element positions\n * @returns {import('../types/index.js').ActiveElement[]} - The active elements\n * @pravate\n */\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n return lastActive;\n }\n\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\n\n// @ts-ignore\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart) => chart._plugins.invalidate());\n}\n\nexport default Chart;\n","import Element from '../core/core.element.js';\nimport {_angleBetween, getAngleFromPoint, TAU, HALF_PI, valueOrDefault} from '../helpers/index.js';\nimport {PI, _isBetween, _limitValue} from '../helpers/helpers.math.js';\nimport {_readValueToProps} from '../helpers/helpers.options.js';\nimport type {ArcOptions, Point} from '../types/index.js';\n\n\nfunction clipArc(ctx: CanvasRenderingContext2D, element: ArcElement, endAngle: number) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\n/**\n * Parse border radius from the provided options\n */\nfunction parseBorderRadius(arc: ArcElement, innerRadius: number, outerRadius: number, angleDelta: number) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\n\n/**\n * Convert (r, 𝜃) to (x, y)\n */\nfunction rThetaToXY(r: number, theta: number, x: number, y: number) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\n\n\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */\nfunction pathArc(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n end: number,\n circular: boolean,\n) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n\n let spacingOffset = 0;\n const alpha = end - start;\n\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius(element, innerRadius, outerRadius, endAngle - startAngle);\n\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n\n ctx.beginPath();\n\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = ((endAngle - (innerEnd / innerRadius)) + (startAngle + (innerStart / innerRadius))) / 2;\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + (innerStart / innerRadius), true);\n\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n circular: boolean,\n) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawBorder(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n circular: boolean,\n) {\n const {fullCircles, startAngle, circumference, options} = element;\n const {borderWidth, borderJoinStyle, borderDash, borderDashOffset} = options;\n const inner = options.borderAlign === 'inner';\n\n if (!borderWidth) {\n return;\n }\n\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\n\nexport interface ArcProps extends Point {\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n outerRadius: number;\n circumference: number;\n}\n\nexport default class ArcElement extends Element {\n\n static id = 'arc';\n\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n };\n\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n\n static descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash'\n };\n\n circumference: number;\n endAngle: number;\n fullCircles: number;\n innerRadius: number;\n outerRadius: number;\n pixelMargin: number;\n startAngle: number;\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(chartX: number, chartY: number, useFinalPosition: boolean) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n\n return (betweenAngles && withinRadius);\n }\n\n getCenterPoint(useFinalPosition: boolean) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n\n tooltipPosition(useFinalPosition: boolean) {\n return this.getCenterPoint(useFinalPosition);\n }\n\n draw(ctx: CanvasRenderingContext2D) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n\n ctx.restore();\n }\n}\n","import Element from '../core/core.element.js';\nimport {_bezierInterpolation, _pointInLine, _steppedInterpolation} from '../helpers/helpers.interpolation.js';\nimport {_computeSegments, _boundSegments} from '../helpers/helpers.segment.js';\nimport {_steppedLineTo, _bezierCurveTo} from '../helpers/helpers.canvas.js';\nimport {_updateBezierControlPoints} from '../helpers/helpers.curve.js';\nimport {valueOrDefault} from '../helpers/index.js';\n\n/**\n * @typedef { import('./element.point.js').default } PointElement\n */\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @returns {any}\n */\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n // eslint-disable-next-line prefer-const\n let {move = true, reverse} = params || {};\n let i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n // Draw line to maxY and minY, using the average x-coordinate\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n // Line to y-value of last point in group. So the line continues\n // from correct position. Not using move, to have solid path.\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n }\n\n const x = point.x;\n const y = point.y;\n const truncX = x | 0; // truncated x-coordinate\n\n if (truncX === prevX) {\n // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n // For first point in group, countX is `0`, so average will be `x` / 1.\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n // Draw line to next x-position, using the first (or only)\n // y-value in that group\n ctx.lineTo(x, y);\n\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n // Keep track of the last y-value in group\n lastY = y;\n }\n drawX();\n}\n\n/**\n * @param {LineElement} line - the line\n * @returns {function}\n * @private\n */\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\n/**\n * @private\n */\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\n\nconst usePath2D = typeof Path2D === 'function';\n\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nexport default class LineElement extends Element {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n\n static descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n };\n\n\n constructor(cfg) {\n super();\n\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n\n get points() {\n return this._points;\n }\n\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n\n /**\n\t * First non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n\n /**\n\t * Last non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n\n /**\n\t * Interpolate a point in this line at the same value on `property` as\n\t * the reference `point` provided\n\t * @param {PointElement} point - the reference point\n\t * @param {string} property - the property to match on\n\t * @returns {PointElement|undefined}\n\t */\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n\n if (!segments.length) {\n return;\n }\n\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n\n /**\n\t * Append a segment of this line to current path.\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} segment\n\t * @param {number} segment.start - start index of the segment, referring the points array\n \t * @param {number} segment.end - end index of the segment, referring the points array\n \t * @param {boolean} segment.loop - indicates that the segment is a loop\n\t * @param {object} params\n\t * @param {boolean} params.move - move to starting point (vs line to it)\n\t * @param {boolean} params.reverse - path the segment from end to start\n\t * @param {number} params.start - limit segment to points starting from `start` index\n\t * @param {number} params.end - limit segment to points ending at `start` + `count` index\n\t * @returns {undefined|boolean} - true if the segment is a full loop (path should be closed)\n\t */\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n\n /**\n\t * Append all segments of this line to current path.\n\t * @param {CanvasRenderingContext2D|Path2D} ctx\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t * @returns {undefined|boolean} - true if line is a full loop (path should be closed)\n\t */\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n\n start = start || 0;\n count = count || (this.points.length - start);\n\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n\n /**\n\t * Draw\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} chartArea\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t */\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n // When line is animated, the control points and path are not cached.\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n","import Element from '../core/core.element.js';\nimport {drawPoint, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport type {\n CartesianParsedData,\n ChartArea,\n Point,\n PointHoverOptions,\n PointOptions,\n} from '../types/index.js';\n\nfunction inRange(el: PointElement, pos: number, axis: 'x' | 'y', useFinalPosition?: boolean) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\n\nexport type PointProps = Point\n\nexport default class PointElement extends Element {\n\n static id = 'point';\n\n parsed: CartesianParsedData;\n skip?: boolean;\n stop?: boolean;\n\n /**\n * @type {any}\n */\n static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n\n inXRange(mouseX: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, 'x', useFinalPosition);\n }\n\n inYRange(mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, mouseY, 'y', useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition?: boolean) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n\n size(options?: Partial) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n\n draw(ctx: CanvasRenderingContext2D, area: ChartArea) {\n const options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n","import Element from '../core/core.element.js';\nimport {isObject, _isBetween, _limitValue} from '../helpers/index.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {toTRBL, toTRBLCorners} from '../helpers/helpers.options.js';\n\n/** @typedef {{ x: number, y: number, base: number, horizontal: boolean, width: number, height: number }} BarProps */\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param {BarElement} bar the bar\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the bar\n * @private\n */\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = /** @type {BarProps} */ (bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition));\n\n let left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {left, top, right, bottom};\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n\n // If the value is an object, assume the user knows what they are doing\n // and apply as directed.\n const enableBorder = enableBorderRadius || isObject(value);\n\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\n\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\n/**\n * Add a path of a rectangle to the current sub-path\n * @param {CanvasRenderingContext2D} ctx Context\n * @param {*} rect Bounding rect\n */\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\n\nexport default class BarElement extends Element {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n\n ctx.restore();\n }\n\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = /** @type {BarProps} */ (this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition));\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n","/**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\nimport LineElement from '../../elements/element.line.js';\nimport {_drawfill} from './filler.drawing.js';\nimport {_shouldApplyFill} from './filler.helper.js';\nimport {_decodeFill, _resolveTarget} from './filler.options.js';\n\nexport default {\n id: 'filler',\n\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n","import defaults from '../core/core.defaults.js';\nimport Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {addRoundedRectPath, drawPointLegend, renderText} from '../helpers/helpers.canvas.js';\nimport {\n _isBetween,\n callback as call,\n clipArea,\n getRtlAdapter,\n overrideTextDirection,\n restoreTextDirection,\n toFont,\n toPadding,\n unclipArea,\n valueOrDefault,\n} from '../helpers/index.js';\nimport {_alignStartEnd, _textX, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {toTRBLCorners} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n */\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n\nexport class Legend extends Element {\n\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this._added = false;\n\n // Contains hit boxes for each dataset (in dataset order)\n this.legendHitBoxes = [];\n\n /**\n \t\t * @private\n \t\t */\n this._hoveredItem = null;\n\n // Are we in doughnut mode which has a different data type\n this.doughnutMode = false;\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = call(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n\n fit() {\n const {options, ctx} = this;\n\n // The legend may not be displayed for a variety of reasons including\n // the fact that the defaults got set to `false`.\n // When the legend is not displayed, there are no guarantees that the options\n // are correctly formatted so we need to bail out as early as possible.\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n let width, height;\n\n ctx.font = labelFont.string;\n\n if (this.isHorizontal()) {\n width = this.maxWidth; // fill all the width\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight; // fill all the height\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n\n /**\n\t * @private\n\t */\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n\n return totalHeight;\n }\n\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n\n let left = 0;\n let col = 0;\n\n this.legendItems.forEach((legendItem, i) => {\n const {itemWidth, itemHeight} = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n\n // If too tall, go to new column\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n\n // Get max width\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n\n return totalWidth;\n }\n\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @private\n\t */\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n\n this.drawTitle();\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n // current position\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n // Set the ctx for the box\n ctx.save();\n\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n\n // Draw pointStyle as legend symbol\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n // Draw box as legend symbol\n // Adjust position when boxHeight < fontSize (want it centered)\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n // Horizontal\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(this.ctx, opts.textDirection);\n\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor; // for strikethrough effect\n ctx.fillStyle = legendItem.fontColor; // render in correct colour\n\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n\n rtlHelper.setWidth(this.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n\n const realX = rtlHelper.x(x);\n\n drawLegendBox(realX, y, legendItem);\n\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n\n // Fill the actual label\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n\n // These defaults are used when the legend is vertical.\n // When horizontal, they are computed below.\n let left = this.left;\n let maxWidth = this.width;\n\n if (this.isHorizontal()) {\n // Move left / right so that the title is above the legend lines\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n // Move down so that the title is above the legend stack in every alignment\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n // Now that we know the left edge of the inner legend box, compute the correct\n // X coordinate from the title alignment\n const x = _alignStartEnd(position, left, left + maxWidth);\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n\n /**\n\t * @private\n\t */\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n\n /**\n\t * @private\n\t */\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n // See if we are touching one of the dataset boxes\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n // Touching an element\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t */\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n\n // Chart event already has relative position in it\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n call(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n call(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n call(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\n\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {itemWidth, itemHeight};\n}\n\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n }\n return boxWidth + (labelFont.size / 2) + ctx.measureText(legendItemText).width;\n}\n\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\n\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\n\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\n\nexport default {\n id: 'legend',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Legend,\n\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n\n // During the beforeUpdate step, the layout configuration needs to run\n // This ensures that if the legend position changes (via an option update)\n // the layout system respects the change. See https://github.com/chartjs/Chart.js/issues/7527\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n\n // The labels need to be built after datasets are updated to ensure that colors\n // and other styling are correct. See https://github.com/chartjs/Chart.js/issues/6968\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n\n\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n\n // a callback that will handle\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n\n onHover: null,\n onLeave: null,\n\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n // Generates labels shown in the legend\n // Valid properties to return:\n // text : text to display\n // fillStyle : fill of coloured box\n // strokeStyle: stroke of coloured box\n // hidden : if this legend item refers to a hidden item\n // lineCap : cap style for line\n // lineDash\n // lineDashOffset :\n // lineJoin :\n // lineWidth :\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color, useBorderRadius, borderRadius}} = chart.legend.options;\n\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n\n // Below is extra data used for toggling the datasets\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n","import Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {PI, isArray, toPadding, toFont} from '../helpers/index.js';\nimport {_toLeftRightCenter, _alignStartEnd} from '../helpers/helpers.extras.js';\nimport {renderText} from '../helpers/helpers.canvas.js';\n\nexport class Title extends Element {\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight) {\n const opts = this.options;\n\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\n\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nexport default {\n id: 'title',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Title,\n\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000 // by default greater than legend (1000) to be above\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import Animations from '../core/core.animations.js';\nimport Element from '../core/core.element.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {each, noop, isNullOrUndef, isArray, _elementsEqual, isObject} from '../helpers/helpers.core.js';\nimport {toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\nimport {getRtlAdapter, overrideTextDirection, restoreTextDirection} from '../helpers/helpers.rtl.js';\nimport {distanceBetweenPoints, _limitValue} from '../helpers/helpers.math.js';\nimport {createContext, drawPoint} from '../helpers/index.js';\n\n/**\n * @typedef { import('../platform/platform.base.js').Chart } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').ActiveElement } ActiveElement\n * @typedef { import('../core/core.interaction.js').InteractionItem } InteractionItem\n */\n\nconst positioners = {\n /**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t */\n average(items) {\n if (!items.length) {\n return false;\n }\n\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n\n // No visible items where found, return false so we don't have to divide by 0 which reduces in NaN\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n\n const xAverage = [...xSet].reduce((a, b) => a + b) / xSet.size;\n\n return {\n x: xAverage,\n y: y / count\n };\n },\n\n /**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t */\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x,\n y\n };\n }\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n // base = base.concat(toPush);\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {*} str - The value to split by newline.\n * @returns {string|string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param {Chart} chart\n * @param {ActiveElement} item - {element, index, datasetIndex} to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n\n // Count of all lines in the body\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n // Body lines may include some extra height depending on boxHeight\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n\n // Title width\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n\n // Body width\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n\n // Body lines may include some extra width due to the color box\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n\n // Reset back to 0\n widthPadding = 0;\n\n // Footer width\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n\n ctx.restore();\n\n // Add padding\n width += padding.width;\n\n return {width, height};\n}\n\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n // eslint-disable-next-line prefer-const\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nconst defaultCallbacks = {\n // Args are: (tooltipItems, data)\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n\n // Args are: (tooltipItems, data)\n beforeBody: noop,\n\n // Args are: (tooltipItem, data)\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n let label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n\n // Args are: (tooltipItems, data)\n afterBody: noop,\n\n // Args are: (tooltipItems, data)\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n\n/**\n * Invoke callback from object with context and arguments.\n * If callback returns `undefined`, then will be invoked default callback.\n * @param {Record} callbacks\n * @param {keyof typeof defaultCallbacks} name\n * @param {*} ctx\n * @param {*} arg\n * @returns {any}\n */\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n\n return result;\n}\n\nexport class Tooltip extends Element {\n\n /**\n * @namespace Chart.Tooltip.positioners\n */\n static positioners = positioners;\n\n constructor(config) {\n super();\n\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n // TODO: V4, make this private, rename to `_labelStyles`, and combine with `labelPointStyles`\n // and `labelTextColors` to create a single variable\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n\n /**\n\t * @private\n\t */\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n\n /**\n\t * @protected\n\t */\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n\n getTitle(context, options) {\n const {callbacks} = options;\n\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n return lines;\n }\n\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems)\n );\n }\n\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n\n bodyItems.push(bodyItem);\n });\n\n return bodyItems;\n }\n\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems)\n );\n }\n\n // Get the footer and beforeFooter and afterFooter lines\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n return lines;\n }\n\n /**\n\t * @private\n\t */\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n\n // If the user provided a filter function, use it to modify the tooltip items\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n\n // If the user provided a sorting function, use it to modify the tooltip items\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n\n // Determine colors for boxes\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n\n // Left draws bottom -> top, this y1 is on the bottom\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n\n // Right draws top -> bottom, thus y1 is on the top\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n\n // Top draws left -> right, thus x1 is on the left\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n\n // Bottom draws right -> left, thus x1 is on the right\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.titleAlign, options);\n\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing; // Line Height and spacing\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n }\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2, // fit the circle in the box\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n\n // Fill the point with white so that colours merge nicely if the opacity is < 1\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n\n // Draw the point\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n // Border\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : (labelColor.borderWidth || 1); // TODO, v4 remove fallback\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n\n // Fill a white rect so that colours merge nicely if the opacity is < 1\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n\n // Inner square\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n // Normal rect\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n // Inner square\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n // restore fillStyle\n ctx.fillStyle = this.labelTextColors[i];\n }\n\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n\n // Before body lines\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n\n // Draw body lines now\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n\n lines = bodyItem.lines;\n // Draw Legend-like boxes if needed\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n // Reset for any lines that don't include colorbox\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n // Reset back to 0 for after body\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n\n // After body lines\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing; // Remove last body spacing\n }\n\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n\n footerFont = toFont(options.footerFont);\n\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n\n /**\n\t * Update x/y animation targets when _active elements are animating too\n\t * @private\n\t */\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n\n /**\n * Determine if the tooltip will draw anything\n * @returns {boolean} True if the tooltip will render\n */\n _willRender() {\n return !!this.opacity;\n }\n\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n\n // IE11/Edge does not like very small opacities, so snap to 0\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n\n const padding = toPadding(options.padding);\n\n // Truthy/falsey value for empty tooltip\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n\n // Draw Background\n this.drawBackground(pt, ctx, tooltipSize, options);\n\n overrideTextDirection(ctx, options.textDirection);\n\n pt.y += padding.top;\n\n // Titles\n this.drawTitle(pt, ctx, options);\n\n // Body\n this.drawBody(pt, ctx, options);\n\n // Footer\n this.drawFooter(pt, ctx, options);\n\n restoreTextDirection(ctx, options.textDirection);\n\n ctx.restore();\n }\n }\n\n /**\n\t * Get active elements in the tooltip\n\t * @returns {Array} Array of elements that are active in the tooltip\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active elements in the tooltip\n\t * @param {array} activeElements Array of active datasetIndex/index pairs.\n\t * @param {object} eventPosition Synthetic event position used in positioning\n\t */\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {boolean} true if the tooltip changed\n\t */\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n\n // When there are multiple items shown, but the tooltip position is nearest mode\n // an update may need to be made because our position may have changed even though\n // the items are the same as before.\n const positionChanged = this._positionChanged(active, e);\n\n // Remember Last Actives\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n // Only handle target event on tooltip change\n if (changed) {\n this._active = active;\n\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n\n this.update(true, replay);\n }\n }\n\n return changed;\n }\n\n /**\n\t * Helper for determining the active elements for event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {InteractionItem[]} lastActive - Previously active elements\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {InteractionItem[]} - Active elements\n\t * @private\n\t */\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n // But make sure that active elements are still valid.\n return lastActive.filter(i =>\n this.chart.data.datasets[i.datasetIndex] &&\n this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined\n );\n }\n\n // Find Active Elements for tooltips\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n\n return active;\n }\n\n /**\n\t * Determine if the active elements + event combination changes the\n\t * tooltip position\n\t * @param {array} active - Active elements\n\t * @param {ChartEvent} e - Event that triggered the position change\n\t * @returns {boolean} True if the position has changed\n\t */\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\n\nexport default {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', {...args, cancelable: true}) === false) {\n return;\n }\n\n tooltip.draw(chart.ctx);\n\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n\n afterEvent(chart, args) {\n if (chart.tooltip) {\n // If the event is replayed from `update`, we should evaluate with the final positions.\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n // notify chart about the change, so it will render\n args.changed = true;\n }\n }\n },\n\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n\n // Resolve additionally from `interaction` options and defaults.\n additionalOptionScopes: ['interaction']\n};\n","import {Title} from './plugin.title.js';\nimport layouts from '../core/core.layouts.js';\n\nconst map = new WeakMap();\n\nexport default {\n id: 'subtitle',\n\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500 // by default greater than legend (1000) and smaller than title (2000)\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import Scale from '../core/core.scale.js';\nimport {isNullOrUndef, valueOrDefault, _limitValue} from '../helpers/index.js';\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\n\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\n\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\n\nexport default class CategoryScale extends Scale {\n\n static id = 'category';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n\n // If we are viewing some subset of labels, slice the original array\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n super.configure();\n\n if (!this.isHorizontal()) {\n // For backward compatibility, vertical category scale reverse is inverted.\n this._reversePixels = !this._reversePixels;\n }\n }\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n // Must override base implementation because it calls getPixelForValue\n // and category scale can have duplicate values\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n\n getBasePixel() {\n return this.bottom;\n }\n}\n","import {isNullOrUndef} from '../helpers/helpers.core.js';\nimport {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign, toRadians} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\n\n/**\n * Generate a set of linear ticks for an axis\n * 1. If generationOptions.min, generationOptions.max, and generationOptions.step are defined:\n * if (max - min) / step is an integer, ticks are generated as [min, min + step, ..., max]\n * Note that the generationOptions.maxCount setting is respected in this scenario\n *\n * 2. If generationOptions.min, generationOptions.max, and generationOptions.count is defined\n * spacing = (max - min) / count\n * Ticks are generated as [min, min + spacing, ..., max]\n *\n * 3. If generationOptions.count is defined\n * spacing = (niceMax - niceMin) / count\n *\n * 4. Compute optimal spacing of ticks using niceNum algorithm\n *\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, dataRange) {\n const ticks = [];\n // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n // \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n // for details.\n\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n\n // Beyond MIN_SPACING floating point numbers being to lose precision\n // such that we can't do the math necessary to generate ticks\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n // If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n // If the user specified a precision, round to that number of decimal places\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n // Case 1: If min, max and stepSize are set and they make an evenly spaced scale use it.\n // spacing = step;\n // numSpaces = (max - min) / spacing;\n // Note that we round here to handle the case where almostWhole translated an FP error\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n // Cases 2 & 3, we have a count specified. Handle optional user defined edges to the range.\n // Sometimes these are no-ops, but it makes the code a lot clearer\n // and when a user defined range is specified, we want the correct ticks\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n // Case 4\n numSpaces = (niceMax - niceMin) / spacing;\n\n // If very close to our rounded value, use it.\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n // The spacing will have changed in cases 1, 2, and 3 so the factor cannot be computed\n // until this point\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n\n if (niceMin < min) {\n j++; // Skip niceMin\n }\n // If the next nice tick is close to min, skip it\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({value: tickValue});\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n // If the previous tick is too close to max, replace it with max, else add max\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nexport default class LinearScaleBase extends Scale {\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n /** @type {number} */\n this._endValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n\n getTickLimit() {\n const tickOpts = this.options.ticks;\n // eslint-disable-next-line prefer-const\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n\n /**\n\t * @protected\n\t */\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph. Make sure we always have at least 2 ticks\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks(numericGeneratorOptions, dataRange);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n\n super.configure();\n\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n","import {isFinite} from '../helpers/helpers.core.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {toRadians} from '../helpers/index.js';\n\nexport default class LinearScale extends LinearScaleBase {\n\n static id = 'linear';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? min : 0;\n this.max = isFinite(max) ? max : 1;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n \t */\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n\n // Utils\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n","import {finiteOrDefault, isFinite} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {_setMinAndMaxByKey, log10} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\n\nconst log10Floor = v => Math.floor(log10(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, log10Floor(tickVal)));\n return remain === 1;\n}\n\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\n\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while (steps(min, max, rangeExp) > 10) {\n rangeExp++;\n }\n while (steps(min, max, rangeExp) < 10) {\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, {min, max}) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while (value < max) {\n ticks.push({value, major: isMajor(value), significand});\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({value: lastTick, major: isMajor(lastTick), significand});\n\n return ticks;\n}\n\nexport default class LogarithmicScale extends Scale {\n\n static id = 'logarithmic';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isFinite(value) && value > 0 ? value : null;\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? Math.max(0, min) : null;\n this.max = isFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n // if data has `0` in it or `beginAtZero` is true, min (non zero) value is at bottom\n // of scale, and it does not equal suggestedMin, lower the min bound by one exp.\n if (this._zero && this.min !== this._suggestedMin && !isFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n\n this.handleTickRangeOptions();\n }\n\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (min === max) {\n if (min <= 0) { // includes null\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n\n setMax(changeExponent(min, +1));\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const opts = this.options;\n\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const start = this.min;\n\n super.configure();\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n","import defaults from '../core/core.defaults.js';\nimport {_longestText, addRoundedRectPath, renderText, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport {HALF_PI, TAU, toDegrees, toRadians, _normalizeAngle, PI} from '../helpers/helpers.math.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {valueOrDefault, isArray, isFinite, callback as callCallback, isNullOrUndef} from '../helpers/helpers.core.js';\nimport {createContext, toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n // Right, this is really confusing and there is a lot of maths going on here\n // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n //\n // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n //\n // Solution:\n //\n // We assume the radius of the polygon is half the size of the canvas at first\n // at each index we check if the text overlaps.\n //\n // Where it does, we store that angle and that index.\n //\n // After finding the largest index and angle we calculate how much we need to remove\n // from the shape radius to move the point inwards by that x.\n //\n // We average the left and right distances to get the maximum shape radius that can fit in the box\n // along with labels.\n //\n // Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n // on each side, removing that from the size, halving it and adding the left x protrusion width.\n //\n // This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n // and position it in the most space efficient manner\n //\n // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n\n // Now that text size is determined, compute the full positions\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\n\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const {extra, additionalAngle, padding, size} = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n // if to draw or overlapped\n visible: true,\n\n // Text position\n x: pointLabelPosition.x,\n y,\n\n // Text rendering data\n textAlign,\n\n // Bounding box\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\n\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const {left, top, right, bottom} = item;\n const apexesInArea = _isPointInArea({x: left, y: top}, area) || _isPointInArea({x: left, y: bottom}, area) ||\n _isPointInArea({x: right, y: top}, area) || _isPointInArea({x: right, y: bottom}, area);\n return !apexesInArea;\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const {centerPointLabels, display} = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n\n for (let i = 0; i < valueCount; i++) {\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\n\nfunction drawPointLabelBox(ctx, opts, item) {\n const {left, top, right, bottom} = item;\n const {backdropColor} = opts;\n\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\n\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n\n for (let i = labelCount - 1; i >= 0; i--) {\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n // overlapping\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign} = item;\n\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n // Draw circular arcs between the points\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n // Draw straight lines connecting each index\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n\n const {color, lineWidth} = gridLineOpts;\n\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\n\nexport default class RadialLinearScale extends LinearScaleBase {\n\n static id = 'radialLinear';\n\n /**\n * @type {any}\n */\n static defaults = {\n display: true,\n\n // Boolean - Whether to animate scaling the chart from the centre\n animate: true,\n position: 'chartArea',\n\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n\n grid: {\n circular: false\n },\n\n startAngle: 0,\n\n // label settings\n ticks: {\n // Boolean - Show a backdrop to the scale label\n showLabelBackdrop: true,\n\n callback: Ticks.formatters.numeric\n },\n\n pointLabels: {\n backdropColor: undefined,\n\n // Number - The backdrop padding above & below the label in pixels\n backdropPadding: 2,\n\n // Boolean - if true, show point labels\n display: true,\n\n // Number - Point label font size in pixels\n font: {\n size: 10\n },\n\n // Function - Used to convert point labels\n callback(label) {\n return label;\n },\n\n // Number - Additionl padding between scale and pointLabel\n padding: 5,\n\n // Boolean - if true, center point labels to slices in polar chart\n centerPointLabels: false\n }\n };\n\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.xCenter = undefined;\n /** @type {number} */\n this.yCenter = undefined;\n /** @type {number} */\n this.drawingArea = undefined;\n /** @type {string[]} */\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n\n this.min = isFinite(min) && !isNaN(min) ? min : 0;\n this.max = isFinite(max) && !isNaN(max) ? max : 0;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n\t */\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n\n // Point labels\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callCallback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n\n fit() {\n const opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n // Take into account half font size + the yPadding of the top value\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n\n /**\n\t * @protected\n\t */\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid, border} = opts;\n const labelCount = this._pointLabels.length;\n\n let i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0 || (index === 0 && this.min < 0)) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {}\n\n /**\n\t * @protected\n\t */\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n this.ticks.forEach((tick, index) => {\n if ((index === 0 && this.min >= 0) && !opts.reverse) {\n return;\n }\n\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth,\n });\n });\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {}\n}\n","import adapters from '../core/core.adapters.js';\nimport {callback as call, isFinite, isNullOrUndef, mergeIf, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toRadians, isNumber, _limitValue} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {_arrayUnique, _filterBetween, _lookup} from '../helpers/helpers.collection.js';\n\n/**\n * @typedef { import('../core/core.adapters.js').TimeUnit } Unit\n * @typedef {{common: boolean, size: number, steps?: number}} Interval\n * @typedef { import('../core/core.adapters.js').DateAdapter } DateAdapter\n */\n\n/**\n * @type {Object}\n */\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\n\n/**\n * @type {Unit[]}\n */\nconst UNITS = /** @type Unit[] */ /* #__PURE__ */ (Object.keys(INTERVALS));\n\n/**\n * @param {number} a\n * @param {number} b\n */\nfunction sorter(a, b) {\n return a - b;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {*} input\n * @return {number}\n */\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n // Only parse if it's not a timestamp already\n if (!isFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, /** @type {Unit} */ (parser))\n : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @param {number} capacity\n * @return {object}\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n * @param {TimeScale} scale\n * @param {number} numTicks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @return {Unit}\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\n/**\n * @param {Unit} unit\n * @return {object}\n */\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\n/**\n * @param {object} ticks\n * @param {number} time\n * @param {number[]} [timestamps] - if defined, snap to these timestamps\n */\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\n/**\n * @param {TimeScale} scale\n * @param {object[]} ticks\n * @param {object} map\n * @param {Unit} majorUnit\n * @return {object[]}\n */\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {number[]} values\n * @param {Unit|undefined} [majorUnit]\n * @return {object[]}\n */\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n /** @type {Object} */\n const map = {};\n const ilen = values.length;\n let i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n\n ticks.push({\n value,\n major: false\n });\n }\n\n // We set the major ticks separately from the above loop because calling startOf for every tick\n // is expensive when there is a large number of ticks\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nexport default class TimeScale extends Scale {\n\n static id = 'time';\n\n /**\n * @type {any}\n */\n static defaults = {\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 2.7.0\n */\n bounds: 'data',\n\n adapters: {},\n time: {\n parser: false, // false == a pattern string from or a custom callback that converts its argument to a timestamp\n unit: false, // false == automatic or override with week, month, year, etc.\n round: false, // none, or override with week, month, year, etc.\n isoWeekday: false, // override week start day\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n /**\n * Ticks generation input values:\n * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n * - 'labels': generates ticks from user given `data.labels` values ONLY.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n source: 'auto',\n\n callback: false,\n\n major: {\n enabled: false\n }\n }\n };\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {{data: number[], labels: number[], all: number[]}} */\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n\n /** @type {Unit} */\n this._unit = 'day';\n /** @type {Unit=} */\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n /** @type {DateAdapter} */\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n\n adapter.init(opts);\n\n // Backward compatibility: before introducing adapter, `displayFormats` was\n // supposed to contain *all* unit/string pairs but this can't be resolved\n // when loading the scale (adapters are loaded afterward), so let's populate\n // missing formats on update\n mergeIf(time.displayFormats, adapter.formats());\n\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n super.init(scaleOpts);\n\n this._normalized = opts.normalized;\n }\n\n /**\n\t * @param {*} raw\n\t * @param {number?} [index]\n\t * @return {number}\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n // eslint-disable-next-line prefer-const\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n\n /**\n\t\t * @param {object} bounds\n\t\t */\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n // If we have user provided `min` and `max` labels / data bounds can be ignored\n if (!minDefined || !maxDefined) {\n // Labels are always considered, when user did not force bounds\n _applyBounds(this._getLabelBounds());\n\n // If `bounds` is `'ticks'` and `ticks.source` is `'labels'`,\n // data bounds are ignored (and don't need to be determined)\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n\n min = isFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n\n // Make sure that max is strictly higher than min (required by the timeseries lookup table)\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n\n /**\n\t * @private\n\t */\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n\n /**\n\t * @return {object[]}\n\t */\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n\n const min = this.min;\n const max = this.max;\n\n const ticks = _filterBetween(timestamps, min, max);\n\n // PRIVATE\n // determineUnitForFormatting relies on the number of ticks so we don't use it when\n // autoSkip is enabled because we don't yet know what the final number of ticks will be\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n\n afterAutoSkip() {\n // Offsets for bar charts need to be handled with the auto skipped\n // ticks. Once ticks have been skipped, we re-compute the offsets.\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n\n /**\n\t * Returns the start and end offsets from edges in the form of {start, end}\n\t * where each value is a relative width to the scale and ranges between 0 and 1.\n\t * They add extra margins on the both sides by scaling down the original scale.\n\t * Offsets are added when the `offset` option is true.\n\t * @param {number[]} timestamps\n\t * @protected\n\t */\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n\n /**\n\t * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n\t * `minor` unit using the given scale time `options`.\n\t * Important: this method can return ticks outside the min and max range, it's the\n\t * responsibility of the calling code to clamp values if needed.\n\t * @protected\n\t */\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n // @ts-ignore\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n\n // For 'week' unit, handle the first day of week option\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n // Align first ticks on unit\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n // Prevent browser from freezing in case user options request millions of milliseconds\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n // @ts-ignore\n return Object.keys(ticks).sort(sorter).map(x => +x);\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n\n /**\n\t * @param {number} value\n\t * @param {string|undefined} format\n\t * @return {string}\n\t */\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n\n /**\n\t * Function to format an individual tick mark\n\t * @param {number} time\n\t * @param {number} index\n\t * @param {object[]} ticks\n\t * @param {string|undefined} [format]\n\t * @return {string}\n\t * @private\n\t */\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n\n if (formatter) {\n return call(formatter, [time, index, ticks], this);\n }\n\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n\n /**\n\t * @param {object[]} ticks\n\t */\n generateTickLabels(ticks) {\n let i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n\n /**\n\t * @param {string} label\n\t * @return {{w:number, h:number}}\n\t * @private\n\t */\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n\n /**\n\t * @param {number} exampleTime\n\t * @return {number}\n\t * @private\n\t */\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n\n // pick the longest format (milliseconds) for guesstimation\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n // subtract 1 - if offset then there's one less label than tick\n // if not offset then one half label padding is added to each end leaving room for one less label\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n\n /**\n\t * @protected\n\t */\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return (this._cache.data = this.normalize(timestamps));\n }\n\n /**\n\t * @protected\n\t */\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n\n /**\n\t * @param {number[]} values\n\t * @protected\n\t */\n normalize(values) {\n // It seems to be somewhat faster to do sorting first\n return _arrayUnique(values.sort(sorter));\n }\n}\n","import TimeScale from './scale.time.js';\nimport {_lookupByKey} from '../helpers/helpers.collection.js';\n\n/**\n * Linearly interpolates the given source `val` using the table. If value is out of bounds, values\n * at edges are used for the interpolation.\n * @param {object} table\n * @param {number} val\n * @param {boolean} [reverse] lookup time based on position instead of vice versa\n * @return {object}\n */\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nclass TimeSeriesScale extends TimeScale {\n\n static id = 'timeseries';\n\n /**\n * @type {any}\n */\n static defaults = TimeScale.defaults;\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {object[]} */\n this._table = [];\n /** @type {number} */\n this._minPos = undefined;\n /** @type {number} */\n this._tableRange = undefined;\n }\n\n /**\n\t * @protected\n\t */\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n\n /**\n\t * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n\t * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n\t * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n\t * extremity (left + width or top + height). Note that it would be more optimized to directly\n\t * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n\t * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n\t * @param {number[]} timestamps\n\t * @return {object[]}\n\t * @protected\n\t */\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n // In case there is less that 2 timestamps between min and max, the scale is defined by min and max\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n // only add points that breaks the scale linearity\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n\n /**\n * Generates all timestamps defined in the data.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n * @protected\n */\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b) => a - b);\n }\n\n /**\n\t * Returns all timestamps\n\t * @return {number[]}\n\t * @private\n\t */\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n // If combining labels and data (data might not contain all labels),\n // we need to recheck uniqueness and sort\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n\n return timestamps;\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nexport default TimeSeriesScale;\n","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types.js';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n const options = chart.options;\n\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, BaseChartComponent } from './types.js';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils.js';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n props: ChartProps,\n ref: ForwardedRef>\n) {\n const {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...canvasProps\n } = props as ChartProps;\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options: options && { ...options },\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as BaseChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types.js';\nimport { Chart } from './chart.js';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: theme\n }, other));\n });\n return Box;\n}","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgConsult(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 118,\n height: 168,\n viewBox: \"0 0 118 168\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.888916,\n width: 117,\n height: 168,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_8_48\",\n transform: \"translate(0 -0.00938776) scale(0.00285714 0.0019898)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_8_48\",\n width: 350,\n height: 512,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgConsult);\nexport default __webpack_public_path__ + \"static/media/consult.0e8bdb2770cfc5eaefe30f5fc0bb7680.svg\";\nexport { ForwardRef as ReactComponent };","import { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n defaultTheme,\n defaultClassName: 'MuiBox-root',\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","var _path, _path2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgQuiz(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 180,\n height: 180,\n viewBox: \"0 0 180 180\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M157.5 45L90 67.5L22.5 45L90 22.5L157.5 45Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.391 42.7643L91.8912 20.2643C90.7458 19.9119 89.5209 19.9119 88.3756 20.2643L20.9459 42.7643H20.8053L20.1021 43.1159H20.0318L19.3287 43.5378C19.3287 43.6081 19.2584 43.6081 19.1881 43.6784L18.6256 44.1706L18.1334 44.7331C18.1334 44.8034 18.0631 44.8034 18.0631 44.8737L17.6412 45.5065C17.6412 45.5768 17.6412 45.5768 17.5709 45.6472L17.2896 46.28L17.0787 47.0534V47.2643C17.0093 47.5399 16.9856 47.8249 17.0084 48.1081V104.358C17.0084 105.85 17.601 107.281 18.6559 108.336C19.7108 109.39 21.1415 109.983 22.6334 109.983C24.1252 109.983 25.556 109.39 26.6109 108.336C27.6658 107.281 28.2584 105.85 28.2584 104.358V55.9128L51.8834 63.7878C47.445 70.8921 45.105 79.1063 45.1334 87.4831C45.136 95.1015 47.0727 102.595 50.7621 109.26C54.4515 115.925 59.7727 121.545 66.2271 125.592C52.8143 130.667 41.3636 139.876 33.5318 151.889C32.7335 153.152 32.4631 154.677 32.7787 156.137C33.0944 157.597 33.9708 158.874 35.2193 159.694C35.832 160.1 36.5191 160.38 37.2409 160.519C37.9627 160.657 38.7048 160.651 39.4242 160.501C40.1436 160.35 40.826 160.059 41.4319 159.642C42.0377 159.226 42.555 158.694 42.9537 158.077C48.0593 150.212 55.0498 143.749 63.2896 139.274C71.5294 134.8 80.757 132.456 90.1334 132.456C99.5098 132.456 108.737 134.8 116.977 139.274C125.217 143.749 132.207 150.212 137.313 158.077C137.827 158.857 138.526 159.496 139.348 159.938C140.171 160.38 141.09 160.61 142.024 160.608C143.102 160.619 144.157 160.3 145.047 159.694C146.296 158.874 147.172 157.597 147.488 156.137C147.804 154.677 147.533 153.152 146.735 151.889C138.903 139.876 127.452 130.667 114.04 125.592C120.494 121.545 125.815 115.925 129.505 109.26C133.194 102.595 135.131 95.1015 135.133 87.4831C135.162 79.1063 132.822 70.8921 128.383 63.7878L159.391 53.4518C160.517 53.082 161.496 52.3662 162.191 51.4066C162.886 50.4471 163.26 49.2927 163.26 48.1081C163.26 46.9235 162.886 45.7691 162.191 44.8095C161.496 43.85 160.517 43.1342 159.391 42.7643ZM123.883 87.4831C123.883 96.4341 120.328 105.019 113.998 111.348C107.669 117.677 99.0844 121.233 90.1334 121.233C81.1823 121.233 72.5979 117.677 66.2685 111.348C59.9392 105.019 56.3834 96.4341 56.3834 87.4831C56.3969 80.2812 58.6856 73.2678 62.9225 67.444L88.3756 75.9518C89.5173 76.3275 90.7494 76.3275 91.8912 75.9518L117.344 67.444C121.581 73.2678 123.87 80.2812 123.883 87.4831ZM117.344 55.6315H117.274L90.1334 64.7018L62.9928 55.6315H62.9225L40.4224 48.1081L90.1334 31.5143L139.844 48.1081L117.344 55.6315Z\",\n fill: \"black\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuiz);\nexport default __webpack_public_path__ + \"static/media/quiz.21f8eab6336d6c6cb1075edbdea219b8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgSearch(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 131,\n height: 130,\n viewBox: \"0 0 131 130\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.3003 39.3202H64.6504L63.0662 34.561C62.9568 34.2353 62.7562 33.9538 62.4919 33.7549C62.2276 33.556 61.9125 33.4495 61.5896 33.4498H46.5883C45.9282 33.4498 45.3365 33.8953 45.1165 34.561L43.5274 39.3202H36.8775C34.7163 39.3202 32.9659 41.1967 32.9659 43.5134V67.4146C32.9659 69.7313 34.7163 71.6078 36.8775 71.6078H71.3003C73.4615 71.6078 75.212 69.7313 75.212 67.4146V43.5134C75.212 41.1967 73.4615 39.3202 71.3003 39.3202ZM54.0889 63.2214C49.7665 63.2214 46.2656 59.4685 46.2656 54.835C46.2656 50.2015 49.7665 46.4486 54.0889 46.4486C58.4113 46.4486 61.9123 50.2015 61.9123 54.835C61.9123 59.4685 58.4113 63.2214 54.0889 63.2214ZM49.3949 54.835C49.3949 56.1695 49.8895 57.4494 50.7698 58.3931C51.6501 59.3367 52.844 59.8668 54.0889 59.8668C55.3338 59.8668 56.5278 59.3367 57.4081 58.3931C58.2884 57.4494 58.7829 56.1695 58.7829 54.835C58.7829 53.5005 58.2884 52.2206 57.4081 51.277C56.5278 50.3333 55.3338 49.8032 54.0889 49.8032C52.844 49.8032 51.6501 50.3333 50.7698 51.277C49.8895 52.2206 49.3949 53.5005 49.3949 54.835Z\",\n fill: \"black\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1_104)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0542 55C90.0542 45.3646 86.6297 37.1224 79.7808 30.2734C72.9318 23.4245 64.6896 20 55.0542 20C45.4188 20 37.1766 23.4245 30.3276 30.2734C23.4787 37.1224 20.0542 45.3646 20.0542 55C20.0542 64.6354 23.4787 72.8776 30.3276 79.7266C37.1766 86.5755 45.4188 90 55.0542 90C64.6896 90 72.9318 86.5755 79.7808 79.7266C86.6297 72.8776 90.0542 64.6354 90.0542 55ZM130.054 120C130.054 122.708 129.065 125.052 127.085 127.031C125.106 129.01 122.763 130 120.054 130C117.242 130 114.898 129.01 113.023 127.031L86.2261 100.312C76.9032 106.771 66.5125 110 55.0542 110C47.6063 110 40.4839 108.555 33.687 105.664C26.8901 102.773 21.0308 98.8672 16.1089 93.9453C11.187 89.0234 7.28076 83.1641 4.39014 76.3672C1.49951 69.5703 0.0541992 62.4479 0.0541992 55C0.0541992 47.5521 1.49951 40.4297 4.39014 33.6328C7.28076 26.8359 11.187 20.9766 16.1089 16.0547C21.0308 11.1328 26.8901 7.22656 33.687 4.33594C40.4839 1.44531 47.6063 0 55.0542 0C62.5021 0 69.6245 1.44531 76.4214 4.33594C83.2183 7.22656 89.0776 11.1328 93.9995 16.0547C98.9214 20.9766 102.828 26.8359 105.718 33.6328C108.609 40.4297 110.054 47.5521 110.054 55C110.054 66.4583 106.825 76.849 100.367 86.1719L127.164 112.969C129.091 114.896 130.054 117.24 130.054 120Z\",\n fill: \"black\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1_104\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 130,\n height: 130,\n fill: \"white\",\n transform: \"translate(0.0541992)\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.821e3b931ef8f20ca2fec1fb241113da.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _line;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgType(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 165,\n height: 167,\n viewBox: \"0 0 165 167\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.1083 84.9369V79.7709C47.2861 79.5983 49.3275 78.7265 50.8731 77.309C52.4187 75.8914 53.3694 74.0192 53.5576 72.0219H59.1904C59.0083 75.3932 57.4662 78.5821 54.8637 80.9689C52.2613 83.3557 48.7843 84.7699 45.1083 84.9369Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.1083 95.2689C38.3882 95.2614 31.9457 92.8098 27.1939 88.4517C22.4421 84.0937 19.7689 78.1851 19.7607 72.0219C19.9123 67.4906 21.3636 63.0761 23.9684 59.2231L42.7228 31.8227C42.9937 31.474 43.3516 31.1897 43.7665 30.9936C44.1815 30.7975 44.6415 30.6951 45.1083 30.6951C45.5752 30.6951 46.0352 30.7975 46.4502 30.9936C46.8651 31.1897 47.223 31.474 47.4938 31.8227L66.1666 59.0888C68.8151 62.9775 70.2949 67.4394 70.456 72.0219C70.4478 78.1851 67.7746 84.0937 63.0228 88.4517C58.271 92.8098 51.8284 95.2614 45.1083 95.2689ZM45.1083 38.0503L28.8239 61.8346C26.7256 64.8955 25.5426 68.4089 25.3935 72.0219C25.3935 76.8173 27.4706 81.4163 31.1678 84.8071C34.8651 88.198 39.8796 90.1029 45.1083 90.1029C50.337 90.1029 55.3516 88.198 59.0488 84.8071C62.7461 81.4163 64.8232 76.8173 64.8232 72.0219C64.6625 68.3584 63.45 64.7988 61.3083 61.7028L45.1083 38.0503Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.303 134.115H127.16V125.074H128.255C133.191 125.066 137.923 122.75 141.413 118.634C144.903 114.519 146.867 108.939 146.875 103.119C146.875 100.721 146.067 98.4215 144.629 96.726C143.191 95.0306 141.241 94.0781 139.208 94.0781C137.174 94.0781 135.224 95.0306 133.786 96.726C132.349 98.4215 131.541 100.721 131.541 103.119C131.541 104.146 131.195 105.132 130.578 105.858C129.962 106.585 129.126 106.993 128.255 106.993H127.16V85.0376C127.16 81.6124 126.006 78.3274 123.952 75.9053C121.898 73.4833 119.112 72.1226 116.207 72.1226C113.302 72.1226 110.516 73.4833 108.462 75.9053C106.408 78.3274 105.254 81.6124 105.254 85.0376V94.0781H104.159C103.288 94.0781 102.452 93.6699 101.836 92.9433C101.219 92.2167 100.873 91.2312 100.873 90.2036C100.873 87.8059 100.065 85.5065 98.6277 83.811C97.1899 82.1156 95.2398 81.1631 93.2064 81.1631C91.173 81.1631 89.2229 82.1156 87.7851 83.811C86.3472 85.5065 85.5395 87.8059 85.5395 90.2036C85.5467 96.024 87.5108 101.603 91.001 105.719C94.4913 109.835 99.2231 112.151 104.159 112.159H105.254V134.115H92.1111C91.5301 134.115 90.973 134.387 90.5622 134.871C90.1514 135.356 89.9206 136.013 89.9206 136.698C89.9206 137.383 90.1514 138.04 90.5622 138.524C90.973 139.009 91.5301 139.281 92.1111 139.281H140.303C140.884 139.281 141.441 139.009 141.852 138.524C142.263 138.04 142.493 137.383 142.493 136.698C142.493 136.013 142.263 135.356 141.852 134.871C141.441 134.387 140.884 134.115 140.303 134.115ZM107.445 106.993H104.159C100.383 106.993 96.7612 105.224 94.0909 102.076C91.4207 98.927 89.9206 94.6565 89.9206 90.2036C89.9206 89.1761 90.2667 88.1906 90.883 87.464C91.4992 86.7373 92.3349 86.3291 93.2064 86.3291C94.0778 86.3291 94.9136 86.7373 95.5298 87.464C96.146 88.1906 96.4922 89.1761 96.4922 90.2036C96.4994 92.5987 97.3095 94.8933 98.7457 96.5868C100.182 98.2804 102.128 99.2356 104.159 99.2441H107.445C108.026 99.2441 108.583 98.972 108.994 98.4876C109.405 98.0032 109.635 97.3462 109.635 96.6611V85.0376C109.635 82.9825 110.328 81.0115 111.56 79.5583C112.793 78.105 114.464 77.2886 116.207 77.2886C117.95 77.2886 119.621 78.105 120.854 79.5583C122.086 81.0115 122.779 82.9825 122.779 85.0376V109.576C122.779 110.261 123.009 110.918 123.42 111.403C123.831 111.887 124.388 112.159 124.969 112.159H128.255C130.286 112.151 132.232 111.195 133.668 109.502C135.105 107.808 135.915 105.514 135.922 103.119C135.922 102.091 136.268 101.106 136.884 100.379C137.5 99.6524 138.336 99.2441 139.208 99.2441C140.079 99.2441 140.915 99.6524 141.531 100.379C142.147 101.106 142.493 102.091 142.493 103.119C142.493 105.323 142.125 107.507 141.41 109.544C140.694 111.581 139.645 113.432 138.323 114.991C137.001 116.55 135.431 117.786 133.704 118.63C131.976 119.474 130.125 119.908 128.255 119.908H124.969C124.388 119.908 123.831 120.18 123.42 120.665C123.009 121.149 122.779 121.806 122.779 122.491V134.115H109.635V109.576C109.635 108.891 109.405 108.234 108.994 107.75C108.583 107.265 108.026 106.993 107.445 106.993Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.774 83.5952C162.774 128.731 126.663 165.288 82.1597 165.288C37.6563 165.288 1.54584 128.731 1.54584 83.5952C1.54584 38.4589 37.6563 1.90234 82.1597 1.90234C126.663 1.90234 162.774 38.4589 162.774 83.5952Z\",\n stroke: \"black\",\n strokeWidth: 3\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n y1: -1.5,\n x2: 161.916,\n y2: -1.5,\n transform: \"matrix(-0.50714 0.861864 -0.828401 -0.560135 116.207 10.0634)\",\n stroke: \"black\",\n strokeWidth: 3\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgType);\nexport default __webpack_public_path__ + \"static/media/type.f8f2228b3ec62de336ec719098dd6105.svg\";\nexport { ForwardRef as ReactComponent };","import { createContext } from \"react\";\n\nconst modelContext = createContext(null);\n\nexport default modelContext;\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","import classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { map } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ROUND_PRECISION = 1000;\n\n/**\n * Validate that children, if any, are instances of ``.\n */\nfunction onlyProgressBar(props, propName, componentName) {\n const children = props[propName];\n if (!children) {\n return null;\n }\n let error = null;\n React.Children.forEach(children, child => {\n if (error) {\n return;\n }\n\n /**\n * Compare types in a way that works with libraries that patch and proxy\n * components like react-hot-loader.\n *\n * see https://github.com/gaearon/react-hot-loader#checking-element-types\n */\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const element = /*#__PURE__*/_jsx(ProgressBar, {});\n if (child.type === element.type) return;\n const childType = child.type;\n const childIdentifier = /*#__PURE__*/React.isValidElement(child) ? childType.displayName || childType.name || childType : child;\n error = new Error(`Children of ${componentName} can contain only ProgressBar ` + `components. Found ${childIdentifier}.`);\n });\n return error;\n}\nconst defaultProps = {\n min: 0,\n max: 100,\n animated: false,\n isChild: false,\n visuallyHidden: false,\n striped: false\n};\nfunction getPercentage(now, min, max) {\n const percentage = (now - min) / (max - min) * 100;\n return Math.round(percentage * ROUND_PRECISION) / ROUND_PRECISION;\n}\nfunction renderProgressBar({\n min,\n now,\n max,\n label,\n visuallyHidden,\n striped,\n animated,\n className,\n style,\n variant,\n bsPrefix,\n ...props\n}, ref) {\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n ...props,\n role: \"progressbar\",\n className: classNames(className, `${bsPrefix}-bar`, {\n [`bg-${variant}`]: variant,\n [`${bsPrefix}-bar-animated`]: animated,\n [`${bsPrefix}-bar-striped`]: animated || striped\n }),\n style: {\n width: `${getPercentage(now, min, max)}%`,\n ...style\n },\n \"aria-valuenow\": now,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n children: visuallyHidden ? /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: label\n }) : label\n });\n}\nconst ProgressBar = /*#__PURE__*/React.forwardRef(({\n isChild,\n ...props\n}, ref) => {\n props.bsPrefix = useBootstrapPrefix(props.bsPrefix, 'progress');\n if (isChild) {\n return renderProgressBar(props, ref);\n }\n const {\n min,\n now,\n max,\n label,\n visuallyHidden,\n striped,\n animated,\n bsPrefix,\n variant,\n className,\n children,\n ...wrapperProps\n } = props;\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n ...wrapperProps,\n className: classNames(className, bsPrefix),\n children: children ? map(children, child => /*#__PURE__*/cloneElement(child, {\n isChild: true\n })) : renderProgressBar({\n min,\n now,\n max,\n label,\n visuallyHidden,\n striped,\n animated,\n bsPrefix,\n variant\n }, ref)\n });\n});\nProgressBar.displayName = 'ProgressBar';\nProgressBar.defaultProps = defaultProps;\nexport default ProgressBar;","import React, { useState } from 'react';\nimport axios from 'axios';\nimport { Bar } from 'react-chartjs-2';\nimport {\n Chart as ChartJS,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend,\n \n} from 'chart.js';\n\nimport {\n Box,\n // Container,\n Button,\n // Card,\n // CardHeader,\n // CardContent,\n Typography,\n // CardActions,\n} from \"@mui/material\";\nimport FadeIn from \"./FadeIn\";\nimport { ReactComponent as Consult } from \"../images/consult.svg\";\nimport { ReactComponent as Quiz } from \"../images/quiz.svg\";\nimport { ReactComponent as Search } from \"../images/search.svg\";\nimport { ReactComponent as Distype } from \"../images/type.svg\";\n// import { PredictionModal } from \"./PredictionModal\";\nimport { DiseaseModal } from \"./DiseaseModal\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport Modal from \"@mui/material/Modal\";\nimport Intern from '../images/Internship.png'\nimport CloseIcon from '@mui/icons-material/Close';\nimport IconButton from '@mui/material/IconButton';\n//import Dry from '../images/Dry result1.jpg'\n//import Oily from '../images/Oily skin having acne (1).jpg'\nexport const useStyles = makeStyles((theme) => ({\n container: {\n background: \"#cfd9fd\",\n // background:\"blue\",\n padding: \"60px 40px\",\n },\n block_container: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n flexWrap: \"wrap\",\n marginTop: \"10px\",\n },\n button: {\n width: \"200px\",\n \n borderRadius: \"30px\",\n background: \"#3F67F6\",\n fontSize: \"20px\",\n color: \"white\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textTransform: \"capitalize\",\n \"&:hover\": {\n background: \"#0641b6\",\n color: \"white\",\n },\n },\n block_head: {\n paddingTop: \"20px\",\n fontStyle: \"normal\",\n fontWeight: \"600\",\n fontSize: \"24px\",\n lineHeight: \"29px\",\n textAlign: \"center\",\n },\n block_text: {\n textAlign: \"center\",\n fontSize: \"20px\",\n fontWeight: 400,\n // height: \"180px\",\n },\n block_icon: {\n height: \"150px\",\n },\n block: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingTop: \"10px\",\n height: \"445px\",\n width: \"236px\",\n margin: \"15px 0 25px\",\n },\n featurePreview: {\n textAlign: \"center\",\n color: \"#555555\",\n fontSize: \"17px\",\n padding: \"20px\",\n },\n}));\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '100%', // Make the modal responsive\n maxWidth: '600px', // Restrict the maximum width\n bgcolor: 'background.paper',\n border: '2px solid #000',\n boxShadow: 24,\n p: 4,\n maxHeight: '90vh', \n overflowY: 'auto', // Add scroll for overflow content\n};\nChartJS.register(CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend);\nconst FeatPrev = () => {\n const [open, setOpen] = React.useState(false);\n const handleOpen = () => setOpen(true);\n const handleClose = () => setOpen(false);\n\n const [disOpen, setDisOpen] = React.useState(false);\n const dishandleOpen = () => setDisOpen(true);\n const dishandleClose = () => setDisOpen(false);\n\n \n const classes = useStyles();\n\n const Consultbox = () => {\n return (\n

\n \n \n Get Your Skin Issue Resolved\n \n {/* \n Get an online consultation about your skin from our selection of\n certified doctors.\n */}\n \n Download the DermaLens App \n \n \n
\n );\n };\n\n const Quizbox = () => {\n return (\n
\n \n \n Test Your Knowledge\n \n \n {/* Are you a dermatology student? Test your identification skills with\n our technology. */}\n Are you a Student of BioTech/Medical/Science/General?\n \n \n \n Test your Skills\n \n
\n );\n };\n// {\"oily\": \"0.97817034\", \"dry\": \"0.021829687\"}\n const Typebox = () => {\n const [file, setFile] = useState(null);\n const [imagePreview, setImagePreview] = useState(null);\n const [results, setResults] = useState([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleFileChange = (event) => {\n const selectedFile = event.target.files[0];\n setFile(selectedFile);\n\n };\n\n const handleSubmit = async (event) => {\n event.preventDefault();\n if (!file) {\n alert('Please select a file to upload');\n return;\n }\n\n const formData = new FormData();\n formData.append('file', file);\n\n setLoading(true);\n setError(null);\n\n try {\n const response = await axios.post(\n 'https://pfg1plqbgd.execute-api.ap-south-1.amazonaws.com/default/oily-dry-prediction',\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n }\n );\n \n // Add the new result to the results array\n results.pop();\n setResults((prevResults) => [...prevResults, response.data]);\n } catch (err) {\n if (err.response) {\n console.error(\"API Response Error: \", err.response);\n setError(`Error: ${err.response.data.message || err.response.statusText}`);\n } else if (err.request) {\n console.error(\"No response received: \", err.request);\n setError('No response from the server.');\n } else {\n console.error(\"Error in request setup: \", err.message);\n setError(`Request Error: ${err.message}`);\n }\n } finally {\n setLoading(false);\n \n if (file) {\n const reader = new FileReader();\n reader.onload = () => {\n setImagePreview(reader.result); \n };\n reader.readAsDataURL(file); \n }\n \n }\n };\n\n // Prepare data for the bar chart\n const chartData = {\n labels: results.map((_, index) => `Result ${index + 1}`), \n datasets: [\n {\n label: 'Oily',\n data: results.map((result) => parseFloat(result.oily)), \n backgroundColor: 'rgba(255, 99, 132, 0.5)',\n },\n {\n label: 'Dry',\n data: results.map((result) => parseFloat(result.dry)), \n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n },\n ],\n };\n\n const chartOptions = {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Oily vs Dry Predictions',\n },\n },\n };\n\n return (\n
\n \n \n Know your skin type\n \n \n \n Oily and Dry Skin Prediction\n \n

This innovation is patented as Utility Model German Patent
\n
Grant No.20 2024 100 262.8 dated 26th Feb 2024



\n \n \n \n {/* */}\n\n\n {/* Oily and Dry Prediction */}\n \n\n \n \n \n \n


\n \n Our AI Model validation accuracy of 98% for oily and dry skin classification\n \n \n

\n\n
\n\n
\n \n \n
\n

\n {error &&

{error}

}\n {imagePreview && (\n
\n

Image Preview:

\n \"Preview\"\n
\n )}\n

\n
\n \n \n
\n
\n \n\n
\n \n
\n );\n };\n\n const Searchbox = () => {\n const classes = useStyles();\n return (\n
\n \n \n Detect Your Disease\n \n \n Not sure about your skin infection? Identify your disease by clicking\n a picture.\n \n \n \n \n
\n );\n };\n\n\n const Gyan = () => {\n return (\n
\n {/* */}\n \n \n Apply for Internship\n \n \n Elevate your skills to the next level\n \n \n \n \n
\n );\n };\n\n return (\n
\n
\n \n

FEATURE PREVIEW

\n
\n
\n \n
\n \n \n {/* */}\n \n \n
\n \n \n\n
\n
\n );\n};\n\nexport default FeatPrev;\n","import React, { useEffect } from \"react\";\n\nconst AdsComponent = (props) => {\n const { dataAdSlot } = props;\n\n useEffect(() => {\n try {\n (window.adsbygoogle = window.adsbygoogle || []).push({});\n } catch (e) {}\n }, []);\n\n return (\n <>\n \n \n );\n};\n\nexport default AdsComponent;\n","import React, { useEffect } from \"react\";\n\nconst AdsComponent = (props) => {\n const { dataAdSlot } = props;\n\n useEffect(() => {\n try {\n (window.adsbygoogle = window.adsbygoogle || []).push({});\n } catch (e) {}\n }, []);\n\n return (\n <>\n \n \n );\n};\n\nexport default AdsComponent;\n","import React from \"react\";\nimport Download from \"../sections/Download\";\nimport Start from \"../sections/Start\";\nimport Testimonial from \"../sections/Testimonial\";\nimport Footer from \"../sections/Footer2\";\nimport People from \"../sections/People\";\nimport FeatPrev from \"../sections/feat\";\nimport AdsComponent from \"../AdsComponent\";\nimport AdsComponent3 from \"../AdsComponent3\";\n\nconst Home: React.FC = () => {\n return (\n <>\n \n \n \n \n \n {/* */}\n {/* */}\n \n \n \n {/* */}\n \n {/* */}\n
\n \n );\n};\n\nexport default Home;\n","import React, { useEffect } from \"react\";\n\nconst AdsComponent = (props) => {\n const { dataAdSlot } = props;\n\n useEffect(() => {\n try {\n (window.adsbygoogle = window.adsbygoogle || []).push({});\n } catch (e) {}\n }, []);\n\n return (\n <>\n \n \n );\n};\n\nexport default AdsComponent;\n","import React, { useEffect } from \"react\";\nimport { Typography, Container, Grid, Avatar } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport Footer from \"../sections/Footer2\";\nimport FadeIn from \"../sections/FadeIn\";\nimport AdsComponent from \"../AdsComponent2\";\n\nimport Pajamas from \"../images/pajamas.jpg\";\nimport Ai from \"../images/AI.jpg\";\nimport Challenges from \"../images/Challenges.jpeg\";\nimport NightOwl from \"../images/NightOwl.jpeg\";\nimport Mentor from \"../images/Mentor.jpeg\";\nimport Diversity from \"../images/Diversity.jpg\";\n\nconst useStyles = makeStyles((theme) => ({\n touch: {\n marginTop: \"50px\",\n color: \"#FFF\",\n fontWeight: 700,\n fontSize: \"4em\",\n textAlign: \"center\",\n marginBottom: \"20px\",\n fontFamily: \"inherit\",\n },\n root: {\n padding: \"20px\",\n },\n infoContainer: {\n textAlign: \"center\",\n },\n info: {\n display: \"inline-block\",\n padding: \"40px 30px\",\n },\n leftFeature: {\n textAlign: \"center\",\n },\n contentText: {\n fontSize: \"18px\",\n fontWeight: 500,\n textAlign: \"center\",\n marginTop: \"10px\",\n marginLeft: \"0\",\n },\n bullet: {\n backgroundColor: \"#3F67F6\",\n color: \"#FFF\",\n fontSize: \"30px\",\n width: \"80px\",\n height: \"80px\",\n borderRadius: \"50%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n}));\n\nconst About: React.FC = () => {\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n const classes = useStyles();\n return (\n <>\n
\n \n \n About Us\n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n

01

\n
\n \n Detect and get your skin issue resolved\n \n
\n
\n
\n \n \n \n \n {/* */}\n

02

\n
\n \n Oily and dry skin analyser\n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n {/* */}\n

03

\n
\n\n \n Personalized Medicinal Plant-Based Skin Care\n \n
\n
\n
\n \n \n \n \n {/* */}\n

04

\n
\n\n \n Personalize your daily skincare routine using technology\n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n {/* */}\n

05

\n
\n\n \n Get personalized non-prescriptive skincare product recommendation\n \n
\n
\n
\n \n \n \n \n {/* */}\n

06

\n
\n\n \n Test your knowledge about Dermatology\n
\n
\n \n
\n
\n
\n \n
\n \n
\n \n
\n \n );\n};\n\nexport default About;\n","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiAvatar', slot);\n}\nconst avatarClasses = generateUtilityClasses('MuiAvatar', ['root', 'colorDefault', 'circular', 'rounded', 'square', 'img', 'fallback']);\nexport default avatarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alt\", \"children\", \"className\", \"component\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Person from '../internal/svg-icons/Person';\nimport { getAvatarUtilityClass } from './avatarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n colorDefault\n } = ownerState;\n const slots = {\n root: ['root', variant, colorDefault && 'colorDefault'],\n img: ['img'],\n fallback: ['fallback']\n };\n return composeClasses(slots, getAvatarUtilityClass, classes);\n};\nconst AvatarRoot = styled('div', {\n name: 'MuiAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.colorDefault && styles.colorDefault];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none'\n}, ownerState.variant === 'rounded' && {\n borderRadius: (theme.vars || theme).shape.borderRadius\n}, ownerState.variant === 'square' && {\n borderRadius: 0\n}, ownerState.colorDefault && _extends({\n color: (theme.vars || theme).palette.background.default\n}, theme.vars ? {\n backgroundColor: theme.vars.palette.Avatar.defaultBg\n} : {\n backgroundColor: theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n})));\nconst AvatarImg = styled('img', {\n name: 'MuiAvatar',\n slot: 'Img',\n overridesResolver: (props, styles) => styles.img\n})({\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image. The property isn't supported by IE11.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n});\nconst AvatarFallback = styled(Person, {\n name: 'MuiAvatar',\n slot: 'Fallback',\n overridesResolver: (props, styles) => styles.fallback\n})({\n width: '75%',\n height: '75%'\n});\nfunction useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet\n}) {\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n setLoaded(false);\n let active = true;\n const image = new Image();\n image.onload = () => {\n if (!active) {\n return;\n }\n setLoaded('loaded');\n };\n image.onerror = () => {\n if (!active) {\n return;\n }\n setLoaded('error');\n };\n image.crossOrigin = crossOrigin;\n image.referrerPolicy = referrerPolicy;\n image.src = src;\n if (srcSet) {\n image.srcset = srcSet;\n }\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n return loaded;\n}\nconst Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAvatar'\n });\n const {\n alt,\n children: childrenProp,\n className,\n component = 'div',\n imgProps,\n sizes,\n src,\n srcSet,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let children = null;\n\n // Use a hook instead of onError on the img element to support server-side rendering.\n const loaded = useLoaded(_extends({}, imgProps, {\n src,\n srcSet\n }));\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== 'error';\n const ownerState = _extends({}, props, {\n colorDefault: !hasImgNotFailing,\n component,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n if (hasImgNotFailing) {\n children = /*#__PURE__*/_jsx(AvatarImg, _extends({\n alt: alt,\n src: src,\n srcSet: srcSet,\n sizes: sizes,\n ownerState: ownerState,\n className: classes.img\n }, imgProps));\n } else if (childrenProp != null) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/_jsx(AvatarFallback, {\n className: classes.fallback\n });\n }\n return /*#__PURE__*/_jsx(AvatarRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n */\n imgProps: PropTypes.object,\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The shape of the avatar.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default Avatar;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","import React from \"react\";\nimport CountUp from \"react-countup\";\nimport { Grid } from \"@mui/material\";\nimport PeopleIcon from \"@mui/icons-material/People\";\nimport countMap from \"../images/countmap.jpg\";\n//import StarIcon from \"@mui/icons-material/Star\";\nimport EventIcon from \"@mui/icons-material/Event\";\nimport \"../styles/Stats.css\";\n\nconst Number: React.FC = () => {\n return (\n
\n \n \n
\n
\n \n
\n

\n \n

\n
\n

Employees

\n
\n
\n\n \n\n\n \n
\n
\n \n
\n

\n \n

\n
\n

Years In Market

\n
\n
\n {/* \n
\n
\n \n
\n

\n \n

\n
\n

Average Employee Rating

\n
\n
*/}\n
\n
\n );\n};\n\nexport default Number;\n","import React from \"react\";\nimport { Grid, Typography, Container, Button, Avatar } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport map from \"../images/map.jpg\";\nimport Number from \"../sections/Number\";\n//import Carousel from \"../sections/Happy\";\nimport FadeIn from \"../sections/FadeIn\";\n// import LinkedIn from '@mui/icons-material/LinkedIn';\n//import Contact from \"../sections/Contact\";\nimport Money from \"../images/money.svg\";\n//import Smile from \"../images/smile.svg\";\nimport Footer from \"../sections/Footer2\";\nimport Happy from \"../sections/Happy\";\nimport Pajamas from \"../images/pajamas.jpg\";\nimport Ai from \"../images/AI.jpg\";\nimport Challenges from \"../images/Challenges.jpeg\";\nimport NightOwl from \"../images/NightOwl.jpeg\";\nimport Mentor from \"../images/Mentor.jpeg\";\nimport Diversity from \"../images/Diversity.jpg\";\nimport AdsComponent from \"../AdsComponent\";\nconst useStyles = makeStyles((theme) => ({\n map: {\n // backgroundImage: `url(${map})`,\n background: \"#3F67F6\",\n [theme.breakpoints.down(\"md\")]: {\n padding: \"50px 10px\",\n },\n },\n root: {\n padding: \"20px\",\n },\n infoContainer: {\n textAlign: \"center\",\n },\n info: {\n display: \"inline-block\",\n padding: \"40px 30px\",\n },\n contentText: {\n fontSize: \"18px\",\n fontWeight: 500,\n textAlign: \"center\",\n marginTop: \"10px\",\n marginLeft: \"0\",\n },\n leftFeature: {\n textAlign: \"center\",\n },\n careers: {\n // flexGrow: 1,\n width: \"100%\",\n paddingTop: \"5%\",\n paddingBottom: \"5%\",\n [theme.breakpoints.down(\"md\")]: {\n margin: \"0\",\n },\n },\n\n head: {\n color: \"#fff\",\n fontSize: \"2.6em\",\n fontWeight: 500,\n },\n content: {\n color: \"#fff\",\n fontSize: \"1.4em\",\n padding: \"25px\",\n },\n bottom: {\n background: \"#1E1E30\",\n borderRadius: 20,\n },\n button: {\n fontSize: \"14px\",\n textTransform: \"none\",\n letterSpacing: \"2px\",\n fontWeight: 600,\n border: \"2px solid #fff\",\n color: \"#000\",\n borderRadius: \"45px\",\n boxShadow: \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n transition: \"all 0.3s ease 0s\",\n cursor: \"pointer\",\n outline: \"none\",\n background: \"#5ce1e6\",\n \"&:hover\": {\n backgroundColor: \"#0a067a\",\n boxShadow: \"0px 15px 20px rgba(46, 229, 157, 0.4)\",\n color: \"#fff\",\n transform: \"translateY(-3px)\",\n },\n },\n submit: {\n fontSize: \"7 em\",\n textTransform: \"none\",\n letterSpacing: \"2px\",\n fontWeight: 1000,\n color: \"#000\",\n borderRadius: \"45px\",\n boxShadow: \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n transition: \"all 0.3s ease 0s\",\n cursor: \"pointer\",\n outline: \"none\",\n background: \"#5ce1e6\",\n margin: \"25 px\",\n \"&:hover\": {\n backgroundColor: \"#0a067a\",\n boxShadow: \"0px 15px 20px rgba(46, 229, 157, 0.4)\",\n color: \"#fff\",\n transform: \"translateY(-3px)\",\n },\n },\n card: {\n padding: \"30px\",\n paddingLeft: \"30px\",\n paddingRight: \"30px\",\n paddingTop: \"30px\",\n paddingBottom: \"30px\",\n fontSize: \"20px\",\n fontWeight: 600,\n margin: \"10px\",\n textAlign: \"center\",\n },\n center: {\n textAlign: \"center\",\n },\n buttonContainer: {\n marginTop: \"25px\",\n },\n touch1: {\n color: \"#FFF\",\n fontWeight: 700,\n fontSize: \"2em\",\n textAlign: \"center\",\n margin: \"20px auto 10px\",\n width: \"100%\",\n [theme.breakpoints.down(\"md\")]: {\n fontSize: \"1.6rem\",\n },\n },\n touch2: {\n color: \"#FFF\",\n fontWeight: 800,\n fontSize: \"3em\",\n textAlign: \"center\",\n margin: \"10px auto 20px\",\n width: \"100%\",\n [theme.breakpoints.down(\"md\")]: {\n fontSize: \"2rem\",\n },\n },\n touch3: {\n color: \"#FFF\",\n fontWeight: 500,\n fontSize: \"1.5em\",\n textAlign: \"center\",\n margin: \"15px auto 15px\",\n width: \"100%\",\n [theme.breakpoints.down(\"md\")]: {\n fontSize: \"1.1rem\",\n },\n },\n work: {\n color: \"#000\",\n fontWeight: 800,\n fontSize: \"2.5em\",\n textAlign: \"center\",\n marginTop: \"75px\",\n marginBottom: \"20px\",\n },\n\n project: {\n color: \"#FFF\",\n fontWeight: 5000,\n fontSize: \"2em\",\n textAlign: \"left\",\n marginBottom: \"10px\",\n marginLeft: \"22px\",\n },\n textField: {\n padding: \"10px 20px\",\n },\n}));\n\nconst Careers: React.FC = () => {\n const classes = useStyles();\n\n return (\n <>\n
\n
\n \n \n \n Work with us at AiM4u\n \n \n Careers\n \n \n Have a zeal to contribute to the real world and create a visible impact in the lives of people? We are looking for passionate people to join us on mission. \n \n \n \n
\n \n \n \n \n WHY WORK WITH US ?{\" \"}\n \n \n\n \n \n \n \n \n \n \n \n {/* \"Money\" */}\n \n \n \n Work on cutting edge technologies AI, ML and Flutter\n \n \n \n \n \n \n \n \n {/* \"send\" */}\n \n \n \n Develop your skills with skilled mentors\n \n \n \n \n \n \n\n \n \n \n \n \n \n {/* \"review\" */}\n \n \n\n \n Find newer comfort zones through challenges\n \n \n \n \n \n \n \n \n {/* \"peace\" */}\n \n \n\n \n Queer Friendly. Diversity is appreciated.\n \n \n \n \n \n \n\n \n \n \n \n \n \n {/* \"review\" */}\n \n \n\n \n Flexible Hours and vacations. Night Owls Welcome\n \n \n \n \n \n \n \n \n {/* \"peace\" */}\n \n \n\n \n Work in pajamas\n \n \n \n \n \n \n \n \n
\n \n {/* */}\n \n \n Interested in working with us?\n \n \n Please drop in an email with your resume and use subject :\n Opp_Name_Role for quicker response.\n \n\n \n Email Us!\n \n
\n\n
\n
\n \n );\n};\nexport default Careers;\n","import React, { useState } from \"react\";\nimport { Grid, Typography, Button, Container, Paper } from \"@mui/material\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport LocationCityIcon from \"@mui/icons-material/LocationCity\";\nimport TextField from \"@mui/material/TextField\";\nimport PhoneIcon from \"@mui/icons-material/Phone\";\nimport EmailIcon from \"@mui/icons-material/Email\";\nimport LocationOnIcon from \"@mui/icons-material/LocationOn\";\nimport map from \"../images/map.jpg\";\n\nconst useStyles = makeStyles((theme) => ({\n map: {\n backgroundImage: `url(${map})`,\n },\n contact: {\n flexGrow: 1,\n paddingTop: \"5%\",\n paddingBottom: \"5%\",\n },\n card: {\n borderRadius: 20,\n padding: \"30px\",\n height: \"100%\",\n },\n head: {\n color: \"#fff\",\n fontSize: \"2.6em\",\n fontWeight: 500,\n },\n content: {\n color: \"#fff\",\n fontSize: \"1.4em\",\n padding: \"5px\",\n },\n bottom: {\n background: \"#06379c\",\n borderRadius: 20,\n },\n button: {\n fontSize: \"14px\",\n textTransform: \"none\",\n letterSpacing: \"2px\",\n fontWeight: 600,\n border: \"2px solid #fff\",\n color: \"#000\",\n borderRadius: \"45px\",\n boxShadow: \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n transition: \"all 0.3s ease 0s\",\n cursor: \"pointer\",\n outline: \"none\",\n background: \"#06379c\",\n \"&:hover\": {\n backgroundColor: \"#0a067a\",\n boxShadow: \"0px 15px 20px rgba(46, 229, 157, 0.4)\",\n color: \"#fff\",\n transform: \"translateY(-3px)\",\n },\n },\n submit: {\n fontSize: \"14px\",\n textTransform: \"none\",\n letterSpacing: \"2px\",\n fontWeight: 600,\n color: \"#000\",\n borderRadius: \"45px\",\n boxShadow: \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n transition: \"all 0.3s ease 0s\",\n cursor: \"pointer\",\n outline: \"none\",\n background: \"#06379c\",\n \"&:hover\": {\n backgroundColor: \"#0a067a\",\n boxShadow: \"0px 15px 20px rgba(46, 229, 157, 0.4)\",\n color: \"#fff\",\n transform: \"translateY(-3px)\",\n },\n },\n center: {\n textAlign: \"center\",\n },\n buttonContainer: {\n marginTop: \"25px\",\n },\n touch: {\n color: \"#0000c1\",\n fontWeight: 600,\n fontSize: \"2.4em\",\n textAlign: \"center\",\n marginBottom: \"10px\",\n },\n textField: {\n padding: \"10px 20px\",\n },\n}));\n\nconst Contact: React.FC = () => {\n const classes = useStyles();\n const [firstName, setFirstName] = useState(\"\");\n const [lastName, setLastName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [num, setNum] = useState(\"\");\n const [msg, setMsg] = useState(\"\");\n\n const handleFirstName = (event) => {\n setFirstName(event.target.value);\n };\n const handleLastName = (event) => {\n setLastName(event.target.value);\n };\n const handleEmail = (event) => {\n setEmail(event.target.value);\n };\n const handleNum = (event) => {\n setNum(event.target.value);\n };\n const handleMsg = (event) => {\n setMsg(event.target.value);\n };\n return (\n
\n \n \n \n \n
\n \n
\n \n AiM4u Software Solutions Private Limited, 8th Floor, SP-TBI,Munshi Nagar, Andheri (W) Mumbai,Maharashtra 400058\n \n \n \n \n }\n href=\"https://goo.gl/maps/KTv6BYf7y8xzA5BT8\"\n >\n \n Google Maps\n \n \n
\n \n \n {/* \n \n Get In Touch\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Submit\n \n \n \n \n \n \n */}\n \n \n \n \n \n Contact Us Now\n \n \n \n \n }\n href=\"tel:+918657424574\"\n >\n \n {\" \"}\n +91 8657424574\n \n \n \n \n \n }\n href=\"mailto:support@aim4u.co.in\"\n >\n \n support@aim4u.co.in\n \n \n \n \n \n \n \n \n
\n );\n};\nexport default Contact;\n","import React from \"react\";\nimport Contact from \"../sections/Contact\";\nimport Footer from \"../sections/Footer2\";\n\nconst ContactPage: React.FC = () => {\n return (\n <>\n \n
\n \n );\n};\n\nexport default ContactPage;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"defaultProps\", \"mixins\", \"overrides\", \"palette\", \"props\", \"styleOverrides\"],\n _excluded2 = [\"type\", \"mode\"];\nimport { createBreakpoints, createSpacing } from '@mui/system';\nexport default function adaptV4Theme(inputTheme) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: adaptV4Theme() is deprecated.', 'Follow the upgrade guide on https://mui.com/r/migration-v4#theme.'].join('\\n'));\n }\n const {\n defaultProps = {},\n mixins = {},\n overrides = {},\n palette = {},\n props = {},\n styleOverrides = {}\n } = inputTheme,\n other = _objectWithoutPropertiesLoose(inputTheme, _excluded);\n const theme = _extends({}, other, {\n components: {}\n });\n\n // default props\n Object.keys(defaultProps).forEach(component => {\n const componentValue = theme.components[component] || {};\n componentValue.defaultProps = defaultProps[component];\n theme.components[component] = componentValue;\n });\n Object.keys(props).forEach(component => {\n const componentValue = theme.components[component] || {};\n componentValue.defaultProps = props[component];\n theme.components[component] = componentValue;\n });\n\n // CSS overrides\n Object.keys(styleOverrides).forEach(component => {\n const componentValue = theme.components[component] || {};\n componentValue.styleOverrides = styleOverrides[component];\n theme.components[component] = componentValue;\n });\n Object.keys(overrides).forEach(component => {\n const componentValue = theme.components[component] || {};\n componentValue.styleOverrides = overrides[component];\n theme.components[component] = componentValue;\n });\n\n // theme.spacing\n theme.spacing = createSpacing(inputTheme.spacing);\n\n // theme.mixins.gutters\n const breakpoints = createBreakpoints(inputTheme.breakpoints || {});\n const spacing = theme.spacing;\n theme.mixins = _extends({\n gutters: (styles = {}) => {\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, {\n [breakpoints.up('sm')]: _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])\n });\n }\n }, mixins);\n const {\n type: typeInput,\n mode: modeInput\n } = palette,\n paletteRest = _objectWithoutPropertiesLoose(palette, _excluded2);\n const finalMode = modeInput || typeInput || 'light';\n theme.palette = _extends({\n // theme.palette.text.hint\n text: {\n hint: finalMode === 'dark' ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.38)'\n },\n mode: finalMode,\n type: finalMode\n }, paletteRest);\n return theme;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested';\n\n// To support composition of theme.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider } from '@mui/private-theming';\nimport { exactProp } from '@mui/utils';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useTheme from '../useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst EMPTY_THEME = {};\nfunction InnerThemeProvider(props) {\n const theme = useTheme();\n return /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: typeof theme === 'object' ? theme : EMPTY_THEME,\n children: props.children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? InnerThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node\n} : void 0;\n\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: localTheme,\n children: /*#__PURE__*/_jsx(InnerThemeProvider, {\n children: children\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCollapseUtilityClass(slot) {\n return generateUtilityClass('MuiCollapse', slot);\n}\nconst collapseClasses = generateUtilityClasses('MuiCollapse', ['root', 'horizontal', 'vertical', 'entered', 'hidden', 'wrapper', 'wrapperInner']);\nexport default collapseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"addEndListener\", \"children\", \"className\", \"collapsedSize\", \"component\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"orientation\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { duration } from '../styles/createTransitions';\nimport { getTransitionProps } from '../transitions/utils';\nimport useTheme from '../styles/useTheme';\nimport { useForkRef } from '../utils';\nimport { getCollapseUtilityClass } from './collapseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `${orientation}`],\n entered: ['entered'],\n hidden: ['hidden'],\n wrapper: ['wrapper', `${orientation}`],\n wrapperInner: ['wrapperInner', `${orientation}`]\n };\n return composeClasses(slots, getCollapseUtilityClass, classes);\n};\nconst CollapseRoot = styled('div', {\n name: 'MuiCollapse',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.state === 'entered' && styles.entered, ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && styles.hidden];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height')\n}, ownerState.orientation === 'horizontal' && {\n height: 'auto',\n width: 0,\n transition: theme.transitions.create('width')\n}, ownerState.state === 'entered' && _extends({\n height: 'auto',\n overflow: 'visible'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto'\n}), ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && {\n visibility: 'hidden'\n}));\nconst CollapseWrapper = styled('div', {\n name: 'MuiCollapse',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => styles.wrapper\n})(({\n ownerState\n}) => _extends({\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex',\n width: '100%'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto',\n height: '100%'\n}));\nconst CollapseWrapperInner = styled('div', {\n name: 'MuiCollapse',\n slot: 'WrapperInner',\n overridesResolver: (props, styles) => styles.wrapperInner\n})(({\n ownerState\n}) => _extends({\n width: '100%'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto',\n height: '100%'\n}));\n\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/material-ui/react-stepper/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCollapse'\n });\n const {\n addEndListener,\n children,\n className,\n collapsedSize: collapsedSizeProp = '0px',\n component,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n orientation = 'vertical',\n style,\n timeout = duration.standard,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n orientation,\n collapsedSize: collapsedSizeProp\n });\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const timer = React.useRef();\n const wrapperRef = React.useRef(null);\n const autoTransitionDuration = React.useRef();\n const collapsedSize = typeof collapsedSizeProp === 'number' ? `${collapsedSizeProp}px` : collapsedSizeProp;\n const isHorizontal = orientation === 'horizontal';\n const size = isHorizontal ? 'width' : 'height';\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(ref, nodeRef);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const getWrapperSize = () => wrapperRef.current ? wrapperRef.current[isHorizontal ? 'clientWidth' : 'clientHeight'] : 0;\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n if (wrapperRef.current && isHorizontal) {\n // Set absolute position to get the size of collapsed content\n wrapperRef.current.style.position = 'absolute';\n }\n node.style[size] = collapsedSize;\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const wrapperSize = getWrapperSize();\n if (wrapperRef.current && isHorizontal) {\n // After the size is read reset the position back to default\n wrapperRef.current.style.position = '';\n }\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n if (timeout === 'auto') {\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n node.style[size] = `${wrapperSize}px`;\n node.style.transitionTimingFunction = transitionTimingFunction;\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback((node, isAppearing) => {\n node.style[size] = 'auto';\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n const handleExit = normalizedTransitionCallback(node => {\n node.style[size] = `${getWrapperSize()}px`;\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleExiting = normalizedTransitionCallback(node => {\n const wrapperSize = getWrapperSize();\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n if (timeout === 'auto') {\n // TODO: rename getAutoHeightDuration to something more generic (width support)\n // Actually it just calculates animation duration based on size\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n node.style[size] = collapsedSize;\n node.style.transitionTimingFunction = transitionTimingFunction;\n if (onExiting) {\n onExiting(node);\n }\n });\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTransitionDuration.current || 0);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => /*#__PURE__*/_jsx(CollapseRoot, _extends({\n as: component,\n className: clsx(classes.root, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: _extends({\n [isHorizontal ? 'minWidth' : 'minHeight']: collapsedSize\n }, style),\n ownerState: _extends({}, ownerState, {\n state\n }),\n ref: handleRef\n }, childProps, {\n children: /*#__PURE__*/_jsx(CollapseWrapper, {\n ownerState: _extends({}, ownerState, {\n state\n }),\n className: classes.wrapper,\n ref: wrapperRef,\n children: /*#__PURE__*/_jsx(CollapseWrapperInner, {\n ownerState: _extends({}, ownerState, {\n state\n }),\n className: classes.wrapperInner,\n children: children\n })\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The width (horizontal) or height (vertical) of the container when collapsed.\n * @default '0px'\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * The transition orientation.\n * @default 'vertical'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default duration.standard\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nCollapse.muiSupportAuto = true;\nexport default Collapse;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\nconst AccordionContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n AccordionContext.displayName = 'AccordionContext';\n}\nexport default AccordionContext;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getAccordionUtilityClass(slot) {\n return generateUtilityClass('MuiAccordion', slot);\n}\nconst accordionClasses = generateUtilityClasses('MuiAccordion', ['root', 'rounded', 'expanded', 'disabled', 'gutters', 'region']);\nexport default accordionClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"defaultExpanded\", \"disabled\", \"disableGutters\", \"expanded\", \"onChange\", \"square\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Collapse from '../Collapse';\nimport Paper from '../Paper';\nimport AccordionContext from './AccordionContext';\nimport useControlled from '../utils/useControlled';\nimport accordionClasses, { getAccordionUtilityClass } from './accordionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n square,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', !square && 'rounded', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n region: ['region']\n };\n return composeClasses(slots, getAccordionUtilityClass, classes);\n};\nconst AccordionRoot = styled(Paper, {\n name: 'MuiAccordion',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${accordionClasses.region}`]: styles.region\n }, styles.root, !ownerState.square && styles.rounded, !ownerState.disableGutters && styles.gutters];\n }\n})(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n position: 'relative',\n transition: theme.transitions.create(['margin'], transition),\n overflowAnchor: 'none',\n // Keep the same scrolling position\n '&:before': {\n position: 'absolute',\n left: 0,\n top: -1,\n right: 0,\n height: 1,\n content: '\"\"',\n opacity: 1,\n backgroundColor: (theme.vars || theme).palette.divider,\n transition: theme.transitions.create(['opacity', 'background-color'], transition)\n },\n '&:first-of-type': {\n '&:before': {\n display: 'none'\n }\n },\n [`&.${accordionClasses.expanded}`]: {\n '&:before': {\n opacity: 0\n },\n '&:first-of-type': {\n marginTop: 0\n },\n '&:last-of-type': {\n marginBottom: 0\n },\n '& + &': {\n '&:before': {\n display: 'none'\n }\n }\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n };\n}, ({\n theme,\n ownerState\n}) => _extends({}, !ownerState.square && {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderTopRightRadius: (theme.vars || theme).shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderBottomRightRadius: (theme.vars || theme).shape.borderRadius,\n // Fix a rendering issue on Edge\n '@supports (-ms-ime-align: auto)': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n }\n}, !ownerState.disableGutters && {\n [`&.${accordionClasses.expanded}`]: {\n margin: '16px 0'\n }\n}));\nconst Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordion'\n });\n const {\n children: childrenProp,\n className,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded: expandedProp,\n onChange,\n square = false,\n TransitionComponent = Collapse,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'Accordion',\n state: 'expanded'\n });\n const handleChange = React.useCallback(event => {\n setExpandedState(!expanded);\n if (onChange) {\n onChange(event, !expanded);\n }\n }, [expanded, onChange, setExpandedState]);\n const [summary, ...children] = React.Children.toArray(childrenProp);\n const contextValue = React.useMemo(() => ({\n expanded,\n disabled,\n disableGutters,\n toggle: handleChange\n }), [expanded, disabled, disableGutters, handleChange]);\n const ownerState = _extends({}, props, {\n square,\n disabled,\n disableGutters,\n expanded\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n square: square\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: summary\n }), /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: expanded,\n timeout: \"auto\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(\"div\", {\n \"aria-labelledby\": summary.props.id,\n id: summary.props['aria-controls'],\n role: \"region\",\n className: classes.region,\n children: children\n })\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Accordion.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: chainPropTypes(PropTypes.node.isRequired, props => {\n const summary = React.Children.toArray(props.children)[0];\n if (isFragment(summary)) {\n return new Error(\"MUI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n }\n if (! /*#__PURE__*/React.isValidElement(summary)) {\n return new Error('MUI: Expected the first child of Accordion to be a valid element.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, expands the accordion by default.\n * @default false\n */\n defaultExpanded: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, it removes the margin between two expanded accordion items and the increase of height.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n expanded: PropTypes.bool,\n /**\n * Callback fired when the expand/collapse state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {boolean} expanded The `expanded` state of the accordion.\n */\n onChange: PropTypes.func,\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Collapse\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Accordion;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"expandIcon\", \"focusVisibleClassName\", \"onClick\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport AccordionContext from '../Accordion/AccordionContext';\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from './accordionSummaryClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return _extends({\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n }\n }, !ownerState.disableGutters && {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n });\n});\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0'\n}, !ownerState.disableGutters && {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n}));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(({\n theme\n}) => ({\n display: 'flex',\n color: (theme.vars || theme).palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n}));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const ownerState = _extends({}, props, {\n expanded,\n disabled,\n disableGutters\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, _extends({\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionSummary;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getAccordionDetailsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionDetails', slot);\n}\nconst accordionDetailsClasses = generateUtilityClasses('MuiAccordionDetails', ['root']);\nexport default accordionDetailsClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getAccordionDetailsUtilityClass } from './accordionDetailsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAccordionDetailsUtilityClass, classes);\n};\nconst AccordionDetailsRoot = styled('div', {\n name: 'MuiAccordionDetails',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(1, 2, 2)\n}));\nconst AccordionDetails = /*#__PURE__*/React.forwardRef(function AccordionDetails(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionDetails'\n });\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionDetailsRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionDetails.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionDetails;","import React from \"react\";\nimport {\n Container,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n} from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport Footer from \"../sections/Footer2\";\n\nconst data = [\n {\n title: \"Is there any cost to detect skin issues on DermaLens app?\",\n content: \"No. We believe our research should be available for everyone. \",\n },\n {\n title: \"Do I have to pay to consult dermatologists? \",\n content:\n \"Yes. The dermatologists charge for the consultation. You can choose a dermatologist based on your availability.\",\n },\n {\n title: \"Are these doctors credible?\",\n content:\n \"Yes. We do thorough research about their degrees before onboarding them.\",\n },\n {\n title: \"Does more percentage means more probability? \",\n content:\n \"Yes. Usually, when your skin issues match with the images in our database, you get high percentage for a particular disease.In this case you should get your skin issues checked by a healthcare professional.\",\n },\n {\n title: \"\tWhat happens if the doctor does not turn up for the video call?\",\n content:\n \"We do not deduct the money from your wallet. Only once the dermatologists give you their diagnosis, we pay to the dermatologist from your wallet.\",\n },\n {\n title: \"\tHow accurate are the results?\",\n content:\n \"Our results are highly accurate. Our clinical trials have been approved by leading hospitals of Mumbai and the research is backed by renowned dermatologists across India. There might be cases in which a prominent disease gets a lower percentage. That is mainly because of cropping issue or lighting issue. Feel free to share images of skin issues and dermatologist report or biopsy report at support@aim4u.co.in. \",\n },\n {\n title: \"Does Dermalens work with dermatologists?\",\n content: \"Yes. We work with a team of experienced dermatologists.\",\n },\n {\n title: \"\tWhen should you use Dermalens to detect skin issues?\",\n content:\n \"If you have a slightest doubt or see abnormal skin patterns of the body, get the area checked. \",\n },\n {\n title: \"\tDo dermatologists check the images you upload?\",\n content:\n \"No. Only when you consult a dermatologist and allow them to see your images, they will be able to see.\",\n },\n {\n title: \"\tWill dermatologist ask for the skin images?\",\n content:\n \"Yes. At times, because of issues with video call bandwidth, the doctor may ask you to send the image of affected area.\",\n },\n];\n\nconst useStyles = makeStyles((theme?: any) => ({\n heading: {\n fontSize: theme.typography.pxToRem(20),\n fontWeight: theme.typography.fontWeightRegular,\n },\n content: {\n fontSize: theme.typography.pxToRem(17),\n fontWeight: theme.typography.fontWeightRegular,\n },\n}));\n\nconst FAQs: React.FC = () => {\n const classes = useStyles();\n return (\n <>\n
\n \n \n Frequently Asked Questions\n
\n
\n {data.map((d, i) => (\n \n }\n style={{ background: \"rgb(211 234 248)\" }}\n >\n {d.title}\n \n \n
{d.content}
\n
\n
\n ))}\n
\n \n \n \n
\n
\n \n );\n};\n\nexport default FAQs;\n","\nimport { Typography, Container } from \"@mui/material\";\nimport makeStyles from '@mui/styles/makeStyles';\nimport Footer from \"../sections/Footer2\";\nimport FadeIn from \"../sections/FadeIn\";\n\nconst useStyles = makeStyles((theme) => ({\n touch: {\n marginTop: \"50px\",\n color: \"#FFF\",\n fontWeight: 700,\n fontSize: \"4em\",\n textAlign: \"center\",\n marginBottom: \"20px\",\n fontFamily: \"ui-serif\",\n },\n}));\n\nconst About: React.FC = () => {\n const classes = useStyles();\n return (\n <>\n
\n \n \n Privacy Policy\n \n \n \n
\n We, M/s.AiM4u Software Solutions Pvt.Ltd\n (hereinafter referred to as the “Company”) having\n its registered office at 8th Floor, SP-TBI, Munshi Nagar,Andheri (W), Mumbai, Maharashtra 400058\n represented by its members, where such expression shall, unless\n repugnant to the context thereof, be deemed to include its\n respective legal heirs, representatives, administrators, permitted\n successors and assigns. The creator of this Privacy Policy ensures\n steady commitment to your privacy with regard to the protection of\n your invaluable information. This privacy policy contains\n information about an online website called https://www.aim4u.co.in including related website and\n mobile application called ‘DermaLens’ (collectively called the“\n Platform”). In order to provide You with Our\n uninterrupted use of services, we may collect and, in some\n circumstances, disclose information about you with your permission.\n To ensure better protection of Your privacy, We provide this notice\n explaining Our information collection and disclosure policies, and\n the choices You make about the way Your information is collected and\n used.\n
\n
 
\n
\n This Privacy Policy shall be in compliance with the General Data\n Protection Regulation (GDPR) in effect from June 20, 2023 and any and\n all provisions that may read to the contrary shall be deemed to be\n void and unenforceable as of that date. If you do not agree with the\n terms and conditions of our Privacy Policy, including in relation to\n the manner of collection or use of your information, please do not\n use or access the Site. If you have any questions or concerns\n regarding this Privacy Policy, you should contact our Customer\n Support Desk at support@aim4u.co.in\n
\n
 
\n
\n ANY CAPITALIZED WORDS USED HENCEFORTH SHALL HAVE THE MEANING\n ACCORDED TO THEM UNDER THIS AGREEMENT. FURTHER, ALL HEADING USED\n HEREIN ARE ONLY FOR THE PURPOSE OF ARRANGING THE VARIOUS PROVISIONS\n OF THE AGREEMENT IN ANY MANNER. NEITHER THE USER NOR THE CREATERS OF\n THIS PRIVACY POLICY MAY USE THE HEADING TO INTERPRET THE PROVISIONS\n CONTAINED WITHIN IT IN ANY MANNER.\n
\n
\n  \n
\n
    \n \n
  1. DEFINITIONS:
  2. \n
    \n
\n
    \n
  1. \n “We”, “Our”, and “Us” shall mean and refer to the creators of this\n privacy policy.\n
  2. \n
  3. \n “You”,“Your”, “Yourself” and “User” shall mean and refer to\n natural and legal individuals who use the Website.\n
  4. \n
  5. \n “Personal Information” shall mean and refer to any personally\n identifiable information that We may collect from You. For removal\n of any doubts, please refer to Clause 2.\n
  6. \n
  7. \n “Third Parties” refer to any website, company or individual apart\n from the User and the creator of this Website.\n
  8. \n
\n
\n  \n
\n
    \n \n
  1. INFORMATION WE COLLECT
  2. \n
    \n
\n
\n We are committed to respecting Your online privacy. We further\n recognize Your need for appropriate protection and management of any\n Personal Information You share with us. We may collect the following\n information:\n
\n
    \n
  1. \n Personal data such as, but not limited to name, age, gender,\n location, email-id, etc.\n
  2. \n
  3. The images of your harmed/infected skin.
  4. \n
  5. \n Tracking Information such as, but not limited to the IP address of\n your device and Device ID when connected to the Internet. [This\n information may include the URL that you just came from (whether\n this URL is on the Website or not), which URL you next go to\n (whether this URL is on the Website or not), your computer browser\n information, and other information associated with your\n interaction with the Site.]\n
  6. \n
  7. \n Payment Gateways of third party including details of billing,\n Debit and Credit Card details\n
  8. \n
  9. Details of Website/App usage for analytics.
  10. \n
\n
\n This privacy policy also applies to data we collect from users who\n are not registered as members of this site, including, but not\n limited to, browsing behaviour, pages viewed etc.We also collect and\n store personal information provided by you from time to time on the\n Site. We only collect and use such information from you that we\n consider necessary for achieving a seamless, efficient and safe\n experience, customized to your needs including:\n
\n
    \n
  1. To enable the provision of services opted for by you;
  2. \n
  3. \n To communicate necessary account and service related information\n from time to time;\n
  4. \n
  5. To allow you to receive quality customer care services;
  6. \n
  7. To comply with applicable laws, rules and regulations
  8. \n
\n
 
\n
\n Where any service requested by you involves a third party, such\n information as is reasonably necessary by the Company to carry out\n your service request may be shared with such third party.\n
\n
\n We also do use your contact information to send you offers based on\n your interests and prior activity. The Company may also use contact\n information internally to direct its efforts for service\n improvement, but shall immediately delete all such information upon\n withdrawal of your consent for the same through our ‘\n unsubscribe’ button or through an email to be sent\n to support@aim4u.co.in\n
\n
 
\n
\n We collect and store your search details on the Website, including\n your search history, the usage of the website and the features and\n time you have used the website for.
Further, you may from\n time to time choose to provide payment related financial information\n (credit card, debit card, bank account details, billing address\n etc.) on the Site. We are committed to keeping all such sensitive\n data/information safe at all times and ensure that such\n data/information is only transacted over secure Site of approved\n payment gateways which are digitally encrypted, and provide the\n highest possible degree of care available under the technology\n presently in use. We shall collect and store all such information in\n our internal Company servers for a finite period time, as long as\n you are a User of the Website, and shall immediately delete all such\n information upon expiry of your Usership. We shall also delete all\n aforementioned communication upon withdrawal of Usership of any\n single Party to the communication.\n
\n
 
\n
\n The Company will not use your financial information for any purpose\n other than to complete a transaction with you. To the extent\n possible, we provide you the option of not divulging any specific\n information that you wish for us not to collect, store or use. You\n may also choose not to use a particular service or feature on the\n Site, and opt out of any non-essential communications from the\n Website.\n
\n
 
\n
\n Further, transacting over the internet has inherent risks which can\n only be avoided by you following security practices yourself, such\n as not revealing account/login related information to any other\n person and informing our customer care team about any suspicious\n activity or where your account has/may has been compromised.\n
\n
 
\n
\n At every stage prior to, during or after information collection, you\n have the right to access all personally identifiable information\n provided, rectify or alter all personally identifiable information\n provided, restrict the level of information to be retained as per\n your sole discretion and object to the retention, use and potential\n disclosure of the personally identifiable information.\n
\n
 
\n
    \n \n
  1. OUR USE OF YOUR INFORMATION
  2. \n
    \n
\n
The information provided by You shall be used to
\n
    \n
  1. Improve and develop new products, services, and features;
  2. \n
  3. \n The App receives the image of your harmed skin which is shared by\n you shall be used to detect the skin disease if any , and alerts\n you to consult a doctor. The Mobile Application detects up to ten\n types of skin diseases you may suffer from and the results of the\n same can be shared with the doctors for quick and accurate\n diagnosis of skin diseases. The results are completely based on\n the image you shared which will be analyzed and the results\n displayed to that effect. The photograph shared by you will be\n stored in a secured database which will be used a reference\n framework for future research. This information will be retained\n by us and it will not be shared to any third parties for any\n purpose.\n
  4. \n
\n
\n For more details about the nature of such communications, please\n refer to our Terms of Service. Further, Your personal data and\n Sensitive Personal data may be collected and stored by Us for\n internal record.\n
\n
\n We use Your tracking information such as IP addresses, and or Device\n ID to help identify you and to gather broad demographic information.\n We will not sell, license or trade Your personal information. We\n will not share your personal information with others unless they are\n acting under our instructions or we are required to do so by law.\n
\n
\n Information collected via Our server logs includes users' IP\n addresses and the pages visited; this will be used to manage the web\n system and troubleshoot problems. We also use third-party analytics,\n tracking, optimization and targeting tools to understand how users\n engage with our website so that we can improve it and cater\n personalized content/ads according to their preferences.\n
\n
 
\n
    \n \n
  1. HOW INFORMATION IS COLLECTED
  2. \n
    \n
\n
\n Before or at the time of collecting personal information, we will\n identify the purposes for which information is being collected. If\n the same is not identified to you, you have the right to request the\n Company to elucidate the purpose of collection of said personal\n information, pending fulfilment of which you shall not be mandated\n to disclose any information whatsoever.\n
\n
 
\n
\n We will collect and use your personal information solely with the\n objective of fulfilling those purposes specified by us, within the\n scope of consent of the individual concerned or as required by law.\n We will only retain personal information as long as necessary for\n the fulfilment of those purposes. We will collect personal\n information by lawful and fair means and with the knowledge and\n consent of the individual concerned.\n
\n
 
\n
\n Personal data should be relevant to the purposes for which it is to\n be used, and, to the extent necessary for those purposes, should be\n accurate, complete, and up-to-date.\n
\n
 
\n
    \n \n
  1. COOKIES
  2. \n
    \n
\n
\n We use data collection devices such as “cookies” on certain pages of\n our Websites. “Cookies” are small files sited on your hard drive\n that assist us in providing customized services. We also offer\n certain features that are only available through the use of a\n “cookie”. Cookies can also help us provide information, which is\n targeted to your interests. Cookies may be used to identify logged\n in or registered users. Our Website uses session cookies to ensure\n that you have a good experience. These cookies contain a unique\n number, your 'session ID', which allows our server to recognise your\n computer and 'remember' what you've done on the site. The benefits\n of this are:\n
\n
    \n
  1. \n You only need to log in once if you're navigating secure areas of\n the site\n
  2. \n
  3. \n Our server can distinguish between your computer and other users,\n so you can see the information that you have requested.\n
  4. \n
\n
\n You can choose to accept or decline cookies by modifying your\n browser settings if you prefer. This may prevent you from taking\n full advantage of the Website. We also use various third-party\n cookies for usage, behavioral, analytics and preferences data. The\n following are the different types of Cookies used on the Website:\n
{\" \"}\n
\n
    \n
  1. \n Authentication cookies:To identify the user and\n share the content that he or she requested for.\n
  2. \n
  3. \n Functionality cookies: For customized user\n experience and resuming past course progress.\n
  4. \n
  5. \n Tracking, optimization and targeting cookies:To\n capture usage metric on device, operating system, browser etc. To\n capture behavioral metrics for better content delivery. To cater\n and suggest most suited products and services.\n
    {\" \"}\n
  6. \n
\n
 
\n
    \n \n
  1. EXTERNAL LINKS ON THE WEBSITE
  2. \n
    \n
\n
\n The Website may include advertisements, hyperlinks to other\n websites, applications, content or resources. We have no control\n over any websites or resources, which are provided by companies or\n persons other than Us. You acknowledge and agree that We are not\n responsible for the availability of any such external sites or\n resources, and do not endorse any advertising, services/products or\n other materials on or available from such websites or resources. You\n acknowledge and agree that We are not liable for any loss or damage\n which may be incurred by you as a result of the availability of\n those external sites or resources, or as a result of any reliance\n placed by you on the completeness, accuracy or existence of any\n advertising, products or other materials on, or available from, such\n websites or resources. These external websites and resource\n providers may have their own privacy policies governing the\n collection, storage, retention and disclosure of Your Personal\n Information that You may be subject to. We recommend that You enter\n the external Website and review their privacy policy. If you require\n a list of third-party links on our Website, please write to us at\n support@aim4u.co.in and we will provide you with the same.\n
\n
 
\n
    \n \n
  1. YOUR RIGHTS
  2. \n
    \n
\n
\n Unless subject to an exemption, you have the following rights with\n respect to your personal data:\n
\n
    \n
  1. \n The right to request a copy of your personal data which we hold\n about you;\n
  2. \n
  3. \n The right to request for any correction to any personal data if it\n is found to be inaccurate or out of date;\n
  4. \n
  5. \n The right to withdraw Your consent to the processing at any time;\n
  6. \n
  7. The right to object to the processing of personal data;
  8. \n
  9. The right to lodge a complaint with a supervisory authority
  10. \n
  11. \n The right to obtain information as to whether personal data are\n transferred to a third country or to an international\n organization.\n
  12. \n
\n
\n  \n
\n
    \n \n
  1. CONFIDENTIALITY
  2. \n
    \n
\n
\n You further acknowledge that the Website may contain information\n which is designated confidential by Us and that You shall not\n disclose such information without our prior written consent. Your\n information is regarded as confidential and therefore will not be\n divulged to any third party, unless if legally required to do so to\n the appropriate authorities. We will not sell, share, or rent your\n personal information to any third party or use your e-mail address\n for unsolicited mail. Any emails sent by us will only be in\n connection with the provision of agreed services, and you retain\n sole discretion to seek for discontinuation of such communications\n at any point of time.\n
\n
\n  \n
\n
    \n \n
  1. OTHER INFORMATION COLLECTORS
  2. \n
    \n
\n
\n Except as otherwise expressly included in this Privacy Policy, this\n document only addresses the use and disclosure of information we\n collect from you. To the extent that you disclose your information\n to other parties, whether they are on our Websites or on other sites\n throughout the Internet, different rules may apply to their use or\n disclosure of the information you disclose to them. To the extent\n that we use third party advertisers, they adhere to their own\n privacy policies. Since we do not control the privacy policies of\n the third parties, you are subject to ask questions before you\n disclose your personal information to others.\n
\n
\n  \n
\n
    \n \n {\" \"}\n
  1. OUR DISCLOSURE OF YOUR INFORMATION
  2. \n
    \n
\n
\n Due to the existing regulatory environment, we cannot ensure that\n all of your private communications and other personally identifiable\n information will never be disclosed in ways not otherwise described\n in this Privacy Policy. By way of example (without limiting and\n foregoing), we may be forced to disclose information to the\n government, law enforcement agencies or third parties. Therefore,\n although we use industry standard practices to protect your privacy,\n we do not promise, and you should not expect, that your personally\n identifiable information or private communications would always\n remain private. We do, however assure you that any and all\n disclosure of your personally identifiable information shall be\n personally intimated to you through an email sent to your provided\n email address.\n
\n
\n As a matter of policy, we do not sell or rent any personally\n identifiable information about you to any third party. However, the\n following describes some of the ways that your personally\n identifiable information may be disclosed:\n
\n
    \n
  1. \n External Service Providers: There may be a number of services\n offered by external service providers that help you use our\n Websites. If you choose to use these optional services, and in the\n course of doing so, disclose information to the external service\n providers, and/or grant them permission to collect information\n about you, then their use of your information is governed by their\n privacy policy.\n
  2. \n
  3. \n Law and Order: We cooperate with law enforcement inquiries, as\n well as other third parties to enforce laws, such as: intellectual\n property rights, fraud and other rights. We can (and you authorize\n us to) disclose any information about you to law enforcement and\n other government officials as we, in our sole discretion, believe\n necessary or appropriate, in connection with an investigation of\n fraud, intellectual property infringements, or other activity that\n is illegal or may expose us or you to legal liability.\n
  4. \n
\n
\n  \n
\n
    \n \n
  1. ACCESSING, REVIEWING AND CHANGING YOUR PROFILE
  2. \n
    \n
\n
\n Following registration, You can review and change the information\n You submitted at the stage of registration, except Email ID. An\n option for facilitating such change shall be present on the Website\n and such change shall be facilitated by the User. If You change any\n information, We may or may not keep track of Your old information.\n We will not retain in our files information you have requested to\n remove for certain circumstances, such as to resolve disputes,\n troubleshoot problems and enforce our terms and conditions. Such\n prior information shall be completely removed from our databases,\n including stored ‘back up’ systems. If you believe that any\n information we are holding on you is incorrect or incomplete, or to\n remove Your profile so that others cannot view it, the User needs to\n remediate, and promptly correct any such incorrect information.\n
\n
 
\n
    \n \n
  1. CONTROL OF YOUR PASSWORD
  2. \n
    \n
\n
\n When you sign up to become a Member, you will also be asked to\n choose a password. You are entirely responsible for maintaining the\n confidentiality of your password. It is important that you protect\n it against unauthorized access of your account and information by\n choosing your password carefully and keeping your password and\n computer secure by signing out after using our services.\n
\n
\n You agree not to use the account, username, email address or\n password of another Member at any time or to disclose your password\n to any third party. You are responsible for all actions taken with\n your login information and password, including fees. If you lose\n control of your password, you may lose substantial control over your\n personally identifiable information and may be subject to legally\n binding actions taken on your behalf. Therefore, if your password\n has been compromised for any reason, you should immediately change\n your password. You agree to notify us immediately if you suspect any\n consistent unauthorized use of your account or access to your\n password even after changing it\n
\n
\n  \n
\n
    \n \n
  1. SECURITY
  2. \n
    \n
\n
\n We treat data as an asset that must be protected against loss and\n unauthorized access. We employ many different security techniques to\n protect such data from unauthorized access by members inside and\n outside the Company. We follow generally accepted industry standards\n to protect the Personal Information submitted to Us and information\n that we have accessed.\n
\n
 
\n
    \n \n
  1. SEVERABILITY
  2. \n
    \n
\n
\n Each paragraph of this privacy policy shall be and remain separate\n from and independent of and severable from all and any other\n paragraphs herein except where otherwise expressly indicated or\n indicated by the context of the agreement. The decision or\n declaration that one or more of the paragraphs are null and void\n shall have no effect on the remaining paragraphs of this privacy\n policy.\n
\n
\n  \n
\n
    \n \n
  1. AMENDMENT
  2. \n
    \n
\n
\n Our Privacy Policy may change from time to time. The most current\n version of the policy will govern our use of your information and\n will always be at the Website.\n
\n
\n  \n
\n
    \n \n
  1. AUTOMATED DECISION MAKING
  2. \n
    \n
\n
\n As a responsible company, we do not use automatic decision-making or\n profiling.\n
\n
\n  \n
\n \n \n \n \n
    \n \n
  1. \n CONSENT WITHDRAWAL, DATA DOWNLOAD & DATA REMOVAL REQUESTS\n
  2. \n
    \n
\n
\n To withdraw your consent, or to request the download or delete your\n data with us for any or all our products & services at any time,\n please email to support@aim4u.co.in from your registered email\n address.\n
\n
 
\n
    \n \n
  1. CONTACT US
  2. \n
    \n
\n
\n If you have any questions or concerns regarding this privacy policy,\n you should contact us by sending an e-mail to support@aim4u.co.in\n
\n \n
\n