{"version":3,"file":"static/js/main.c7591def.js","mappings":"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,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,G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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-43c6fea0.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.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/@emotion/styled/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/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/colorManipulator.js","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.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/extendSxProp.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/utils/capitalize/capitalize.js","../node_modules/@mui/utils/clamp/clamp.js","../node_modules/@mui/utils/deepmerge/deepmerge.js","../node_modules/@mui/utils/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/getDisplayName/getDisplayName.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/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/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-side-effect/lib/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/extends.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.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","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-helmet/es/Helmet.js","pages/HomePage/SponsorListing.js","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/utils/mix.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../node_modules/framer-motion/dist/es/animation/animators/instant.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/frameloop/microtask.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/src/observe.ts","../node_modules/src/InView.tsx","../node_modules/src/useInView.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","pages/HomePage/PosMachines.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","lib/api/index.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/composeClasses/composeClasses.js","../node_modules/@mui/utils/resolveProps/resolveProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.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/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/utils/setRef/setRef.js","../node_modules/@mui/utils/useForkRef/useForkRef.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/material/utils/useSlot.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/useEventCallback/useEventCallback.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/utils/useLazyRef/useLazyRef.js","../node_modules/@mui/utils/useOnMount/useOnMount.js","../node_modules/@mui/utils/useTimeout/useTimeout.js","../node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.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/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Alert/Alert.js","../node_modules/@mui/material/zero-styled/index.js","pages/HomePage/Enquiry.js","components/ui/FadeAnimation.js","pages/HomePage/index.js","pages/AboutUs/index.js","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/bi/index.mjs","../node_modules/react-icons/lu/index.mjs","../node_modules/react-icons/fa/index.mjs","../node_modules/react-icons/io5/index.mjs","pages/ContactUs/index.js","pages/Blog/index.js","pages/Blog/DetailedPage/index.jsx","pages/Category/BarcodePrinters/index.jsx","pages/Category/CashCountingMachines/index.jsx","pages/Category/CashDrawers/index.jsx","../node_modules/@mui/utils/useId/useId.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/utils/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/createChainedFunction/createChainedFunction.js","../node_modules/@mui/utils/ownerWindow/ownerWindow.js","../node_modules/@mui/base/unstable_useModal/ModalManager.js","../node_modules/@mui/utils/getScrollbarSize/getScrollbarSize.js","../node_modules/@mui/base/unstable_useModal/useModal.js","../node_modules/@mui/base/FocusTrap/FocusTrap.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.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/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","../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/utils/debounce.js","../node_modules/@mui/utils/debounce/debounce.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/react-icons/ri/index.mjs","../node_modules/react-icons/io/index.mjs","components/common/PopUp/index.jsx","pages/Category/DigitalSignage/index.jsx","pages/Category/PosMachines/index.jsx","pages/Category/SelfServiceKiosk/index.jsx","pages/Category/SelfServiceKiosk/products/index.jsx","pages/Category/ThermalPrinters/index.jsx","pages/Category/ThermalPrinters/products/index.jsx","pages/Category/BarcodeScanners/index.jsx","pages/Category/BarcodeScanners/products/index.jsx","pages/Category/MiniPc/index.jsx","pages/Category/MiniPc/products/index.jsx","pages/Support/TermsAndConditions/index.jsx","pages/Support/PrivacyPolicy/index.jsx","pages/Support/PageNotFound/index.jsx","../node_modules/react-icons/rx/index.mjs","components/common/Header/index.js","components/common/Footer/index.js","components/common/Loader/index.js","Routes.js","App.js","index.js"],"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'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, 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 LAYER: if (element.children.length) break\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: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\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 l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: 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; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\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 ? element.parent.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 { createCache as default };\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 { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } 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 isBrowser = \"object\" !== 'undefined';\nvar hasOwn = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.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\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.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 = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.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 = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.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 (hasOwn.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 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, React.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 (hasOwn.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__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-43c6fea0.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-43c6fea0.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.4\",\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\"import\": \"./dist/emotion-react.cjs.mjs\",\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\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\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\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\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\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\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\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\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.*\"\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.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.3\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.2\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\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\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\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 || !hasOwn.call(props, 'css')) {\n // $FlowFixMe\n return React.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 React.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, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\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 = React.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 useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n 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: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.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","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 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 { unitlessKeys as default };\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","/* 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 { murmur2 as default };\n","import * as React 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 || React.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 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","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|disableRemotePlayback|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 { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React 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 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 = React.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__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.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 { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\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 { newStyled as default };\n","'use client';\n\nimport * 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 && cache ? /*#__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;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.15.14\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'use client';\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';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\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 clampWrapper(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 (0, _clamp.default)(value, min, 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 */\nfunction 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 */\nfunction 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().` : (0, _formatMuiErrorMessage2.default)(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.` : (0, _formatMuiErrorMessage2.default)(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 */\nconst 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};\nexports.colorChannel = colorChannel;\nconst 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 */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 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 */\nfunction 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 */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(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}\nfunction 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 */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(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}\nfunction 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 */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(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}\nfunction 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 */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction 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}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\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}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\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 (0, _styledEngine.internal_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 // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\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 :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || 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 = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = 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 if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\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 }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\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};\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;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\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 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}","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/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\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.applyStyles = applyStyles;\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 { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\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}","import deepmerge from '@mui/utils/deepmerge';\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}\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 capitalize from '@mui/utils/capitalize';\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}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\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, outline, outlineColor);\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$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\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 outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import capitalize from '@mui/utils/capitalize';\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\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\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 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 _formatMuiErrorMessage from \"@mui/utils/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}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\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/internal-babel-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 if 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 { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","var t=function(){return t=Object.assign||function(t){for(var i,n=1,s=arguments.length;na.endVal;a.frameVal=n?a.endVal:a.frameVal,a.frameVal=Number(a.frameVal.toFixed(a.options.decimalPlaces)),a.printValue(a.frameVal),i1?a.options.decimal+r[1]:\"\",a.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()}},i.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},i.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},i.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},i.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)},i.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))},i.prototype.printValue=function(t){var i;if(this.el){var n=this.formattingFn(t);if(null===(i=this.options.plugin)||void 0===i?void 0:i.render)this.options.plugin.render(this.el,n);else if(\"INPUT\"===this.el.tagName)this.el.value=n;else\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=n:this.el.innerHTML=n}},i.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},i.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},i.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},i}();export{i as CountUp};\n","'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) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\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); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\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'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\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); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\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); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\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.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\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 */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\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];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\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])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\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];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\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;\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;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\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\n\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\n\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\n\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\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\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])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\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);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\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 } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\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]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\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);\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; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\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);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\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 */\n\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 */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\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);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\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) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\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);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\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 }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\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]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\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;\n }\n\n function toCSS() {\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.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\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.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\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); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\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.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\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\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\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]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\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]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\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]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\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]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\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]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\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.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\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));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\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]);\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]);\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]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\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);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\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]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\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]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\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]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\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());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\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;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\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 */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\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());\n }\n\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());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\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]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\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 */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\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 */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\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 */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\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];\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];\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];\n\n\n if (pathNodes.c && len > 1) {\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];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\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)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\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 */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\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\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\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]);\n }\n\n if (closed && length) {\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]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\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.\n // List of elements that have been created\n\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.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\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') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\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])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\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)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\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]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\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]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\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);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\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\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\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]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\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 }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\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 */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\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');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\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\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\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]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\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));\n }\n\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));\n }\n\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));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\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];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\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.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\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];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\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;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\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) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\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) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\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]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\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));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\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); }\n\n /* eslint-disable */\n\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 */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\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); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function 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\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\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);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\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;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\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];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\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, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\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); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\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);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\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';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\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');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\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');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\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) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\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');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\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) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\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) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\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) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\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) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\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) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\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)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\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","/**\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 _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _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}\nfunction _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}\nfunction _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}\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 useGrouping = props.useGrouping,\n useIndianSeparators = props.useIndianSeparators,\n enableScrollSpy = props.enableScrollSpy,\n scrollSpyDelay = props.scrollSpyDelay,\n scrollSpyOnce = props.scrollSpyOnce,\n plugin = props.plugin;\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 plugin: plugin,\n useEasing: useEasing,\n useIndianSeparators: useIndianSeparators,\n useGrouping: useGrouping,\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 separator: ',',\n delay: null,\n prefix: '',\n suffix: '',\n duration: 2,\n start: 0,\n decimals: 0,\n startOnMount: true,\n enableReinitialize: true,\n useEasing: true,\n useGrouping: true,\n useIndianSeparators: false\n};\nvar useCountUp = function useCountUp(props) {\n var filteredProps = Object.fromEntries(Object.entries(props).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n value = _ref2[1];\n return value !== undefined;\n }));\n var _useMemo = React.useMemo(function () {\n return _objectSpread2(_objectSpread2({}, DEFAULTS), filteredProps);\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 || 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 || 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 || 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 || 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 || 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","/**\n * @license React\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\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(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 z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(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){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(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(ra,\nsa);z[b]=new v(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(ra,sa);z[b]=new v(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(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(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 ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction 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 A({},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 ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(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\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(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 cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!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,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({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 ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(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}}var wb=null;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(p(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;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;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=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){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 Ne(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)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=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&&Ne(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&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;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}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)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=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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&128))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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"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[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,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=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * @license React\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/**\n * @license React\n * react-jsx-runtime.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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=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 _extends() {\n module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","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}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 _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}","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a