{"version":3,"file":"shared-lib.DqP9jrBB.mjs","names":["isMotionValue","useAutoMotionValue","animation","value","containerStyles","emptyStateStyle","Icon","Component","iconKeys","lowercaseIconKeyPairs","defaultEvents","React","defaultEvents","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","className","css","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","transition2","animation","transformTemplate1","Transition","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","className","css","serializationHash","variantClassNames","transition1","Transition","Variants","getProps","createLayoutDependency","Component","className","css","addPropertyOverrides","Icon","Button","ComponentsButtonText","cycleOrder","serializationHash","variantClassNames","transition1","Transition","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","className","_Fragment","FormPlainTextInput","css","css","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","className","css","KnobOptions","Slider","value","_Fragment","isMotionValue","SrcType","Audio","animation","window","p","l","transform","x","global","prng","seed","t","i","j","s","animationData","addFonts","index","renderer","loadAnimation","animation","searchAnimations","standalone","Math","document","wiggle","time","len","TextExpressionSelectorPropFactory","SrcType","Poster","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","className","css","addPropertyOverrides","AnimatedLogo","ComponentsNavbarItem","PhosphorFonts","Phosphor","cycleOrder","serializationHash","variantClassNames","transition1","Transition","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","className","css","Phosphor","className"],"sources":["https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framer.com/m/framer/icon-nullstate.js@0.7.0","https:/framer.com/m/phosphor-icons/House.js@0.0.57","https:/framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js","https:/framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js","https:/framerusercontent.com/modules/gPeaLx7nL5EH0u29HywC/A197zs8ax0fMwTGztA4G/i6r0kI2sg.js","https:/framerusercontent.com/modules/w6EcJE740ztTDPm9GKTO/WnwgrvH2DDZgtRjXsnm9/NWkCScbQS.js","https:/framerusercontent.com/modules/a2gWyzKqVKOXHbY2dlvl/dSnX3CRg3FZJKH0k9JdN/MD1Cowi_v.js","https:/framerusercontent.com/modules/wYkCOpzbiloymlXcyQbL/rUFyB19FWpe836BvNrA9/et4INEFqK.js","https:/framerusercontent.com/modules/vZY7yG7Qiorq1JDZST9I/0TpUdlu52pod3g06f77y/h4jVEYDkM.js","https:/framerusercontent.com/modules/bmd6zvl7JnESGhE5At74/uqb7Rppf25l8CnNb1IFp/MD1Cowi_v.js","https:/framerusercontent.com/modules/hOLvqe14KPW2k0q4doYY/NjNb1oWvRxuS6k0nJSAN/pMpbwjAiS.js","https:/framerusercontent.com/modules/u1TRHlJBsGJQXmxEgwiB/aGWOSEtJXe4i8ovzcdw0/Q3kdzq8JL.js","https:/framerusercontent.com/modules/weYLJP4dJrVcpgKaHGvX/6iAvN6XDF4iiWhLdF3uV/x5UZ3wWsD.js","https:/framerusercontent.com/modules/6Ma4PgzbmprYadehpjCD/DJMMa8H2llifFq3GyOsk/Yx_upkg95.js","https:/framerusercontent.com/modules/lzJFsDIACvvMpiUdDTOW/yHwCfukuOOKIQ9qpd9cc/FSk6I1Kth.js","https:/framerusercontent.com/modules/c89Xyy1cYChAiWYNzXQq/7sl2LyWolYGejaHUsnt2/JdhZ0OYGi.js","https:/framerusercontent.com/modules/g59PUgBR5OOOQMiei4Xg/16hwRukCwYp0hHovIKSm/g9oIoH2vY.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framer.com/m/framer/lodash.js@0.3.0","https:/framerusercontent.com/modules/AHY1z1xp5QsxaZBkEL9H/7Qvf2RhlgA8L1UHMchaV/Slider.js","https:/framerusercontent.com/modules/NRKVbMFYrBaqL0rx532t/o1XmI0MqgEIlgDIKXNDR/Audio.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js","https:/framer.com/m/framer/useAutoMotionValue.js@0.3.0","https:/jspm.dev/npm:lottie-web@5.7.8!cjs","https:/jspm.dev/lottie-web@5.7.8","https:/framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js","https:/framerusercontent.com/modules/xVtssIW5xw6WT9AfpwFL/ftbFkW5liURVIYY1V3aZ/X7rQlm4gy.js","https:/framerusercontent.com/modules/eAgMeOta3VOZvgVG5reB/qtiXyD36fYsD7BC6JANm/H2AzYnN5x.js","https:/framerusercontent.com/modules/lxoPUcFfqippYNhA8CJk/QV8pW6k13NJj0IHl3buu/IOio2SRf0.js","https:/framerusercontent.com/modules/yqIO3ioyJhmuvH0C2gIC/2zq4liFgBCBVOcEMOtRs/siteMetadata.js"],"sourcesContent":["import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","export function mstoMinAndSec(millis) {\n    const minutes = Math.floor(millis / 60000);\n    const seconds = parseInt((millis % 60000 / 1000).toFixed(0));\n    return minutes + \":\" + (seconds < 10 ? \"0\" : \"\") + seconds;\n}\nexport function secondsToMinutes(seconds) {\n    const minutes = Math.floor(seconds / 60);\n    const s = Math.floor(seconds % 60);\n    return minutes + \":\" + (s < 10 ? \"0\" : \"\") + s;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"mstoMinAndSec\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./time.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nexport const containerStyles = {\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nconst nullIconStyle = {\n    minWidth: \"10px\",\n    minHeight: \"10px\",\n    maxWidth: \"20px\",\n    maxHeight: \"20px\",\n    width: \"60%\",\n    height: \"60%\"\n};\nconst emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(149, 149, 149, 0.1)\",\n    border: \"1px dashed rgba(149, 149, 149, 0.15)\",\n    color: \"#a5a5a5\",\n    flexDirection: \"column\"\n};\nexport const NullState = /*#__PURE__*/ React.forwardRef((_, ref)=>{\n    return(/*#__PURE__*/ _jsx(\"div\", {\n        style: emptyStateStyle,\n        ref: ref\n    }));\n}) /*\n\n<svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 30 30\"\n                style={nullIconStyle}\n            >\n                <path\n                    d=\"M 12.857 0 C 19.958 0 25.714 5.756 25.714 12.857 C 25.714 19.958 19.958 25.714 12.857 25.714 C 5.756 25.714 0 19.958 0 12.857 C 0 5.756 5.756 0 12.857 0 Z\"\n                    fill=\"#FFFFFF\"\n                ></path>\n                <path\n                    d=\"M 20.357 20.357 L 27.857 27.857\"\n                    fill=\"transparent\"\n                    strokeWidth=\"4.28\"\n                    stroke=\"#FFFFFF\"\n                    strokeLinecap=\"round\"\n                ></path>\n                <g transform=\"translate(9.643 6.429)\">\n                    <path\n                        d=\"M 3.214 12.857 L 3.214 12.857\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.75\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                    ></path>\n                    <path\n                        d=\"M 0 3.214 C 0 1.004 1.843 0 3.214 0 C 4.586 0 6.429 0.603 6.429 3.214 C 6.429 5.826 3.214 5.913 3.214 7.232 C 3.214 8.552 3.214 8.571 3.214 8.571\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.22\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                        strokeLinejoin=\"round\"\n                    ></path>\n                </g>\n            </svg>\n            */ ;\n\nexport const __FramerMetadata__ = {\"exports\":{\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NullState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./nullstate.map","let Component;\nlet IconInner;\nvar Icon = (React) => {\n  if (!Component) {\n    Component = /* @__PURE__ */ new Map([\n      [\n        \"bold\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z\" }))\n      ],\n      [\n        \"duotone\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n          \"path\",\n          {\n            d: \"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z\",\n            opacity: \"0.2\"\n          }\n        ), /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"fill\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z\" }))\n      ],\n      [\n        \"light\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z\" }))\n      ],\n      [\n        \"regular\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"thin\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z\" }))\n      ]\n    ]);\n    IconInner = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(\"g\", { ref, ...props }, Component.get(props.weight)));\n  }\n  return IconInner;\n};\nconst __FramerMetadata__ = {\n  exports: {\n    default: {\n      type: \"reactComponent\",\n      slots: [],\n      annotations: { framerContractVersion: \"1\" }\n    },\n    __FramerMetadata__: { type: \"variable\" }\n  }\n};\nvar House_default = Icon;\nexport {\n  __FramerMetadata__,\n  House_default as default\n};\n","import{useMemo}from\"react\";import{ControlType}from\"framer\";/*\n ** ICON UTILS\n ** Pull as much re-usable logic into here as possible\n ** This will make it easier to replace in all icon components\n */ export const containerStyles={width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"};export const defaultEvents={onClick:{type:ControlType.EventHandler},onMouseDown:{type:ControlType.EventHandler},onMouseUp:{type:ControlType.EventHandler},onMouseEnter:{type:ControlType.EventHandler},onMouseLeave:{type:ControlType.EventHandler}};const findByArray=(arr,search)=>arr.find(a=>a.toLowerCase().includes(search));export function getIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// gotta get the exact match first THEN find\n// have a set and try to access ?\nif(selectByList)return iconSelection;if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;}export function useIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// Clean search term\nconst iconSearchResult=useMemo(()=>{if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;},[iconSelection,iconSearch]);const name=selectByList?iconSelection:iconSearchResult;return name;}\nexport const __FramerMetadata__ = {\"exports\":{\"getIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HouseFactory from\"https://framer.com/m/phosphor-icons/House.js@0.0.57\";import{defaultEvents,useIconSelection}from\"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\";const iconKeys=[\"Acorn\",\"AddressBook\",\"AddressBookTabs\",\"AirTrafficControl\",\"Airplane\",\"AirplaneInFlight\",\"AirplaneLanding\",\"AirplaneTakeoff\",\"AirplaneTaxiing\",\"AirplaneTilt\",\"Airplay\",\"Alarm\",\"Alien\",\"AlignBottom\",\"AlignBottomSimple\",\"AlignCenterVertical\",\"AlignLeft\",\"AlignLeftSimple\",\"AlignRight\",\"AlignRightSimple\",\"AlignTop\",\"AlignTopSimple\",\"AmazonLogo\",\"Ambulance\",\"Anchor\",\"AnchorSimple\",\"AndroidLogo\",\"Angle\",\"AngularLogo\",\"Aperture\",\"AppStoreLogo\",\"AppWindow\",\"AppleLogo\",\"ApplePodcastsLogo\",\"ApproximateEquals\",\"Archive\",\"ArchiveBox\",\"ArchiveTray\",\"Armchair\",\"ArrowArcLeft\",\"ArrowArcRight\",\"ArrowBendDownLeft\",\"ArrowBendDownRight\",\"ArrowBendLeftDown\",\"ArrowBendLeftUp\",\"ArrowBendRightDown\",\"ArrowBendRightUp\",\"ArrowBendUpLeft\",\"ArrowBendUpRight\",\"ArrowCircleDown\",\"ArrowCircleDownLeft\",\"ArrowCircleDownRight\",\"ArrowCircleLeft\",\"ArrowCircleRight\",\"ArrowCircleUp\",\"ArrowCircleUpLeft\",\"ArrowCircleUpRight\",\"ArrowClockwise\",\"ArrowDown\",\"ArrowDownLeft\",\"ArrowDownRight\",\"ArrowElbowDownLeft\",\"ArrowElbowDownRight\",\"ArrowElbowLeft\",\"ArrowElbowLeftDown\",\"ArrowElbowLeftUp\",\"ArrowElbowRight\",\"ArrowElbowRightDown\",\"ArrowElbowRightUp\",\"ArrowElbowUpLeft\",\"ArrowElbowUpRight\",\"ArrowFatDown\",\"ArrowFatLeft\",\"ArrowFatLineDown\",\"ArrowFatLineLeft\",\"ArrowFatLineRight\",\"ArrowFatLineUp\",\"ArrowFatLinesDown\",\"ArrowFatLinesLeft\",\"ArrowFatLinesRight\",\"ArrowFatLinesUp\",\"ArrowFatRight\",\"ArrowFatUp\",\"ArrowLeft\",\"ArrowLineDown\",\"ArrowLineDownLeft\",\"ArrowLineDownRight\",\"ArrowLineLeft\",\"ArrowLineRight\",\"ArrowLineUp\",\"ArrowLineUpLeft\",\"ArrowLineUpRight\",\"ArrowRight\",\"ArrowSquareDown\",\"ArrowSquareDownLeft\",\"ArrowSquareDownRight\",\"ArrowSquareIn\",\"ArrowSquareLeft\",\"ArrowSquareOut\",\"ArrowSquareRight\",\"ArrowSquareUp\",\"ArrowSquareUpLeft\",\"ArrowSquareUpRight\",\"ArrowUDownLeft\",\"ArrowUDownRight\",\"ArrowULeftDown\",\"ArrowULeftUp\",\"ArrowURightDown\",\"ArrowURightUp\",\"ArrowUUpLeft\",\"ArrowUUpRight\",\"ArrowUp\",\"ArrowUpLeft\",\"ArrowUpRight\",\"ArrowsClockwise\",\"ArrowsDownUp\",\"ArrowsHorizontal\",\"ArrowsIn\",\"ArrowsInCardinal\",\"ArrowsInLineVertical\",\"ArrowsInSimple\",\"ArrowsLeftRight\",\"ArrowsMerge\",\"ArrowsOut\",\"ArrowsOutCardinal\",\"ArrowsOutSimple\",\"ArrowsSplit\",\"ArrowsVertical\",\"Article\",\"ArticleMedium\",\"ArticleNyTimes\",\"Asclepius\",\"Asterisk\",\"AsteriskSimple\",\"At\",\"Atom\",\"Avocado\",\"Axe\",\"Baby\",\"BabyCarriage\",\"Backpack\",\"Backspace\",\"Bag\",\"BagSimple\",\"Balloon\",\"Bandaids\",\"Bank\",\"Barbell\",\"Barcode\",\"Barn\",\"Barricade\",\"Baseball\",\"BaseballCap\",\"BaseballHelmet\",\"Basket\",\"Basketball\",\"Bathtub\",\"BatteryCharging\",\"BatteryEmpty\",\"BatteryFull\",\"BatteryHigh\",\"BatteryLow\",\"BatteryMedium\",\"BatteryPlus\",\"BatteryPlusVertical\",\"BatteryVerticalEmpty\",\"BatteryVerticalFull\",\"BatteryVerticalHigh\",\"BatteryVerticalLow\",\"BatteryWarning\",\"BeachBall\",\"Beanie\",\"Bed\",\"BeerBottle\",\"BeerStein\",\"BehanceLogo\",\"Bell\",\"BellRinging\",\"BellSimple\",\"BellSimpleRinging\",\"BellSimpleSlash\",\"BellSimpleZ\",\"BellSlash\",\"BellZ\",\"Belt\",\"BezierCurve\",\"Bicycle\",\"Binary\",\"Binoculars\",\"Biohazard\",\"Bird\",\"Blueprint\",\"Bluetooth\",\"BluetoothConnected\",\"BluetoothSlash\",\"BluetoothX\",\"Boat\",\"Bomb\",\"Bone\",\"Book\",\"BookBookmark\",\"BookOpen\",\"BookOpenText\",\"BookOpenUser\",\"BookUser\",\"Bookmark\",\"BookmarkSimple\",\"Bookmarks\",\"BookmarksSimple\",\"Books\",\"Boot\",\"Boules\",\"BoundingBox\",\"BowlFood\",\"BowlSteam\",\"BowlingBall\",\"BoxArrowDown\",\"BoxArrowUp\",\"BoxingGlove\",\"BracketsAngle\",\"BracketsCurly\",\"BracketsRound\",\"BracketsSquare\",\"Brain\",\"Brandy\",\"Bread\",\"Bridge\",\"Briefcase\",\"BriefcaseMetal\",\"Broadcast\",\"Broom\",\"Browser\",\"Browsers\",\"Bug\",\"BugBeetle\",\"BugDroid\",\"Building\",\"BuildingApartment\",\"BuildingOffice\",\"Buildings\",\"Bulldozer\",\"Bus\",\"Butterfly\",\"CableCar\",\"Cactus\",\"Cake\",\"Calculator\",\"Calendar\",\"CalendarBlank\",\"CalendarCheck\",\"CalendarDot\",\"CalendarDots\",\"CalendarHeart\",\"CalendarMinus\",\"CalendarPlus\",\"CalendarSlash\",\"CalendarStar\",\"CalendarX\",\"CallBell\",\"Camera\",\"CameraPlus\",\"CameraRotate\",\"CameraSlash\",\"Campfire\",\"Car\",\"CarBattery\",\"CarProfile\",\"CarSimple\",\"Cardholder\",\"Cards\",\"CardsThree\",\"CaretCircleDoubleUp\",\"CaretCircleDown\",\"CaretCircleLeft\",\"CaretCircleRight\",\"CaretCircleUp\",\"CaretCircleUpDown\",\"CaretDoubleDown\",\"CaretDoubleLeft\",\"CaretDoubleRight\",\"CaretDoubleUp\",\"CaretDown\",\"CaretLeft\",\"CaretLineDown\",\"CaretLineLeft\",\"CaretLineRight\",\"CaretLineUp\",\"CaretRight\",\"CaretUp\",\"CaretUpDown\",\"Carrot\",\"CashRegister\",\"CassetteTape\",\"CastleTurret\",\"Cat\",\"CellSignalFull\",\"CellSignalHigh\",\"CellSignalLow\",\"CellSignalMedium\",\"CellSignalNone\",\"CellSignalSlash\",\"CellSignalX\",\"CellTower\",\"Certificate\",\"Chair\",\"Chalkboard\",\"ChalkboardSimple\",\"ChalkboardTeacher\",\"Champagne\",\"ChargingStation\",\"ChartBar\",\"ChartBarHorizontal\",\"ChartDonut\",\"ChartLine\",\"ChartLineDown\",\"ChartLineUp\",\"ChartPie\",\"ChartPieSlice\",\"ChartPolar\",\"ChartScatter\",\"Chat\",\"ChatCentered\",\"ChatCenteredDots\",\"ChatCenteredSlash\",\"ChatCenteredText\",\"ChatCircle\",\"ChatCircleDots\",\"ChatCircleSlash\",\"ChatCircleText\",\"ChatDots\",\"ChatSlash\",\"ChatTeardrop\",\"ChatTeardropDots\",\"ChatTeardropSlash\",\"ChatTeardropText\",\"ChatText\",\"Chats\",\"ChatsCircle\",\"ChatsTeardrop\",\"Check\",\"CheckCircle\",\"CheckFat\",\"CheckSquare\",\"CheckSquareOffset\",\"Checkerboard\",\"Checks\",\"Cheers\",\"Cheese\",\"ChefHat\",\"Cherries\",\"Church\",\"Cigarette\",\"CigaretteSlash\",\"Circle\",\"CircleDashed\",\"CircleHalf\",\"CircleHalfTilt\",\"CircleNotch\",\"CirclesFour\",\"CirclesThree\",\"CirclesThreePlus\",\"Circuitry\",\"City\",\"Clipboard\",\"ClipboardText\",\"Clock\",\"ClockAfternoon\",\"ClockClockwise\",\"ClockCountdown\",\"ClockUser\",\"ClosedCaptioning\",\"Cloud\",\"CloudArrowDown\",\"CloudArrowUp\",\"CloudCheck\",\"CloudFog\",\"CloudLightning\",\"CloudMoon\",\"CloudRain\",\"CloudSlash\",\"CloudSnow\",\"CloudSun\",\"CloudWarning\",\"CloudX\",\"Clover\",\"Club\",\"CoatHanger\",\"CodaLogo\",\"Code\",\"CodeBlock\",\"CodeSimple\",\"CodepenLogo\",\"CodesandboxLogo\",\"Coffee\",\"CoffeeBean\",\"Coin\",\"CoinVertical\",\"Coins\",\"Columns\",\"ColumnsPlusLeft\",\"ColumnsPlusRight\",\"Command\",\"Compass\",\"CompassRose\",\"CompassTool\",\"ComputerTower\",\"Confetti\",\"ContactlessPayment\",\"Control\",\"Cookie\",\"CookingPot\",\"Copy\",\"CopySimple\",\"Copyleft\",\"Copyright\",\"CornersIn\",\"CornersOut\",\"Couch\",\"CourtBasketball\",\"Cow\",\"CowboyHat\",\"Cpu\",\"Crane\",\"CraneTower\",\"CreditCard\",\"Cricket\",\"Crop\",\"Cross\",\"Crosshair\",\"CrosshairSimple\",\"Crown\",\"CrownCross\",\"CrownSimple\",\"Cube\",\"CubeFocus\",\"CubeTransparent\",\"CurrencyBtc\",\"CurrencyCircleDollar\",\"CurrencyCny\",\"CurrencyDollar\",\"CurrencyDollarSimple\",\"CurrencyEth\",\"CurrencyEur\",\"CurrencyGbp\",\"CurrencyInr\",\"CurrencyJpy\",\"CurrencyKrw\",\"CurrencyKzt\",\"CurrencyNgn\",\"CurrencyRub\",\"Cursor\",\"CursorClick\",\"CursorText\",\"Cylinder\",\"Database\",\"Desk\",\"Desktop\",\"DesktopTower\",\"Detective\",\"DevToLogo\",\"DeviceMobile\",\"DeviceMobileCamera\",\"DeviceMobileSlash\",\"DeviceMobileSpeaker\",\"DeviceRotate\",\"DeviceTablet\",\"DeviceTabletCamera\",\"DeviceTabletSpeaker\",\"Devices\",\"Diamond\",\"DiamondsFour\",\"DiceFive\",\"DiceFour\",\"DiceOne\",\"DiceSix\",\"DiceThree\",\"DiceTwo\",\"Disc\",\"DiscoBall\",\"DiscordLogo\",\"Divide\",\"Dna\",\"Dog\",\"Door\",\"DoorOpen\",\"Dot\",\"DotOutline\",\"DotsNine\",\"DotsSix\",\"DotsSixVertical\",\"DotsThree\",\"DotsThreeCircle\",\"DotsThreeOutline\",\"DotsThreeVertical\",\"Download\",\"DownloadSimple\",\"Dress\",\"Dresser\",\"DribbbleLogo\",\"Drone\",\"Drop\",\"DropHalf\",\"DropHalfBottom\",\"DropSimple\",\"DropSlash\",\"DropboxLogo\",\"Ear\",\"EarSlash\",\"Egg\",\"EggCrack\",\"Eject\",\"EjectSimple\",\"Elevator\",\"Empty\",\"Engine\",\"Envelope\",\"EnvelopeOpen\",\"EnvelopeSimple\",\"EnvelopeSimpleOpen\",\"Equalizer\",\"Equals\",\"Eraser\",\"EscalatorDown\",\"EscalatorUp\",\"Exam\",\"ExclamationMark\",\"Exclude\",\"ExcludeSquare\",\"Export\",\"Eye\",\"EyeClosed\",\"EyeSlash\",\"Eyedropper\",\"EyedropperSample\",\"Eyeglasses\",\"Eyes\",\"FaceMask\",\"FacebookLogo\",\"Factory\",\"Faders\",\"FadersHorizontal\",\"FalloutShelter\",\"Fan\",\"Farm\",\"FastForward\",\"FastForwardCircle\",\"Feather\",\"FediverseLogo\",\"FigmaLogo\",\"File\",\"FileArchive\",\"FileArrowDown\",\"FileArrowUp\",\"FileAudio\",\"FileC\",\"FileCloud\",\"FileCode\",\"FileCpp\",\"FileCss\",\"FileCsv\",\"FileDashed\",\"FileDoc\",\"FileHtml\",\"FileImage\",\"FileIni\",\"FileJpg\",\"FileJs\",\"FileJsx\",\"FileLock\",\"FileMagnifyingGlass\",\"FileMd\",\"FileMinus\",\"FilePdf\",\"FilePlus\",\"FilePng\",\"FilePpt\",\"FilePy\",\"FileRs\",\"FileSql\",\"FileSvg\",\"FileText\",\"FileTs\",\"FileTsx\",\"FileTxt\",\"FileVideo\",\"FileVue\",\"FileX\",\"FileXls\",\"FileZip\",\"Files\",\"FilmReel\",\"FilmScript\",\"FilmSlate\",\"FilmStrip\",\"Fingerprint\",\"FingerprintSimple\",\"FinnTheHuman\",\"Fire\",\"FireExtinguisher\",\"FireSimple\",\"FireTruck\",\"FirstAid\",\"FirstAidKit\",\"Fish\",\"FishSimple\",\"Flag\",\"FlagBanner\",\"FlagBannerFold\",\"FlagCheckered\",\"FlagPennant\",\"Flame\",\"Flashlight\",\"Flask\",\"FlipHorizontal\",\"FlipVertical\",\"FloppyDisk\",\"FloppyDiskBack\",\"FlowArrow\",\"Flower\",\"FlowerLotus\",\"FlowerTulip\",\"FlyingSaucer\",\"Folder\",\"FolderDashed\",\"FolderLock\",\"FolderMinus\",\"FolderNotch\",\"FolderNotchMinus\",\"FolderNotchOpen\",\"FolderNotchPlus\",\"FolderOpen\",\"FolderPlus\",\"FolderSimple\",\"FolderSimpleDashed\",\"FolderSimpleLock\",\"FolderSimpleMinus\",\"FolderSimplePlus\",\"FolderSimpleStar\",\"FolderSimpleUser\",\"FolderStar\",\"FolderUser\",\"Folders\",\"Football\",\"FootballHelmet\",\"Footprints\",\"ForkKnife\",\"FourK\",\"FrameCorners\",\"FramerLogo\",\"Function\",\"Funnel\",\"FunnelSimple\",\"FunnelSimpleX\",\"FunnelX\",\"GameController\",\"Garage\",\"GasCan\",\"GasPump\",\"Gauge\",\"Gavel\",\"Gear\",\"GearFine\",\"GearSix\",\"GenderFemale\",\"GenderIntersex\",\"GenderMale\",\"GenderNeuter\",\"GenderNonbinary\",\"GenderTransgender\",\"Ghost\",\"Gif\",\"Gift\",\"GitBranch\",\"GitCommit\",\"GitDiff\",\"GitFork\",\"GitMerge\",\"GitPullRequest\",\"GithubLogo\",\"GitlabLogo\",\"GitlabLogoSimple\",\"Globe\",\"GlobeHemisphereEast\",\"GlobeHemisphereWest\",\"GlobeSimple\",\"GlobeSimpleX\",\"GlobeStand\",\"GlobeX\",\"Goggles\",\"Golf\",\"GoodreadsLogo\",\"GoogleCardboardLogo\",\"GoogleChromeLogo\",\"GoogleDriveLogo\",\"GoogleLogo\",\"GooglePhotosLogo\",\"GooglePlayLogo\",\"GooglePodcastsLogo\",\"Gps\",\"GpsFix\",\"GpsSlash\",\"Gradient\",\"GraduationCap\",\"Grains\",\"GrainsSlash\",\"Graph\",\"GraphicsCard\",\"GreaterThan\",\"GreaterThanOrEqual\",\"GridFour\",\"GridNine\",\"Guitar\",\"HairDryer\",\"Hamburger\",\"Hammer\",\"Hand\",\"HandArrowDown\",\"HandArrowUp\",\"HandCoins\",\"HandDeposit\",\"HandEye\",\"HandFist\",\"HandGrabbing\",\"HandHeart\",\"HandPalm\",\"HandPeace\",\"HandPointing\",\"HandSoap\",\"HandSwipeLeft\",\"HandSwipeRight\",\"HandTap\",\"HandWaving\",\"HandWithdraw\",\"Handbag\",\"HandbagSimple\",\"HandsClapping\",\"HandsPraying\",\"Handshake\",\"HardDrive\",\"HardDrives\",\"HardHat\",\"Hash\",\"HashStraight\",\"HeadCircuit\",\"Headlights\",\"Headphones\",\"Headset\",\"Heart\",\"HeartBreak\",\"HeartHalf\",\"HeartStraight\",\"HeartStraightBreak\",\"Heartbeat\",\"Hexagon\",\"HighDefinition\",\"HighHeel\",\"Highlighter\",\"HighlighterCircle\",\"Hockey\",\"Hoodie\",\"Horse\",\"Hospital\",\"Hourglass\",\"HourglassHigh\",\"HourglassLow\",\"HourglassMedium\",\"HourglassSimple\",\"HourglassSimpleHigh\",\"HourglassSimpleLow\",\"House\",\"HouseLine\",\"HouseSimple\",\"Hurricane\",\"IceCream\",\"IdentificationBadge\",\"IdentificationCard\",\"Image\",\"ImageBroken\",\"ImageSquare\",\"Images\",\"ImagesSquare\",\"Infinity\",\"Info\",\"InstagramLogo\",\"Intersect\",\"IntersectSquare\",\"IntersectThree\",\"Intersection\",\"Invoice\",\"Island\",\"Jar\",\"JarLabel\",\"Jeep\",\"Joystick\",\"Kanban\",\"Key\",\"KeyReturn\",\"Keyboard\",\"Keyhole\",\"Knife\",\"Ladder\",\"LadderSimple\",\"Lamp\",\"LampPendant\",\"Laptop\",\"Lasso\",\"LastfmLogo\",\"Layout\",\"Leaf\",\"Lectern\",\"Lego\",\"LegoSmiley\",\"LessThan\",\"LessThanOrEqual\",\"LetterCircleH\",\"LetterCircleP\",\"LetterCircleV\",\"Lifebuoy\",\"Lightbulb\",\"LightbulbFilament\",\"Lighthouse\",\"Lightning\",\"LightningA\",\"LightningSlash\",\"LineSegment\",\"LineSegments\",\"LineVertical\",\"Link\",\"LinkBreak\",\"LinkSimple\",\"LinkSimpleBreak\",\"LinkSimpleHorizontal\",\"LinkedinLogo\",\"LinktreeLogo\",\"LinuxLogo\",\"List\",\"ListBullets\",\"ListChecks\",\"ListDashes\",\"ListHeart\",\"ListMagnifyingGlass\",\"ListNumbers\",\"ListPlus\",\"ListStar\",\"Lock\",\"LockKey\",\"LockKeyOpen\",\"LockLaminated\",\"LockLaminatedOpen\",\"LockOpen\",\"LockSimple\",\"LockSimpleOpen\",\"Lockers\",\"Log\",\"MagicWand\",\"Magnet\",\"MagnetStraight\",\"MagnifyingGlass\",\"MagnifyingGlassMinus\",\"MagnifyingGlassPlus\",\"Mailbox\",\"MapPin\",\"MapPinArea\",\"MapPinLine\",\"MapPinPlus\",\"MapPinSimple\",\"MapPinSimpleArea\",\"MapPinSimpleLine\",\"MapTrifold\",\"MarkdownLogo\",\"MarkerCircle\",\"Martini\",\"MaskHappy\",\"MaskSad\",\"MastodonLogo\",\"MathOperations\",\"MatrixLogo\",\"Medal\",\"MedalMilitary\",\"MediumLogo\",\"Megaphone\",\"MegaphoneSimple\",\"MemberOf\",\"Memory\",\"MessengerLogo\",\"MetaLogo\",\"Meteor\",\"Metronome\",\"Microphone\",\"MicrophoneSlash\",\"MicrophoneStage\",\"Microscope\",\"MicrosoftExcelLogo\",\"MicrosoftOutlookLogo\",\"MicrosoftTeamsLogo\",\"MicrosoftWordLogo\",\"Minus\",\"MinusCircle\",\"MinusSquare\",\"Money\",\"MoneyWavy\",\"Monitor\",\"MonitorArrowUp\",\"MonitorPlay\",\"Moon\",\"MoonStars\",\"Moped\",\"MopedFront\",\"Mosque\",\"Motorcycle\",\"Mountains\",\"Mouse\",\"MouseLeftClick\",\"MouseMiddleClick\",\"MouseRightClick\",\"MouseScroll\",\"MouseSimple\",\"MusicNote\",\"MusicNoteSimple\",\"MusicNotes\",\"MusicNotesMinus\",\"MusicNotesPlus\",\"MusicNotesSimple\",\"NavigationArrow\",\"Needle\",\"Network\",\"NetworkSlash\",\"NetworkX\",\"Newspaper\",\"NewspaperClipping\",\"NotEquals\",\"NotMemberOf\",\"NotSubsetOf\",\"NotSupersetOf\",\"Notches\",\"Note\",\"NoteBlank\",\"NotePencil\",\"Notebook\",\"Notepad\",\"Notification\",\"NotionLogo\",\"NuclearPlant\",\"NumberCircleEight\",\"NumberCircleFive\",\"NumberCircleFour\",\"NumberCircleNine\",\"NumberCircleOne\",\"NumberCircleSeven\",\"NumberCircleSix\",\"NumberCircleThree\",\"NumberCircleTwo\",\"NumberCircleZero\",\"NumberEight\",\"NumberFive\",\"NumberFour\",\"NumberNine\",\"NumberOne\",\"NumberSeven\",\"NumberSix\",\"NumberSquareEight\",\"NumberSquareFive\",\"NumberSquareFour\",\"NumberSquareNine\",\"NumberSquareOne\",\"NumberSquareSeven\",\"NumberSquareSix\",\"NumberSquareThree\",\"NumberSquareTwo\",\"NumberSquareZero\",\"NumberThree\",\"NumberTwo\",\"NumberZero\",\"Numpad\",\"Nut\",\"NyTimesLogo\",\"Octagon\",\"OfficeChair\",\"Onigiri\",\"OpenAiLogo\",\"Option\",\"Orange\",\"OrangeSlice\",\"Oven\",\"Package\",\"PaintBrush\",\"PaintBrushBroad\",\"PaintBrushHousehold\",\"PaintBucket\",\"PaintRoller\",\"Palette\",\"Panorama\",\"Pants\",\"PaperPlane\",\"PaperPlaneRight\",\"PaperPlaneTilt\",\"Paperclip\",\"PaperclipHorizontal\",\"Parachute\",\"Paragraph\",\"Parallelogram\",\"Park\",\"Password\",\"Path\",\"PatreonLogo\",\"Pause\",\"PauseCircle\",\"PawPrint\",\"PaypalLogo\",\"Peace\",\"Pen\",\"PenNib\",\"PenNibStraight\",\"Pencil\",\"PencilCircle\",\"PencilLine\",\"PencilRuler\",\"PencilSimple\",\"PencilSimpleLine\",\"PencilSimpleSlash\",\"PencilSlash\",\"Pentagon\",\"Pentagram\",\"Pepper\",\"Percent\",\"Person\",\"PersonArmsSpread\",\"PersonSimple\",\"PersonSimpleBike\",\"PersonSimpleCircle\",\"PersonSimpleHike\",\"PersonSimpleRun\",\"PersonSimpleSki\",\"PersonSimpleSwim\",\"PersonSimpleTaiChi\",\"PersonSimpleThrow\",\"PersonSimpleWalk\",\"Perspective\",\"Phone\",\"PhoneCall\",\"PhoneDisconnect\",\"PhoneIncoming\",\"PhoneList\",\"PhoneOutgoing\",\"PhonePause\",\"PhonePlus\",\"PhoneSlash\",\"PhoneTransfer\",\"PhoneX\",\"PhosphorLogo\",\"Pi\",\"PianoKeys\",\"PicnicTable\",\"PictureInPicture\",\"PiggyBank\",\"Pill\",\"PingPong\",\"PintGlass\",\"PinterestLogo\",\"Pinwheel\",\"Pipe\",\"PipeWrench\",\"PixLogo\",\"Pizza\",\"Placeholder\",\"Planet\",\"Plant\",\"Play\",\"PlayCircle\",\"PlayPause\",\"Playlist\",\"Plug\",\"PlugCharging\",\"Plugs\",\"PlugsConnected\",\"Plus\",\"PlusCircle\",\"PlusMinus\",\"PlusSquare\",\"PokerChip\",\"PoliceCar\",\"Polygon\",\"Popcorn\",\"Popsicle\",\"PottedPlant\",\"Power\",\"Prescription\",\"Presentation\",\"PresentationChart\",\"Printer\",\"Prohibit\",\"ProhibitInset\",\"ProjectorScreen\",\"ProjectorScreenChart\",\"Pulse\",\"PushPin\",\"PushPinSimple\",\"PushPinSimpleSlash\",\"PushPinSlash\",\"PuzzlePiece\",\"QrCode\",\"Question\",\"QuestionMark\",\"Queue\",\"Quotes\",\"Rabbit\",\"Racquet\",\"Radical\",\"Radio\",\"RadioButton\",\"Radioactive\",\"Rainbow\",\"RainbowCloud\",\"Ranking\",\"ReadCvLogo\",\"Receipt\",\"ReceiptX\",\"Record\",\"Rectangle\",\"RectangleDashed\",\"Recycle\",\"RedditLogo\",\"Repeat\",\"RepeatOnce\",\"ReplitLogo\",\"Resize\",\"Rewind\",\"RewindCircle\",\"RoadHorizon\",\"Robot\",\"Rocket\",\"RocketLaunch\",\"Rows\",\"RowsPlusBottom\",\"RowsPlusTop\",\"Rss\",\"RssSimple\",\"Rug\",\"Ruler\",\"Sailboat\",\"Scales\",\"Scan\",\"ScanSmiley\",\"Scissors\",\"Scooter\",\"Screencast\",\"Screwdriver\",\"Scribble\",\"ScribbleLoop\",\"Scroll\",\"Seal\",\"SealCheck\",\"SealPercent\",\"SealQuestion\",\"SealWarning\",\"Seat\",\"Seatbelt\",\"SecurityCamera\",\"Selection\",\"SelectionAll\",\"SelectionBackground\",\"SelectionForeground\",\"SelectionInverse\",\"SelectionPlus\",\"SelectionSlash\",\"Shapes\",\"Share\",\"ShareFat\",\"ShareNetwork\",\"Shield\",\"ShieldCheck\",\"ShieldCheckered\",\"ShieldChevron\",\"ShieldPlus\",\"ShieldSlash\",\"ShieldStar\",\"ShieldWarning\",\"ShippingContainer\",\"ShirtFolded\",\"ShootingStar\",\"ShoppingBag\",\"ShoppingBagOpen\",\"ShoppingCart\",\"ShoppingCartSimple\",\"Shovel\",\"Shower\",\"Shrimp\",\"Shuffle\",\"ShuffleAngular\",\"ShuffleSimple\",\"Sidebar\",\"SidebarSimple\",\"Sigma\",\"SignIn\",\"SignOut\",\"Signature\",\"Signpost\",\"SimCard\",\"Siren\",\"SketchLogo\",\"SkipBack\",\"SkipBackCircle\",\"SkipForward\",\"SkipForwardCircle\",\"Skull\",\"SkypeLogo\",\"SlackLogo\",\"Sliders\",\"SlidersHorizontal\",\"Slideshow\",\"Smiley\",\"SmileyAngry\",\"SmileyBlank\",\"SmileyMeh\",\"SmileyMelting\",\"SmileyNervous\",\"SmileySad\",\"SmileySticker\",\"SmileyWink\",\"SmileyXEyes\",\"SnapchatLogo\",\"Sneaker\",\"SneakerMove\",\"Snowflake\",\"SoccerBall\",\"Sock\",\"SolarPanel\",\"SolarRoof\",\"SortAscending\",\"SortDescending\",\"SoundcloudLogo\",\"Spade\",\"Sparkle\",\"SpeakerHifi\",\"SpeakerHigh\",\"SpeakerLow\",\"SpeakerNone\",\"SpeakerSimpleHigh\",\"SpeakerSimpleLow\",\"SpeakerSimpleNone\",\"SpeakerSimpleSlash\",\"SpeakerSimpleX\",\"SpeakerSlash\",\"SpeakerX\",\"Speedometer\",\"Sphere\",\"Spinner\",\"SpinnerBall\",\"SpinnerGap\",\"Spiral\",\"SplitHorizontal\",\"SplitVertical\",\"SpotifyLogo\",\"SprayBottle\",\"Square\",\"SquareHalf\",\"SquareHalfBottom\",\"SquareLogo\",\"SquareSplitVertical\",\"SquaresFour\",\"Stack\",\"StackMinus\",\"StackOverflowLogo\",\"StackPlus\",\"StackSimple\",\"Stairs\",\"Stamp\",\"StandardDefinition\",\"Star\",\"StarAndCrescent\",\"StarFour\",\"StarHalf\",\"StarOfDavid\",\"SteamLogo\",\"SteeringWheel\",\"Steps\",\"Stethoscope\",\"Sticker\",\"Stool\",\"Stop\",\"StopCircle\",\"Storefront\",\"Strategy\",\"StripeLogo\",\"Student\",\"SubsetOf\",\"SubsetProperOf\",\"Subtitles\",\"SubtitlesSlash\",\"Subtract\",\"SubtractSquare\",\"Subway\",\"Suitcase\",\"SuitcaseRolling\",\"SuitcaseSimple\",\"Sun\",\"SunDim\",\"SunHorizon\",\"Sunglasses\",\"SupersetOf\",\"SupersetProperOf\",\"Swap\",\"Swatches\",\"SwimmingPool\",\"Sword\",\"Synagogue\",\"Syringe\",\"TShirt\",\"Table\",\"Tabs\",\"Tag\",\"TagChevron\",\"TagSimple\",\"Target\",\"Taxi\",\"TeaBag\",\"TelegramLogo\",\"Television\",\"TelevisionSimple\",\"TennisBall\",\"Tent\",\"Terminal\",\"TerminalWindow\",\"TestTube\",\"TextAUnderline\",\"TextAa\",\"TextAlignCenter\",\"TextAlignJustify\",\"TextAlignLeft\",\"TextAlignRight\",\"TextB\",\"TextColumns\",\"TextH\",\"TextHFive\",\"TextHFour\",\"TextHOne\",\"TextHSix\",\"TextHThree\",\"TextHTwo\",\"TextIndent\",\"TextItalic\",\"TextOutdent\",\"TextStrikethrough\",\"TextSubscript\",\"TextSuperscript\",\"TextT\",\"TextTSlash\",\"TextUnderline\",\"Textbox\",\"Thermometer\",\"ThermometerCold\",\"ThermometerHot\",\"ThermometerSimple\",\"ThreadsLogo\",\"ThreeD\",\"ThumbsDown\",\"ThumbsUp\",\"Ticket\",\"TidalLogo\",\"TiktokLogo\",\"Tilde\",\"Timer\",\"TipJar\",\"Tipi\",\"Tire\",\"ToggleLeft\",\"ToggleRight\",\"Toilet\",\"ToiletPaper\",\"Toolbox\",\"Tooth\",\"Tornado\",\"Tote\",\"ToteSimple\",\"Towel\",\"Tractor\",\"Trademark\",\"TrademarkRegistered\",\"TrafficCone\",\"TrafficSign\",\"TrafficSignal\",\"Train\",\"TrainRegional\",\"TrainSimple\",\"Tram\",\"Translate\",\"Trash\",\"TrashSimple\",\"Tray\",\"TrayArrowDown\",\"TrayArrowUp\",\"TreasureChest\",\"Tree\",\"TreeEvergreen\",\"TreePalm\",\"TreeStructure\",\"TreeView\",\"TrendDown\",\"TrendUp\",\"Triangle\",\"TriangleDashed\",\"Trolley\",\"TrolleySuitcase\",\"Trophy\",\"Truck\",\"TruckTrailer\",\"TumblrLogo\",\"TwitchLogo\",\"TwitterLogo\",\"Umbrella\",\"UmbrellaSimple\",\"Union\",\"Unite\",\"UniteSquare\",\"Upload\",\"UploadSimple\",\"Usb\",\"User\",\"UserCheck\",\"UserCircle\",\"UserCircleCheck\",\"UserCircleDashed\",\"UserCircleGear\",\"UserCircleMinus\",\"UserCirclePlus\",\"UserFocus\",\"UserGear\",\"UserList\",\"UserMinus\",\"UserPlus\",\"UserRectangle\",\"UserSound\",\"UserSquare\",\"UserSwitch\",\"Users\",\"UsersFour\",\"UsersThree\",\"Van\",\"Vault\",\"VectorThree\",\"VectorTwo\",\"Vibrate\",\"Video\",\"VideoCamera\",\"VideoCameraSlash\",\"VideoConference\",\"Vignette\",\"VinylRecord\",\"VirtualReality\",\"Virus\",\"Visor\",\"Voicemail\",\"Volleyball\",\"Wall\",\"Wallet\",\"Warehouse\",\"Warning\",\"WarningCircle\",\"WarningDiamond\",\"WarningOctagon\",\"WashingMachine\",\"Watch\",\"WaveSawtooth\",\"WaveSine\",\"WaveSquare\",\"WaveTriangle\",\"Waveform\",\"WaveformSlash\",\"Waves\",\"Webcam\",\"WebcamSlash\",\"WebhooksLogo\",\"WechatLogo\",\"WhatsappLogo\",\"Wheelchair\",\"WheelchairMotion\",\"WifiHigh\",\"WifiLow\",\"WifiMedium\",\"WifiNone\",\"WifiSlash\",\"WifiX\",\"Wind\",\"Windmill\",\"WindowsLogo\",\"Wine\",\"Wrench\",\"X\",\"XCircle\",\"XLogo\",\"XSquare\",\"Yarn\",\"YinYang\",\"YoutubeLogo\"];const moduleBaseUrl=\"https://framer.com/m/phosphor-icons/\";const weightOptions=[\"thin\",\"light\",\"regular\",\"bold\",\"fill\",\"duotone\"];const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * PHOSPHOR\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,weight,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);const[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HouseFactory(React):null);async function importModule(){// Get the selected module\ntry{const version=\"0.0.57\";const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@${version}`;const module=await import(/* webpackIgnore: true */iconModuleUrl);if(isMounted.current)setSelectedIcon(module.default(React));}catch(err){if(isMounted.current)setSelectedIcon(null);}}useEffect(()=>{isMounted.current=true;importModule();return()=>{isMounted.current=false;};},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/_jsx(NullState,{}):null;return /*#__PURE__*/_jsx(motion.div,{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",style:{userSelect:\"none\",width:\"100%\",height:\"100%\",display:\"inline-block\",fill:color,color,flexShrink:0,transform:mirrored?\"scale(-1, 1)\":undefined},focusable:\"false\",color:color,children:/*#__PURE__*/_jsx(SelectedIcon,{color:color,weight:weight})}):emptyState});}Icon.displayName=\"Phosphor\";Icon.defaultProps={width:24,height:24,iconSelection:\"House\",iconSearch:\"House\",color:\"#66F\",selectByList:true,weight:\"regular\",mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Phosphor site](https://phosphoricons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},weight:{type:ControlType.Enum,title:\"Weight\",optionTitles:weightOptions.map(piece=>piece.charAt(0).toUpperCase()+piece.slice(1)),options:weightOptions,defaultValue:Icon.defaultProps.weight},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Phosphor.map","// Generated by Framer (2ca17d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Instrument Sans-500\",\"GF;Instrument Sans-500italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npST3-QfwmS0v3_7Y.woff2\",weight:\"500\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENut22kywN2u7YUwU.woff2\",weight:\"500\"}]}];export const css=['.framer-4rjnW .framer-styles-preset-1tde6wz:not(.rich-text-wrapper), .framer-4rjnW .framer-styles-preset-1tde6wz.rich-text-wrapper h6 { --framer-font-family: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-italic: 500; --framer-letter-spacing: 0px; --framer-line-height: 140%; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #151515); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-4rjnW\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (400c93f)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Instrument Sans-regular\",\"GF;Instrument Sans-700\",\"GF;Instrument Sans-700italic\",\"GF;Instrument Sans-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSTF-QfwmS0v3_7Y.woff2\",weight:\"400\"},{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSQi_gfwmS0v3_7Y.woff2\",weight:\"700\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENugixkywN2u7YUwU.woff2\",weight:\"700\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENuu-2kywN2u7YUwU.woff2\",weight:\"400\"}]}];export const css=['.framer-jBXOq .framer-styles-preset-1cqwskc:not(.rich-text-wrapper), .framer-jBXOq .framer-styles-preset-1cqwskc.rich-text-wrapper p { --framer-font-family: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0px; --framer-line-height: 120%; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #242422); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-jBXOq\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (aba0f78)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;DM Mono-regular\",\"GF;DM Mono-500\",\"GF;DM Mono-500italic\",\"GF;DM Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"DM Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTU7PB1QTsUX8KYhhiaBYyMcKw.woff2\",weight:\"400\"},{family:\"DM Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTR7PB1QTsUX8KYvumzIYGnbKX9Rlk.woff2\",weight:\"500\"},{family:\"DM Mono\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTT7PB1QTsUX8KYth-o9YetbYf4VllXuA.woff2\",weight:\"500\"},{family:\"DM Mono\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTW7PB1QTsUX8KYth-QBK6JYKzkXw.woff2\",weight:\"400\"}]}];export const css=['.framer-mJxtm .framer-styles-preset-hilyl1:not(.rich-text-wrapper), .framer-mJxtm .framer-styles-preset-hilyl1.rich-text-wrapper p { --framer-font-family: \"DM Mono\", monospace; --framer-font-family-bold: \"DM Mono\", monospace; --framer-font-family-bold-italic: \"DM Mono\", monospace; --framer-font-family-italic: \"DM Mono\", monospace; --framer-font-open-type-features: normal; --framer-font-size: 9px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 500; --framer-font-weight-bold-italic: 500; --framer-font-weight-italic: 400; --framer-letter-spacing: 0px; --framer-line-height: 100%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #dac5a7); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-mJxtm\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (8c7926c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-HDu6v .framer-styles-preset-9c5wnd:not(.rich-text-wrapper), .framer-HDu6v .framer-styles-preset-9c5wnd.rich-text-wrapper a { --framer-link-current-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #151515); --framer-link-current-text-decoration: underline; --framer-link-hover-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #151515); --framer-link-hover-text-decoration: underline; --framer-link-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #242422); --framer-link-text-decoration: underline; }\"];export const className=\"framer-HDu6v\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ab692b1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Instrument Sans-regular\",\"GF;Instrument Sans-700\",\"GF;Instrument Sans-700italic\",\"GF;Instrument Sans-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSTF-QfwmS0v3_7Y.woff2\",weight:\"400\"},{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSQi_gfwmS0v3_7Y.woff2\",weight:\"700\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENugixkywN2u7YUwU.woff2\",weight:\"700\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENuu-2kywN2u7YUwU.woff2\",weight:\"400\"}]}];export const css=['.framer-vjQok .framer-styles-preset-fottxr:not(.rich-text-wrapper), .framer-vjQok .framer-styles-preset-fottxr.rich-text-wrapper p { --framer-font-family: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 10px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0px; --framer-line-height: 160%; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6)); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-vjQok\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (aba0f78)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;DM Mono-regular\",\"GF;DM Mono-500\",\"GF;DM Mono-500italic\",\"GF;DM Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"DM Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTU7PB1QTsUX8KYhhiaBYyMcKw.woff2\",weight:\"400\"},{family:\"DM Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTR7PB1QTsUX8KYvumzIYGnbKX9Rlk.woff2\",weight:\"500\"},{family:\"DM Mono\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTT7PB1QTsUX8KYth-o9YetbYf4VllXuA.woff2\",weight:\"500\"},{family:\"DM Mono\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/dmmono/v14/aFTW7PB1QTsUX8KYth-QBK6JYKzkXw.woff2\",weight:\"400\"}]}];export const css=['.framer-mJxtm .framer-styles-preset-hilyl1:not(.rich-text-wrapper), .framer-mJxtm .framer-styles-preset-hilyl1.rich-text-wrapper p { --framer-font-family: \"DM Mono\", monospace; --framer-font-family-bold: \"DM Mono\", monospace; --framer-font-family-bold-italic: \"DM Mono\", monospace; --framer-font-family-italic: \"DM Mono\", monospace; --framer-font-open-type-features: normal; --framer-font-size: 9px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 500; --framer-font-weight-bold-italic: 500; --framer-font-weight-italic: 400; --framer-letter-spacing: 0px; --framer-line-height: 100%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #dac5a7); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-mJxtm\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ab692b1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=['.framer-CQUQN .framer-styles-preset-jb4zlp:not(.rich-text-wrapper), .framer-CQUQN .framer-styles-preset-jb4zlp.rich-text-wrapper a { --framer-link-current-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #0e1011) /* {\"name\":\"Default\"} */; --framer-link-current-text-decoration: underline; --framer-link-hover-text-color: var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6)) /* {\"name\":\"Muted\"} */; --framer-link-hover-text-decoration: underline; --framer-link-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #0e1011); --framer-link-text-decoration: underline; }'];export const className=\"framer-CQUQN\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (aba0f78)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/a2gWyzKqVKOXHbY2dlvl/dSnX3CRg3FZJKH0k9JdN/MD1Cowi_v.js\";const enabledGestures={CL3l57fDz:{hover:true},xVnEazx8s:{hover:true}};const cycleOrder=[\"xVnEazx8s\",\"CL3l57fDz\"];const serializationHash=\"framer-5qAvt\";const variantClassNames={CL3l57fDz:\"framer-v-1ql9zgv\",xVnEazx8s:\"framer-v-s2oe4x\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Default:\"xVnEazx8s\",Inverse:\"CL3l57fDz\"};const getProps=({click,height,id,link,newTab,smoothScroll,title,width,...props})=>{return{...props,bp31TjQBy:smoothScroll??props.bp31TjQBy,NUrsnrIij:newTab??props.NUrsnrIij,Pl8vVXvhO:click??props.Pl8vVXvhO,U1gPdA4r9:link??props.U1gPdA4r9,variant:humanReadableVariantMap[props.variant]??props.variant??\"xVnEazx8s\",YwyRGS3Ya:title??props.YwyRGS3Ya??\"Button Text\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,YwyRGS3Ya,U1gPdA4r9,NUrsnrIij,bp31TjQBy,Pl8vVXvhO,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"xVnEazx8s\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTaphngoj8=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(Pl8vVXvhO){const res=await Pl8vVXvhO(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:U1gPdA4r9,motionChild:true,nodeId:\"xVnEazx8s\",openInNewTab:NUrsnrIij,smoothScroll:bp31TjQBy,children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-s2oe4x\",className,classNames)} framer-zry1lt`,\"data-framer-name\":\"Default\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"xVnEazx8s\",onTap:onTaphngoj8,ref:ref??ref1,style:{...style},...addPropertyOverrides({\"CL3l57fDz-hover\":{\"data-framer-name\":undefined},\"xVnEazx8s-hover\":{\"data-framer-name\":undefined},CL3l57fDz:{\"data-framer-name\":\"Inverse\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-hilyl1\",\"data-styles-preset\":\"MD1Cowi_v\",children:\"Button Text\"})}),className:\"framer-1n7hnqa\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"u54WnCFGt\",text:YwyRGS3Ya,variants:{CL3l57fDz:{\"--extracted-r6o4lv\":\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({CL3l57fDz:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-hilyl1\",\"data-styles-preset\":\"MD1Cowi_v\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255)))\"},children:\"Button Text\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1rc9d97\",\"data-framer-name\":\"Button Border\",layoutDependency:layoutDependency,layoutId:\"zv0O6wqDD\",style:{backgroundColor:\"var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, rgb(21, 21, 21))\"},variants:{CL3l57fDz:{backgroundColor:\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\"}}})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-5qAvt.framer-zry1lt, .framer-5qAvt .framer-zry1lt { display: block; }\",\".framer-5qAvt.framer-s2oe4x { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px 0px 2px 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-5qAvt .framer-1n7hnqa { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-5qAvt .framer-1rc9d97 { bottom: 0px; flex: none; height: 1px; left: 0px; position: absolute; width: 100%; z-index: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-5qAvt.framer-s2oe4x { gap: 0px; } .framer-5qAvt.framer-s2oe4x > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-5qAvt.framer-s2oe4x > :first-child { margin-top: 0px; } .framer-5qAvt.framer-s2oe4x > :last-child { margin-bottom: 0px; } }\",\".framer-5qAvt.framer-v-s2oe4x.hover .framer-1rc9d97, .framer-5qAvt.framer-v-1ql9zgv.hover .framer-1rc9d97 { width: 20px; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 16\n * @framerIntrinsicWidth 74\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"CL3l57fDz\":{\"layout\":[\"auto\",\"auto\"]},\"MUq7xOso1\":{\"layout\":[\"auto\",\"auto\"]},\"U7Vqsni2Y\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"YwyRGS3Ya\":\"title\",\"U1gPdA4r9\":\"link\",\"NUrsnrIij\":\"newTab\",\"bp31TjQBy\":\"smoothScroll\",\"Pl8vVXvhO\":\"click\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerQ3kdzq8JL=withCSS(Component,css,\"framer-5qAvt\");export default FramerQ3kdzq8JL;FramerQ3kdzq8JL.displayName=\"Components/Button Text\";FramerQ3kdzq8JL.defaultProps={height:16,width:74};addPropertyControls(FramerQ3kdzq8JL,{variant:{options:[\"xVnEazx8s\",\"CL3l57fDz\"],optionTitles:[\"Default\",\"Inverse\"],title:\"Variant\",type:ControlType.Enum},YwyRGS3Ya:{defaultValue:\"Button Text\",displayTextArea:false,title:\"Title\",type:ControlType.String},U1gPdA4r9:{title:\"Link\",type:ControlType.Link},NUrsnrIij:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},bp31TjQBy:{defaultValue:false,title:\"Smooth Scroll\",type:ControlType.Boolean},Pl8vVXvhO:{title:\"Click\",type:ControlType.EventHandler}});addFonts(FramerQ3kdzq8JL,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerQ3kdzq8JL\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"CL3l57fDz\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"MUq7xOso1\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"U7Vqsni2Y\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"YwyRGS3Ya\\\":\\\"title\\\",\\\"U1gPdA4r9\\\":\\\"link\\\",\\\"NUrsnrIij\\\":\\\"newTab\\\",\\\"bp31TjQBy\\\":\\\"smoothScroll\\\",\\\"Pl8vVXvhO\\\":\\\"click\\\"}\",\"framerIntrinsicWidth\":\"74\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"16\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ab692b1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/gPeaLx7nL5EH0u29HywC/A197zs8ax0fMwTGztA4G/i6r0kI2sg.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/w6EcJE740ztTDPm9GKTO/WnwgrvH2DDZgtRjXsnm9/NWkCScbQS.js\";const MotionDivWithFX=withFX(motion.div);const enabledGestures={mhDrVasVh:{hover:true,pressed:true}};const cycleOrder=[\"mhDrVasVh\",\"Xt5x5Qp4a\",\"OURxM_m6K\",\"eaSPiDpsh\",\"Vi5UJVFQv\"];const serializationHash=\"framer-N6Cqr\";const variantClassNames={eaSPiDpsh:\"framer-v-1pu7m1h\",mhDrVasVh:\"framer-v-hxui1o\",OURxM_m6K:\"framer-v-aqkard\",Vi5UJVFQv:\"framer-v-gx78i2\",Xt5x5Qp4a:\"framer-v-1appg09\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.2,ease:[.44,0,.56,1],type:\"tween\"};const transition2={delay:0,duration:1,ease:[0,0,1,1],type:\"tween\"};const animation={opacity:1,rotate:360,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Default:\"mhDrVasVh\",Disabled:\"OURxM_m6K\",Error:\"Vi5UJVFQv\",Loading:\"Xt5x5Qp4a\",Success:\"eaSPiDpsh\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"mhDrVasVh\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"mhDrVasVh\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"Xt5x5Qp4a\")return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"Xt5x5Qp4a\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.button,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-hxui1o\",className,classNames),\"data-framer-name\":\"Default\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"mhDrVasVh\",ref:refBinding,style:{backgroundColor:\"var(--token-dca875b7-f855-43c1-bf73-97596e452266, rgb(14, 16, 17))\",borderBottomLeftRadius:5,borderBottomRightRadius:5,borderTopLeftRadius:5,borderTopRightRadius:5,opacity:1,...style},variants:{\"mhDrVasVh-hover\":{backgroundColor:\"var(--token-b33ee92c-1ff7-4447-97d0-592480c21cbc, rgb(24, 27, 28))\",opacity:1},\"mhDrVasVh-pressed\":{backgroundColor:\"rgb(51, 51, 51)\",opacity:1},eaSPiDpsh:{opacity:1},OURxM_m6K:{opacity:.5},Vi5UJVFQv:{backgroundColor:\"rgba(255, 34, 68, 0.15)\",opacity:1}},...addPropertyOverrides({\"mhDrVasVh-hover\":{\"data-framer-name\":undefined},\"mhDrVasVh-pressed\":{\"data-framer-name\":undefined},eaSPiDpsh:{\"data-framer-name\":\"Success\"},OURxM_m6K:{\"data-framer-name\":\"Disabled\"},Vi5UJVFQv:{\"data-framer-name\":\"Error\"},Xt5x5Qp4a:{\"data-framer-name\":\"Loading\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h6,{className:\"framer-styles-preset-1tde6wz\",\"data-styles-preset\":\"i6r0kI2sg\",style:{\"--framer-text-color\":\"var(--extracted-1w1cjl5, var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255)))\"},children:\"Submit\"})}),className:\"framer-5rdx6g\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"YBOWIIsBV\",style:{\"--extracted-1w1cjl5\":\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},variants:{eaSPiDpsh:{\"--extracted-r6o4lv\":\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\"},Vi5UJVFQv:{\"--extracted-r6o4lv\":\"rgb(255, 41, 41)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({eaSPiDpsh:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1cqwskc\",\"data-styles-preset\":\"NWkCScbQS\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255)))\"},children:\"Thank you\"})})},Vi5UJVFQv:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1cqwskc\",\"data-styles-preset\":\"NWkCScbQS\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 41, 41))\"},children:\"Something went wrong\"})})}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-5rvwie\",\"data-framer-name\":\"Spinner\",layoutDependency:layoutDependency,layoutId:\"LZ9vJQtPj\",style:{mask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg') alpha no-repeat center / cover add\",WebkitMask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg') alpha no-repeat center / cover add\"},children:/*#__PURE__*/_jsx(MotionDivWithFX,{__framer__loop:animation,__framer__loopEffectEnabled:true,__framer__loopRepeatDelay:0,__framer__loopRepeatType:\"loop\",__framer__loopTransition:transition2,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-1q6k69\",\"data-framer-name\":\"Conic\",layoutDependency:layoutDependency,layoutId:\"k_5uuUAZ4\",style:{background:'conic-gradient(from 0deg at 50% 50%, var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255)) /* {\"name\":\"Inverse\"} */ 7.208614864864882deg, rgb(255, 255, 255) 342deg)',mask:\"none\",WebkitMask:\"none\"},variants:{Xt5x5Qp4a:{mask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg') alpha no-repeat center / cover add\",WebkitMask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg') alpha no-repeat center / cover add\"}},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-3190i6\",\"data-framer-name\":\"Rounding\",layoutDependency:layoutDependency,layoutId:\"CC8F4hvKB\",style:{backgroundColor:\"var(--token-4321a524-8651-4268-85f9-e884d8cb6223, rgb(255, 255, 255))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1},transformTemplate:transformTemplate1})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-N6Cqr.framer-gos2hl, .framer-N6Cqr .framer-gos2hl { display: block; }\",\".framer-N6Cqr.framer-hxui1o { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: 40px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 240px; }\",\".framer-N6Cqr .framer-5rdx6g { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-N6Cqr .framer-5rvwie { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 20px); overflow: hidden; position: relative; width: 20px; }\",\".framer-N6Cqr .framer-1q6k69 { bottom: 0px; flex: none; left: 0px; overflow: visible; position: absolute; right: 0px; top: 0px; }\",\".framer-N6Cqr .framer-3190i6 { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 2px); left: 50%; overflow: visible; position: absolute; top: 0px; width: 2px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-N6Cqr.framer-hxui1o { gap: 0px; } .framer-N6Cqr.framer-hxui1o > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-N6Cqr.framer-hxui1o > :first-child { margin-left: 0px; } .framer-N6Cqr.framer-hxui1o > :last-child { margin-right: 0px; } }\",\".framer-N6Cqr.framer-v-1appg09.framer-hxui1o, .framer-N6Cqr.framer-v-aqkard.framer-hxui1o, .framer-N6Cqr.framer-v-1pu7m1h.framer-hxui1o, .framer-N6Cqr.framer-v-gx78i2.framer-hxui1o { cursor: unset; }\",\".framer-N6Cqr.framer-v-1appg09 .framer-1q6k69 { overflow: hidden; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 240\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"Xt5x5Qp4a\":{\"layout\":[\"fixed\",\"fixed\"]},\"OURxM_m6K\":{\"layout\":[\"fixed\",\"fixed\"]},\"eaSPiDpsh\":{\"layout\":[\"fixed\",\"fixed\"]},\"Vi5UJVFQv\":{\"layout\":[\"fixed\",\"fixed\"]},\"s53hgv9aL\":{\"layout\":[\"fixed\",\"fixed\"]},\"o9W9n7mu0\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const Framerx5UZ3wWsD=withCSS(Component,css,\"framer-N6Cqr\");export default Framerx5UZ3wWsD;Framerx5UZ3wWsD.displayName=\"Button\";Framerx5UZ3wWsD.defaultProps={height:40,width:240};addPropertyControls(Framerx5UZ3wWsD,{variant:{options:[\"mhDrVasVh\",\"Xt5x5Qp4a\",\"OURxM_m6K\",\"eaSPiDpsh\",\"Vi5UJVFQv\"],optionTitles:[\"Default\",\"Loading\",\"Disabled\",\"Success\",\"Error\"],title:\"Variant\",type:ControlType.Enum}});addFonts(Framerx5UZ3wWsD,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerx5UZ3wWsD\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"240\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"40\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"Xt5x5Qp4a\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"OURxM_m6K\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"eaSPiDpsh\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"Vi5UJVFQv\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"s53hgv9aL\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"o9W9n7mu0\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (400c93f)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,SVG,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const serializationHash=\"framer-RFQNm\";const variantClassNames={xKwpCA3pv:\"framer-v-1fidbf1\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,hover,id,width,...props})=>{return{...props,zqIOQaUeu:hover??props.zqIOQaUeu};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,zqIOQaUeu,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"xKwpCA3pv\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onMouseEnter3bbuxs=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});if(zqIOQaUeu){const res=await zqIOQaUeu(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1fidbf1\",className,classNames),\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"xKwpCA3pv\",onMouseEnter:onMouseEnter3bbuxs,ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(SVG,{className:\"framer-mu87dw\",\"data-framer-name\":\"Zelig_Symbol_White\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:80,intrinsicWidth:128,layoutDependency:layoutDependency,layoutId:\"yuhAhrskD\",svg:'<svg width=\"128\" height=\"80\" viewBox=\"0 0 128 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<g clip-path=\"url(#clip0_4611_921)\">\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M126.152 23.9114C125.377 18.9753 123.503 14.5626 120.729 11.1535C119.532 9.68185 118.165 8.39307 116.663 7.32329C113.591 5.1344 109.895 3.92865 106.257 3.92865C104.511 3.92865 102.806 4.1994 101.189 4.73369C96.5609 6.26314 92.8149 9.69629 90.9136 14.1547L90.9064 14.1715C88.969 18.5024 88.9858 23.1678 90.9521 26.6514L90.9653 26.6743C92.3793 29.3301 94.7908 31.5406 97.5837 32.7392C99.0422 33.3649 100.519 33.6826 101.974 33.6826C103.537 33.6826 105.019 33.318 106.386 32.596C107.156 32.1941 107.843 31.7019 108.427 31.1339L108.446 31.1159C109.481 30.1556 110.372 28.578 109.88 27.3843C109.646 26.8187 109.149 26.1689 107.36 26.1689C106.618 26.1689 105.857 26.2772 105.138 26.3879C104.344 26.5106 103.594 26.6262 102.863 26.6262C100.331 26.6262 97.4887 24.6707 96.9556 20.9343C96.5741 18.2689 97.8437 14.6625 101.538 12.6132C102.845 11.8888 104.369 11.5049 105.946 11.5049C108.585 11.5049 111.183 12.5603 113.073 14.4002C116.196 17.4374 117.8 21.8898 117.591 26.9366C117.397 31.5912 115.698 36.2301 112.928 39.6644C110.646 42.4923 107.971 44.1625 104.977 44.6318C104.416 44.7197 103.845 44.7642 103.279 44.7642C100.856 44.7642 98.4213 43.9628 96.0423 42.384C93.6308 40.7823 91.5285 38.8173 89.4948 36.916C88.9618 36.4166 88.4094 35.9016 87.8631 35.4022C86.0039 33.7055 83.9739 32.2205 81.8271 30.9907C75.2472 27.2182 69.837 25.4613 64.7986 25.4613C63.6048 25.4613 62.4171 25.5636 61.2692 25.767C59.7794 26.0618 58.8709 26.4986 58.2078 26.8187C57.7036 27.0618 57.3053 27.2531 56.8529 27.2531C56.3463 27.2531 55.6724 27.0257 55.3403 25.9415C55.1983 25.477 55.0912 24.826 54.9287 23.8019C54.6387 21.9716 54.4799 20.1052 54.457 18.2557C54.4257 15.7022 54.3331 12.7022 53.8902 9.81422C53.4257 6.7854 52.646 4.3065 51.5052 2.23915C50.9168 1.43411 50.3885 1.32942 49.9914 1.32942C49.119 1.32942 48.0011 1.91786 46.9192 2.48824L46.9165 2.4897C45.9234 3.01271 44.8967 3.55341 43.8531 3.77342C39.5078 4.96112 35.3418 5.86122 31.3118 6.73124C21.7127 8.80461 13.4229 10.5964 7.93202 15.2834C5.0825 17.7154 3.12104 20.8176 1.93575 24.7682C0.610862 29.1797 0.234214 34.6308 0.784144 41.4382C0.828003 41.987 0.866024 42.5417 0.906258 43.1286L0.906265 43.1287L0.908089 43.1553L0.908486 43.1611C1.17794 47.0971 1.4832 51.5561 3.75641 54.468C4.91523 55.9517 6.62278 56.6737 8.97653 56.6737C10.2027 56.6737 11.589 56.4848 13.3411 56.0793C17.5532 55.1048 21.7439 53.7522 25.7972 52.4439L25.8306 52.4331L26.5634 52.1973C28.5991 51.5404 30.6022 50.6898 32.7244 49.7888L32.7245 49.7887L32.7258 49.7882C35.3755 48.6631 38.1168 47.4994 40.9133 46.7546L40.9627 46.7413L41.0132 46.7329C41.1588 46.7088 41.3261 46.6956 41.4982 46.6956C41.929 46.6956 42.9903 46.7822 43.521 47.5873C43.7051 47.8664 43.9626 48.4549 43.6161 49.2647L43.5848 49.3381L43.5427 49.4067C43.0385 50.2273 42.2877 50.7857 41.6259 51.2778L41.6257 51.2779L41.6245 51.2789L41.6244 51.2789C41.0894 51.6768 40.5834 52.0532 40.2888 52.4981C39.9049 53.2695 40.5716 54.1792 41.6293 55.4716C42.0192 55.9481 42.3862 56.397 42.6594 56.8542C44.1672 59.3777 44.4861 62.2801 43.5583 65.0274C42.586 67.9058 40.3742 70.2174 37.491 71.3702C35.4309 72.1933 32.9893 73.3738 32.4021 75.2053C32.2192 75.7769 32.3034 76.2847 32.6704 76.8021C33.6764 78.2269 36.2744 79.0752 37.6848 79.1186C37.8701 79.1246 38.0578 79.127 38.2443 79.127C41.142 79.127 43.9313 78.4663 45.9 77.3159C49.1767 75.4002 50.0455 71.8311 50.9649 68.0514L51.0455 67.7205C52.0948 63.4245 54.0382 58.267 59.7999 56.5101C61.5399 55.9794 63.4268 55.7111 65.4087 55.7111C68.7359 55.7111 72.3423 56.4764 75.8369 57.9228C79.1328 59.2874 82.1821 61.1851 84.6562 63.4101L84.6718 63.4245C86.8367 65.4521 87.685 66.901 87.5081 68.2668C87.3036 69.8479 85.809 70.6554 84.2255 71.5109L84.2254 71.511L84.2176 71.5152C82.9584 72.1965 81.5339 72.9672 80.5624 74.1884C80.1509 74.76 80.0414 75.4062 80.2363 76.1102C80.5022 77.0705 81.3001 77.9561 82.2688 78.3653C83.2194 78.7672 84.3108 78.9717 85.5106 78.9717C87.5153 78.9717 89.6296 78.4014 91.4647 77.3665C93.3335 76.3123 94.7294 74.8611 95.3973 73.2787C95.9304 72.016 96.256 70.6877 96.6008 69.2807L96.6008 69.2806L96.6054 69.2619C96.7426 68.7 96.8846 68.12 97.041 67.546L97.1072 67.3005C97.5633 65.6098 98.0807 63.6941 99.5103 62.3499C100.688 61.2428 102.2 60.8277 103.534 60.4631C103.69 60.421 103.844 60.3788 103.996 60.3355C105.81 59.8241 107.13 59.3512 108.279 58.8013C110.993 57.5028 113.067 56.2177 114.807 54.758C117.151 52.7917 119.22 50.4356 120.958 47.7545C124.592 42.1457 126.574 35.3986 126.539 28.7561C126.53 27.1244 126.4 25.4938 126.151 23.909L126.152 23.9114ZM75.3387 63.5521L75.3123 63.5328C74.6035 63.025 73.7359 62.7567 72.8021 62.7567C72.3051 62.7567 71.7997 62.8325 71.2919 62.9853C70.8033 63.1273 70.3172 63.315 69.843 63.4991L69.8209 63.5077L69.8209 63.5077C69.3718 63.6814 68.9473 63.8456 68.4833 63.9889C68.1138 64.1128 67.7312 64.2223 67.3244 64.3379C65.2824 64.9191 63.8022 65.4473 63.3919 66.9467L63.3895 66.9575C63.1994 68.5676 63.9154 69.5965 65.576 70.1043C66.2126 70.2992 66.9995 70.4015 67.8515 70.4015C69.1427 70.4015 70.5506 70.1753 71.9236 69.7481C74.2401 69.0273 75.9849 67.8829 76.5902 66.688C77.1269 65.6278 76.7057 64.5725 75.3399 63.5509L75.3387 63.5521ZM36.2504 58.1791C37.4995 59.149 38.0446 60.1671 37.8737 61.2055L37.8725 61.2043C37.6102 62.7976 35.6114 64.4534 32.7823 65.4245C31.3419 65.919 29.7764 66.191 28.3733 66.191C28.188 66.191 28.0038 66.1862 27.827 66.1766C26.1543 66.0899 24.7957 65.6062 23.8968 64.7783L23.8716 64.7554C23.3842 64.333 23.1423 63.8734 23.1544 63.3884C23.1712 62.7374 23.6574 61.9913 24.4913 61.3427L24.5093 61.3283C25.6594 60.3929 27.193 59.8961 28.4279 59.4961L28.4407 59.492C29.0664 59.297 29.7018 59.0323 30.3744 58.7519L30.3799 58.7496C31.7055 58.198 33.0753 57.628 34.3491 57.628C35.047 57.628 35.6619 57.8037 36.2275 58.1635L36.2504 58.1791Z\" fill=\"white\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_4611_921\">\\n<rect width=\"128\" height=\"79.828\" fill=\"white\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-RFQNm.framer-m578ij, .framer-RFQNm .framer-m578ij { display: block; }\",\".framer-RFQNm.framer-1fidbf1 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; padding: 0px; position: relative; width: min-content; }\",\".framer-RFQNm .framer-mu87dw { flex: none; height: 34px; position: relative; width: 54px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-RFQNm.framer-1fidbf1 { gap: 0px; } .framer-RFQNm.framer-1fidbf1 > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-RFQNm.framer-1fidbf1 > :first-child { margin-top: 0px; } .framer-RFQNm.framer-1fidbf1 > :last-child { margin-bottom: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 34\n * @framerIntrinsicWidth 54\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"zqIOQaUeu\":\"hover\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerYx_upkg95=withCSS(Component,css,\"framer-RFQNm\");export default FramerYx_upkg95;FramerYx_upkg95.displayName=\"Icon\";FramerYx_upkg95.defaultProps={height:34,width:54};addPropertyControls(FramerYx_upkg95,{zqIOQaUeu:{title:\"Hover\",type:ControlType.EventHandler}});addFonts(FramerYx_upkg95,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerYx_upkg95\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"zqIOQaUeu\\\":\\\"hover\\\"}\",\"framerIntrinsicWidth\":\"54\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"34\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Yx_upkg95.map","// Generated by Framer (52a4463)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,FormContainer,FormPlainTextInput,getFonts,getFontsFromSharedStyle,Link,ResolveLinks,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/wYkCOpzbiloymlXcyQbL/rUFyB19FWpe836BvNrA9/et4INEFqK.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/vZY7yG7Qiorq1JDZST9I/0TpUdlu52pod3g06f77y/h4jVEYDkM.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/bmd6zvl7JnESGhE5At74/uqb7Rppf25l8CnNb1IFp/MD1Cowi_v.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/hOLvqe14KPW2k0q4doYY/NjNb1oWvRxuS6k0nJSAN/pMpbwjAiS.js\";import ComponentsButtonText from\"https://framerusercontent.com/modules/u1TRHlJBsGJQXmxEgwiB/aGWOSEtJXe4i8ovzcdw0/Q3kdzq8JL.js\";import Button from\"https://framerusercontent.com/modules/weYLJP4dJrVcpgKaHGvX/6iAvN6XDF4iiWhLdF3uV/x5UZ3wWsD.js\";import Icon from\"https://framerusercontent.com/modules/6Ma4PgzbmprYadehpjCD/DJMMa8H2llifFq3GyOsk/Yx_upkg95.js\";const IconFonts=getFonts(Icon);const ButtonFonts=getFonts(Button);const ComponentsButtonTextFonts=getFonts(ComponentsButtonText);const cycleOrder=[\"lbQMEbFrL\",\"QOYQG_2Ry\",\"errPNB4nm\",\"fZkYRvMdh\",\"mDo7qFsgG\",\"wY5MvAcf2\"];const serializationHash=\"framer-N1NDf\";const variantClassNames={errPNB4nm:\"framer-v-13x68xd\",fZkYRvMdh:\"framer-v-1iu6ppr\",lbQMEbFrL:\"framer-v-1fp66gy\",mDo7qFsgG:\"framer-v-52lmws\",QOYQG_2Ry:\"framer-v-1os7w5k\",wY5MvAcf2:\"framer-v-1t1sol4\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transformTemplate1=(_,t)=>`translateY(-50%) ${t}`;const transformTemplate2=(_,t)=>`translate(-50%, -50%) ${t}`;const formVariants=(form,variants,currentVariant)=>{switch(form.state){case\"success\":return variants.success??currentVariant;case\"pending\":return variants.pending??currentVariant;case\"error\":return variants.error??currentVariant;case\"incomplete\":return variants.incomplete??currentVariant;}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Desktop No Callout\":\"fZkYRvMdh\",\"Mobile No Callout\":\"wY5MvAcf2\",\"Tablet No Callout\":\"mDo7qFsgG\",Desktop:\"lbQMEbFrL\",Phone:\"errPNB4nm\",Tablet:\"QOYQG_2Ry\"};const getProps=({cursor,height,id,textCursor,width,...props})=>{return{...props,PtonBmtS1:textCursor??props.PtonBmtS1,rpM5AcrKC:cursor??props.rpM5AcrKC,variant:humanReadableVariantMap[props.variant]??props.variant??\"lbQMEbFrL\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,rpM5AcrKC,PtonBmtS1,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"lbQMEbFrL\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1fp66gy\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"lbQMEbFrL\",ref:refBinding,style:{backgroundColor:\"var(--token-47ce4630-416f-4f81-a461-62681871d101, rgb(246, 246, 246))\",...style},...addPropertyOverrides({errPNB4nm:{\"data-framer-name\":\"Phone\"},fZkYRvMdh:{\"data-framer-name\":\"Desktop No Callout\"},mDo7qFsgG:{\"data-framer-name\":\"Tablet No Callout\"},QOYQG_2Ry:{\"data-framer-name\":\"Tablet\"},wY5MvAcf2:{\"data-framer-name\":\"Mobile No Callout\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1pjjggg\",\"data-framer-name\":\"Footer\",layoutDependency:layoutDependency,layoutId:\"I7145:811;7145:515\",style:{backgroundColor:\"var(--token-4321a524-8651-4268-85f9-e884d8cb6223, rgb(255, 255, 255))\"},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-nmrf9j\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"N_6GbzUuN\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-5i5hf5\",layoutDependency:layoutDependency,layoutId:\"mY_w1hkMU\",style:{backgroundColor:\"var(--token-5087bb56-e67b-4acc-afc9-0cb2e336d0c2, rgb(246, 246, 246))\"}}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1g3iwaf\",\"data-framer-name\":\"2 Col\",layoutDependency:layoutDependency,layoutId:\"sdbhJAE6M\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1xqhusi\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"QwSq4FBit\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+0+0+0+0+0+26+0+0,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+0+0+26+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+0+0+26+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1or8gbd-container\",layoutDependency:layoutDependency,layoutId:\"ZxfC18rf8-container\",nodeId:\"ZxfC18rf8\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",transformTemplate:transformTemplate1,...addPropertyOverrides({errPNB4nm:{transformTemplate:transformTemplate2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Icon,{height:\"100%\",id:\"ZxfC18rf8\",layoutId:\"ZxfC18rf8\",width:\"100%\"})})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-w2syfz\",\"data-framer-name\":\"Form wrapper\",layoutDependency:layoutDependency,layoutId:\"d9ruRVZpk\",style:{borderBottomLeftRadius:40,borderBottomRightRadius:40,borderTopLeftRadius:40,borderTopRightRadius:40},children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-fottxr\",\"data-styles-preset\":\"h4jVEYDkM\",children:\"Subscribe to our newsletter\"})}),className:\"framer-1ao46zx\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"v0pq5CCYb\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(FormContainer,{action:\"https://api.framer.com/forms/v1/forms/110c4d2a-bb09-45c6-b0b9-108d30c9f34b/submit\",className:\"framer-13amath\",layoutDependency:layoutDependency,layoutId:\"jsraeJBUp\",nodeId:\"jsraeJBUp\",children:formState=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(motion.label,{className:\"framer-47hek3\",\"data-framer-cursor\":PtonBmtS1,layoutDependency:layoutDependency,layoutId:\"lVjEm5uXw\",children:/*#__PURE__*/_jsx(FormPlainTextInput,{className:\"framer-pcx6mu\",inputName:\"Name\",layoutDependency:layoutDependency,layoutId:\"Ups35ys_8\",placeholder:\"Full Name\",style:{\"--framer-input-background\":\"var(--token-5087bb56-e67b-4acc-afc9-0cb2e336d0c2, rgb(246, 246, 246))\",\"--framer-input-border-radius-bottom-left\":\"8px\",\"--framer-input-border-radius-bottom-right\":\"8px\",\"--framer-input-border-radius-top-left\":\"8px\",\"--framer-input-border-radius-top-right\":\"8px\",\"--framer-input-font-color\":\"var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6))\",\"--framer-input-icon-color\":\"rgb(153, 153, 153)\",\"--framer-input-placeholder-color\":\"var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6))\"},type:\"text\"})}),/*#__PURE__*/_jsx(motion.label,{className:\"framer-1mzwky4\",\"data-framer-cursor\":PtonBmtS1,layoutDependency:layoutDependency,layoutId:\"AytfGc6JM\",children:/*#__PURE__*/_jsx(FormPlainTextInput,{className:\"framer-1wjyuzr\",inputName:\"Email\",layoutDependency:layoutDependency,layoutId:\"dKdbE41E_\",placeholder:\"Email Address\",style:{\"--framer-input-background\":\"var(--token-5087bb56-e67b-4acc-afc9-0cb2e336d0c2, rgb(246, 246, 246))\",\"--framer-input-border-radius-bottom-left\":\"8px\",\"--framer-input-border-radius-bottom-right\":\"8px\",\"--framer-input-border-radius-top-left\":\"8px\",\"--framer-input-border-radius-top-right\":\"8px\",\"--framer-input-font-color\":\"var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6))\",\"--framer-input-icon-color\":\"rgb(153, 153, 153)\",\"--framer-input-placeholder-color\":\"var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6))\"},type:\"email\"})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:40,width:\"116px\",y:(componentViewport?.y||0)+0+0+0+0+0+26+0+0+90+0+0,...addPropertyOverrides({errPNB4nm:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+0+150+0+0+26+0+75+0+90+0+96},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+0+0+26+0+0+90+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1l5s16o-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"paIkoocVF-container\",nodeId:\"paIkoocVF\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(Button,{height:\"100%\",id:\"paIkoocVF\",layoutId:\"paIkoocVF\",style:{height:\"100%\",width:\"100%\"},type:\"submit\",variant:formVariants(formState,{pending:\"Xt5x5Qp4a\",success:\"eaSPiDpsh\"},\"mhDrVasVh\"),width:\"100%\"})})})]})})]})]})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-cldrid\",layoutDependency:layoutDependency,layoutId:\"ZbLUsyvek\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1iodw6g\",layoutDependency:layoutDependency,layoutId:\"krowvNb9V\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-5zudly-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"XSR7PcLKk-container\",nodeId:\"XSR7PcLKk\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"XSR7PcLKk\",layoutId:\"XSR7PcLKk\",NUrsnrIij:false,U1gPdA4r9:resolvedLinks[0],variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"Work\",...addPropertyOverrides({errPNB4nm:{U1gPdA4r9:resolvedLinks[2]},fZkYRvMdh:{U1gPdA4r9:resolvedLinks[3]},mDo7qFsgG:{U1gPdA4r9:resolvedLinks[4]},QOYQG_2Ry:{U1gPdA4r9:resolvedLinks[1]},wY5MvAcf2:{U1gPdA4r9:resolvedLinks[5]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+32}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-jcehe9-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"LXlnY9QSo-container\",nodeId:\"LXlnY9QSo\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"LXlnY9QSo\",layoutId:\"LXlnY9QSo\",NUrsnrIij:false,U1gPdA4r9:resolvedLinks1[0],variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"About\",...addPropertyOverrides({errPNB4nm:{U1gPdA4r9:resolvedLinks1[2]},fZkYRvMdh:{U1gPdA4r9:resolvedLinks1[3]},mDo7qFsgG:{U1gPdA4r9:resolvedLinks1[4]},QOYQG_2Ry:{U1gPdA4r9:resolvedLinks1[1]},wY5MvAcf2:{U1gPdA4r9:resolvedLinks1[5]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+64}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ea5ks4-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"ZFYjpp59g-container\",nodeId:\"ZFYjpp59g\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"ZFYjpp59g\",layoutId:\"ZFYjpp59g\",NUrsnrIij:false,U1gPdA4r9:resolvedLinks2[0],variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"Process\",...addPropertyOverrides({errPNB4nm:{U1gPdA4r9:resolvedLinks2[2]},fZkYRvMdh:{U1gPdA4r9:resolvedLinks2[3]},mDo7qFsgG:{U1gPdA4r9:resolvedLinks2[4]},QOYQG_2Ry:{U1gPdA4r9:resolvedLinks2[1]},wY5MvAcf2:{U1gPdA4r9:resolvedLinks2[5]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+96}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-4s0vgh-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"PA5dXtWIz-container\",nodeId:\"PA5dXtWIz\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"PA5dXtWIz\",layoutId:\"PA5dXtWIz\",NUrsnrIij:false,U1gPdA4r9:resolvedLinks3[0],variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"Contact\",...addPropertyOverrides({errPNB4nm:{U1gPdA4r9:resolvedLinks3[2]},fZkYRvMdh:{U1gPdA4r9:resolvedLinks3[3]},mDo7qFsgG:{U1gPdA4r9:resolvedLinks3[4]},QOYQG_2Ry:{U1gPdA4r9:resolvedLinks3[1]},wY5MvAcf2:{U1gPdA4r9:resolvedLinks3[5]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+128}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-fsiwg6-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"YJOBxFZin-container\",nodeId:\"YJOBxFZin\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"YJOBxFZin\",layoutId:\"YJOBxFZin\",NUrsnrIij:false,variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"instagram\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+160}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1gyevk4-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"WN9XBg2iK-container\",nodeId:\"WN9XBg2iK\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"WN9XBg2iK\",layoutId:\"WN9XBg2iK\",NUrsnrIij:false,variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"vimeo\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,y:(componentViewport?.y||0)+0+0+0+227+0+0+9,...addPropertyOverrides({errPNB4nm:{y:(componentViewport?.y||0)+0+0+150+381+0+0+0},QOYQG_2Ry:{y:(componentViewport?.y||0)+0+(0+0+((componentViewport?.height||300)-0-300)/1*0)+0+227+0+0+9},wY5MvAcf2:{y:(componentViewport?.y||0)+0+0+0+189+0+0+0+192}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1xel10l-container\",\"data-framer-cursor\":rpM5AcrKC,layoutDependency:layoutDependency,layoutId:\"mToRMYocD-container\",nodeId:\"mToRMYocD\",rendersWithMotion:true,scopeId:\"FSk6I1Kth\",children:/*#__PURE__*/_jsx(ComponentsButtonText,{bp31TjQBy:false,height:\"100%\",id:\"mToRMYocD\",layoutId:\"mToRMYocD\",NUrsnrIij:false,U1gPdA4r9:\"https://www.linkedin.com/company/zelig-sound/\",variant:\"xVnEazx8s\",width:\"100%\",YwyRGS3Ya:\"linkedin\"})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1cccj3e\",layoutDependency:layoutDependency,layoutId:\"ZTnmMJoMV\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-hilyl1\",\"data-styles-preset\":\"MD1Cowi_v\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6)))\"},children:\"\\xa9 2025 Zelig Sound.\"})}),className:\"framer-vkhoxn\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"lekOj8rDV\",style:{\"--extracted-r6o4lv\":\"var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6))\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-dpja3c\",layoutDependency:layoutDependency,layoutId:\"A2FAiDJX1\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-hilyl1\",\"data-styles-preset\":\"MD1Cowi_v\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"fBU8qleMH\"},motionChild:true,nodeId:\"LmmLs3YqG\",openInNewTab:false,relValues:[],scopeId:\"FSk6I1Kth\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-jb4zlp\",\"data-styles-preset\":\"pMpbwjAiS\",children:\"privacy policy\"})})})}),className:\"framer-aimto3\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"LmmLs3YqG\",style:{\"--extracted-r6o4lv\":\"var(--token-797a2fb4-2d14-46eb-9fb6-f38c1a9a545e, rgba(14, 16, 17, 0.6))\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-hilyl1\",\"data-styles-preset\":\"MD1Cowi_v\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, rgb(14, 16, 17)))\"},children:[\"Site by \",/*#__PURE__*/_jsx(Link,{href:\"https://lostproperty.studio\",motionChild:true,nodeId:\"wY2y1N8nc\",openInNewTab:true,relValues:[],scopeId:\"FSk6I1Kth\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-9c5wnd\",\"data-styles-preset\":\"et4INEFqK\",children:\"Lost Property\"})}),\".\"]})}),className:\"framer-qqr2ee\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"wY2y1N8nc\",style:{\"--extracted-r6o4lv\":\"var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, rgb(14, 16, 17))\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-N1NDf.framer-1jjgi3i, .framer-N1NDf .framer-1jjgi3i { display: block; }\",\".framer-N1NDf.framer-1fp66gy { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 960px; }\",\".framer-N1NDf .framer-1pjjggg { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; height: 300px; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-nmrf9j { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-5i5hf5 { flex: none; height: 2px; overflow: hidden; position: relative; width: 100%; }\",\".framer-N1NDf .framer-1g3iwaf { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-1xqhusi { flex: 1 0 0px; height: 35px; overflow: visible; position: relative; width: 1px; }\",\".framer-N1NDf .framer-1or8gbd-container { flex: none; height: auto; left: 0px; position: absolute; top: 49%; width: auto; }\",\".framer-N1NDf .framer-w2syfz { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; max-width: 100%; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-N1NDf .framer-1ao46zx { flex: none; height: auto; overflow: visible; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-N1NDf .framer-13amath { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-47hek3, .framer-N1NDf .framer-1mzwky4 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 1px; }\",'.framer-N1NDf .framer-pcx6mu, .framer-N1NDf .framer-1wjyuzr { --framer-input-focused-border-color: #0099ff; --framer-input-focused-border-style: solid; --framer-input-focused-border-width: 1px; --framer-input-font-family: \"Instrument Sans\"; --framer-input-font-letter-spacing: 0em; --framer-input-font-line-height: 1.2em; --framer-input-font-size: 12px; --framer-input-font-weight: 400; --framer-input-padding: 14px; flex: none; height: 40px; position: relative; width: 100%; }',\".framer-N1NDf .framer-1l5s16o-container { flex: none; height: 40px; position: relative; width: 116px; }\",\".framer-N1NDf .framer-cldrid { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 30px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-1iodw6g { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 32px; height: 34px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-5zudly-container, .framer-N1NDf .framer-jcehe9-container, .framer-N1NDf .framer-1ea5ks4-container, .framer-N1NDf .framer-4s0vgh-container, .framer-N1NDf .framer-fsiwg6-container, .framer-N1NDf .framer-1gyevk4-container, .framer-N1NDf .framer-1xel10l-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-N1NDf .framer-1cccj3e { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-N1NDf .framer-vkhoxn, .framer-N1NDf .framer-aimto3, .framer-N1NDf .framer-qqr2ee { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-N1NDf .framer-dpja3c { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-N1NDf.framer-v-1os7w5k.framer-1fp66gy { gap: unset; justify-content: space-between; width: 810px; }\",\".framer-N1NDf.framer-v-13x68xd.framer-1fp66gy { gap: 48px; width: 390px; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1pjjggg { align-content: flex-start; align-items: flex-start; gap: 54px; height: min-content; justify-content: flex-start; padding: 150px 0px 0px 0px; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1g3iwaf { align-content: center; align-items: center; flex-direction: column; gap: 40px; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1xqhusi, .framer-N1NDf.framer-v-13x68xd .framer-w2syfz, .framer-N1NDf.framer-v-13x68xd .framer-47hek3, .framer-N1NDf.framer-v-13x68xd .framer-1mzwky4 { flex: none; width: 100%; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1or8gbd-container { left: 51%; }\",\".framer-N1NDf.framer-v-13x68xd .framer-13amath { flex-direction: column; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1l5s16o-container { width: 100%; }\",\".framer-N1NDf.framer-v-13x68xd .framer-cldrid { gap: 40px; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1iodw6g { gap: 16px; height: min-content; }\",\".framer-N1NDf.framer-v-13x68xd .framer-1cccj3e, .framer-N1NDf.framer-v-1t1sol4 .framer-1cccj3e { flex-direction: column; gap: 10px; justify-content: center; }\",\".framer-N1NDf.framer-v-13x68xd .framer-dpja3c, .framer-N1NDf.framer-v-1t1sol4 .framer-dpja3c { flex: none; gap: 10px; width: 100%; }\",\".framer-N1NDf.framer-v-52lmws.framer-1fp66gy { width: 810px; }\",\".framer-N1NDf.framer-v-1t1sol4.framer-1fp66gy { width: 390px; }\",\".framer-N1NDf.framer-v-1t1sol4 .framer-1pjjggg { align-content: flex-start; align-items: flex-start; }\",\".framer-N1NDf.framer-v-1t1sol4 .framer-1iodw6g { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 16px; justify-content: flex-start; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 300\n * @framerIntrinsicWidth 960\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"QOYQG_2Ry\":{\"layout\":[\"fixed\",\"auto\"]},\"errPNB4nm\":{\"layout\":[\"fixed\",\"auto\"]},\"fZkYRvMdh\":{\"layout\":[\"fixed\",\"auto\"]},\"mDo7qFsgG\":{\"layout\":[\"fixed\",\"auto\"]},\"wY5MvAcf2\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"rpM5AcrKC\":\"cursor\",\"PtonBmtS1\":\"textCursor\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerFSk6I1Kth=withCSS(Component,css,\"framer-N1NDf\");export default FramerFSk6I1Kth;FramerFSk6I1Kth.displayName=\"Layout/Footer\";FramerFSk6I1Kth.defaultProps={height:300,width:960};addPropertyControls(FramerFSk6I1Kth,{variant:{options:[\"lbQMEbFrL\",\"QOYQG_2Ry\",\"errPNB4nm\",\"fZkYRvMdh\",\"mDo7qFsgG\",\"wY5MvAcf2\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\",\"Desktop No Callout\",\"Tablet No Callout\",\"Mobile No Callout\"],title:\"Variant\",type:ControlType.Enum},rpM5AcrKC:{title:\"Cursor\",type:ControlType.CustomCursor},PtonBmtS1:{title:\"Text Cursor\",type:ControlType.CustomCursor}});addFonts(FramerFSk6I1Kth,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v3/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSTF-QfwmS0v3_7Y.woff2\",weight:\"400\"}]},...IconFonts,...ButtonFonts,...ComponentsButtonTextFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerFSk6I1Kth\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"960\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"rpM5AcrKC\\\":\\\"cursor\\\",\\\"PtonBmtS1\\\":\\\"textCursor\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"QOYQG_2Ry\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"errPNB4nm\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"fZkYRvMdh\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"mDo7qFsgG\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"wY5MvAcf2\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"300\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FSk6I1Kth.map","// Generated by Framer (915daba)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Instrument Sans-regular\",\"GF;Instrument Sans-700\",\"GF;Instrument Sans-700italic\",\"GF;Instrument Sans-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSTF-QfwmS0v3_7Y.woff2\",weight:\"400\"},{family:\"Instrument Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSQi_gfwmS0v3_7Y.woff2\",weight:\"700\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENugixkywN2u7YUwU.woff2\",weight:\"700\"},{family:\"Instrument Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/instrumentsans/v1/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENuu-2kywN2u7YUwU.woff2\",weight:\"400\"}]}];export const css=['.framer-KC8jh .framer-styles-preset-1wle1yq:not(.rich-text-wrapper), .framer-KC8jh .framer-styles-preset-1wle1yq.rich-text-wrapper p { --framer-font-family: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0px; --framer-line-height: 120%; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, #242422); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-KC8jh\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (aba0f78)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/c89Xyy1cYChAiWYNzXQq/7sl2LyWolYGejaHUsnt2/JdhZ0OYGi.js\";const enabledGestures={ZHia6ERgq:{hover:true}};const cycleOrder=[\"ZHia6ERgq\",\"OmdGC4kz7\"];const serializationHash=\"framer-7fSSK\";const variantClassNames={OmdGC4kz7:\"framer-v-1bvablp\",ZHia6ERgq:\"framer-v-1pe829t\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:0,delay:0,duration:.6,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Desktop:\"ZHia6ERgq\",Mobile:\"OmdGC4kz7\"};const getProps=({click,height,hover,id,link,title,width,...props})=>{return{...props,BS5SaAWg0:link??props.BS5SaAWg0,hK9FfgVOP:click??props.hK9FfgVOP,NDS66P9u6:title??props.NDS66P9u6??\"Blog\",QtQqrv7l_:hover??props.QtQqrv7l_,variant:humanReadableVariantMap[props.variant]??props.variant??\"ZHia6ERgq\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,NDS66P9u6,BS5SaAWg0,hK9FfgVOP,QtQqrv7l_,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"ZHia6ERgq\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapwmr67=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(hK9FfgVOP){const res=await hK9FfgVOP(...args);if(res===false)return false;}});const onMouseEnter1ro6nqr=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});if(QtQqrv7l_){const res=await QtQqrv7l_(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const isDisplayed=()=>{if(baseVariant===\"OmdGC4kz7\")return false;return true;};const defaultLayoutId=React.useId();const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:BS5SaAWg0,motionChild:true,nodeId:\"ZHia6ERgq\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1pe829t\",className,classNames)} framer-uo0awp`,\"data-framer-name\":\"Desktop\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"ZHia6ERgq\",onMouseEnter:onMouseEnter1ro6nqr,onTap:onTapwmr67,ref:ref??ref1,style:{...style},...addPropertyOverrides({\"ZHia6ERgq-hover\":{\"data-framer-name\":undefined},OmdGC4kz7:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1wle1yq\",\"data-styles-preset\":\"JdhZ0OYGi\",children:\"Blog\"})}),className:\"framer-1jr17sh\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"I7139:236;7105:1180\",style:{\"--framer-paragraph-spacing\":\"0px\"},text:NDS66P9u6,verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1wle1yq\",\"data-styles-preset\":\"JdhZ0OYGi\",children:\"Blog\"})}),className:\"framer-18fy5di\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"BTbA0RWg9\",style:{\"--framer-paragraph-spacing\":\"0px\"},text:NDS66P9u6,verticalAlignment:\"top\",withExternalLayout:true})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-7fSSK.framer-uo0awp, .framer-7fSSK .framer-uo0awp { display: block; }\",\".framer-7fSSK.framer-1pe829t { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 17px; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-7fSSK .framer-1jr17sh, .framer-7fSSK .framer-18fy5di { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-7fSSK.framer-1pe829t { gap: 0px; } .framer-7fSSK.framer-1pe829t > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-7fSSK.framer-1pe829t > :first-child { margin-top: 0px; } .framer-7fSSK.framer-1pe829t > :last-child { margin-bottom: 0px; } }\",\".framer-7fSSK.framer-v-1pe829t.hover.framer-1pe829t { justify-content: flex-end; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 17\n * @framerIntrinsicWidth 27\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"OmdGC4kz7\":{\"layout\":[\"auto\",\"fixed\"]},\"YeqqQaThU\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"NDS66P9u6\":\"title\",\"BS5SaAWg0\":\"link\",\"hK9FfgVOP\":\"click\",\"QtQqrv7l_\":\"hover\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const Framerg9oIoH2vY=withCSS(Component,css,\"framer-7fSSK\");export default Framerg9oIoH2vY;Framerg9oIoH2vY.displayName=\"Components/Navbar Item\";Framerg9oIoH2vY.defaultProps={height:17,width:27};addPropertyControls(Framerg9oIoH2vY,{variant:{options:[\"ZHia6ERgq\",\"OmdGC4kz7\"],optionTitles:[\"Desktop\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum},NDS66P9u6:{defaultValue:\"Blog\",displayTextArea:false,title:\"Title\",type:ControlType.String},BS5SaAWg0:{title:\"Link\",type:ControlType.Link},hK9FfgVOP:{title:\"Click\",type:ControlType.EventHandler},QtQqrv7l_:{title:\"Hover\",type:ControlType.EventHandler}});addFonts(Framerg9oIoH2vY,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerg9oIoH2vY\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"27\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"NDS66P9u6\\\":\\\"title\\\",\\\"BS5SaAWg0\\\":\\\"link\\\",\\\"hK9FfgVOP\\\":\\\"click\\\",\\\"QtQqrv7l_\\\":\\\"hover\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"OmdGC4kz7\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"YeqqQaThU\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"17\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","/** Error message constants. */ var FUNC_ERROR_TEXT = \"Expected a function\";\n/* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, nativeMin = Math.min;\n/** Used as references for various `Number` constants. */ var NAN = 0 / 0;\n/** Used to match leading and trailing whitespace. */ var reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt;\nvar now = function() {\n    return Date.now();\n};\nfunction isObject(value) {\n    var type = typeof value;\n    return value != null && (type == \"object\" || type == \"function\");\n}\nfunction isObjectLike(value) {\n    return value != null && typeof value == \"object\";\n}\nfunction toNumber(value) {\n    if (typeof value == \"number\") {\n        return value;\n    }\n    if (typeof value == \"symbol\") {\n        return NAN;\n    }\n    if (isObject(value)) {\n        var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n        value = isObject(other) ? other + \"\" : other;\n    }\n    if (typeof value != \"string\") {\n        return value === 0 ? value : +value;\n    }\n    value = value.replace(reTrim, \"\");\n    var isBinary = reIsBinary.test(value);\n    return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\nexport function debounce(func, wait, options) {\n    var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n    if (typeof func != \"function\") {\n        throw new TypeError(FUNC_ERROR_TEXT);\n    }\n    wait = toNumber(wait) || 0;\n    if (isObject(options)) {\n        leading = !!options.leading;\n        maxing = \"maxWait\" in options;\n        maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n        trailing = \"trailing\" in options ? !!options.trailing : trailing;\n    }\n    function invokeFunc(time) {\n        var args = lastArgs, thisArg = lastThis;\n        lastArgs = lastThis = undefined;\n        lastInvokeTime = time;\n        result = func.apply(thisArg, args);\n        return result;\n    }\n    function leadingEdge(time) {\n        // Reset any `maxWait` timer.\n        lastInvokeTime = time;\n        // Start the timer for the trailing edge.\n        timerId = setTimeout(timerExpired, wait);\n        // Invoke the leading edge.\n        return leading ? invokeFunc(time) : result;\n    }\n    function remainingWait(time) {\n        var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n        return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n    }\n    function shouldInvoke(time) {\n        var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n        // Either this is the first call, activity has stopped and we're at the\n        // trailing edge, the system time has gone backwards and we're treating\n        // it as the trailing edge, or we've hit the `maxWait` limit.\n        return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n    }\n    function timerExpired() {\n        var time = now();\n        if (shouldInvoke(time)) {\n            return trailingEdge(time);\n        }\n        // Restart the timer.\n        timerId = setTimeout(timerExpired, remainingWait(time));\n    }\n    function trailingEdge(time) {\n        timerId = undefined;\n        // Only invoke if we have `lastArgs` which means `func` has been\n        // debounced at least once.\n        if (trailing && lastArgs) {\n            return invokeFunc(time);\n        }\n        lastArgs = lastThis = undefined;\n        return result;\n    }\n    function cancel() {\n        if (timerId !== undefined) {\n            clearTimeout(timerId);\n        }\n        lastInvokeTime = 0;\n        lastArgs = lastCallTime = lastThis = timerId = undefined;\n    }\n    function flush() {\n        return timerId === undefined ? result : trailingEdge(now());\n    }\n    function debounced() {\n        var time = now(), isInvoking = shouldInvoke(time);\n        lastArgs = arguments;\n        lastThis = this;\n        lastCallTime = time;\n        if (isInvoking) {\n            if (timerId === undefined) {\n                return leadingEdge(lastCallTime);\n            }\n            if (maxing) {\n                // Handle invocations in a tight loop.\n                clearTimeout(timerId);\n                timerId = setTimeout(timerExpired, wait);\n                return invokeFunc(lastCallTime);\n            }\n        }\n        if (timerId === undefined) {\n            timerId = setTimeout(timerExpired, wait);\n        }\n        return result;\n    }\n    debounced.cancel = cancel;\n    debounced.flush = flush;\n    return debounced;\n}\nexport function throttle(func, wait, options) {\n    var leading = true, trailing = true;\n    if (typeof func != \"function\") {\n        throw new TypeError(FUNC_ERROR_TEXT);\n    }\n    if (isObject(options)) {\n        leading = \"leading\" in options ? !!options.leading : leading;\n        trailing = \"trailing\" in options ? !!options.trailing : trailing;\n    }\n    return debounce(func, wait, {\n        leading: leading,\n        maxWait: wait,\n        trailing: trailing\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"throttle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"debounce\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./lodash.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{animate,transform,motion,useTransform}from\"framer-motion\";import{useRef,useState,useCallback}from\"react\";import{isMotionValue,useOnChange,useAutoMotionValue}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{throttle}from\"https://framer.com/m/framer/lodash.js@0.3.0\";var KnobOptions;(function(KnobOptions){KnobOptions[\"Hide\"]=\"Hide\";KnobOptions[\"Hover\"]=\"Hover\";KnobOptions[\"Show\"]=\"Show\";})(KnobOptions||(KnobOptions={}));/**\n * SLIDER\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 20\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n */ export const Slider=withCSS(function Slider(props){const{value:valueProp,trackHeight,fillColor,focusColor,min,max,onChange,onChangeLive,onMax,onMin,trackColor,trackRadius,knobSize,knobColor,constrainKnob,shadow,shouldAnimateChange,transition,overdrag,knobSetting,style}=props;const[hovered,setHovered]=useState(false);const[focused,setFocused]=useState(false);const onCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldAnimate=shouldAnimateChange&&!onCanvas;const isConstrained=constrainKnob&&knobSetting===KnobOptions.Show;const showKnob=knobSetting!==KnobOptions.Hide;const input=useRef();const knobPadding=8;// Main setting function\nconst updateValue=useCallback((newVal,target)=>{throttledInputUpdate(newVal);if(onChange)onChange(newVal);if(shouldAnimate)animate(target,newVal,transition);else requestAnimationFrame(()=>target.set(newVal));},[transition,shouldAnimate,onChange]);// \"value\" is the source of truth\n// It can be controlled via props with a motionvalue or number 0.0 - 1.0\n// Local changes are always allowed and are reported back up using \"onChange\" callback\nconst value=useAutoMotionValue(valueProp,{onChange:updateValue,transform:value=>transform(value,[0,100],[min,max])});const knobX=useTransform(value,[min,max],[\"0%\",\"100%\"]);const normalizedValue=useTransform(value,[min,max],[0,1]);const throttledInputUpdate=useCallback(throttle(val=>{var ref;if((ref=input.current)===null||ref===void 0?void 0:ref.value)input.current.value=val;},100),[input]);// Live updating callback\nuseOnChange(value,val=>{if(isMotionValue(valueProp))throttledInputUpdate(val);if(onMax&&val>=max)onMax();if(onMin&&val<=min)onMin();if(onChangeLive)onChangeLive(val);});// Read changes from input element\nconst handleInputChange=e=>{updateValue(parseFloat(e.target.value),value);};// Handle tapping on the know to trigger update\nconst handleMouseDown=e=>{if(parseFloat(e.target.value)!==0)updateValue(parseFloat(e.target.value),value);};const handleMouseUp=()=>{};const totalKnobWidth=showKnob?knobSize+knobPadding:knobPadding;const totalHeight=Math.max(knobSize+knobPadding,trackHeight);return /*#__PURE__*/ _jsxs(\"div\",{className:\"framer-default-slider\",onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),style:{position:\"relative\",...style,alignItems:\"center\",justifyContent:\"flex-start\",border:`0px solid ${focusColor}`,\"--framer-default-slider-height\":totalHeight,\"--framer-default-slider-width\":totalKnobWidth},children:[/*#__PURE__*/ _jsx(\"input\",{ref:input,style:{flexShrink:0,minHeight:totalHeight,opacity:0,margin:0,display:\"flex\",...style,WebkitTapHighlightColor:\"rgba(0, 0, 0, 0)\",...!isConstrained&&{width:`calc(100% + ${totalKnobWidth}px)`,marginLeft:-totalKnobWidth/2}},onFocus:()=>setFocused(true),onBlur:()=>setFocused(false),type:\"range\",min:min,max:max,defaultValue:-1,step:\"any\",onChange:handleInputChange,onMouseDown:handleMouseDown,onMouseUp:handleMouseUp}),/*#__PURE__*/ _jsx(\"div\",{style:{background:trackColor,position:\"absolute\",top:`calc(50% - ${Math.ceil(trackHeight/2)}px)`,borderRadius:trackRadius,display:\"flex\",height:trackHeight,width:\"100%\",transformOrigin:\"left\",pointerEvents:\"none\",overflow:\"hidden\"},children:/*#__PURE__*/ _jsx(motion.div,{style:{height:trackHeight,width:\"100%\",background:fillColor,scaleX:normalizedValue,position:\"absolute\",top:`calc(50% - ${Math.ceil(trackHeight/2)}px)`,transformOrigin:\"left\",pointerEvents:\"none\"}})}),/*#__PURE__*/ _jsx(motion.div,{style:{x:knobX,position:\"absolute\",display:\"flex\",top:`calc(50% - ${Math.floor(knobSize/2)}px)`,pointerEvents:\"none\",...isConstrained?{width:`calc(100% - ${knobSize}px`,left:0}:{width:`100%`,left:-knobSize/2}},children:/*#__PURE__*/ _jsx(motion.div,{initial:false,animate:{scale:hovered&&knobSetting===KnobOptions.Hover||knobSetting===KnobOptions.Show?1:0},transition:{type:\"spring\",stiffness:900,damping:40},style:{transformOrigin:\"50% 50%\",width:knobSize,height:knobSize,borderRadius:\"50%\",background:knobColor,pointerEvents:\"none\",boxShadow:`0px 1px 2px 0px ${shadow}, \n                                0px 2px 4px 0px ${shadow}, \n                                0px 4px 8px 0px ${shadow}`}})})]});},[\".framer-default-slider input[type=range] {  width: 100%; height: 100% background:transparent margin: 0;}\",\".framer-default-slider input[type=range]:focus { outline: none; }\",\".framer-default-slider input[type=range]::-ms-track { width: 100%; cursor: pointer; background: transparent; border-color: transparent; color: transparent; }\",\".framer-default-slider input[type=range]::-webkit-slider-thumb { height: var(--framer-default-slider-height, 0px); width: var(--framer-default-slider-width, 0px); border-radius: 0;  background: none; }\",\".framer-default-slider input[type=range]::-moz-range-thumb { height: var(--framer-default-slider-height, 0px); width: var(--framer-default-slider-width, 0px); border-radius: 0;  background: none; }\",\".framer-default-slider input[type=range]::-ms-thumb  { height: var(--framer-default-slider-height, 0px); width: var(--framer-default-slider-width, 0px); border-radius: 0;  background: none; }\",]);Slider.displayName=\"Slider\";Slider.defaultProps={height:20,width:200,trackHeight:4,fillColor:\"#09F\",trackColor:\"#DDD\",knobColor:\"#FFF\",focusColor:\"rgba(0, 153, 255,0)\",shadow:\"rgba(0,0,0,0.1)\",knobSize:20,overdrag:true,min:0,max:100,value:50,trackRadius:5,knobSetting:KnobOptions.Show,constrainKnob:false,transition:{type:\"spring\",delay:0,stiffness:750,damping:50},shouldAnimateChange:true};addPropertyControls(Slider,{fillColor:{title:\"Tint\",type:ControlType.Color},trackColor:{title:\"Track\",type:ControlType.Color},knobColor:{title:\"Knob\",type:ControlType.Color},shadow:{type:ControlType.Color,title:\"Shadow\"},// focusColor: {\n//     title: \"Focus\",\n//     type: ControlType.Color,\n// },\nshouldAnimateChange:{type:ControlType.Boolean,title:\"Changes\",enabledTitle:\"Animate\",disabledTitle:\"Instant\"},transition:{type:ControlType.Transition,defaultValue:Slider.defaultProps.transition},knobSetting:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Knob\",options:[\"Hide\",\"Hover\",\"Show\"]},constrainKnob:{type:ControlType.Boolean,title:\"Constrain\",enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({knobSetting})=>knobSetting!==KnobOptions.Show},knobSize:{type:ControlType.Number,title:\"Knob\",min:10,max:100,hidden:({knobSetting})=>knobSetting===KnobOptions.Hide},value:{type:ControlType.Number,title:\"Value\",min:0,max:100,unit:\"%\"},trackHeight:{title:\"Height\",type:ControlType.Number,min:0},min:{title:\"Min\",type:ControlType.Number,displayStepper:true},trackRadius:{type:ControlType.Number,displayStepper:true,min:0,max:200,title:\"Radius\"},max:{title:\"Max\",type:ControlType.Number,displayStepper:true},onChange:{type:ControlType.EventHandler},onMax:{type:ControlType.EventHandler},onMin:{type:ControlType.EventHandler}});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Slider\":{\"type\":\"reactComponent\",\"name\":\"Slider\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"20\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Slider.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useRef,useState,useEffect,useCallback}from\"react\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{MotionValue,motion,animate,useMotionValueEvent}from\"framer-motion\";import{useOnEnter,usePadding,useRadius,paddingControl,borderRadiusControl,useOnChange,containerStyles,secondsToMinutes,useAutoMotionValue,useOnExit,fontStack,useFontControls}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{Slider}from\"https://framerusercontent.com/modules/AHY1z1xp5QsxaZBkEL9H/7Qvf2RhlgA8L1UHMchaV/Slider.js\";const isMotionValue=v=>v instanceof MotionValue;var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));function PlayTime(props){const{currentTime,startTime}=props;const[playTime,setPlayTime]=useState(\"0:00\");useEffect(()=>{setPlayTime(secondsToMinutes(startTime));},[startTime]);useOnChange(currentTime,latest=>{setPlayTime(secondsToMinutes(latest));});return /*#__PURE__*/_jsx(_Fragment,{children:playTime});}const checkIfPlaying=player=>player.current&&!player.current.paused&&!player.current.ended&&player.current.readyState>2;/**\n * AUDIO\n *\n * Audio player component optimized for smart components.\n *\n * @framerIntrinsicWidth 240\n * @framerIntrinsicHeight 50\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export const Audio=withCSS(function Audio(props){var _props_style;const{playing,background,progressColor,trackHeight,gap,trackColor,srcUrl,srcType,srcFile,loop,font,autoPlay,progress,volume,showTime,showTrack,playPauseCursor,showPlayPause,onTimeUpdate,onMetadata,onPlay,onPause,onEnd,pauseOnExit,onPlayGlobalPauseOption}=props;let iconCursor=\"pointer\";if(!!playPauseCursor){iconCursor=playPauseCursor;}else if(props===null||props===void 0?void 0:(_props_style=props.style)===null||_props_style===void 0?void 0:_props_style.cursor){iconCursor=props.style.cursor;}// Defaults to false, only switches to play if possible\nconst[isPlaying,setIsPlaying]=useState(false);const[duration,setDuration]=useState(0);// Audio element ref and non-state info\nconst player=useRef();const playerInfo=useRef({ready:false,animation:null});// Track progress in ms, always in sync with audio element\nconst trackProgress=useAutoMotionValue(progress,{transform:value=>value*.01,onChange:(newValue,value)=>{if(player.current.duration){player.current.currentTime=newValue*player.current.duration;handlePlayStateUpdate(\"motionHook\");}}});const padding=usePadding(props);const borderRadius=useRadius(props);const{fontSize}=useFontControls(props);const shouldPlay=RenderTarget.current()===RenderTarget.preview;const shouldPausePlayers=onPlayGlobalPauseOption===\"pause\";const url=srcType===\"URL\"?srcUrl:srcFile;const shouldAutoPlay=shouldPlay&&playing;// Sync UI with state of the audio element\n// TODO look into better more performant ways of doing this\nconst handlePlayStateUpdate=useCallback(_=>{var _playerInfo_current_animation,_playerInfo_current;const currentDuration=player.current.duration;const currentTime=player.current.currentTime;(_playerInfo_current=playerInfo.current)===null||_playerInfo_current===void 0?void 0:(_playerInfo_current_animation=_playerInfo_current.animation)===null||_playerInfo_current_animation===void 0?void 0:_playerInfo_current_animation.stop();if(Math.abs(currentTime-trackProgress.get())>.5){trackProgress.set(currentTime);}if(!shouldPlay)return;const isNowPlaying=checkIfPlaying(player);if(isPlaying!==isNowPlaying)setIsPlaying(isNowPlaying);if(isNowPlaying&&shouldPlay){playerInfo.current.animation=animate(trackProgress,currentDuration,{type:\"tween\",ease:\"linear\",duration:currentDuration-currentTime});}},[shouldPlay,isPlaying]);const pauseAllAudioPlayers=()=>{const audioPlayerElements=document.querySelectorAll(\".framer-audio\");audioPlayerElements.forEach(el=>{el.pause();});};// Always use this for playing audio\n// No logic in here as it is async & can fail\nconst playAudio=()=>{if(shouldPlay)player.current.play().catch(e=>{})// It's likely fine, swallow error\n;};const pauseAudio=()=>{var _playerInfo_current_animation,_playerInfo_current;player.current.pause();(_playerInfo_current=playerInfo.current)===null||_playerInfo_current===void 0?void 0:(_playerInfo_current_animation=_playerInfo_current.animation)===null||_playerInfo_current_animation===void 0?void 0:_playerInfo_current_animation.stop();};const handleMetadata=()=>{if(onMetadata)onMetadata({duration:player.current.duration});setDuration(player.current.duration);};const initProgress=()=>{if(!isMotionValue(progress)){player.current.currentTime=progress*.01*player.current.duration;}};const handleReady=()=>{// This tries to run on every pause\n// We use playerInfo.ready to only call on initial load of a source\nif(!playerInfo.current.ready){if(shouldAutoPlay)playAudio();playerInfo.current.ready=true;initProgress();}};// Handle seek event from slider\nconst handleSeek=val=>{if(player.current.currentTime){player.current.currentTime=val;handlePlayStateUpdate(\"handleSeek\");}};const handleEnd=()=>{if(onEnd)onEnd();};const handlePlayClick=()=>{if(shouldPausePlayers)pauseAllAudioPlayers();playAudio();};// Control audio via props\nuseEffect(()=>{if(shouldPlay){// In preview when prop changes, pause/play\nif(playing===true)playAudio();else pauseAudio();}else{// Only set the state for canvas use\nif(playing===true)setIsPlaying(true);else setIsPlaying(false);}},[playing]);useEffect(()=>{var _player_current;// Do this in an effect to correct on optimised sites\nif((_player_current=player.current)===null||_player_current===void 0?void 0:_player_current.duration)setDuration(player.current.duration);},[]);// Call event callbacks\nuseEffect(()=>{if(playerInfo.current.ready&&isPlaying&&onPlay)onPlay();else if(playerInfo.current.ready&&onPause)onPause();},[isPlaying]);// Volume Control\nuseEffect(()=>{player.current.volume=volume/100;},[volume]);// Reset ready state when src changes\nuseEffect(()=>{playerInfo.current.ready=false;},[srcFile,srcType,srcUrl]);// Play on navigation\nuseOnEnter(()=>{if(shouldAutoPlay)playAudio();});useOnExit(()=>{if(pauseOnExit)player.current.pause();});useMotionValueEvent(trackProgress,\"change\",val=>{var _player_current;const progressPercent=((_player_current=player.current)===null||_player_current===void 0?void 0:_player_current.duration)?val/player.current.duration*100:null;if(onTimeUpdate){onTimeUpdate(val,progressPercent,secondsToMinutes(val));}});const iconStyles={marginRight:showTime||showTrack?gap:0,flexShrink:0,cursor:iconCursor};return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyles,position:\"relative\",overflow:\"hidden\",background,padding,borderRadius},children:[/*#__PURE__*/_jsx(\"audio\",{src:url,loop:loop,className:\"framer-audio\",ref:player,preload:\"metadata\",autoPlay:shouldAutoPlay,onLoadedMetadata:handleMetadata,onCanPlayThrough:handleReady,// Listen to all events for status changes\nonPlaying:()=>handlePlayStateUpdate(\"playingEvent\"),onPlay:()=>handlePlayStateUpdate(\"playEvent\"),onSeeked:()=>handlePlayStateUpdate(\"seekEvent\"),onPause:()=>handlePlayStateUpdate(\"pauseEvent\"),onEnded:()=>handleEnd()}),showPlayPause&&/*#__PURE__*/_jsx(_Fragment,{children:isPlaying?/*#__PURE__*/_jsx(PauseIcon,{width:16,whileTap:{scale:.9},onClick:()=>pauseAudio(),style:iconStyles,\"aria-label\":\"pause audio\"}):/*#__PURE__*/_jsx(PlayIcon,{width:16,whileTap:{scale:.9},onClick:handlePlayClick,style:iconStyles,\"aria-label\":\"play audio\"})}),showTime&&/*#__PURE__*/_jsxs(\"p\",{style:{userSelect:\"none\",color:\"#333\",fontWeight:500,letterSpacing:-.25,margin:0,flexShrink:0,fontFamily:fontStack,fontVariantNumeric:\"tabular-nums\",marginRight:showTrack?gap:0,...font},children:[/*#__PURE__*/_jsx(PlayTime,{startTime:duration*(isMotionValue(progress)?progress.get():progress*.01),currentTime:trackProgress}),/*#__PURE__*/_jsx(\"span\",{style:{padding:\"0 2px\"},children:\"/\"}),duration>0?secondsToMinutes(duration):\"1:34\"]}),showTrack&&/*#__PURE__*/_jsx(Slider,{style:{width:\"100%\"},value:trackProgress,fillColor:progressColor,knobSetting:\"Hover\",shadow:`rgba(0,0,0,0)`,knobSize:10,knobColor:progressColor,onChange:handleSeek,shouldAnimateChange:false,min:0,max:duration,trackColor:trackColor})]});},[\".framer-audio-icon { outline: none; }\",\".framer-audio-icons:focus-visible { outline: auto; }\"]);Audio.defaultProps={background:\"#EBEBEB\",trackColor:\"#FFFFFF\",font:{fontSize:12},progressColor:\"#333333\",srcUrl:\"https://assets.mixkit.co/music/preview/mixkit-tech-house-vibes-130.mp3\",srcType:\"URL\",pauseOnExit:true,borderRadius:8,padding:15,progress:0,volume:25,loop:false,playing:true,autoPlay:true,showTime:true,showTrack:true,showPlayPause:true,onPlayGlobalPauseOption:\"continue\",trackHeight:4,gap:15,height:50,width:240};addPropertyControls(Audio,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\" \",placeholder:\".../example.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\" \",allowedFileTypes:[\"mp4\",\"mp3\",\"wav\",\"m4a\"],hidden(props){return props.srcType===\"URL\";}},playing:{title:\"Playing\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\"},loop:{title:\"Loop\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\"},// autoPlay: {\n//     type: ControlType.Boolean,\n//     title: \"Autoplay\",\n//     enabledTitle: \"Yes\",\n//     disabledTitle: \"No\",\n// },\nprogress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\"},progressColor:{title:\"Progress\",type:ControlType.Color,defaultValue:Audio.defaultProps.progressColor},trackColor:{title:\"Track\",type:ControlType.Color,defaultValue:Audio.defaultProps.trackColor},background:{title:\"Player\",type:ControlType.Color,defaultValue:Audio.defaultProps.background},font:{title:\"Font\",// @ts-ignore – Internal\ntype:ControlType.Font,displayFontSize:true},...paddingControl,...borderRadiusControl,gap:{type:ControlType.Number,min:0,max:100,displayStepper:true},showPlayPause:{type:ControlType.Boolean,title:\"Play/Pause\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},showTrack:{type:ControlType.Boolean,title:\"Track\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},showTime:{type:ControlType.Boolean,title:\"Time\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},pauseOnExit:{type:ControlType.Boolean,title:\"On Leave\",enabledTitle:\"Pause\",disabledTitle:\"Continue\"},onPlayGlobalPauseOption:{type:ControlType.Enum,title:\"On Play\",options:[\"continue\",\"pause\"],optionTitles:[\"Continue All\",\"Pause All\"]},onPlay:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onEnd:{type:ControlType.EventHandler},onTimeUpdate:{type:ControlType.EventHandler}});const trackStyle={borderRadius:10,width:\"100%\",overflow:\"hidden\"};const trackParentStyle={position:\"relative\",border:\"1px solid red\",display:\"flex\",alignItems:\"center\",height:\"100%\",width:\"100%\"};function PlayIcon(props){return /*#__PURE__*/_jsx(motion.svg,{...props,className:\"framer-audio-icon\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 16 16\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M 5.379 1.292 C 4.968 1.033 4.449 1.017 4.023 1.251 C 3.598 1.486 3.334 1.933 3.333 2.419 L 3.333 13.581 C 3.334 14.067 3.598 14.514 4.023 14.749 C 4.449 14.983 4.968 14.967 5.379 14.708 L 14.215 9.127 C 14.602 8.883 14.836 8.457 14.836 8 C 14.836 7.543 14.602 7.117 14.215 6.873 Z\",fill:\"#333\"})});}function PauseIcon(props){return /*#__PURE__*/_jsxs(motion.svg,{...props,className:\"framer-audio-icon\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 16 16\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M 3 3 C 3 2.448 3.448 2 4 2 L 6 2 C 6.552 2 7 2.448 7 3 L 7 13 C 7 13.552 6.552 14 6 14 L 4 14 C 3.448 14 3 13.552 3 13 Z\",fill:\"#343434\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M 9 3 C 9 2.448 9.448 2 10 2 L 12 2 C 12.552 2 13 2.448 13 3 L 13 13 C 13 13.552 12.552 14 12 14 L 10 14 C 9.448 14 9 13.552 9 13 Z\",fill:\"#343434\"})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"Audio\":{\"type\":\"reactComponent\",\"name\":\"Audio\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"240\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"50\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Audio.map","import{MotionValue}from\"framer\";// Basic MotionValue check\nexport const isMotionValue=v=>v instanceof MotionValue;\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./isMotionValue.map","import{useCallback,useEffect,useRef}from\"react\";import{motionValue,animate,RenderTarget}from\"framer\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";export function useAutoMotionValue(inputValue,options){// Put options on a local ref\n// Might wanna just memo instead but it works for now\nconst optionsRef=useRef(options);const animation=useRef();const didInitialMount=useRef(false);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;// in-progress - trying to figure out effect hooks\nconst onChangeDeps=(options===null||options===void 0?void 0:options.onChangeDeps)?options.onChangeDeps:[];// Memoize the onChange handler\nconst onChange=useCallback(options===null||options===void 0?void 0:options.onChange,[...onChangeDeps,]);// Optionally scale the value from props\nconst transformer=useCallback(value=>{var ref;return((ref=optionsRef.current)===null||ref===void 0?void 0:ref.transform)?optionsRef.current.transform(value):value;},[]);// Create new MotionValue from inputValue\nconst value1=useConstant(()=>isMotionValue(inputValue)?inputValue:motionValue(transformer(inputValue)));// Setting value from prop change\nuseEffect(()=>{if(!isMotionValue(inputValue)&&didInitialMount.current){var ref,ref1;const newValue=transformer(inputValue);(ref=animation.current)===null||ref===void 0?void 0:ref.stop();// Call change callback\nif(onChange)onChange(newValue,value1);// Trigger animation to new value\nif(((ref1=optionsRef.current)===null||ref1===void 0?void 0:ref1.animate)&&!isOnCanvas){var ref2;// @ts-ignore\nanimation.current=animate(value1,newValue,(ref2=optionsRef.current)===null||ref2===void 0?void 0:ref2.transition);}else{value1.set(newValue);}}didInitialMount.current=true;},[inputValue,...onChangeDeps]);return value1;}\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useAutoMotionValue.map","var _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nvar exports = {};\ntypeof navigator !== \"undefined\" && function (root, factory) {\n  if (exports) {\n    exports = factory(root);\n  } else {\n    root.lottie = factory(root);\n    root.bodymovin = root.lottie;\n  }\n}(window || {}, function (window) {\n  /* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\n  expressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix */\n\n  /* exported locationHref, subframeEnabled, expressionsPlugin */\n  'use strict';\n  /* exported svgNS, locationHref, initialDefaultFrame */\n\n  var svgNS = \"http://www.w3.org/2000/svg\";\n  var locationHref = \"\";\n  var initialDefaultFrame = -999999;\n  /* global createSizedArray */\n\n  /* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\n  defaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\n  BMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\n  addSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\n\n  var subframeEnabled = true;\n  var expressionsPlugin;\n  var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n  var cachedColors = {};\n  var bmRnd;\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() {\n    return {};\n  }\n\n  BMMath.random = Math.random;\n\n  BMMath.abs = function (val) {\n    var tOfVal = typeof 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    if (flag) {\n      bmRnd = Math.round;\n    } else {\n      bmRnd = function (val) {\n        return val;\n      };\n    }\n  }\n\n  roundValues(false);\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 || _global).type = type;\n    (this || _global).currentTime = currentTime;\n    (this || _global).totalTime = totalTime;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteEvent(type, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentLoop = currentLoop;\n    (this || _global).totalLoops = totalLoops;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n    (this || _global).type = type;\n    (this || _global).firstFrame = firstFrame;\n    (this || _global).totalFrames = totalFrames;\n  }\n\n  function BMDestroyEvent(type, target) {\n    (this || _global).type = type;\n    (this || _global).target = target;\n  }\n\n  function BMRenderFrameErrorEvent(nativeError, currentTime) {\n    (this || _global).type = \"renderFrameError\";\n    (this || _global).nativeError = nativeError;\n    (this || _global).currentTime = currentTime;\n  }\n\n  function BMConfigErrorEvent(nativeError) {\n    (this || _global).type = \"configError\";\n    (this || _global).nativeError = nativeError;\n  }\n\n  function BMAnimationConfigErrorEvent(type, nativeError) {\n    (this || _global).type = type;\n    (this || _global).nativeError = nativeError;\n  }\n\n  var createElementID = function () {\n    var _count = 0;\n    return function createID() {\n      _count += 1;\n      return \"__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  function BaseEvent() {}\n\n  BaseEvent.prototype = {\n    triggerEvent: function (eventName, args) {\n      if ((this || _global)._cbs[eventName]) {\n        var len = (this || _global)._cbs[eventName].length;\n\n        for (var i = 0; i < len; i += 1) {\n          (this || _global)._cbs[eventName][i](args);\n        }\n      }\n    },\n    addEventListener: function (eventName, callback) {\n      if (!(this || _global)._cbs[eventName]) {\n        (this || _global)._cbs[eventName] = [];\n      }\n\n      (this || _global)._cbs[eventName].push(callback);\n\n      return function () {\n        this.removeEventListener(eventName, callback);\n      }.bind(this || _global);\n    },\n    removeEventListener: function (eventName, callback) {\n      if (!callback) {\n        (this || _global)._cbs[eventName] = null;\n      } else if ((this || _global)._cbs[eventName]) {\n        var i = 0;\n        var len = (this || _global)._cbs[eventName].length;\n\n        while (i < len) {\n          if ((this || _global)._cbs[eventName][i] === callback) {\n            (this || _global)._cbs[eventName].splice(i, 1);\n\n            i -= 1;\n            len -= 1;\n          }\n\n          i += 1;\n        }\n\n        if (!(this || _global)._cbs[eventName].length) {\n          (this || _global)._cbs[eventName] = null;\n        }\n      }\n    }\n  };\n  /* exported createTypedArray, createSizedArray */\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  /* global svgNS */\n\n  /* exported createNS */\n\n\n  function createNS(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElementNS(svgNS, type);\n  }\n  /* exported createTag */\n\n\n  function createTag(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElement(type);\n  }\n\n  function DynamicPropertyContainer() {}\n\n  DynamicPropertyContainer.prototype = {\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n\n        (this || _global).container.addDynamicProperty(this || _global);\n\n        (this || _global)._isAnimated = true;\n      }\n    },\n    iterateDynamicProperties: function () {\n      (this || _global)._mdf = false;\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).dynamicProperties[i].getValue();\n\n        if ((this || _global).dynamicProperties[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    },\n    initDynamicPropertyContainer: function (container) {\n      (this || _global).container = container;\n      (this || _global).dynamicProperties = [];\n      (this || _global)._mdf = false;\n      (this || _global)._isAnimated = false;\n    }\n  };\n  /* exported getBlendMode */\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  /* global createTypedArray */\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\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 || _global).props[0] = 1;\n      (this || _global).props[1] = 0;\n      (this || _global).props[2] = 0;\n      (this || _global).props[3] = 0;\n      (this || _global).props[4] = 0;\n      (this || _global).props[5] = 1;\n      (this || _global).props[6] = 0;\n      (this || _global).props[7] = 0;\n      (this || _global).props[8] = 0;\n      (this || _global).props[9] = 0;\n      (this || _global).props[10] = 1;\n      (this || _global).props[11] = 0;\n      (this || _global).props[12] = 0;\n      (this || _global).props[13] = 0;\n      (this || _global).props[14] = 0;\n      (this || _global).props[15] = 1;\n      return this || _global;\n    }\n\n    function rotate(angle) {\n      if (angle === 0) {\n        return this || _global;\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 || _global;\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 || _global;\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 || _global;\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 || _global;\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 || _global).props[0] = a;\n      (this || _global).props[1] = b;\n      (this || _global).props[2] = c;\n      (this || _global).props[3] = d;\n      (this || _global).props[4] = e;\n      (this || _global).props[5] = f;\n      (this || _global).props[6] = g;\n      (this || _global).props[7] = h;\n      (this || _global).props[8] = i;\n      (this || _global).props[9] = j;\n      (this || _global).props[10] = k;\n      (this || _global).props[11] = l;\n      (this || _global).props[12] = m;\n      (this || _global).props[13] = n;\n      (this || _global).props[14] = o;\n      (this || _global).props[15] = p;\n      return this || _global;\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 || _global;\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 || _global).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 || _global)._identityCalculated = false;\n        return this || _global;\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 || _global)._identityCalculated = false;\n      return this || _global;\n    }\n\n    function isIdentity() {\n      if (!(this || _global)._identityCalculated) {\n        (this || _global)._identity = !((this || _global).props[0] !== 1 || (this || _global).props[1] !== 0 || (this || _global).props[2] !== 0 || (this || _global).props[3] !== 0 || (this || _global).props[4] !== 0 || (this || _global).props[5] !== 1 || (this || _global).props[6] !== 0 || (this || _global).props[7] !== 0 || (this || _global).props[8] !== 0 || (this || _global).props[9] !== 0 || (this || _global).props[10] !== 1 || (this || _global).props[11] !== 0 || (this || _global).props[12] !== 0 || (this || _global).props[13] !== 0 || (this || _global).props[14] !== 0 || (this || _global).props[15] !== 1);\n        (this || _global)._identityCalculated = true;\n      }\n\n      return (this || _global)._identity;\n    }\n\n    function equals(matr) {\n      var i = 0;\n\n      while (i < 16) {\n        if (matr.props[i] !== (this || _global).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 || _global).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 || _global).props[i] = props[i];\n      }\n    }\n\n    function applyToPoint(x, y, z) {\n      return {\n        x: x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12],\n        y: x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13],\n        z: x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).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 || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12];\n    }\n\n    function applyToY(x, y, z) {\n      return x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13];\n    }\n\n    function applyToZ(x, y, z) {\n      return x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14];\n    }\n\n    function getInverseMatrix() {\n      var determinant = (this || _global).props[0] * (this || _global).props[5] - (this || _global).props[1] * (this || _global).props[4];\n      var a = (this || _global).props[5] / determinant;\n      var b = -(this || _global).props[1] / determinant;\n      var c = -(this || _global).props[4] / determinant;\n      var d = (this || _global).props[0] / determinant;\n      var e = ((this || _global).props[4] * (this || _global).props[13] - (this || _global).props[5] * (this || _global).props[12]) / determinant;\n      var f = -((this || _global).props[0] * (this || _global).props[13] - (this || _global).props[1] * (this || _global).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 || _global).props[0];\n        var p1 = (this || _global).props[1];\n        var p4 = (this || _global).props[4];\n        var p5 = (this || _global).props[5];\n        var p12 = (this || _global).props[12];\n        var p13 = (this || _global).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 || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12], x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13], x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).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 || _global).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 || _global).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 || _global).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 || _global).reset = reset;\n      (this || _global).rotate = rotate;\n      (this || _global).rotateX = rotateX;\n      (this || _global).rotateY = rotateY;\n      (this || _global).rotateZ = rotateZ;\n      (this || _global).skew = skew;\n      (this || _global).skewFromAxis = skewFromAxis;\n      (this || _global).shear = shear;\n      (this || _global).scale = scale;\n      (this || _global).setTransform = setTransform;\n      (this || _global).translate = translate;\n      (this || _global).transform = transform;\n      (this || _global).applyToPoint = applyToPoint;\n      (this || _global).applyToX = applyToX;\n      (this || _global).applyToY = applyToY;\n      (this || _global).applyToZ = applyToZ;\n      (this || _global).applyToPointArray = applyToPointArray;\n      (this || _global).applyToTriplePoints = applyToTriplePoints;\n      (this || _global).applyToPointStringified = applyToPointStringified;\n      (this || _global).toCSS = toCSS;\n      (this || _global).to2dCSS = to2dCSS;\n      (this || _global).clone = clone;\n      (this || _global).cloneFromProps = cloneFromProps;\n      (this || _global).equals = equals;\n      (this || _global).inversePoints = inversePoints;\n      (this || _global).inversePoint = inversePoint;\n      (this || _global).getInverseMatrix = getInverseMatrix;\n      (this || _global)._t = (this || _global).transform;\n      (this || _global).isIdentity = isIdentity;\n      (this || _global)._identity = true;\n      (this || _global)._identityCalculated = false;\n      (this || _global).props = createTypedArray(\"float32\", 16);\n      this.reset();\n    };\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\n\n  (function (pool, math) {\n    //\n    // The following constants are related to IEEE 754 limits.\n    //\n    var global = this || _global,\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 () {\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) / 4294967296;\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 || _global) == 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 || _global,\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 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  })([], // pool: entropy pool starts empty\n  BMMath // math: package containing random, pow, and seedrandom\n  );\n  /* eslint-disable */\n\n\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 = 1e-7;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1 / (kSplineTableSize - 1);\n    var float32ArraySupported = typeof Float32Array === \"function\";\n\n    function A(aA1, aA2) {\n      return 1 - 3 * aA2 + 3 * aA1;\n    }\n\n    function B(aA1, aA2) {\n      return 3 * aA2 - 6 * aA1;\n    }\n\n    function C(aA1) {\n      return 3 * 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 * A(aA1, aA2) * aT * aT + 2 * 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;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n        if (currentX > 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) 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 || _global)._p = points;\n      (this || _global)._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      (this || _global)._precomputed = false;\n      (this || _global).get = (this || _global).get.bind(this || _global);\n    }\n\n    BezierEasing.prototype = {\n      get: function (x) {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        if (!(this || _global)._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 () {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        (this || _global)._precomputed = true;\n\n        if (mX1 !== mY1 || mX2 !== mY2) {\n          this._calcSampleValues();\n        }\n      },\n      _calcSampleValues: function () {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2];\n\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          (this || _global)._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 (aX) {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2],\n            mSampleValues = (this || _global)._mSampleValues;\n        var intervalStart = 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) {\n          return guessForT;\n        }\n\n        return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n      }\n    };\n    return ob;\n  }();\n\n  (function () {\n    var lastTime = 0;\n    var vendors = [\"ms\", \"moz\", \"webkit\", \"o\"];\n\n    for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n      // eslint-disable-line no-plusplus\n      window.requestAnimationFrame = window[vendors[x] + \"RequestAnimationFrame\"];\n      window.cancelAnimationFrame = window[vendors[x] + \"CancelAnimationFrame\"] || window[vendors[x] + \"CancelRequestAnimationFrame\"];\n    }\n\n    if (!window.requestAnimationFrame) {\n      window.requestAnimationFrame = function (callback) {\n        var currTime = new Date().getTime();\n        var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n        var id = setTimeout(function () {\n          callback(currTime + timeToCall);\n        }, timeToCall);\n        lastTime = currTime + timeToCall;\n        return id;\n      };\n    }\n\n    if (!window.cancelAnimationFrame) {\n      window.cancelAnimationFrame = function (id) {\n        clearTimeout(id);\n      };\n    }\n  })();\n  /* exported extendPrototype, getDescriptor, createProxyFunction */\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  /* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\n\n  /* exported bez */\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 = defaultCurveSegments;\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 || _global).segmentLength = 0;\n      (this || _global).points = new Array(length);\n    }\n\n    function PointData(partial, point) {\n      (this || _global).partialLength = partial;\n      (this || _global).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 = defaultCurveSegments;\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  /* exported dataManager */\n\n  function dataFunctionManager() {\n    // var tCanvasHelper = createTag('canvas').getContext('2d');\n    function completeLayers(layers, comps, fontManager) {\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.tt) {\n            layers[i - 1].td = layerData.tt;\n          }\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, fontManager);\n          } else if (layerData.ty === 4) {\n            completeShapes(layerData.shapes);\n          } else if (layerData.ty === 5) {\n            completeText(layerData, fontManager);\n          }\n        }\n      }\n    }\n\n    function findCompLayers(id, comps) {\n      var i = 0;\n      var len = comps.length;\n\n      while (i < len) {\n        if (comps[i].id === id) {\n          if (!comps[i].layers.__used) {\n            comps[i].layers.__used = true;\n            return comps[i].layers;\n          }\n\n          return JSON.parse(JSON.stringify(comps[i].layers));\n        }\n\n        i += 1;\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          var j;\n          var jLen;\n          var pathData;\n          var paths;\n\n          for (i = 0; i < len; i += 1) {\n            if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\n              paths = animationData.chars[i].data.shapes[0].it;\n              jLen = paths.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                pathData = paths[j].ks.k;\n\n                if (!pathData.__converted) {\n                  convertPathsToAbsoluteValues(paths[j].ks.k);\n                  pathData.__converted = true;\n                }\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, fontManager) {\n      if (animationData.__complete) {\n        return;\n      }\n\n      checkColors(animationData);\n      checkText(animationData);\n      checkChars(animationData);\n      checkShapes(animationData);\n      completeLayers(animationData.layers, animationData.assets, fontManager);\n      animationData.__complete = true;\n    }\n\n    function completeText(data) {\n      if (data.t.a.length === 0 && !(\"m\" in data.t.p)) {\n        data.singleShape = true;\n      }\n    }\n\n    var moduleOb = {};\n    moduleOb.completeData = completeData;\n    moduleOb.checkColors = checkColors;\n    moduleOb.checkChars = checkChars;\n    moduleOb.checkShapes = checkShapes;\n    moduleOb.completeLayers = completeLayers;\n    return moduleOb;\n  }\n\n  var dataManager = dataFunctionManager();\n  /* exported getFontProperties */\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  /* global createNS, createTag, getFontProperties */\n\n  /* exported FontManager */\n\n\n  var FontManager = function () {\n    var maxWaitingTime = 5000;\n    var emptyChar = {\n      w: 0,\n      size: 0,\n      shapes: []\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\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 || _global).fonts.length;\n      var node;\n      var w;\n      var loadedCount = len;\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).fonts[i].loaded) {\n          loadedCount -= 1;\n        } else if ((this || _global).fonts[i].fOrigin === \"n\" || (this || _global).fonts[i].origin === 0) {\n          (this || _global).fonts[i].loaded = true;\n        } else {\n          node = (this || _global).fonts[i].monoCase.node;\n          w = (this || _global).fonts[i].monoCase.w;\n\n          if (node.offsetWidth !== w) {\n            loadedCount -= 1;\n            (this || _global).fonts[i].loaded = true;\n          } else {\n            node = (this || _global).fonts[i].sansCase.node;\n            w = (this || _global).fonts[i].sansCase.w;\n\n            if (node.offsetWidth !== w) {\n              loadedCount -= 1;\n              (this || _global).fonts[i].loaded = true;\n            }\n          }\n\n          if ((this || _global).fonts[i].loaded) {\n            (this || _global).fonts[i].sansCase.parent.parentNode.removeChild((this || _global).fonts[i].sansCase.parent);\n\n            (this || _global).fonts[i].monoCase.parent.parentNode.removeChild((this || _global).fonts[i].monoCase.parent);\n          }\n        }\n      }\n\n      if (loadedCount !== 0 && Date.now() - (this || _global).initTime < maxWaitingTime) {\n        setTimeout((this || _global).checkLoadedFontsBinded, 20);\n      } else {\n        setTimeout((this || _global).setIsLoadedBinded, 10);\n      }\n    }\n\n    function createHelper(def, fontData) {\n      var tHelper = createNS(\"text\");\n      tHelper.style.fontSize = \"100px\"; // tHelper.style.fontFamily = fontData.fFamily;\n\n      var fontProps = getFontProperties(fontData);\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      var tCanvasHelper = createTag(\"canvas\").getContext(\"2d\");\n      tCanvasHelper.font = fontData.fWeight + \" \" + fontData.fStyle + \" 100px \" + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n      return tHelper;\n    }\n\n    function addFonts(fontData, defs) {\n      if (!fontData) {\n        (this || _global).isLoaded = true;\n        return;\n      }\n\n      if ((this || _global).chars) {\n        (this || _global).isLoaded = true;\n        (this || _global).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(defs, fontArr[i]);\n        fontArr[i].cache = {};\n\n        (this || _global).fonts.push(fontArr[i]);\n      }\n\n      if (_pendingFonts === 0) {\n        (this || _global).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 || _global).checkLoadedFonts.bind(this || _global), 100);\n      }\n    }\n\n    function addChars(chars) {\n      if (!chars) {\n        return;\n      }\n\n      if (!(this || _global).chars) {\n        (this || _global).chars = [];\n      }\n\n      var i;\n      var len = chars.length;\n      var j;\n      var jLen = (this || _global).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 || _global).chars[j].style === chars[i].style && (this || _global).chars[j].fFamily === chars[i].fFamily && (this || _global).chars[j].ch === chars[i].ch) {\n            found = true;\n          }\n\n          j += 1;\n        }\n\n        if (!found) {\n          (this || _global).chars.push(chars[i]);\n\n          jLen += 1;\n        }\n      }\n    }\n\n    function getCharData(char, style, font) {\n      var i = 0;\n      var len = (this || _global).chars.length;\n\n      while (i < len) {\n        if ((this || _global).chars[i].ch === char && (this || _global).chars[i].style === style && (this || _global).chars[i].fFamily === font) {\n          return (this || _global).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 || _global)._warned) {\n        (this || _global)._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(char, fontName, size) {\n      var fontData = this.getFontByName(fontName);\n      var index = char.charCodeAt(0);\n\n      if (!fontData.cache[index + 1]) {\n        var tHelper = fontData.helper; // Canvas version\n        // fontData.cache[index] = tHelper.measureText(char).width / 100;\n        // SVG version\n        // console.log(tHelper.getBBox().width)\n\n        if (char === \" \") {\n          tHelper.textContent = \"|\" + char + \"|\";\n          var doubleSize = tHelper.getComputedTextLength();\n          tHelper.textContent = \"||\";\n          var singleSize = tHelper.getComputedTextLength();\n          fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n        } else {\n          tHelper.textContent = char;\n          fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n        }\n      }\n\n      return fontData.cache[index + 1] * size;\n    }\n\n    function getFontByName(name) {\n      var i = 0;\n      var len = (this || _global).fonts.length;\n\n      while (i < len) {\n        if ((this || _global).fonts[i].fName === name) {\n          return (this || _global).fonts[i];\n        }\n\n        i += 1;\n      }\n\n      return (this || _global).fonts[0];\n    }\n\n    function getCombinedCharacterCodes() {\n      return combinedCharacters;\n    }\n\n    function setIsLoaded() {\n      (this || _global).isLoaded = true;\n    }\n\n    var Font = function () {\n      (this || _global).fonts = [];\n      (this || _global).chars = null;\n      (this || _global).typekitLoaded = 0;\n      (this || _global).isLoaded = false;\n      (this || _global)._warned = false;\n      (this || _global).initTime = Date.now();\n      (this || _global).setIsLoadedBinded = (this || _global).setIsLoaded.bind(this || _global);\n      (this || _global).checkLoadedFontsBinded = (this || _global).checkLoadedFonts.bind(this || _global);\n    }; // TODO: for now I'm adding these methods to the Class and not the prototype. Think of a better way to implement it.\n\n\n    Font.getCombinedCharacterCodes = getCombinedCharacterCodes;\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  /* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\n\n  /* exported PropertyFactory */\n\n\n  var PropertyFactory = function () {\n    var initFrame = initialDefaultFrame;\n    var mathAbs = Math.abs;\n\n    function interpolateValue(frameNum, caching) {\n      var offsetTime = (this || _global).offsetTime;\n      var newValue;\n\n      if ((this || _global).propType === \"multidimensional\") {\n        newValue = createTypedArray(\"float32\", (this || _global).pv.length);\n      }\n\n      var iterationIndex = caching.lastIndex;\n      var i = iterationIndex;\n      var len = (this || _global).keyframes.length - 1;\n      var flag = true;\n      var keyData;\n      var nextKeyData;\n\n      while (flag) {\n        keyData = (this || _global).keyframes[i];\n        nextKeyData = (this || _global).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      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 (!keyData.bezierData) {\n          keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n        }\n\n        var bezierData = keyData.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 (keyData.__fnct) {\n            fnc = keyData.__fnct;\n          } else {\n            fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n            keyData.__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 || _global).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 (!keyData.__fnct) {\n                    keyData.__fnct = [];\n                  }\n\n                  if (!keyData.__fnct[i]) {\n                    outX = typeof keyData.o.x[i] === \"undefined\" ? keyData.o.x[0] : keyData.o.x[i];\n                    outY = typeof keyData.o.y[i] === \"undefined\" ? keyData.o.y[0] : keyData.o.y[i];\n                    inX = typeof keyData.i.x[i] === \"undefined\" ? keyData.i.x[0] : keyData.i.x[i];\n                    inY = typeof keyData.i.y[i] === \"undefined\" ? keyData.i.y[0] : keyData.i.y[i];\n                    fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                    keyData.__fnct[i] = fnc;\n                  } else {\n                    fnc = keyData.__fnct[i];\n                  }\n                } else if (!keyData.__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.__fnct = fnc;\n                } else {\n                  fnc = keyData.__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 || _global).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) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n      }\n\n      if (1 - cosom > 0.000001) {\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n      } else {\n        scale0 = 1 - 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 || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n\n      if (!(frameNum === (this || _global)._caching.lastFrame || (this || _global)._caching.lastFrame !== initFrame && ((this || _global)._caching.lastFrame >= endTime && frameNum >= endTime || (this || _global)._caching.lastFrame < initTime && frameNum < initTime))) {\n        if ((this || _global)._caching.lastFrame >= frameNum) {\n          (this || _global)._caching._lastKeyframeIndex = -1;\n          (this || _global)._caching.lastIndex = 0;\n        }\n\n        var renderResult = this.interpolateValue(frameNum, (this || _global)._caching);\n        (this || _global).pv = renderResult;\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function setVValue(val) {\n      var multipliedValue;\n\n      if ((this || _global).propType === \"unidimensional\") {\n        multipliedValue = val * (this || _global).mult;\n\n        if (mathAbs((this || _global).v - multipliedValue) > 0.00001) {\n          (this || _global).v = multipliedValue;\n          (this || _global)._mdf = true;\n        }\n      } else {\n        var i = 0;\n        var len = (this || _global).v.length;\n\n        while (i < len) {\n          multipliedValue = val[i] * (this || _global).mult;\n\n          if (mathAbs((this || _global).v[i] - multipliedValue) > 0.00001) {\n            (this || _global).v[i] = multipliedValue;\n            (this || _global)._mdf = true;\n          }\n\n          i += 1;\n        }\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) {\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = (this || _global)._isFirstFrame;\n      var i;\n      var len = (this || _global).effectsSequence.length;\n      var finalValue = (this || _global).kf ? (this || _global).pv : (this || _global).data.k;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global)._isFirstFrame = false;\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    function ValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global).v = mult ? data.k * mult : data.k;\n      (this || _global).pv = data.k;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).vel = 0;\n      (this || _global).effectsSequence = [];\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function MultiDimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).frameId = -1;\n      var i;\n      var len = data.k.length;\n      (this || _global).v = createTypedArray(\"float32\", len);\n      (this || _global).pv = createTypedArray(\"float32\", len);\n      (this || _global).vel = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).v[i] = data.k[i] * (this || _global).mult;\n        (this || _global).pv[i] = data.k[i];\n      }\n\n      (this || _global)._isFirstFrame = true;\n      (this || _global).effectsSequence = [];\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).frameId = -1;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: 0,\n        _lastKeyframeIndex: -1\n      };\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global).data = data;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).v = initFrame;\n      (this || _global).pv = initFrame;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n      (this || _global).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 || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).data = data;\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).frameId = -1;\n      var arrLen = data.k[0].s.length;\n      (this || _global).v = createTypedArray(\"float32\", arrLen);\n      (this || _global).pv = createTypedArray(\"float32\", arrLen);\n\n      for (i = 0; i < arrLen; i += 1) {\n        (this || _global).v[i] = initFrame;\n        (this || _global).pv[i] = initFrame;\n      }\n\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: createTypedArray(\"float32\", arrLen)\n      };\n      (this || _global).addEffect = addEffect;\n    }\n\n    function getProp(elem, data, type, mult, container) {\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  /* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  /* exported TransformPropertyFactory */\n\n\n  var TransformPropertyFactory = function () {\n    var defaultVector = [0, 0];\n\n    function applyToMatrix(mat) {\n      var _mdf = (this || _global)._mdf;\n      this.iterateDynamicProperties();\n      (this || _global)._mdf = (this || _global)._mdf || _mdf;\n\n      if ((this || _global).a) {\n        mat.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n      }\n\n      if ((this || _global).s) {\n        mat.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n      }\n\n      if ((this || _global).sk) {\n        mat.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n      }\n\n      if ((this || _global).r) {\n        mat.rotate(-(this || _global).r.v);\n      } else {\n        mat.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n      }\n\n      if ((this || _global).data.p.s) {\n        if ((this || _global).data.p.z) {\n          mat.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n        } else {\n          mat.translate((this || _global).px.v, (this || _global).py.v, 0);\n        }\n      } else {\n        mat.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n      }\n    }\n\n    function processKeys(forceRender) {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if ((this || _global)._isDirty) {\n        this.precalculateMatrix();\n        (this || _global)._isDirty = false;\n      }\n\n      this.iterateDynamicProperties();\n\n      if ((this || _global)._mdf || forceRender) {\n        var frameRate;\n\n        (this || _global).v.cloneFromProps((this || _global).pre.props);\n\n        if ((this || _global).appliedTransformations < 1) {\n          (this || _global).v.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n        }\n\n        if ((this || _global).appliedTransformations < 2) {\n          (this || _global).v.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n        }\n\n        if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n          (this || _global).v.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n        }\n\n        if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotate(-(this || _global).r.v);\n        } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n        }\n\n        if ((this || _global).autoOriented) {\n          var v1;\n          var v2;\n          frameRate = (this || _global).elem.globalData.frameRate;\n\n          if ((this || _global).p && (this || _global).p.keyframes && (this || _global).p.getValueAtTime) {\n            if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime <= (this || _global).p.keyframes[0].t) {\n              v1 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[0].t + 0.01) / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[0].t / frameRate, 0);\n            } else if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime >= (this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t) {\n              v1 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n            } else {\n              v1 = (this || _global).p.pv;\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime - 0.01) / frameRate, (this || _global).p.offsetTime);\n            }\n          } else if ((this || _global).px && (this || _global).px.keyframes && (this || _global).py.keyframes && (this || _global).px.getValueAtTime && (this || _global).py.getValueAtTime) {\n            v1 = [];\n            v2 = [];\n            var px = (this || _global).px;\n            var py = (this || _global).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 || _global).v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n        }\n\n        if ((this || _global).data.p && (this || _global).data.p.s) {\n          if ((this || _global).data.p.z) {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n          } else {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, 0);\n          }\n        } else {\n          (this || _global).v.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n        }\n      }\n\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function precalculateMatrix() {\n      if (!(this || _global).a.k) {\n        (this || _global).pre.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n\n        (this || _global).appliedTransformations = 1;\n      } else {\n        return;\n      }\n\n      if (!(this || _global).s.effectsSequence.length) {\n        (this || _global).pre.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n\n        (this || _global).appliedTransformations = 2;\n      } else {\n        return;\n      }\n\n      if ((this || _global).sk) {\n        if (!(this || _global).sk.effectsSequence.length && !(this || _global).sa.effectsSequence.length) {\n          (this || _global).pre.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n\n          (this || _global).appliedTransformations = 3;\n        } else {\n          return;\n        }\n      }\n\n      if ((this || _global).r) {\n        if (!(this || _global).r.effectsSequence.length) {\n          (this || _global).pre.rotate(-(this || _global).r.v);\n\n          (this || _global).appliedTransformations = 4;\n        }\n      } else if (!(this || _global).rz.effectsSequence.length && !(this || _global).ry.effectsSequence.length && !(this || _global).rx.effectsSequence.length && !(this || _global).or.effectsSequence.length) {\n        (this || _global).pre.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n\n        (this || _global).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 || _global).elem.addDynamicProperty(prop);\n\n      (this || _global)._isDirty = true;\n    }\n\n    function TransformProperty(elem, data, container) {\n      (this || _global).elem = elem;\n      (this || _global).frameId = -1;\n      (this || _global).propType = \"transform\";\n      (this || _global).data = data;\n      (this || _global).v = new Matrix(); // Precalculated matrix with non animated properties\n\n      (this || _global).pre = new Matrix();\n      (this || _global).appliedTransformations = 0;\n      this.initDynamicPropertyContainer(container || elem);\n\n      if (data.p && data.p.s) {\n        (this || _global).px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this || _global);\n        (this || _global).py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this || _global);\n\n        if (data.p.z) {\n          (this || _global).pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this || _global);\n        }\n      } else {\n        (this || _global).p = PropertyFactory.getProp(elem, data.p || {\n          k: [0, 0, 0]\n        }, 1, 0, this || _global);\n      }\n\n      if (data.rx) {\n        (this || _global).rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this || _global);\n        (this || _global).ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this || _global);\n        (this || _global).rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this || _global);\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 || _global).or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this || _global); // sh Indicates it needs to be capped between -180 and 180\n\n        (this || _global).or.sh = true;\n      } else {\n        (this || _global).r = PropertyFactory.getProp(elem, data.r || {\n          k: 0\n        }, 0, degToRads, this || _global);\n      }\n\n      if (data.sk) {\n        (this || _global).sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this || _global);\n        (this || _global).sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this || _global);\n      }\n\n      (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n        k: [0, 0, 0]\n      }, 1, 0, this || _global);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: [100, 100, 100]\n      }, 1, 0.01, this || _global); // 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 || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n      } else {\n        (this || _global).o = {\n          _mdf: false,\n          v: 1\n        };\n      }\n\n      (this || _global)._isDirty = true;\n\n      if (!(this || _global).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  /* global createSizedArray, createSizedArray, pointPool */\n\n\n  function ShapePath() {\n    (this || _global).c = false;\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 8;\n    (this || _global).v = createSizedArray((this || _global)._maxLength);\n    (this || _global).o = createSizedArray((this || _global)._maxLength);\n    (this || _global).i = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapePath.prototype.setPathData = function (closed, len) {\n    (this || _global).c = closed;\n    this.setLength(len);\n    var i = 0;\n\n    while (i < len) {\n      (this || _global).v[i] = pointPool.newElement();\n      (this || _global).o[i] = pointPool.newElement();\n      (this || _global).i[i] = pointPool.newElement();\n      i += 1;\n    }\n  };\n\n  ShapePath.prototype.setLength = function (len) {\n    while ((this || _global)._maxLength < len) {\n      this.doubleArrayLength();\n    }\n\n    (this || _global)._length = len;\n  };\n\n  ShapePath.prototype.doubleArrayLength = function () {\n    (this || _global).v = (this || _global).v.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).i = (this || _global).i.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).o = (this || _global).o.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global)._maxLength *= 2;\n  };\n\n  ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n    var arr;\n    (this || _global)._length = Math.max((this || _global)._length, pos + 1);\n\n    if ((this || _global)._length >= (this || _global)._maxLength) {\n      this.doubleArrayLength();\n    }\n\n    switch (type) {\n      case \"v\":\n        arr = (this || _global).v;\n        break;\n\n      case \"i\":\n        arr = (this || _global).i;\n        break;\n\n      case \"o\":\n        arr = (this || _global).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 || _global).c, (this || _global)._length);\n    var vertices = (this || _global).v;\n    var outPoints = (this || _global).o;\n    var inPoints = (this || _global).i;\n    var init = 0;\n\n    if ((this || _global).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 || _global)._length - 1;\n    var len = (this || _global)._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  /* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n    shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\n\n  /* exported ShapePropertyFactory */\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 || _global).keyframes;\n\n      if (frameNum < kf[0].t - (this || _global).offsetTime) {\n        keyPropS = kf[0].s[0];\n        isHold = true;\n        iterationIndex = 0;\n      } else if (frameNum >= kf[kf.length - 1].t - (this || _global).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\n        while (flag) {\n          keyData = kf[i];\n          nextKeyData = kf[i + 1];\n\n          if (nextKeyData.t - (this || _global).offsetTime > frameNum) {\n            break;\n          }\n\n          if (i < len - 1) {\n            i += 1;\n          } else {\n            flag = false;\n          }\n        }\n\n        isHold = keyData.h === 1;\n        iterationIndex = i;\n\n        if (!isHold) {\n          if (frameNum >= nextKeyData.t - (this || _global).offsetTime) {\n            perc = 1;\n          } else if (frameNum < keyData.t - (this || _global).offsetTime) {\n            perc = 0;\n          } else {\n            var fnc;\n\n            if (keyData.__fnct) {\n              fnc = keyData.__fnct;\n            } else {\n              fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n              keyData.__fnct = fnc;\n            }\n\n            perc = fnc((frameNum - (keyData.t - (this || _global).offsetTime)) / (nextKeyData.t - (this || _global).offsetTime - (keyData.t - (this || _global).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 || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n      var lastFrame = (this || _global)._caching.lastFrame;\n\n      if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n        /// /\n        (this || _global)._caching.lastIndex = lastFrame < frameNum ? (this || _global)._caching.lastIndex : 0;\n        this.interpolateShape(frameNum, (this || _global).pv, (this || _global)._caching); /// /\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function resetShape() {\n      (this || _global).paths = (this || _global).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 || _global).v, newPath)) {\n        (this || _global).v = shapePool.clone(newPath);\n\n        (this || _global).localShapeCollection.releaseShapes();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global)._mdf = true;\n        (this || _global).paths = (this || _global).localShapeCollection;\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if (!(this || _global).effectsSequence.length) {\n        (this || _global)._mdf = false;\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = false;\n      var finalValue;\n\n      if ((this || _global).kf) {\n        finalValue = (this || _global).pv;\n      } else if ((this || _global).data.ks) {\n        finalValue = (this || _global).data.ks.k;\n      } else {\n        finalValue = (this || _global).data.pt.k;\n      }\n\n      var i;\n      var len = (this || _global).effectsSequence.length;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function ShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).container = elem;\n      (this || _global).elem = elem;\n      (this || _global).data = data;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global)._mdf = false;\n      var pathData = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).v = shapePool.clone(pathData);\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).reset = resetShape;\n      (this || _global).effectsSequence = [];\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\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 || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).elem = elem;\n      (this || _global).container = elem;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).keyframes = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      var len = (this || _global).keyframes[0].s[0].i.length;\n      (this || _global).v = shapePool.newElement();\n\n      (this || _global).v.setPathData((this || _global).keyframes[0].s[0].c, len);\n\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).lastFrame = initFrame;\n      (this || _global).reset = resetShape;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0\n      };\n      (this || _global).effectsSequence = [interpolateShapeCurrentTime.bind(this || _global)];\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 = {\r\n                  v: createSizedArray(4),\r\n                  i: createSizedArray(4),\r\n                  o: createSizedArray(4),\r\n                  c: true\r\n              }; */\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 4);\n\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).d = data.d;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertEllToPath();\n        }\n      }\n\n      EllShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertEllToPath();\n          }\n        },\n        convertEllToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var s0 = (this || _global).s.v[0] / 2;\n          var s1 = (this || _global).s.v[1] / 2;\n\n          var _cw = (this || _global).d !== 3;\n\n          var _v = (this || _global).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 || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 0);\n\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).data = data;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n\n        if (data.sy === 1) {\n          (this || _global).ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this || _global);\n          (this || _global).is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this || _global);\n          (this || _global).convertToPath = (this || _global).convertStarToPath;\n        } else {\n          (this || _global).convertToPath = (this || _global).convertPolygonToPath;\n        }\n\n        (this || _global).pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this || _global);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this || _global);\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 0, 0, this || _global);\n        (this || _global).os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this || _global);\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertToPath();\n        }\n      }\n\n      StarShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertToPath();\n          }\n        },\n        convertStarToPath: function () {\n          var numPts = Math.floor((this || _global).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 || _global).or.v;\n          var shortRad = (this || _global).ir.v;\n          var longRound = (this || _global).os.v;\n          var shortRound = (this || _global).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 || _global).r.v;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          (this || _global).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 || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).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\n            longFlag = !longFlag;\n            currentAng += angle * dir;\n          }\n        },\n        convertPolygonToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v);\n          var angle = Math.PI * 2 / numPts;\n          var rad = (this || _global).or.v;\n          var roundness = (this || _global).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 || _global).data.d === 3 ? -1 : 1;\n          currentAng += (this || _global).r.v;\n          (this || _global).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 || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).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\n            currentAng += angle * dir;\n          }\n\n          (this || _global).paths.length = 0;\n          (this || _global).paths[0] = (this || _global).v;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n      return StarShapePropertyFactory;\n    }();\n\n    var RectShapeProperty = function () {\n      function RectShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n        (this || _global).v.c = true;\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertRectToPath();\n        }\n      }\n\n      RectShapePropertyFactory.prototype = {\n        convertRectToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var v0 = (this || _global).s.v[0] / 2;\n          var v1 = (this || _global).s.v[1] / 2;\n          var round = bmMin(v0, v1, (this || _global).r.v);\n          var cPoint = round * (1 - roundCorner);\n          (this || _global).v._length = 0;\n\n          if ((this || _global).d === 2 || (this || _global).d === 1) {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\n            (this || _global).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 || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n            }\n          } else {\n            (this || _global).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 || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n            }\n          }\n        },\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._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  /* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\n\n  /* exported ShapeModifiers */\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 || _global).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\n      (this || _global).shapes.push(shapeData);\n\n      this.addShapeToModifier(shapeData);\n\n      if ((this || _global)._isAnimated) {\n        data.setAsAnimated();\n      }\n    }\n  };\n\n  ShapeModifier.prototype.init = function (elem, data) {\n    (this || _global).shapes = [];\n    (this || _global).elem = elem;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, data);\n    (this || _global).frameId = initialDefaultFrame;\n    (this || _global).closed = false;\n    (this || _global).k = false;\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  ShapeModifier.prototype.processKeys = function () {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  extendPrototype([DynamicPropertyContainer], ShapeModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\n\n  function TrimModifier() {}\n\n  extendPrototype([ShapeModifier], TrimModifier);\n\n  TrimModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0, this || _global);\n    (this || _global).sValue = 0;\n    (this || _global).eValue = 0;\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).m = data.m;\n    (this || _global)._isAnimated = !!(this || _global).s.effectsSequence.length || !!(this || _global).e.effectsSequence.length || !!(this || _global).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 || _global)._mdf || _isFirstFrame) {\n      var o = (this || _global).o.v % 360 / 360;\n\n      if (o < 0) {\n        o += 1;\n      }\n\n      if ((this || _global).s.v > 1) {\n        s = 1 + o;\n      } else if ((this || _global).s.v < 0) {\n        s = 0 + o;\n      } else {\n        s = (this || _global).s.v + o;\n      }\n\n      if ((this || _global).e.v > 1) {\n        e = 1 + o;\n      } else if ((this || _global).e.v < 0) {\n        e = 0 + o;\n      } else {\n        e = (this || _global).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 || _global).sValue = s;\n      (this || _global).eValue = e;\n    } else {\n      s = (this || _global).sValue;\n      e = (this || _global).eValue;\n    }\n\n    var shapePaths;\n    var i;\n    var len = (this || _global).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 || _global).shapes[i].localShapeCollection.releaseShapes();\n\n        (this || _global).shapes[i].shape._mdf = true;\n        (this || _global).shapes[i].shape.paths = (this || _global).shapes[i].localShapeCollection;\n\n        if ((this || _global)._mdf) {\n          (this || _global).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 || _global).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 || _global)._mdf && !_isFirstFrame && (this || _global).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 || _global).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 || _global).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 || _global)._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 || _global).shapes[i].pathsData.length = 0;\n        (this || _global).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  ShapeModifiers.registerModifier(\"tm\", TrimModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\n\n  function RoundCornersModifier() {}\n\n  extendPrototype([ShapeModifier], RoundCornersModifier);\n\n  RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).rd = PropertyFactory.getProp(elem, data.r, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).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 || _global).shapes.length;\n    var j;\n    var jLen;\n    var rd = (this || _global).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 || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._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 || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\n\n  function PuckerAndBloatModifier() {}\n\n  extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n  PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).amount = PropertyFactory.getProp(elem, data.a, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).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 || _global).shapes.length;\n    var j;\n    var jLen;\n    var amount = (this || _global).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 || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._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 || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier);\n  /* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\n\n  function RepeaterModifier() {}\n\n  extendPrototype([ShapeModifier], RepeaterModifier);\n\n  RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 0, null, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, null, this || _global);\n    (this || _global).tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this || _global);\n    (this || _global).so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this || _global);\n    (this || _global).eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this || _global);\n    (this || _global).data = data;\n\n    if (!(this || _global).dynamicProperties.length) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = !!(this || _global).dynamicProperties.length;\n    (this || _global).pMatrix = new Matrix();\n    (this || _global).rMatrix = new Matrix();\n    (this || _global).sMatrix = new Matrix();\n    (this || _global).tMatrix = new Matrix();\n    (this || _global).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 || _global).elem = elem;\n    (this || _global).arr = arr;\n    (this || _global).pos = pos;\n    (this || _global).elemsData = elemsData;\n    (this || _global)._currentCopies = 0;\n    (this || _global)._elements = [];\n    (this || _global)._groups = [];\n    (this || _global).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 || _global)._elements.unshift(arr[pos]);\n    }\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).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 || _global)._mdf || _isFirstFrame) {\n      var copies = Math.ceil((this || _global).c.v);\n\n      if ((this || _global)._groups.length < copies) {\n        while ((this || _global)._groups.length < copies) {\n          var group = {\n            it: this.cloneElements((this || _global)._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\n          (this || _global).arr.splice(0, 0, group);\n\n          (this || _global)._groups.splice(0, 0, group);\n\n          (this || _global)._currentCopies += 1;\n        }\n\n        (this || _global).elem.reloadShapes();\n\n        hasReloaded = true;\n      }\n\n      cont = 0;\n      var renderFlag;\n\n      for (i = 0; i <= (this || _global)._groups.length - 1; i += 1) {\n        renderFlag = cont < copies;\n        (this || _global)._groups[i]._render = renderFlag;\n        this.changeGroupRender((this || _global)._groups[i].it, renderFlag);\n\n        if (!renderFlag) {\n          var elems = (this || _global).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 || _global)._currentCopies = copies; /// /\n\n      var offset = (this || _global).o.v;\n      var offsetModulo = offset % 1;\n      var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n      var pProps = (this || _global).pMatrix.props;\n      var rProps = (this || _global).rMatrix.props;\n      var sProps = (this || _global).sMatrix.props;\n\n      (this || _global).pMatrix.reset();\n\n      (this || _global).rMatrix.reset();\n\n      (this || _global).sMatrix.reset();\n\n      (this || _global).tMatrix.reset();\n\n      (this || _global).matrix.reset();\n\n      var iteration = 0;\n\n      if (offset > 0) {\n        while (iteration < roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          iteration += 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, offsetModulo, false);\n          iteration += offsetModulo;\n        }\n      } else if (offset < 0) {\n        while (iteration > roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, true);\n          iteration -= 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, -offsetModulo, true);\n          iteration -= offsetModulo;\n        }\n      }\n\n      i = (this || _global).data.m === 1 ? 0 : (this || _global)._currentCopies - 1;\n      dir = (this || _global).data.m === 1 ? 1 : -1;\n      cont = (this || _global)._currentCopies;\n      var j;\n      var jLen;\n\n      while (cont) {\n        items = (this || _global).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 || _global)._currentCopies === 1 ? (this || _global).so.v : (this || _global).so.v + ((this || _global).eo.v - (this || _global).so.v) * (i / ((this || _global)._currentCopies - 1));\n\n        if (iteration !== 0) {\n          if (i !== 0 && dir === 1 || i !== (this || _global)._currentCopies - 1 && dir === -1) {\n            this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          }\n\n          (this || _global).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\n          (this || _global).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\n          (this || _global).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 || _global).matrix.props[j];\n          }\n\n          (this || _global).matrix.reset();\n        } else {\n          (this || _global).matrix.reset();\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n        }\n\n        iteration += 1;\n        cont -= 1;\n        i += dir;\n      }\n    } else {\n      cont = (this || _global)._currentCopies;\n      i = 0;\n      dir = 1;\n\n      while (cont) {\n        items = (this || _global).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  ShapeModifiers.registerModifier(\"rp\", RepeaterModifier);\n  /* global createSizedArray, shapePool */\n\n  function ShapeCollection() {\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 4;\n    (this || _global).shapes = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapeCollection.prototype.addShape = function (shapeData) {\n    if ((this || _global)._length === (this || _global)._maxLength) {\n      (this || _global).shapes = (this || _global).shapes.concat(createSizedArray((this || _global)._maxLength));\n      (this || _global)._maxLength *= 2;\n    }\n\n    (this || _global).shapes[(this || _global)._length] = shapeData;\n    (this || _global)._length += 1;\n  };\n\n  ShapeCollection.prototype.releaseShapes = function () {\n    var i;\n\n    for (i = 0; i < (this || _global)._length; i += 1) {\n      shapePool.release((this || _global).shapes[i]);\n    }\n\n    (this || _global)._length = 0;\n  };\n  /* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function DashProperty(elem, data, renderer, container) {\n    (this || _global).elem = elem;\n    (this || _global).frameId = -1;\n    (this || _global).dataProps = createSizedArray(data.length);\n    (this || _global).renderer = renderer;\n    (this || _global).k = false;\n    (this || _global).dashStr = \"\";\n    (this || _global).dashArray = createTypedArray(\"float32\", data.length ? data.length - 1 : 0);\n    (this || _global).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 || _global);\n      (this || _global).k = prop.k || (this || _global).k;\n      (this || _global).dataProps[i] = {\n        n: data[i].n,\n        p: prop\n      };\n    }\n\n    if (!(this || _global).k) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = (this || _global).k;\n  }\n\n  DashProperty.prototype.getValue = function (forceRender) {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId && !forceRender) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n    (this || _global)._mdf = (this || _global)._mdf || forceRender;\n\n    if ((this || _global)._mdf) {\n      var i = 0;\n      var len = (this || _global).dataProps.length;\n\n      if ((this || _global).renderer === \"svg\") {\n        (this || _global).dashStr = \"\";\n      }\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).dataProps[i].n !== \"o\") {\n          if ((this || _global).renderer === \"svg\") {\n            (this || _global).dashStr += \" \" + (this || _global).dataProps[i].p.v;\n          } else {\n            (this || _global).dashArray[i] = (this || _global).dataProps[i].p.v;\n          }\n        } else {\n          (this || _global).dashoffset[0] = (this || _global).dataProps[i].p.v;\n        }\n      }\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], DashProperty);\n  /* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function GradientProperty(elem, data, container) {\n    (this || _global).data = data;\n    (this || _global).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 || _global).o = createTypedArray(\"float32\", cLength);\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n    (this || _global)._collapsable = this.checkCollapsable();\n    (this || _global)._hasOpacity = cLength;\n    this.initDynamicPropertyContainer(container);\n    (this || _global).prop = PropertyFactory.getProp(elem, data.k, 1, null, this || _global);\n    (this || _global).k = (this || _global).prop.k;\n    this.getValue(true);\n  }\n\n  GradientProperty.prototype.comparePoints = function (values, points) {\n    var i = 0;\n    var len = (this || _global).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 || _global).o.length / 2 !== (this || _global).c.length / 4) {\n      return false;\n    }\n\n    if ((this || _global).data.k.k[0].s) {\n      var i = 0;\n      var len = (this || _global).data.k.k.length;\n\n      while (i < len) {\n        if (!this.comparePoints((this || _global).data.k.k[i].s, (this || _global).data.p)) {\n          return false;\n        }\n\n        i += 1;\n      }\n    } else if (!this.comparePoints((this || _global).data.k.k, (this || _global).data.p)) {\n      return false;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.getValue = function (forceRender) {\n    (this || _global).prop.getValue();\n\n    (this || _global)._mdf = false;\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n\n    if ((this || _global).prop._mdf || forceRender) {\n      var i;\n      var len = (this || _global).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 || _global).prop.v[i] * mult);\n\n        if ((this || _global).c[i] !== val) {\n          (this || _global).c[i] = val;\n          (this || _global)._cmdf = !forceRender;\n        }\n      }\n\n      if ((this || _global).o.length) {\n        len = (this || _global).prop.v.length;\n\n        for (i = (this || _global).data.p * 4; i < len; i += 1) {\n          mult = i % 2 === 0 ? 100 : 1;\n          val = i % 2 === 0 ? Math.round((this || _global).prop.v[i] * 100) : (this || _global).prop.v[i];\n\n          if ((this || _global).o[i - (this || _global).data.p * 4] !== val) {\n            (this || _global).o[i - (this || _global).data.p * 4] = val;\n            (this || _global)._omdf = !forceRender;\n          }\n        }\n      }\n\n      (this || _global)._mdf = !forceRender;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], GradientProperty);\n  /* exported buildShapeString */\n\n  var buildShapeString = function (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  /* global Howl */\n\n  /* exported audioControllerFactory */\n\n\n  var audioControllerFactory = function () {\n    function AudioController(audioFactory) {\n      (this || _global).audios = [];\n      (this || _global).audioFactory = audioFactory;\n      (this || _global)._volume = 1;\n      (this || _global)._isMuted = false;\n    }\n\n    AudioController.prototype = {\n      addAudio: function (audio) {\n        (this || _global).audios.push(audio);\n      },\n      pause: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].pause();\n        }\n      },\n      resume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].resume();\n        }\n      },\n      setRate: function (rateValue) {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].setRate(rateValue);\n        }\n      },\n      createAudio: function (assetPath) {\n        if ((this || _global).audioFactory) {\n          return this.audioFactory(assetPath);\n        }\n\n        if (Howl) {\n          return new Howl({\n            src: [assetPath]\n          });\n        }\n\n        return {\n          isPlaying: false,\n          play: function () {\n            (this || _global).isPlaying = true;\n          },\n          seek: function () {\n            (this || _global).isPlaying = false;\n          },\n          playing: function () {},\n          rate: function () {},\n          setVolume: function () {}\n        };\n      },\n      setAudioFactory: function (audioFactory) {\n        (this || _global).audioFactory = audioFactory;\n      },\n      setVolume: function (value) {\n        (this || _global)._volume = value;\n\n        this._updateVolume();\n      },\n      mute: function () {\n        (this || _global)._isMuted = true;\n\n        this._updateVolume();\n      },\n      unmute: function () {\n        (this || _global)._isMuted = false;\n\n        this._updateVolume();\n      },\n      getVolume: function () {\n        return (this || _global)._volume;\n      },\n      _updateVolume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].volume((this || _global)._volume * ((this || _global)._isMuted ? 0 : 1));\n        }\n      }\n    };\n    return function () {\n      return new AudioController();\n    };\n  }();\n  /* global createTag, createNS, isSafari, assetLoader */\n\n  /* exported ImagePreloader */\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 || _global).loadedAssets += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function footageLoaded() {\n      (this || _global).loadedFootagesCount += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).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 || _global), 50);\n    }\n\n    function createImageData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createNS(\"image\");\n\n      if (isSafari) {\n        this.testImageLoaded(img);\n      } else {\n        img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      }\n\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", path);\n\n      if ((this || _global)._elementHelper.append) {\n        (this || _global)._elementHelper.append(img);\n      } else {\n        (this || _global)._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 || _global).assetsPath, (this || _global).path);\n      var img = createTag(\"img\");\n      img.crossOrigin = \"anonymous\";\n      img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), 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 || _global).assetsPath, (this || _global).path);\n      assetLoader.load(path, function (footageData) {\n        ob.img = footageData;\n\n        this._footageLoaded();\n      }.bind(this || _global), function () {\n        ob.img = {};\n\n        this._footageLoaded();\n      }.bind(this || _global));\n      return ob;\n    }\n\n    function loadAssets(assets, cb) {\n      (this || _global).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) {\n            (this || _global).totalImages += 1;\n\n            (this || _global).images.push(this._createImageData(assets[i]));\n          } else if (assets[i].t === 3) {\n            (this || _global).totalFootages += 1;\n\n            (this || _global).images.push(this.createFootageData(assets[i]));\n          }\n        }\n      }\n    }\n\n    function setPath(path) {\n      (this || _global).path = path || \"\";\n    }\n\n    function setAssetsPath(path) {\n      (this || _global).assetsPath = path || \"\";\n    }\n\n    function getAsset(assetData) {\n      var i = 0;\n      var len = (this || _global).images.length;\n\n      while (i < len) {\n        if ((this || _global).images[i].assetData === assetData) {\n          return (this || _global).images[i].img;\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function destroy() {\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images.length = 0;\n    }\n\n    function loadedImages() {\n      return (this || _global).totalImages === (this || _global).loadedAssets;\n    }\n\n    function loadedFootages() {\n      return (this || _global).totalFootages === (this || _global).loadedFootagesCount;\n    }\n\n    function setCacheType(type, elementHelper) {\n      if (type === \"svg\") {\n        (this || _global)._elementHelper = elementHelper;\n        (this || _global)._createImageData = (this || _global).createImageData.bind(this || _global);\n      } else {\n        (this || _global)._createImageData = (this || _global).createImgData.bind(this || _global);\n      }\n    }\n\n    function ImagePreloaderFactory() {\n      (this || _global)._imageLoaded = imageLoaded.bind(this || _global);\n      (this || _global)._footageLoaded = footageLoaded.bind(this || _global);\n      (this || _global).testImageLoaded = testImageLoaded.bind(this || _global);\n      (this || _global).createFootageData = createFootageData.bind(this || _global);\n      (this || _global).assetsPath = \"\";\n      (this || _global).path = \"\";\n      (this || _global).totalImages = 0;\n      (this || _global).totalFootages = 0;\n      (this || _global).loadedAssets = 0;\n      (this || _global).loadedFootagesCount = 0;\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).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  /* exported featureSupport */\n\n\n  var featureSupport = function () {\n    var ob = {\n      maskType: true\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    return ob;\n  }();\n  /* global createNS */\n\n  /* exported filtersFactory */\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  /* exported assetLoader */\n\n\n  var assetLoader = function () {\n    function formatResponse(xhr) {\n      if (xhr.response && typeof 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, 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      xhr.open(\"GET\", path, true);\n      xhr.send();\n    }\n\n    return {\n      load: loadAsset\n    };\n  }();\n  /* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n    addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\n\n\n  function TextAnimatorProperty(textData, renderType, elem) {\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._hasMaskedPath = false;\n    (this || _global)._frameId = -1;\n    (this || _global)._textData = textData;\n    (this || _global)._renderType = renderType;\n    (this || _global)._elem = elem;\n    (this || _global)._animatorsData = createSizedArray((this || _global)._textData.a.length);\n    (this || _global)._pathData = {};\n    (this || _global)._moreOptions = {\n      alignment: {}\n    };\n    (this || _global).renderedLetters = [];\n    (this || _global).lettersChangedFlag = false;\n    this.initDynamicPropertyContainer(elem);\n  }\n\n  TextAnimatorProperty.prototype.searchProperties = function () {\n    var i;\n    var len = (this || _global)._textData.a.length;\n    var animatorProps;\n    var getProp = PropertyFactory.getProp;\n\n    for (i = 0; i < len; i += 1) {\n      animatorProps = (this || _global)._textData.a[i];\n      (this || _global)._animatorsData[i] = new TextAnimatorDataProperty((this || _global)._elem, animatorProps, this || _global);\n    }\n\n    if ((this || _global)._textData.p && \"m\" in (this || _global)._textData.p) {\n      (this || _global)._pathData = {\n        f: getProp((this || _global)._elem, (this || _global)._textData.p.f, 0, 0, this || _global),\n        l: getProp((this || _global)._elem, (this || _global)._textData.p.l, 0, 0, this || _global),\n        r: (this || _global)._textData.p.r,\n        m: (this || _global)._elem.maskManager.getMaskProperty((this || _global)._textData.p.m)\n      };\n      (this || _global)._hasMaskedPath = true;\n    } else {\n      (this || _global)._hasMaskedPath = false;\n    }\n\n    (this || _global)._moreOptions.alignment = getProp((this || _global)._elem, (this || _global)._textData.m.a, 1, 0, this || _global);\n  };\n\n  TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n    (this || _global).lettersChangedFlag = lettersChangedFlag;\n\n    if (!(this || _global)._mdf && !(this || _global)._isFirstFrame && !lettersChangedFlag && (!(this || _global)._hasMaskedPath || !(this || _global)._pathData.m._mdf)) {\n      return;\n    }\n\n    (this || _global)._isFirstFrame = false;\n    var alignment = (this || _global)._moreOptions.alignment.v;\n    var animators = (this || _global)._animatorsData;\n    var textData = (this || _global)._textData;\n    var matrixHelper = (this || _global).mHelper;\n    var renderType = (this || _global)._renderType;\n    var renderedLettersCount = (this || _global).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 || _global)._hasMaskedPath) {\n      mask = (this || _global)._pathData.m;\n\n      if (!(this || _global)._pathData.n || (this || _global)._pathData._mdf) {\n        var paths = mask.v;\n\n        if ((this || _global)._pathData.r) {\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 || _global)._pathData.pi = pathInfo;\n      }\n\n      pathInfo = (this || _global)._pathData.pi;\n      currentLength = (this || _global)._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 || _global).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 || _global)._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 || _global).defaultPropsArray;\n      } else {\n        if ((this || _global)._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;\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 || _global)._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 || _global)._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 || _global)._hasMaskedPath) {\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n          if (textData.p.p) {\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\n        (this || _global).renderedLetters.push(letterValue);\n\n        renderedLettersCount += 1;\n        (this || _global).lettersChangedFlag = true;\n      } else {\n        letterValue = (this || _global).renderedLetters[i];\n        (this || _global).lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || (this || _global).lettersChangedFlag;\n      }\n    }\n  };\n\n  TextAnimatorProperty.prototype.getValue = function () {\n    if ((this || _global)._elem.globalData.frameId === (this || _global)._frameId) {\n      return;\n    }\n\n    (this || _global)._frameId = (this || _global)._elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  TextAnimatorProperty.prototype.mHelper = new Matrix();\n  TextAnimatorProperty.prototype.defaultPropsArray = [];\n  extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n  /* global PropertyFactory, degToRads, TextSelectorProp */\n\n  /* exported TextAnimatorDataProperty */\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 || _global).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 || _global).s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n    (this || _global).s.t = animatorProps.s.t;\n  }\n\n  function LetterProps(o, sw, sc, fc, m, p) {\n    (this || _global).o = o;\n    (this || _global).sw = sw;\n    (this || _global).sc = sc;\n    (this || _global).fc = fc;\n    (this || _global).m = m;\n    (this || _global).p = p;\n    (this || _global)._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 || _global)._mdf.o = false;\n    (this || _global)._mdf.sw = false;\n    (this || _global)._mdf.sc = false;\n    (this || _global)._mdf.fc = false;\n    (this || _global)._mdf.m = false;\n    (this || _global)._mdf.p = false;\n    var updated = false;\n\n    if ((this || _global).o !== o) {\n      (this || _global).o = o;\n      (this || _global)._mdf.o = true;\n      updated = true;\n    }\n\n    if ((this || _global).sw !== sw) {\n      (this || _global).sw = sw;\n      (this || _global)._mdf.sw = true;\n      updated = true;\n    }\n\n    if ((this || _global).sc !== sc) {\n      (this || _global).sc = sc;\n      (this || _global)._mdf.sc = true;\n      updated = true;\n    }\n\n    if ((this || _global).fc !== fc) {\n      (this || _global).fc = fc;\n      (this || _global)._mdf.fc = true;\n      updated = true;\n    }\n\n    if ((this || _global).m !== m) {\n      (this || _global).m = m;\n      (this || _global)._mdf.m = true;\n      updated = true;\n    }\n\n    if (p.length && ((this || _global).p[0] !== p[0] || (this || _global).p[1] !== p[1] || (this || _global).p[4] !== p[4] || (this || _global).p[5] !== p[5] || (this || _global).p[12] !== p[12] || (this || _global).p[13] !== p[13])) {\n      (this || _global).p = p;\n      (this || _global)._mdf.p = true;\n      updated = true;\n    }\n\n    return updated;\n  };\n  /* global FontManager, initialDefaultFrame, getFontProperties */\n\n  /* exported TextProperty */\n\n\n  function TextProperty(elem, data) {\n    (this || _global)._frameId = initialDefaultFrame;\n    (this || _global).pv = \"\";\n    (this || _global).v = \"\";\n    (this || _global).kf = false;\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._mdf = false;\n    (this || _global).data = data;\n    (this || _global).elem = elem;\n    (this || _global).comp = (this || _global).elem.comp;\n    (this || _global).keysIndex = 0;\n    (this || _global).canResize = false;\n    (this || _global).minimumFontSize = 1;\n    (this || _global).effectsSequence = [];\n    (this || _global).currentData = {\n      ascent: 0,\n      boxWidth: (this || _global).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 || _global).currentData, (this || _global).data.d.k[0].s);\n\n    if (!this.searchProperty()) {\n      this.completeTextData((this || _global).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 || _global).currentData = data;\n    (this || _global).currentData.boxWidth = (this || _global).currentData.boxWidth || (this || _global).defaultBoxWidth;\n    (this || _global)._mdf = true;\n  };\n\n  TextProperty.prototype.searchProperty = function () {\n    return this.searchKeyframes();\n  };\n\n  TextProperty.prototype.searchKeyframes = function () {\n    (this || _global).kf = (this || _global).data.d.k.length > 1;\n\n    if ((this || _global).kf) {\n      this.addEffect((this || _global).getKeyframeValue.bind(this || _global));\n    }\n\n    return (this || _global).kf;\n  };\n\n  TextProperty.prototype.addEffect = function (effectFunction) {\n    (this || _global).effectsSequence.push(effectFunction);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.getValue = function (_finalValue) {\n    if (((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) && !_finalValue) {\n      return;\n    }\n\n    (this || _global).currentData.t = (this || _global).data.d.k[(this || _global).keysIndex].s.t;\n    var currentValue = (this || _global).currentData;\n    var currentIndex = (this || _global).keysIndex;\n\n    if ((this || _global).lock) {\n      this.setCurrentData((this || _global).currentData);\n      return;\n    }\n\n    (this || _global).lock = true;\n    (this || _global)._mdf = false;\n    var i;\n    var len = (this || _global).effectsSequence.length;\n    var finalValue = _finalValue || (this || _global).data.d.k[(this || _global).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 || _global).keysIndex) {\n        finalValue = (this || _global).effectsSequence[i](finalValue, finalValue.t);\n      } else {\n        finalValue = (this || _global).effectsSequence[i]((this || _global).currentData, finalValue.t);\n      }\n    }\n\n    if (currentValue !== finalValue) {\n      this.setCurrentData(finalValue);\n    }\n\n    (this || _global).v = (this || _global).currentData;\n    (this || _global).pv = (this || _global).v;\n    (this || _global).lock = false;\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n  };\n\n  TextProperty.prototype.getKeyframeValue = function () {\n    var textKeys = (this || _global).data.d.k;\n    var frameNum = (this || _global).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 || _global).keysIndex !== i) {\n      (this || _global).keysIndex = i;\n    }\n\n    return (this || _global).data.d.k[(this || _global).keysIndex].s;\n  };\n\n  TextProperty.prototype.buildFinalText = function (text) {\n    var combinedCharacters = FontManager.getCombinedCharacterCodes();\n    var charactersArray = [];\n    var i = 0;\n    var len = text.length;\n    var charCode;\n\n    while (i < len) {\n      charCode = text.charCodeAt(i);\n\n      if (combinedCharacters.indexOf(charCode) !== -1) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n      } else if (charCode >= 55296 && charCode <= 56319) {\n        charCode = text.charCodeAt(i + 1);\n\n        if (charCode >= 56320 && charCode <= 57343) {\n          charactersArray.push(text.substr(i, 2));\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else {\n        charactersArray.push(text.charAt(i));\n      }\n\n      i += 1;\n    }\n\n    return charactersArray;\n  };\n\n  TextProperty.prototype.completeTextData = function (documentData) {\n    documentData.__complete = true;\n    var fontManager = (this || _global).elem.globalData.fontManager;\n    var data = (this || _global).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 || _global).canResize && documentData.finalSize > (this || _global).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 || _global).keysIndex : index;\n    var dData = this.copyData({}, (this || _global).data.d.k[index].s);\n    dData = this.copyData(dData, newData);\n    (this || _global).data.d.k[index].s = dData;\n    this.recalculate(index);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.recalculate = function (index) {\n    var dData = (this || _global).data.d.k[index].s;\n    dData.__complete = false;\n    (this || _global).keysIndex = 0;\n    (this || _global)._isFirstFrame = true;\n    this.getValue(dData);\n  };\n\n  TextProperty.prototype.canResizeFont = function (_canResize) {\n    (this || _global).canResize = _canResize;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n    (this || _global).minimumFontSize = Math.floor(_fontValue) || 1;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n  /* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\n\n  /* exported TextSelectorProp */\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 || _global)._currentTextLength = -1;\n      (this || _global).k = false;\n      (this || _global).data = data;\n      (this || _global).elem = elem;\n      (this || _global).comp = elem.comp;\n      (this || _global).finalS = 0;\n      (this || _global).finalE = 0;\n      this.initDynamicPropertyContainer(elem);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: 0\n      }, 0, 0, this || _global);\n\n      if (\"e\" in data) {\n        (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0, this || _global);\n      } else {\n        (this || _global).e = {\n          v: 100\n        };\n      }\n\n      (this || _global).o = PropertyFactory.getProp(elem, data.o || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).xe = PropertyFactory.getProp(elem, data.xe || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).ne = PropertyFactory.getProp(elem, data.ne || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this || _global);\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue();\n      }\n    }\n\n    TextSelectorPropFactory.prototype = {\n      getMult: function (ind) {\n        if ((this || _global)._currentTextLength !== (this || _global).elem.textProperty.currentData.l.length) {\n          this.getValue();\n        } // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\n\n\n        var x1 = 0;\n        var y1 = 0;\n        var x2 = 1;\n        var y2 = 1;\n\n        if ((this || _global).ne.v > 0) {\n          x1 = (this || _global).ne.v / 100;\n        } else {\n          y1 = -(this || _global).ne.v / 100;\n        }\n\n        if ((this || _global).xe.v > 0) {\n          x2 = 1 - (this || _global).xe.v / 100;\n        } else {\n          y2 = 1 + (this || _global).xe.v / 100;\n        }\n\n        var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n        var mult = 0;\n        var s = (this || _global).finalS;\n        var e = (this || _global).finalE;\n        var type = (this || _global).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        }\n\n        return mult * (this || _global).a.v;\n      },\n      getValue: function (newCharsFlag) {\n        this.iterateDynamicProperties();\n        (this || _global)._mdf = newCharsFlag || (this || _global)._mdf;\n        (this || _global)._currentTextLength = (this || _global).elem.textProperty.currentData.l.length || 0;\n\n        if (newCharsFlag && (this || _global).data.r === 2) {\n          (this || _global).e.v = (this || _global)._currentTextLength;\n        }\n\n        var divisor = (this || _global).data.r === 2 ? 1 : 100 / (this || _global).data.totalChars;\n        var o = (this || _global).o.v / divisor;\n        var s = (this || _global).s.v / divisor + o;\n        var e = (this || _global).e.v / divisor + o;\n\n        if (s > e) {\n          var _s = s;\n          s = e;\n          e = _s;\n        }\n\n        (this || _global).finalS = s;\n        (this || _global).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  /* global createSizedArray, pooling */\n\n  /* exported poolFactory */\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  /* global createSizedArray */\n\n  /* exported pooling */\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  /* global createTypedArray, poolFactory */\n\n  /* exported pointPool */\n\n\n  var pointPool = function () {\n    function create() {\n      return createTypedArray(\"float32\", 2);\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* global ShapePath, pointPool, poolFactory */\n\n  /* exported shapePool */\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  /* global createSizedArray, ShapeCollection, shapePool, pooling */\n\n  /* exported shapeCollectionPool */\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  /* global poolFactory, bezierLengthPool */\n\n  /* exported segmentsLengthPool */\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  /* global createTypedArray, defaultCurveSegments, poolFactory */\n\n  /* exported bezierLengthPool */\n\n\n  var bezierLengthPool = function () {\n    function create() {\n      return {\n        addedLength: 0,\n        percents: createTypedArray(\"float32\", defaultCurveSegments),\n        lengths: createTypedArray(\"float32\", defaultCurveSegments)\n      };\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* exported markerParser */\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]\n            };\n          }\n        }\n\n        markers.push(markerData);\n      }\n\n      return markers;\n    };\n  }();\n  /* global AudioElement, FootageElement, FontManager */\n\n\n  function BaseRenderer() {}\n\n  BaseRenderer.prototype.checkLayers = function (num) {\n    var i;\n    var len = (this || _global).layers.length;\n    var data;\n    (this || _global).completeLayers = true;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (!(this || _global).elements[i]) {\n        data = (this || _global).layers[i];\n\n        if (data.ip - data.st <= num - (this || _global).layers[i].st && data.op - data.st > num - (this || _global).layers[i].st) {\n          this.buildItem(i);\n        }\n      }\n\n      (this || _global).completeLayers = (this || _global).elements[i] ? (this || _global).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 || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.createFootage = function (data) {\n    return new FootageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.buildAllItems = function () {\n    var i;\n    var len = (this || _global).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 || _global).completeLayers = false;\n    var i;\n    var len = newLayers.length;\n    var j;\n    var jLen = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      j = 0;\n\n      while (j < jLen) {\n        if ((this || _global).layers[j].id === newLayers[i].id) {\n          (this || _global).layers[j] = newLayers[i];\n          break;\n        }\n\n        j += 1;\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n    (this || _global).globalData.projectInterface = pInterface;\n  };\n\n  BaseRenderer.prototype.initItems = function () {\n    if (!(this || _global).globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n  };\n\n  BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n    var elements = (this || _global).elements;\n    var layers = (this || _global).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 || _global).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\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n    (this || _global).globalData.fontManager = new FontManager();\n\n    (this || _global).globalData.fontManager.addChars(animData.chars);\n\n    (this || _global).globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\n    (this || _global).globalData.getAssetData = (this || _global).animationItem.getAssetData.bind((this || _global).animationItem);\n    (this || _global).globalData.getAssetsPath = (this || _global).animationItem.getAssetsPath.bind((this || _global).animationItem);\n    (this || _global).globalData.imageLoader = (this || _global).animationItem.imagePreloader;\n    (this || _global).globalData.audioController = (this || _global).animationItem.audioController;\n    (this || _global).globalData.frameId = 0;\n    (this || _global).globalData.frameRate = animData.fr;\n    (this || _global).globalData.nm = animData.nm;\n    (this || _global).globalData.compSize = {\n      w: animData.w,\n      h: animData.h\n    };\n  };\n  /* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\n  IImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\n\n\n  function SVGRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).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\n      (this || _global).svgElement.appendChild(titleElement);\n\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\n      (this || _global).svgElement.appendChild(descElement);\n\n      ariaLabel += \" \" + descId;\n    }\n\n    if (ariaLabel) {\n      (this || _global).svgElement.setAttribute(\"aria-labelledby\", ariaLabel);\n    }\n\n    var defs = createNS(\"defs\");\n\n    (this || _global).svgElement.appendChild(defs);\n\n    var maskElement = createNS(\"g\");\n\n    (this || _global).svgElement.appendChild(maskElement);\n\n    (this || _global).layerElement = maskElement;\n    (this || _global).renderConfig = {\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\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    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      defs: defs,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).rendererType = \"svg\";\n  }\n\n  extendPrototype([BaseRenderer], SVGRenderer);\n\n  SVGRenderer.prototype.createNull = function (data) {\n    return new NullElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createShape = function (data) {\n    return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createText = function (data) {\n    return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createImage = function (data) {\n    return new IImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createComp = function (data) {\n    return new SVGCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createSolid = function (data) {\n    return new ISolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.configAnimation = function (animData) {\n    (this || _global).svgElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\n    if ((this || _global).renderConfig.viewBoxSize) {\n      (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).renderConfig.viewBoxSize);\n    } else {\n      (this || _global).svgElement.setAttribute(\"viewBox\", \"0 0 \" + animData.w + \" \" + animData.h);\n    }\n\n    if (!(this || _global).renderConfig.viewBoxOnly) {\n      (this || _global).svgElement.setAttribute(\"width\", animData.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", animData.h);\n\n      (this || _global).svgElement.style.width = \"100%\";\n      (this || _global).svgElement.style.height = \"100%\";\n      (this || _global).svgElement.style.transform = \"translate3d(0,0,0)\";\n    }\n\n    if ((this || _global).renderConfig.className) {\n      (this || _global).svgElement.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    if ((this || _global).renderConfig.id) {\n      (this || _global).svgElement.setAttribute(\"id\", (this || _global).renderConfig.id);\n    }\n\n    if ((this || _global).renderConfig.focusable !== undefined) {\n      (this || _global).svgElement.setAttribute(\"focusable\", (this || _global).renderConfig.focusable);\n    }\n\n    (this || _global).svgElement.setAttribute(\"preserveAspectRatio\", (this || _global).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\n    (this || _global).animationItem.wrapper.appendChild((this || _global).svgElement); // Mask animation\n\n\n    var defs = (this || _global).globalData.defs;\n    this.setupGlobalData(animData, defs);\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).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\n    (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + maskId + \")\");\n\n    defs.appendChild(maskElement);\n    (this || _global).layers = animData.layers;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n  };\n\n  SVGRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).layerElement = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  SVGRenderer.prototype.updateContainerSize = function () {};\n\n  SVGRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    elements[pos] = true;\n    var element = this.createItem((this || _global).layers[pos]);\n    elements[pos] = element;\n\n    if (expressionsPlugin) {\n      if ((this || _global).layers[pos].ty === 0) {\n        (this || _global).globalData.projectInterface.registerComposition(element);\n      }\n\n      element.initExpressions();\n    }\n\n    this.appendElementInPos(element, pos);\n\n    if ((this || _global).layers[pos].tt) {\n      if (!(this || _global).elements[pos - 1] || (this || _global).elements[pos - 1] === true) {\n        this.buildItem(pos - 1);\n        this.addPendingElement(element);\n      } else {\n        element.setMatte(elements[pos - 1].layerId);\n      }\n    }\n  };\n\n  SVGRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n\n      if (element.data.tt) {\n        var i = 0;\n        var len = (this || _global).elements.length;\n\n        while (i < len) {\n          if ((this || _global).elements[i] === element) {\n            element.setMatte((this || _global).elements[i - 1].layerId);\n            break;\n          }\n\n          i += 1;\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.renderFrame = function (num) {\n    if ((this || _global).renderedFrame === num || (this || _global).destroyed) {\n      return;\n    }\n\n    if (num === null) {\n      num = (this || _global).renderedFrame;\n    } else {\n      (this || _global).renderedFrame = num;\n    } // console.log('-------');\n    // console.log('FRAME ',num);\n\n\n    (this || _global).globalData.frameNum = num;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData.projectInterface.currentFrame = num;\n    (this || _global).globalData._mdf = false;\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n    }\n  };\n\n  SVGRenderer.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 || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement()) {\n        nextElement = (this || _global).elements[i].getBaseElement();\n      }\n\n      i += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(newElement, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(newElement);\n    }\n  };\n\n  SVGRenderer.prototype.hide = function () {\n    (this || _global).layerElement.style.display = \"none\";\n  };\n\n  SVGRenderer.prototype.show = function () {\n    (this || _global).layerElement.style.display = \"block\";\n  };\n  /* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\n  CVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\n\n\n  function CanvasRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).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      className: config && config.className || \"\",\n      id: config && config.id || \"\"\n    };\n    (this || _global).renderConfig.dpr = config && config.dpr || 1;\n\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    (this || _global).renderedFrame = -1;\n    (this || _global).globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: (this || _global).renderConfig,\n      currentGlobalAlpha: -1\n    };\n    (this || _global).contextData = new CVContextData();\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).transformMat = new Matrix();\n    (this || _global).completeLayers = false;\n    (this || _global).rendererType = \"canvas\";\n  }\n\n  extendPrototype([BaseRenderer], CanvasRenderer);\n\n  CanvasRenderer.prototype.createShape = function (data) {\n    return new CVShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createText = function (data) {\n    return new CVTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createImage = function (data) {\n    return new CVImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createComp = function (data) {\n    return new CVCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createSolid = function (data) {\n    return new CVSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  CanvasRenderer.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    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\n      return;\n    }\n\n    (this || _global).transformMat.cloneFromProps(props);\n\n    var cProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n\n    (this || _global).contextData.cTr.cloneFromProps((this || _global).transformMat.props);\n\n    var trProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n  };\n\n  CanvasRenderer.prototype.ctxOpacity = function (op) {\n    /* if(op === 1){\r\n          return;\r\n      } */\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.globalAlpha *= op < 0 ? 0 : op;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n      return;\n    }\n\n    (this || _global).contextData.cO *= op < 0 ? 0 : op;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== (this || _global).contextData.cO) {\n      (this || _global).canvasContext.globalAlpha = (this || _global).contextData.cO;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n    }\n  };\n\n  CanvasRenderer.prototype.reset = function () {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    (this || _global).contextData.reset();\n  };\n\n  CanvasRenderer.prototype.save = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.save();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.save();\n    }\n\n    var props = (this || _global).contextData.cTr.props;\n\n    if ((this || _global).contextData._length <= (this || _global).contextData.cArrPos) {\n      (this || _global).contextData.duplicate();\n    }\n\n    var i;\n    var arr = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = props[i];\n    }\n\n    (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos] = (this || _global).contextData.cO;\n    (this || _global).contextData.cArrPos += 1;\n  };\n\n  CanvasRenderer.prototype.restore = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.restore();\n\n      (this || _global).globalData.blendMode = \"source-over\";\n    }\n\n    (this || _global).contextData.cArrPos -= 1;\n    var popped = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n    var i;\n    var arr = (this || _global).contextData.cTr.props;\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = popped[i];\n    }\n\n    (this || _global).canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\n    popped = (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos];\n    (this || _global).contextData.cO = popped;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== popped) {\n      (this || _global).canvasContext.globalAlpha = popped;\n      (this || _global).globalData.currentGlobalAlpha = popped;\n    }\n  };\n\n  CanvasRenderer.prototype.configAnimation = function (animData) {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.container = createTag(\"canvas\");\n      var containerStyle = (this || _global).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\n      (this || _global).animationItem.wrapper.appendChild((this || _global).animationItem.container);\n\n      (this || _global).canvasContext = (this || _global).animationItem.container.getContext(\"2d\");\n\n      if ((this || _global).renderConfig.className) {\n        (this || _global).animationItem.container.setAttribute(\"class\", (this || _global).renderConfig.className);\n      }\n\n      if ((this || _global).renderConfig.id) {\n        (this || _global).animationItem.container.setAttribute(\"id\", (this || _global).renderConfig.id);\n      }\n    } else {\n      (this || _global).canvasContext = (this || _global).renderConfig.context;\n    }\n\n    (this || _global).data = animData;\n    (this || _global).layers = animData.layers;\n    (this || _global).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 || _global).globalData.canvasContext = (this || _global).canvasContext;\n    (this || _global).globalData.renderer = this || _global;\n    (this || _global).globalData.isDashed = false;\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).globalData.transformCanvas = (this || _global).transformCanvas;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n    this.updateContainerSize();\n  };\n\n  CanvasRenderer.prototype.updateContainerSize = function () {\n    this.reset();\n    var elementWidth;\n    var elementHeight;\n\n    if ((this || _global).animationItem.wrapper && (this || _global).animationItem.container) {\n      elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n      elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n\n      (this || _global).animationItem.container.setAttribute(\"width\", elementWidth * (this || _global).renderConfig.dpr);\n\n      (this || _global).animationItem.container.setAttribute(\"height\", elementHeight * (this || _global).renderConfig.dpr);\n    } else {\n      elementWidth = (this || _global).canvasContext.canvas.width * (this || _global).renderConfig.dpr;\n      elementHeight = (this || _global).canvasContext.canvas.height * (this || _global).renderConfig.dpr;\n    }\n\n    var elementRel;\n    var animationRel;\n\n    if ((this || _global).renderConfig.preserveAspectRatio.indexOf(\"meet\") !== -1 || (this || _global).renderConfig.preserveAspectRatio.indexOf(\"slice\") !== -1) {\n      var par = (this || _global).renderConfig.preserveAspectRatio.split(\" \");\n\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 || _global).transformCanvas.w / (this || _global).transformCanvas.h;\n\n      if (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\") {\n        (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      } else {\n        (this || _global).transformCanvas.sx = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      }\n\n      if (xPos === \"xMid\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (xPos === \"xMax\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.tx = 0;\n      }\n\n      if (yPos === \"YMid\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (yPos === \"YMax\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.ty = 0;\n      }\n    } else if ((this || _global).renderConfig.preserveAspectRatio === \"none\") {\n      (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    } else {\n      (this || _global).transformCanvas.sx = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.sy = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    }\n\n    (this || _global).transformCanvas.props = [(this || _global).transformCanvas.sx, 0, 0, 0, 0, (this || _global).transformCanvas.sy, 0, 0, 0, 0, 1, 0, (this || _global).transformCanvas.tx, (this || _global).transformCanvas.ty, 0, 1];\n    /* var i, len = this.elements.length;\r\n      for(i=0;i<len;i+=1){\r\n          if(this.elements[i] && this.elements[i].data.ty === 0){\r\n              this.elements[i].resize(this.globalData.transformCanvas);\r\n          }\r\n      } */\n\n    this.ctxTransform((this || _global).transformCanvas.props);\n\n    (this || _global).canvasContext.beginPath();\n\n    (this || _global).canvasContext.rect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n\n    (this || _global).canvasContext.closePath();\n\n    (this || _global).canvasContext.clip();\n\n    this.renderFrame((this || _global).renderedFrame, true);\n  };\n\n  CanvasRenderer.prototype.destroy = function () {\n    if ((this || _global).renderConfig.clearCanvas && (this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).globalData.canvasContext = null;\n    (this || _global).animationItem.container = null;\n    (this || _global).destroyed = true;\n  };\n\n  CanvasRenderer.prototype.renderFrame = function (num, forceRender) {\n    if ((this || _global).renderedFrame === num && (this || _global).renderConfig.clearCanvas === true && !forceRender || (this || _global).destroyed || num === -1) {\n      return;\n    }\n\n    (this || _global).renderedFrame = num;\n    (this || _global).globalData.frameNum = num - (this || _global).animationItem._isFirstFrame;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData._mdf = !(this || _global).renderConfig.clearCanvas || forceRender;\n    (this || _global).globalData.projectInterface.currentFrame = num; // console.log('--------');\n    // console.log('NEW: ',num);\n\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      if ((this || _global).renderConfig.clearCanvas === true) {\n        (this || _global).canvasContext.clearRect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n      } else {\n        this.save();\n      }\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n\n      if ((this || _global).renderConfig.clearCanvas !== true) {\n        this.restore();\n      }\n    }\n  };\n\n  CanvasRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    var element = this.createItem((this || _global).layers[pos], this || _global, (this || _global).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  CanvasRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  CanvasRenderer.prototype.hide = function () {\n    (this || _global).animationItem.container.style.display = \"none\";\n  };\n\n  CanvasRenderer.prototype.show = function () {\n    (this || _global).animationItem.container.style.display = \"block\";\n  };\n  /* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\n  HTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\n  HSolidElement, styleDiv, createTag, createNS */\n\n\n  function HybridRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).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 || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).pendingElements = [];\n    (this || _global).elements = [];\n    (this || _global).threeDElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).camera = null;\n    (this || _global).supports3d = true;\n    (this || _global).rendererType = \"html\";\n  }\n\n  extendPrototype([BaseRenderer], HybridRenderer);\n  HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n  HybridRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  HybridRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newDOMElement = element.getBaseElement();\n\n    if (!newDOMElement) {\n      return;\n    }\n\n    var layer = (this || _global).layers[pos];\n\n    if (!layer.ddd || !(this || _global).supports3d) {\n      if ((this || _global).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 || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement) {\n            nextLayer = (this || _global).elements[i];\n            tmpDOMElement = (this || _global).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 || _global).supports3d) {\n            (this || _global).layerElement.insertBefore(newDOMElement, nextDOMElement);\n          }\n        } else if (!layer.ddd || !(this || _global).supports3d) {\n          (this || _global).layerElement.appendChild(newDOMElement);\n        }\n      }\n    } else {\n      this.addTo3dContainer(newDOMElement, pos);\n    }\n  };\n\n  HybridRenderer.prototype.createShape = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createText = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createCamera = function (data) {\n    (this || _global).camera = new HCameraElement(data, (this || _global).globalData, this || _global);\n    return (this || _global).camera;\n  };\n\n  HybridRenderer.prototype.createImage = function (data) {\n    if (!(this || _global).supports3d) {\n      return new IImageElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createComp = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGCompElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createSolid = function (data) {\n    if (!(this || _global).supports3d) {\n      return new ISolidElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  HybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if ((this || _global).threeDElements[i].startPos <= pos && (this || _global).threeDElements[i].endPos >= pos) {\n        return (this || _global).threeDElements[i].perspectiveElem;\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  HybridRenderer.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 || _global).globalData.compSize.w + \"px\";\n      style.height = (this || _global).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\n    (this || _global).threeDElements.push(threeDContainerData);\n\n    return threeDContainerData;\n  };\n\n  HybridRenderer.prototype.build3dContainers = function () {\n    var i;\n    var len = (this || _global).layers.length;\n    var lastThreeDContainerData;\n    var currentContainer = \"\";\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).layers[i].ddd && (this || _global).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 || _global).threeDElements.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      (this || _global).resizerElem.appendChild((this || _global).threeDElements[i].perspectiveElem);\n    }\n  };\n\n  HybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if (pos <= (this || _global).threeDElements[i].endPos) {\n        var j = (this || _global).threeDElements[i].startPos;\n        var nextElement;\n\n        while (j < pos) {\n          if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n            nextElement = (this || _global).elements[j].getBaseElement();\n          }\n\n          j += 1;\n        }\n\n        if (nextElement) {\n          (this || _global).threeDElements[i].container.insertBefore(elem, nextElement);\n        } else {\n          (this || _global).threeDElements[i].container.appendChild(elem);\n        }\n\n        break;\n      }\n\n      i += 1;\n    }\n  };\n\n  HybridRenderer.prototype.configAnimation = function (animData) {\n    var resizerElem = createTag(\"div\");\n    var wrapper = (this || _global).animationItem.wrapper;\n    var style = resizerElem.style;\n    style.width = animData.w + \"px\";\n    style.height = animData.h + \"px\";\n    (this || _global).resizerElem = resizerElem;\n    styleDiv(resizerElem);\n    style.transformStyle = \"flat\";\n    style.mozTransformStyle = \"flat\";\n    style.webkitTransformStyle = \"flat\";\n\n    if ((this || _global).renderConfig.className) {\n      resizerElem.setAttribute(\"class\", (this || _global).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\n    (this || _global).resizerElem.appendChild(svg);\n\n    var defs = createNS(\"defs\");\n    svg.appendChild(defs);\n    (this || _global).data = animData; // Mask animation\n\n    this.setupGlobalData(animData, svg);\n    (this || _global).globalData.defs = defs;\n    (this || _global).layers = animData.layers;\n    (this || _global).layerElement = (this || _global).resizerElem;\n    this.build3dContainers();\n    this.updateContainerSize();\n  };\n\n  HybridRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).animationItem.container = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).elements[i].destroy();\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  HybridRenderer.prototype.updateContainerSize = function () {\n    var elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n    var elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n    var elementRel = elementWidth / elementHeight;\n    var animationRel = (this || _global).globalData.compSize.w / (this || _global).globalData.compSize.h;\n    var sx;\n    var sy;\n    var tx;\n    var ty;\n\n    if (animationRel > elementRel) {\n      sx = elementWidth / (this || _global).globalData.compSize.w;\n      sy = elementWidth / (this || _global).globalData.compSize.w;\n      tx = 0;\n      ty = (elementHeight - (this || _global).globalData.compSize.h * (elementWidth / (this || _global).globalData.compSize.w)) / 2;\n    } else {\n      sx = elementHeight / (this || _global).globalData.compSize.h;\n      sy = elementHeight / (this || _global).globalData.compSize.h;\n      tx = (elementWidth - (this || _global).globalData.compSize.w * (elementHeight / (this || _global).globalData.compSize.h)) / 2;\n      ty = 0;\n    }\n\n    var style = (this || _global).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  HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n  HybridRenderer.prototype.hide = function () {\n    (this || _global).resizerElem.style.display = \"none\";\n  };\n\n  HybridRenderer.prototype.show = function () {\n    (this || _global).resizerElem.style.display = \"block\";\n  };\n\n  HybridRenderer.prototype.initItems = function () {\n    this.buildAllItems();\n\n    if ((this || _global).camera) {\n      (this || _global).camera.setup();\n    } else {\n      var cWidth = (this || _global).globalData.compSize.w;\n      var cHeight = (this || _global).globalData.compSize.h;\n      var i;\n      var len = (this || _global).threeDElements.length;\n\n      for (i = 0; i < len; i += 1) {\n        var style = (this || _global).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  HybridRenderer.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 || _global).globalData.comp, null);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n  /* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\n\n\n  function MaskElement(data, element, globalData) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).globalData = globalData;\n    (this || _global).storedData = [];\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).maskElement = null;\n    var defs = (this || _global).globalData.defs;\n    var i;\n    var len = (this || _global).masksProperties ? (this || _global).masksProperties.length : 0;\n    (this || _global).viewData = createSizedArray(len);\n    (this || _global).solidPath = \"\";\n    var path;\n    var properties = (this || _global).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 || _global).element.comp.data.w || 0);\n        rect.setAttribute(\"height\", (this || _global).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 || _global).viewData[i] = {\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).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 || _global).element, properties[i].x, 0, null, (this || _global).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 || _global).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(\" + locationHref + \"#\" + layerId + \"_\" + count + \")\");\n          currentMasks.length = 0;\n          currentMasks.push(g);\n        } else {\n          currentMasks.push(path);\n        }\n\n        if (properties[i].inv && !(this || _global).solidPath) {\n          (this || _global).solidPath = this.createLayerSolidPath();\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).viewData[i] = {\n          elem: path,\n          lastPath: \"\",\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          invRect: rect\n        };\n\n        if (!(this || _global).viewData[i].prop.k) {\n          this.drawPath(properties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n        }\n      }\n    }\n\n    (this || _global).maskElement = createNS(maskType);\n    len = currentMasks.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).maskElement.appendChild(currentMasks[i]);\n    }\n\n    if (count > 0) {\n      (this || _global).maskElement.setAttribute(\"id\", layerId);\n\n      (this || _global).element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\n\n      defs.appendChild((this || _global).maskElement);\n    }\n\n    if ((this || _global).viewData.length) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  MaskElement.prototype.getMaskProperty = function (pos) {\n    return (this || _global).viewData[pos].prop;\n  };\n\n  MaskElement.prototype.renderFrame = function (isFirstFrame) {\n    var finalMat = (this || _global).element.finalTransform.mat;\n    var i;\n    var len = (this || _global).masksProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).viewData[i].prop._mdf || isFirstFrame) {\n        this.drawPath((this || _global).masksProperties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n      }\n\n      if ((this || _global).viewData[i].op._mdf || isFirstFrame) {\n        (this || _global).viewData[i].elem.setAttribute(\"fill-opacity\", (this || _global).viewData[i].op.v);\n      }\n\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).viewData[i].invRect && ((this || _global).element.finalTransform.mProp._mdf || isFirstFrame)) {\n          (this || _global).viewData[i].invRect.setAttribute(\"transform\", finalMat.getInverseMatrix().to2dCSS());\n        }\n\n        if ((this || _global).storedData[i].x && ((this || _global).storedData[i].x._mdf || isFirstFrame)) {\n          var feMorph = (this || _global).storedData[i].expan;\n\n          if ((this || _global).storedData[i].x.v < 0) {\n            if ((this || _global).storedData[i].lastOperator !== \"erode\") {\n              (this || _global).storedData[i].lastOperator = \"erode\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + (this || _global).storedData[i].filterId + \")\");\n            }\n\n            feMorph.setAttribute(\"radius\", -(this || _global).storedData[i].x.v);\n          } else {\n            if ((this || _global).storedData[i].lastOperator !== \"dilate\") {\n              (this || _global).storedData[i].lastOperator = \"dilate\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", null);\n            }\n\n            (this || _global).storedData[i].elem.setAttribute(\"stroke-width\", (this || _global).storedData[i].x.v * 2);\n          }\n        }\n      }\n    }\n  };\n\n  MaskElement.prototype.getMaskelement = function () {\n    return (this || _global).maskElement;\n  };\n\n  MaskElement.prototype.createLayerSolidPath = function () {\n    var path = \"M0,0 \";\n    path += \" h\" + (this || _global).globalData.compSize.w;\n    path += \" v\" + (this || _global).globalData.compSize.h;\n    path += \" h-\" + (this || _global).globalData.compSize.w;\n    path += \" v-\" + (this || _global).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 || _global).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 || _global).element = null;\n    (this || _global).globalData = null;\n    (this || _global).maskElement = null;\n    (this || _global).data = null;\n    (this || _global).masksProperties = null;\n  };\n  /**\r\n   * @file\r\n   * Handles AE's layer parenting property.\r\n   *\r\n   */\n\n\n  function HierarchyElement() {}\n\n  HierarchyElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes hierarchy properties\r\n       *\r\n       */\n    initHierarchy: function () {\n      // element's parent list\n      (this || _global).hierarchy = []; // if element is parent of another layer _isParent will be true\n\n      (this || _global)._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 (hierarchy) {\n      (this || _global).hierarchy = hierarchy;\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer as parent.\r\n       *\r\n       */\n    setAsParent: function () {\n      (this || _global)._isParent = true;\n    },\n\n    /**\r\n       * @function\r\n       * Searches layer's parenting chain\r\n       *\r\n       */\n    checkParenting: function () {\n      if ((this || _global).data.parent !== undefined) {\n        (this || _global).comp.buildElementParenting(this || _global, (this || _global).data.parent, []);\n      }\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\n  function FrameElement() {}\n\n  FrameElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       */\n    initFrame: function () {\n      // set to true when inpoint is rendered\n      (this || _global)._isFirstFrame = false; // list of animated properties\n\n      (this || _global).dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n      (this || _global)._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 (num, isVisible) {\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (isVisible || (this || _global)._isParent && (this || _global).dynamicProperties[i].propType === \"transform\") {\n          (this || _global).dynamicProperties[i].getValue();\n\n          if ((this || _global).dynamicProperties[i]._mdf) {\n            (this || _global).globalData._mdf = true;\n            (this || _global)._mdf = true;\n          }\n        }\n      }\n    },\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n      }\n    }\n  };\n  /* global TransformPropertyFactory, Matrix */\n\n  function TransformElement() {}\n\n  TransformElement.prototype = {\n    initTransform: function () {\n      (this || _global).finalTransform = {\n        mProp: (this || _global).data.ks ? TransformPropertyFactory.getTransformProperty(this || _global, (this || _global).data.ks, this || _global) : {\n          o: 0\n        },\n        _matMdf: false,\n        _opMdf: false,\n        mat: new Matrix()\n      };\n\n      if ((this || _global).data.ao) {\n        (this || _global).finalTransform.mProp.autoOriented = true;\n      } // TODO: check TYPE 11: Guided elements\n\n\n      if ((this || _global).data.ty !== 11) {// this.createElements();\n      }\n    },\n    renderTransform: function () {\n      (this || _global).finalTransform._opMdf = (this || _global).finalTransform.mProp.o._mdf || (this || _global)._isFirstFrame;\n      (this || _global).finalTransform._matMdf = (this || _global).finalTransform.mProp._mdf || (this || _global)._isFirstFrame;\n\n      if ((this || _global).hierarchy) {\n        var mat;\n        var finalMat = (this || _global).finalTransform.mat;\n        var i = 0;\n        var len = (this || _global).hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n        if (!(this || _global).finalTransform._matMdf) {\n          while (i < len) {\n            if ((this || _global).hierarchy[i].finalTransform.mProp._mdf) {\n              (this || _global).finalTransform._matMdf = true;\n              break;\n            }\n\n            i += 1;\n          }\n        }\n\n        if ((this || _global).finalTransform._matMdf) {\n          mat = (this || _global).finalTransform.mProp.v.props;\n          finalMat.cloneFromProps(mat);\n\n          for (i = 0; i < len; i += 1) {\n            mat = (this || _global).hierarchy[i].finalTransform.mProp.v.props;\n            finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n          }\n        }\n      }\n    },\n    globalToLocal: function (pt) {\n      var transforms = [];\n      transforms.push((this || _global).finalTransform);\n      var flag = true;\n      var comp = (this || _global).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 RenderableElement() {}\n\n  RenderableElement.prototype = {\n    initRenderable: function () {\n      // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n      (this || _global).isInRange = false; // layer's display state\n\n      (this || _global).hidden = false; // If layer's transparency equals 0, it can be hidden\n\n      (this || _global).isTransparent = false; // list of animated components\n\n      (this || _global).renderableComponents = [];\n    },\n    addRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) === -1) {\n        (this || _global).renderableComponents.push(component);\n      }\n    },\n    removeRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) !== -1) {\n        (this || _global).renderableComponents.splice((this || _global).renderableComponents.indexOf(component), 1);\n      }\n    },\n    prepareRenderableFrame: function (num) {\n      this.checkLayerLimits(num);\n    },\n    checkTransparency: function () {\n      if ((this || _global).finalTransform.mProp.o.v <= 0) {\n        if (!(this || _global).isTransparent && (this || _global).globalData.renderConfig.hideOnTransparent) {\n          (this || _global).isTransparent = true;\n          this.hide();\n        }\n      } else if ((this || _global).isTransparent) {\n        (this || _global).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 (num) {\n      if ((this || _global).data.ip - (this || _global).data.st <= num && (this || _global).data.op - (this || _global).data.st > num) {\n        if ((this || _global).isInRange !== true) {\n          (this || _global).globalData._mdf = true;\n          (this || _global)._mdf = true;\n          (this || _global).isInRange = true;\n          this.show();\n        }\n      } else if ((this || _global).isInRange !== false) {\n        (this || _global).globalData._mdf = true;\n        (this || _global).isInRange = false;\n        this.hide();\n      }\n    },\n    renderRenderable: function () {\n      var i;\n      var len = (this || _global).renderableComponents.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).renderableComponents[i].renderFrame((this || _global)._isFirstFrame);\n      }\n      /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n          this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n    },\n    sourceRectAtTime: function () {\n      return {\n        top: 0,\n        left: 0,\n        width: 100,\n        height: 100\n      };\n    },\n    getLayerSize: function () {\n      if ((this || _global).data.ty === 5) {\n        return {\n          w: (this || _global).data.textData.width,\n          h: (this || _global).data.textData.height\n        };\n      }\n\n      return {\n        w: (this || _global).data.width,\n        h: (this || _global).data.height\n      };\n    }\n  };\n  /* global extendPrototype, RenderableElement, createProxyFunction */\n\n  function RenderableDOMElement() {}\n\n  (function () {\n    var _prototype = {\n      initElement: function (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 () {\n        if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n          var elem = (this || _global).baseElement || (this || _global).layerElement;\n          elem.style.display = \"none\";\n          (this || _global).hidden = true;\n        }\n      },\n      show: function () {\n        if ((this || _global).isInRange && !(this || _global).isTransparent) {\n          if (!(this || _global).data.hd) {\n            var elem = (this || _global).baseElement || (this || _global).layerElement;\n            elem.style.display = \"block\";\n          }\n\n          (this || _global).hidden = false;\n          (this || _global)._isFirstFrame = true;\n        }\n      },\n      renderFrame: function () {\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 || _global).data.hd || (this || _global).hidden) {\n          return;\n        }\n\n        this.renderTransform();\n        this.renderRenderable();\n        this.renderElement();\n        this.renderInnerContent();\n\n        if ((this || _global)._isFirstFrame) {\n          (this || _global)._isFirstFrame = false;\n        }\n      },\n      renderInnerContent: function () {},\n      prepareFrame: function (num) {\n        (this || _global)._mdf = false;\n        this.prepareRenderableFrame(num);\n        this.prepareProperties(num, (this || _global).isInRange);\n        this.checkTransparency();\n      },\n      destroy: function () {\n        (this || _global).innerElem = null;\n        this.destroyBaseElement();\n      }\n    };\n    extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n  })();\n  /* exported ProcessedElement */\n\n\n  function ProcessedElement(element, position) {\n    (this || _global).elem = element;\n    (this || _global).pos = position;\n  }\n  /* global createNS */\n\n\n  function SVGStyleData(data, level) {\n    (this || _global).data = data;\n    (this || _global).type = data.ty;\n    (this || _global).d = \"\";\n    (this || _global).lvl = level;\n    (this || _global)._mdf = false;\n    (this || _global).closed = data.hd === true;\n    (this || _global).pElem = createNS(\"path\");\n    (this || _global).msElem = null;\n  }\n\n  SVGStyleData.prototype.reset = function () {\n    (this || _global).d = \"\";\n    (this || _global)._mdf = false;\n  };\n\n  function SVGShapeData(transformers, level, shape) {\n    (this || _global).caches = [];\n    (this || _global).styles = [];\n    (this || _global).transformers = transformers;\n    (this || _global).lStr = \"\";\n    (this || _global).sh = shape;\n    (this || _global).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 || _global)._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 || _global)._isAnimated = true;\n        break;\n      }\n\n      i += 1;\n    }\n  }\n\n  SVGShapeData.prototype.setAsAnimated = function () {\n    (this || _global)._isAnimated = true;\n  };\n  /* exported SVGTransformData */\n\n\n  function SVGTransformData(mProps, op, container) {\n    (this || _global).transform = {\n      mProps: mProps,\n      op: op,\n      container: container\n    };\n    (this || _global).elements = [];\n    (this || _global)._isAnimated = (this || _global).transform.mProps.dynamicProperties.length || (this || _global).transform.op.effectsSequence.length;\n  }\n  /* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function SVGStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n  /* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function SVGFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n  /* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\n  extendPrototype, DynamicPropertyContainer */\n\n  function SVGGradientFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    this.initGradientData(elem, data, styleOb);\n  }\n\n  SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, null, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 1, null, this || _global);\n    (this || _global).h = PropertyFactory.getProp(elem, data.h || {\n      k: 0\n    }, 0, 0.01, this || _global);\n    (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n      k: 0\n    }, 0, degToRads, this || _global);\n    (this || _global).g = new GradientProperty(elem, data.g, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global).stops = [];\n    this.setGradientData(styleOb.pElem, data);\n    this.setGradientOpacity(data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._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(\" + locationHref + \"#\" + gradientId + \")\");\n    (this || _global).gf = gfill;\n    (this || _global).cst = stops;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n    if ((this || _global).g._hasOpacity && !(this || _global).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 || _global).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(\" + locationHref + \"#\" + opacityId + \")\");\n      (this || _global).of = opFill;\n      (this || _global).ms = mask;\n      (this || _global).ost = stops;\n      (this || _global).maskId = maskId;\n      styleOb.msElem = maskElement;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n  /* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\n\n  function SVGGradientStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    this.initGradientData(elem, data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n  /* global createNS */\n\n  /* exported ShapeGroupData */\n\n  function ShapeGroupData() {\n    (this || _global).it = [];\n    (this || _global).prevViewData = [];\n    (this || _global).gr = createNS(\"g\");\n  }\n  /* global Matrix, buildShapeString, bmFloor */\n\n  /* exported SVGElementsRenderer */\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        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 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 props;\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              props = itemData.transformers[k].mProps.v.props;\n              mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\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  /* global Matrix */\n\n\n  function ShapeTransformManager() {\n    (this || _global).sequences = {};\n    (this || _global).sequenceList = [];\n    (this || _global).transform_key_count = 0;\n  }\n\n  ShapeTransformManager.prototype = {\n    addTransformSequence: function (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 || _global).sequences[key];\n\n      if (!sequence) {\n        sequence = {\n          transforms: [].concat(transforms),\n          finalTransform: new Matrix(),\n          _mdf: false\n        };\n        (this || _global).sequences[key] = sequence;\n\n        (this || _global).sequenceList.push(sequence);\n      }\n\n      return sequence;\n    },\n    processSequence: function (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        var props;\n        sequence.finalTransform.reset();\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          props = sequence.transforms[i].transform.mProps.v.props;\n          sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n        }\n      }\n\n      sequence._mdf = _mdf;\n    },\n    processSequences: function (isFirstFrame) {\n      var i;\n      var len = (this || _global).sequenceList.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.processSequence((this || _global).sequenceList[i], isFirstFrame);\n      }\n    },\n    getNewKey: function () {\n      (this || _global).transform_key_count += 1;\n      return \"_\" + (this || _global).transform_key_count;\n    }\n  };\n  /* global ShapePropertyFactory, SVGShapeData */\n\n  function CVShapeData(element, data, styles, transformsManager) {\n    (this || _global).styledShapes = [];\n    (this || _global).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 || _global).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\n        (this || _global).styledShapes.push(styledShape);\n\n        styles[i].elements.push(styledShape);\n      }\n    }\n  }\n\n  CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n  /* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\n  TextExpressionInterface, getBlendMode,createElementID, EffectsManager */\n\n  function BaseElement() {}\n\n  BaseElement.prototype = {\n    checkMasks: function () {\n      if (!(this || _global).data.hasMask) {\n        return false;\n      }\n\n      var i = 0;\n      var len = (this || _global).data.masksProperties.length;\n\n      while (i < len) {\n        if ((this || _global).data.masksProperties[i].mode !== \"n\" && (this || _global).data.masksProperties[i].cl !== false) {\n          return true;\n        }\n\n        i += 1;\n      }\n\n      return false;\n    },\n    initExpressions: function () {\n      (this || _global).layerInterface = LayerExpressionInterface(this || _global);\n\n      if ((this || _global).data.hasMask && (this || _global).maskManager) {\n        (this || _global).layerInterface.registerMaskInterface((this || _global).maskManager);\n      }\n\n      var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this || _global, (this || _global).layerInterface);\n\n      (this || _global).layerInterface.registerEffectsInterface(effectsInterface);\n\n      if ((this || _global).data.ty === 0 || (this || _global).data.xt) {\n        (this || _global).compInterface = CompExpressionInterface(this || _global);\n      } else if ((this || _global).data.ty === 4) {\n        (this || _global).layerInterface.shapeInterface = ShapeExpressionInterface((this || _global).shapesData, (this || _global).itemsData, (this || _global).layerInterface);\n        (this || _global).layerInterface.content = (this || _global).layerInterface.shapeInterface;\n      } else if ((this || _global).data.ty === 5) {\n        (this || _global).layerInterface.textInterface = TextExpressionInterface(this || _global);\n        (this || _global).layerInterface.text = (this || _global).layerInterface.textInterface;\n      }\n    },\n    setBlendMode: function () {\n      var blendModeValue = getBlendMode((this || _global).data.bm);\n      var elem = (this || _global).baseElement || (this || _global).layerElement;\n      elem.style[\"mix-blend-mode\"] = blendModeValue;\n    },\n    initBaseData: function (data, globalData, comp) {\n      (this || _global).globalData = globalData;\n      (this || _global).comp = comp;\n      (this || _global).data = data;\n      (this || _global).layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n      if (!(this || _global).data.sr) {\n        (this || _global).data.sr = 1;\n      } // effects manager\n\n\n      (this || _global).effectsManager = new EffectsManager((this || _global).data, this || _global, (this || _global).dynamicProperties);\n    },\n    getType: function () {\n      return (this || _global).type;\n    },\n    sourceRectAtTime: function () {}\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\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  /* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\n\n  function SVGBaseElement() {}\n\n  SVGBaseElement.prototype = {\n    initRendererElement: function () {\n      (this || _global).layerElement = createNS(\"g\");\n    },\n    createContainerElements: function () {\n      (this || _global).matteElement = createNS(\"g\");\n      (this || _global).transformedElement = (this || _global).layerElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n      (this || _global)._sizeChanged = false;\n      var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n      var filId;\n      var fil;\n      var gg;\n\n      if ((this || _global).data.td) {\n        if ((this || _global).data.td == 3 || (this || _global).data.td == 1) {\n          // eslint-disable-line eqeqeq\n          var masker = createNS(\"mask\");\n          masker.setAttribute(\"id\", (this || _global).layerId);\n          masker.setAttribute(\"mask-type\", (this || _global).data.td == 3 ? \"luminance\" : \"alpha\"); // eslint-disable-line eqeqeq\n\n          masker.appendChild((this || _global).layerElement);\n          layerElementParent = masker;\n\n          (this || _global).globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n\n          if (!featureSupport.maskType && (this || _global).data.td == 1) {\n            // eslint-disable-line eqeqeq\n            masker.setAttribute(\"mask-type\", \"luminance\");\n            filId = createElementID();\n            fil = filtersFactory.createFilter(filId);\n\n            (this || _global).globalData.defs.appendChild(fil);\n\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            masker.appendChild(gg);\n            gg.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          }\n        } else if ((this || _global).data.td == 2) {\n          // eslint-disable-line eqeqeq\n          var maskGroup = createNS(\"mask\");\n          maskGroup.setAttribute(\"id\", (this || _global).layerId);\n          maskGroup.setAttribute(\"mask-type\", \"alpha\");\n          var maskGrouper = createNS(\"g\");\n          maskGroup.appendChild(maskGrouper);\n          filId = createElementID();\n          fil = filtersFactory.createFilter(filId); /// /\n          // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n          /* var feColorMatrix = createNS('feColorMatrix');\r\n                  feColorMatrix.setAttribute('type', 'matrix');\r\n                  feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n                  feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n                  fil.appendChild(feColorMatrix); */\n          /// /\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 || _global).globalData.defs.appendChild(fil);\n\n          var alphaRect = createNS(\"rect\");\n          alphaRect.setAttribute(\"width\", (this || _global).comp.data.w);\n          alphaRect.setAttribute(\"height\", (this || _global).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(\" + locationHref + \"#\" + filId + \")\");\n          maskGrouper.appendChild(alphaRect);\n          maskGrouper.appendChild((this || _global).layerElement);\n          layerElementParent = maskGrouper;\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 || _global).layerElement);\n            layerElementParent = gg;\n            maskGrouper.appendChild(gg);\n          }\n\n          (this || _global).globalData.defs.appendChild(maskGroup);\n        }\n      } else if ((this || _global).data.tt) {\n        (this || _global).matteElement.appendChild((this || _global).layerElement);\n\n        layerElementParent = (this || _global).matteElement;\n        (this || _global).baseElement = (this || _global).matteElement;\n      } else {\n        (this || _global).baseElement = (this || _global).layerElement;\n      }\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).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 || _global).data.ty === 0 && !(this || _global).data.hd) {\n        var cp = createNS(\"clipPath\");\n        var pt = createNS(\"path\");\n        pt.setAttribute(\"d\", \"M0,0 L\" + (this || _global).data.w + \",0 L\" + (this || _global).data.w + \",\" + (this || _global).data.h + \" L0,\" + (this || _global).data.h + \"z\");\n        var clipId = createElementID();\n        cp.setAttribute(\"id\", clipId);\n        cp.appendChild(pt);\n\n        (this || _global).globalData.defs.appendChild(cp);\n\n        if (this.checkMasks()) {\n          var cpGroup = createNS(\"g\");\n          cpGroup.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n          cpGroup.appendChild((this || _global).layerElement);\n          (this || _global).transformedElement = cpGroup;\n\n          if (layerElementParent) {\n            layerElementParent.appendChild((this || _global).transformedElement);\n          } else {\n            (this || _global).baseElement = (this || _global).transformedElement;\n          }\n        } else {\n          (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n        }\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      if ((this || _global).finalTransform._matMdf) {\n        (this || _global).transformedElement.setAttribute(\"transform\", (this || _global).finalTransform.mat.to2dCSS());\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        (this || _global).transformedElement.setAttribute(\"opacity\", (this || _global).finalTransform.mProp.o.v);\n      }\n    },\n    destroyBaseElement: function () {\n      (this || _global).layerElement = null;\n      (this || _global).matteElement = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    getBaseElement: function () {\n      if ((this || _global).data.hd) {\n        return null;\n      }\n\n      return (this || _global).baseElement;\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n      (this || _global).renderableEffectsManager = new SVGEffects(this || _global);\n    },\n    setMatte: function (id) {\n      if (!(this || _global).matteElement) {\n        return;\n      }\n\n      (this || _global).matteElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n    }\n  };\n  /* global ProcessedElement */\n\n  function IShapeElement() {}\n\n  IShapeElement.prototype = {\n    addShapeToModifiers: function (data) {\n      var i;\n      var len = (this || _global).shapeModifiers.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapeModifiers[i].addShape(data);\n      }\n    },\n    isShapeInAnimatedModifiers: function (data) {\n      var i = 0;\n      var len = (this || _global).shapeModifiers.length;\n\n      while (i < len) {\n        if ((this || _global).shapeModifiers[i].isAnimatedWithShape(data)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n    renderModifiers: function () {\n      if (!(this || _global).shapeModifiers.length) {\n        return;\n      }\n\n      var i;\n      var len = (this || _global).shapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].sh.reset();\n      }\n\n      len = (this || _global).shapeModifiers.length;\n      var shouldBreakProcess;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shouldBreakProcess = (this || _global).shapeModifiers[i].processShapes((this || _global)._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    lcEnum: {\n      1: \"butt\",\n      2: \"round\",\n      3: \"square\"\n    },\n    ljEnum: {\n      1: \"miter\",\n      2: \"round\",\n      3: \"bevel\"\n    },\n    searchProcessedElement: function (elem) {\n      var elements = (this || _global).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 (elem, pos) {\n      var elements = (this || _global).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 (num) {\n      this.prepareRenderableFrame(num);\n      this.prepareProperties(num, (this || _global).isInRange);\n    }\n  };\n  /* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\n\n  function ITextElement() {}\n\n  ITextElement.prototype.initElement = function (data, globalData, comp) {\n    (this || _global).lettersChangedFlag = true;\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    (this || _global).textProperty = new TextProperty(this || _global, data.t, (this || _global).dynamicProperties);\n    (this || _global).textAnimator = new TextAnimatorProperty(data.t, (this || _global).renderType, this || _global);\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    (this || _global).textAnimator.searchProperties((this || _global).dynamicProperties);\n  };\n\n  ITextElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if ((this || _global).textProperty._mdf || (this || _global).textProperty._isFirstFrame) {\n      this.buildNewText();\n      (this || _global).textProperty._isFirstFrame = false;\n      (this || _global).textProperty._mdf = false;\n    }\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      pathNodes = shapes[j].ks.k;\n      shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n    }\n\n    return shapeStr;\n  };\n\n  ITextElement.prototype.updateDocumentData = function (newData, index) {\n    (this || _global).textProperty.updateDocumentData(newData, index);\n  };\n\n  ITextElement.prototype.canResizeFont = function (_canResize) {\n    (this || _global).textProperty.canResizeFont(_canResize);\n  };\n\n  ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n    (this || _global).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  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\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 || _global).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 || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if (!(this || _global).isInRange && !(this || _global).data.xt) {\n      return;\n    }\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n\n      if (timeRemapped === (this || _global).data.op) {\n        timeRemapped = (this || _global).data.op - 1;\n      }\n\n      (this || _global).renderedFrame = timeRemapped;\n    } else {\n      (this || _global).renderedFrame = num / (this || _global).data.sr;\n    }\n\n    var i;\n    var len = (this || _global).elements.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers((this || _global).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 || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame((this || _global).renderedFrame - (this || _global).layers[i].st);\n\n        if ((this || _global).elements[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    }\n  };\n\n  ICompElement.prototype.renderInnerContent = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  ICompElement.prototype.setElements = function (elems) {\n    (this || _global).elements = elems;\n  };\n\n  ICompElement.prototype.getElements = function () {\n    return (this || _global).elements;\n  };\n\n  ICompElement.prototype.destroyElements = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n  };\n\n  ICompElement.prototype.destroy = function () {\n    this.destroyElements();\n    this.destroyBaseElement();\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\n\n\n  function IImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n    (this || _global).sourceRect = {\n      top: 0,\n      left: 0,\n      width: (this || _global).assetData.w,\n      height: (this || _global).assetData.h\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n  IImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).innerElem = createNS(\"image\");\n\n    (this || _global).innerElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"preserveAspectRatio\", (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio);\n\n    (this || _global).innerElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n    (this || _global).layerElement.appendChild((this || _global).innerElem);\n  };\n\n  IImageElement.prototype.sourceRectAtTime = function () {\n    return (this || _global).sourceRect;\n  };\n  /* global extendPrototype, IImageElement, createNS */\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 || _global).data.sw);\n    rect.setAttribute(\"height\", (this || _global).data.sh);\n    rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\n\n\n  function AudioElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initBaseData(data, globalData, comp);\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).audio = (this || _global).globalData.audioController.createAudio(assetPath);\n    (this || _global)._currentTime = 0;\n\n    (this || _global).globalData.audioController.addAudio(this || _global);\n\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  AudioElement.prototype.prepareFrame = function (num) {\n    this.prepareRenderableFrame(num, true);\n    this.prepareProperties(num, true);\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n      (this || _global)._currentTime = timeRemapped;\n    } else {\n      (this || _global)._currentTime = num / (this || _global).data.sr;\n    }\n  };\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n  AudioElement.prototype.renderFrame = function () {\n    if ((this || _global).isInRange && (this || _global)._canPlay) {\n      if (!(this || _global)._isPlaying) {\n        (this || _global).audio.play();\n\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n\n        (this || _global)._isPlaying = true;\n      } else if (!(this || _global).audio.playing() || Math.abs((this || _global)._currentTime / (this || _global).globalData.frameRate - (this || _global).audio.seek()) > 0.1) {\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n      }\n    }\n  };\n\n  AudioElement.prototype.show = function () {// this.audio.play()\n  };\n\n  AudioElement.prototype.hide = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n  };\n\n  AudioElement.prototype.pause = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n  };\n\n  AudioElement.prototype.resume = function () {\n    (this || _global)._canPlay = true;\n  };\n\n  AudioElement.prototype.setRate = function (rateValue) {\n    (this || _global).audio.rate(rateValue);\n  };\n\n  AudioElement.prototype.volume = function (volumeValue) {\n    (this || _global).audio.volume(volumeValue);\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  /* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\n\n\n  function FootageElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).footageData = globalData.imageLoader.getAsset((this || _global).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    (this || _global).layerInterface = FootageInterface(this || _global);\n  };\n\n  FootageElement.prototype.getFootageData = function () {\n    return (this || _global).footageData;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\n\n\n  function SVGCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = true;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : []; // this.layerElement = createNS('g');\n\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createNS */\n\n  function SVGTextLottieElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).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 || _global).data.singleShape && !(this || _global).globalData.fontManager.chars) {\n      (this || _global).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.buildNewText = function () {\n    var i;\n    var len;\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n    if (documentData.fc) {\n      (this || _global).layerElement.setAttribute(\"fill\", this.buildColor(documentData.fc));\n    } else {\n      (this || _global).layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\");\n    }\n\n    if (documentData.sc) {\n      (this || _global).layerElement.setAttribute(\"stroke\", this.buildColor(documentData.sc));\n\n      (this || _global).layerElement.setAttribute(\"stroke-width\", documentData.sw);\n    }\n\n    (this || _global).layerElement.setAttribute(\"font-size\", documentData.finalSize);\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (fontData.fClass) {\n      (this || _global).layerElement.setAttribute(\"class\", fontData.fClass);\n    } else {\n      (this || _global).layerElement.setAttribute(\"font-family\", fontData.fFamily);\n\n      var fWeight = documentData.fWeight;\n      var fStyle = documentData.fStyle;\n\n      (this || _global).layerElement.setAttribute(\"font-style\", fStyle);\n\n      (this || _global).layerElement.setAttribute(\"font-weight\", fWeight);\n    }\n\n    (this || _global).layerElement.setAttribute(\"aria-label\", documentData.t);\n\n    var letters = documentData.l || [];\n    var usesGlyphs = !!(this || _global).globalData.fontManager.chars;\n    len = letters.length;\n    var tSpan;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var singleShape = (this || _global).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 || _global).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 || _global).textSpans[i] || 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        (this || _global).textSpans[i] = tSpan;\n        yPos += documentData.finalLineHeight;\n      }\n\n      (this || _global).layerElement.appendChild(tElement);\n    } else {\n      var cachedSpansLength = (this || _global).textSpans.length;\n      var shapeData;\n      var charData;\n\n      for (i = 0; i < len; i += 1) {\n        if (!usesGlyphs || !singleShape || i === 0) {\n          tSpan = cachedSpansLength > i ? (this || _global).textSpans[i] : createNS(usesGlyphs ? \"path\" : \"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 || _global).textSpans[i] = tSpan;\n\n            (this || _global).layerElement.appendChild(tSpan);\n          }\n\n          tSpan.style.display = \"inherit\";\n        }\n\n        matrixHelper.reset();\n        matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\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 || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n          shapeData = charData && charData.data || {};\n          shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\n          if (!singleShape) {\n            tSpan.setAttribute(\"d\", this.createPathShape(matrixHelper, shapes));\n          } else {\n            shapeStr += this.createPathShape(matrixHelper, shapes);\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 || _global).textSpans.length) {\n      (this || _global).textSpans[i].style.display = \"none\";\n      i += 1;\n    }\n\n    (this || _global)._sizeChanged = true;\n  };\n\n  SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n    this.prepareFrame((this || _global).comp.renderedFrame - (this || _global).data.st);\n    this.renderInnerContent();\n\n    if ((this || _global)._sizeChanged) {\n      (this || _global)._sizeChanged = false;\n\n      var textBox = (this || _global).layerElement.getBBox();\n\n      (this || _global).bbox = {\n        top: textBox.y,\n        left: textBox.x,\n        width: textBox.width,\n        height: textBox.height\n      };\n    }\n\n    return (this || _global).bbox;\n  };\n\n  SVGTextLottieElement.prototype.renderInnerContent = function () {\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n      if ((this || _global).lettersChangedFlag || (this || _global).textAnimator.lettersChangedFlag) {\n        (this || _global)._sizeChanged = true;\n        var i;\n        var len;\n        var renderedLetters = (this || _global).textAnimator.renderedLetters;\n        var letters = (this || _global).textProperty.currentData.l;\n        len = letters.length;\n        var renderedLetter;\n        var textSpan;\n\n        for (i = 0; i < len; i += 1) {\n          if (!letters[i].n) {\n            renderedLetter = renderedLetters[i];\n            textSpan = (this || _global).textSpans[i];\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  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\n  FrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\n  SVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\n  TransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers */\n\n\n  function SVGShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).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 || _global).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 || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).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 || _global).shapes.length;\n    var shape;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n    var style;\n    var tempShapes = [];\n    var areAnimated = false;\n\n    for (j = 0; j < jLen; j += 1) {\n      style = (this || _global).stylesList[j];\n      areAnimated = false;\n      tempShapes.length = 0;\n\n      for (i = 0; i < len; i += 1) {\n        shape = (this || _global).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 || _global, data, styleOb);\n    } else if (data.ty === \"fl\") {\n      elementData = new SVGFillStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      var GradientConstructor = data.ty === \"gf\" ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n      elementData = new GradientConstructor(this || _global, data, styleOb);\n\n      (this || _global).globalData.defs.appendChild(elementData.gf);\n\n      if (elementData.maskId) {\n        (this || _global).globalData.defs.appendChild(elementData.ms);\n\n        (this || _global).globalData.defs.appendChild(elementData.of);\n\n        pathElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + elementData.maskId + \")\");\n      }\n    }\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      pathElement.setAttribute(\"stroke-linecap\", (this || _global).lcEnum[data.lc] || \"round\");\n      pathElement.setAttribute(\"stroke-linejoin\", (this || _global).ljEnum[data.lj] || \"round\");\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 || _global).stylesList.push(styleOb);\n\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 || _global, data, this || _global);\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 || _global, data, ty, this || _global);\n    var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\n    (this || _global).shapes.push(elementData);\n\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 || _global).animatedContents.length;\n\n    while (i < len) {\n      if ((this || _global).animatedContents[i].element === element) {\n        return;\n      }\n\n      i += 1;\n    }\n\n    (this || _global).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 || _global).stylesList.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      if (!(this || _global).stylesList[j].closed) {\n        arr.push((this || _global).stylesList[j]);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).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\") {\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          container.appendChild(itemsData[i].style.pElem);\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          container.appendChild(itemsData[i].gr);\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\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).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 || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\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 || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).stylesList[i].reset();\n    }\n\n    this.renderShape();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).stylesList[i]._mdf || (this || _global)._isFirstFrame) {\n        if ((this || _global).stylesList[i].msElem) {\n          (this || _global).stylesList[i].msElem.setAttribute(\"d\", (this || _global).stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n\n          (this || _global).stylesList[i].d = \"M0 0\" + (this || _global).stylesList[i].d;\n        }\n\n        (this || _global).stylesList[i].pElem.setAttribute(\"d\", (this || _global).stylesList[i].d || \"M0 0\");\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.renderShape = function () {\n    var i;\n    var len = (this || _global).animatedContents.length;\n    var animatedContent;\n\n    for (i = 0; i < len; i += 1) {\n      animatedContent = (this || _global).animatedContents[i];\n\n      if (((this || _global)._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n        animatedContent.fn(animatedContent.data, animatedContent.element, (this || _global)._isFirstFrame);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.destroy = function () {\n    this.destroyBaseElement();\n    (this || _global).shapesData = null;\n    (this || _global).itemsData = null;\n  };\n  /* global createNS */\n\n\n  function SVGTintFilter(filter, filterManager) {\n    (this || _global).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    feColorMatrix.setAttribute(\"result\", \"f1\");\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\", \"f2\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n\n    if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n      var feMerge = createNS(\"feMerge\");\n      filter.appendChild(feMerge);\n      var feMergeNode;\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n      feMerge.appendChild(feMergeNode);\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"f2\");\n      feMerge.appendChild(feMergeNode);\n    }\n  }\n\n  SVGTintFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var colorBlack = (this || _global).filterManager.effectElements[0].p.v;\n      var colorWhite = (this || _global).filterManager.effectElements[1].p.v;\n      var opacity = (this || _global).filterManager.effectElements[2].p.v / 100;\n\n      (this || _global).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 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGFillFilter(filter, filterManager) {\n    (this || _global).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    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n  }\n\n  SVGFillFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color = (this || _global).filterManager.effectElements[2].p.v;\n      var opacity = (this || _global).filterManager.effectElements[6].p.v;\n\n      (this || _global).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  /* global createNS */\n\n\n  function SVGGaussianBlurEffect(filter, filterManager) {\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 || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    filter.appendChild(feGaussianBlur);\n    (this || _global).feGaussianBlur = feGaussianBlur;\n  }\n\n  SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      // Empirical value, matching AE's blur appearance.\n      var kBlurrinessToSigma = 0.3;\n      var sigma = (this || _global).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 || _global).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 || _global).feGaussianBlur.setAttribute(\"stdDeviation\", sigmaX + \" \" + sigmaY); // Repeat edges mapping:\n      //\n      //   0 -> off -> duplicate\n      //   1 -> on  -> wrap\n\n\n      var edgeMode = (this || _global).filterManager.effectElements[2].p.v == 1 ? \"wrap\" : \"duplicate\"; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"edgeMode\", edgeMode);\n    }\n  };\n  /* global createNS, createElementID, locationHref, bmFloor */\n\n\n  function SVGStrokeEffect(elem, filterManager) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).elem = elem;\n    (this || _global).paths = [];\n  }\n\n  SVGStrokeEffect.prototype.initialize = function () {\n    var elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n    var path;\n    var groupPath;\n    var i;\n    var len;\n\n    if ((this || _global).filterManager.effectElements[1].p.v === 1) {\n      len = (this || _global).elem.maskManager.masksProperties.length;\n      i = 0;\n    } else {\n      i = (this || _global).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\n      (this || _global).paths.push({\n        p: path,\n        m: i\n      });\n    }\n\n    if ((this || _global).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\n      (this || _global).elem.globalData.defs.appendChild(mask);\n\n      var g = createNS(\"g\");\n      g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n\n      while (elemChildren[0]) {\n        g.appendChild(elemChildren[0]);\n      }\n\n      (this || _global).elem.layerElement.appendChild(g);\n\n      (this || _global).masker = mask;\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    } else if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if ((this || _global).filterManager.effectElements[10].p.v === 2) {\n        elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n\n        while (elemChildren.length) {\n          (this || _global).elem.layerElement.removeChild(elemChildren[0]);\n        }\n      }\n\n      (this || _global).elem.layerElement.appendChild(groupPath);\n\n      (this || _global).elem.layerElement.removeAttribute(\"mask\");\n\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    }\n\n    (this || _global).initialized = true;\n    (this || _global).pathMasker = groupPath;\n  };\n\n  SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n\n    var i;\n    var len = (this || _global).paths.length;\n    var mask;\n    var path;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).paths[i].m !== -1) {\n        mask = (this || _global).elem.maskManager.viewData[(this || _global).paths[i].m];\n        path = (this || _global).paths[i].p;\n\n        if (forceRender || (this || _global).filterManager._mdf || mask.prop._mdf) {\n          path.setAttribute(\"d\", mask.lastPath);\n        }\n\n        if (forceRender || (this || _global).filterManager.effectElements[9].p._mdf || (this || _global).filterManager.effectElements[4].p._mdf || (this || _global).filterManager.effectElements[7].p._mdf || (this || _global).filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n          var dasharrayValue;\n\n          if ((this || _global).filterManager.effectElements[7].p.v !== 0 || (this || _global).filterManager.effectElements[8].p.v !== 100) {\n            var s = Math.min((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var e = Math.max((this || _global).filterManager.effectElements[7].p.v, (this || _global).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 || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).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 || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01 + \" \";\n            }\n\n            dasharrayValue += \"0 \" + l * 10 + \" 0 0\";\n          } else {\n            dasharrayValue = \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n          }\n\n          path.setAttribute(\"stroke-dasharray\", dasharrayValue);\n        }\n      }\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"stroke-width\", (this || _global).filterManager.effectElements[4].p.v * 2);\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[6].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"opacity\", (this || _global).filterManager.effectElements[6].p.v);\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if (forceRender || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var color = (this || _global).filterManager.effectElements[3].p.v;\n\n        (this || _global).pathMasker.setAttribute(\"stroke\", \"rgb(\" + bmFloor(color[0] * 255) + \",\" + bmFloor(color[1] * 255) + \",\" + bmFloor(color[2] * 255) + \")\");\n      }\n    }\n  };\n  /* global createNS */\n\n\n  function SVGTritoneFilter(filter, filterManager) {\n    (this || _global).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    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n    feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.appendChild(feComponentTransfer);\n    (this || _global).matrixFilter = feComponentTransfer;\n    var feFuncR = createNS(\"feFuncR\");\n    feFuncR.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncR);\n    (this || _global).feFuncR = feFuncR;\n    var feFuncG = createNS(\"feFuncG\");\n    feFuncG.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncG);\n    (this || _global).feFuncG = feFuncG;\n    var feFuncB = createNS(\"feFuncB\");\n    feFuncB.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncB);\n    (this || _global).feFuncB = feFuncB;\n  }\n\n  SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color1 = (this || _global).filterManager.effectElements[0].p.v;\n      var color2 = (this || _global).filterManager.effectElements[1].p.v;\n      var color3 = (this || _global).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\n      (this || _global).feFuncR.setAttribute(\"tableValues\", tableR);\n\n      (this || _global).feFuncG.setAttribute(\"tableValues\", tableG);\n\n      (this || _global).feFuncB.setAttribute(\"tableValues\", tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\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 ' + opacity + ' 0');\n\n    }\n  };\n  /* global createNS */\n\n\n  function SVGProLevelsFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var effectElements = (this || _global).filterManager.effectElements;\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\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 || _global).feFuncR = this.createFeFunc(\"feFuncR\", feComponentTransfer);\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 || _global).feFuncG = this.createFeFunc(\"feFuncG\", feComponentTransfer);\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 || _global).feFuncB = this.createFeFunc(\"feFuncB\", feComponentTransfer);\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 || _global).feFuncA = this.createFeFunc(\"feFuncA\", feComponentTransfer);\n    }\n\n    if ((this || _global).feFuncR || (this || _global).feFuncG || (this || _global).feFuncB || (this || _global).feFuncA) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      feComponentTransfer = createNS(\"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.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      (this || _global).feFuncRComposed = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n      (this || _global).feFuncGComposed = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n      (this || _global).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 || _global).filterManager._mdf) {\n      var val;\n      var effectElements = (this || _global).filterManager.effectElements;\n\n      if ((this || _global).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\n        (this || _global).feFuncRComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncGComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncBComposed.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).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\n        (this || _global).feFuncR.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).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\n        (this || _global).feFuncG.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).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\n        (this || _global).feFuncB.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).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\n        (this || _global).feFuncA.setAttribute(\"tableValues\", val);\n      }\n    }\n  };\n  /* global createNS, rgbToHex, degToRads */\n\n\n  function SVGDropShadowEffect(filter, filterManager) {\n    var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n    filter.setAttribute(\"x\", filterSize.x);\n    filter.setAttribute(\"y\", filterSize.y);\n    filter.setAttribute(\"width\", filterSize.width);\n    filter.setAttribute(\"height\", filterSize.height);\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    feGaussianBlur.setAttribute(\"in\", \"SourceAlpha\");\n    feGaussianBlur.setAttribute(\"result\", \"drop_shadow_1\");\n    feGaussianBlur.setAttribute(\"stdDeviation\", \"0\");\n    (this || _global).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\", \"drop_shadow_1\");\n    feOffset.setAttribute(\"result\", \"drop_shadow_2\");\n    (this || _global).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\", \"drop_shadow_3\");\n    (this || _global).feFlood = feFlood;\n    filter.appendChild(feFlood);\n    var feComposite = createNS(\"feComposite\");\n    feComposite.setAttribute(\"in\", \"drop_shadow_3\");\n    feComposite.setAttribute(\"in2\", \"drop_shadow_2\");\n    feComposite.setAttribute(\"operator\", \"in\");\n    feComposite.setAttribute(\"result\", \"drop_shadow_4\");\n    filter.appendChild(feComposite);\n    var feMerge = createNS(\"feMerge\");\n    filter.appendChild(feMerge);\n    var feMergeNode;\n    feMergeNode = createNS(\"feMergeNode\");\n    feMerge.appendChild(feMergeNode);\n    feMergeNode = createNS(\"feMergeNode\");\n    feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n    (this || _global).feMergeNode = feMergeNode;\n    (this || _global).feMerge = feMerge;\n    (this || _global).originalNodeAdded = false;\n    feMerge.appendChild(feMergeNode);\n  }\n\n  SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n        (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", (this || _global).filterManager.effectElements[4].p.v / 4);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[0].p._mdf) {\n        var col = (this || _global).filterManager.effectElements[0].p.v;\n\n        (this || _global).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 || _global).filterManager.effectElements[1].p._mdf) {\n        (this || _global).feFlood.setAttribute(\"flood-opacity\", (this || _global).filterManager.effectElements[1].p.v / 255);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[2].p._mdf || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var distance = (this || _global).filterManager.effectElements[3].p.v;\n        var angle = ((this || _global).filterManager.effectElements[2].p.v - 90) * degToRads;\n        var x = distance * Math.cos(angle);\n        var y = distance * Math.sin(angle);\n\n        (this || _global).feOffset.setAttribute(\"dx\", x);\n\n        (this || _global).feOffset.setAttribute(\"dy\", y);\n      }\n      /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n              if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n                  this.feMerge.removeChild(this.feMergeNode);\r\n                  this.originalNodeAdded = false;\r\n              } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n                  this.feMerge.appendChild(this.feMergeNode);\r\n                  this.originalNodeAdded = true;\r\n              }\r\n          } */\n\n    }\n  };\n  /* global createElementID, createNS */\n\n\n  var _svgMatteSymbols = [];\n\n  function SVGMatte3Effect(filterElem, filterManager, elem) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).filterElem = filterElem;\n    (this || _global).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 || _global).filterManager.effectElements[0].p.v;\n    var elements = (this || _global).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 || _global).elem, elements[i]);\n      }\n\n      i += 1;\n    }\n\n    (this || _global).initialized = true;\n  };\n\n  SVGMatte3Effect.prototype.renderFrame = function () {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n  };\n  /* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\n  SVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\n\n\n  function SVGEffects(elem) {\n    var i;\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 || _global).filters = [];\n    var filterManager;\n\n    for (i = 0; i < len; i += 1) {\n      filterManager = null;\n\n      if (elem.data.ef[i].ty === 20) {\n        count += 1;\n        filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 21) {\n        count += 1;\n        filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 22) {\n        filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 23) {\n        count += 1;\n        filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 24) {\n        count += 1;\n        filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 25) {\n        count += 1;\n        filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 28) {\n        // count += 1;\n        filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n      } else if (elem.data.ef[i].ty === 29) {\n        count += 1;\n        filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n      }\n\n      if (filterManager) {\n        (this || _global).filters.push(filterManager);\n      }\n    }\n\n    if (count) {\n      elem.globalData.defs.appendChild(fil);\n      elem.layerElement.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n    }\n\n    if ((this || _global).filters.length) {\n      elem.addRenderableComponent(this || _global);\n    }\n  }\n\n  SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n    var i;\n    var len = (this || _global).filters.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).filters[i].renderFrame(_isFirstFrame);\n    }\n  };\n  /* global Matrix, createTypedArray */\n\n\n  function CVContextData() {\n    (this || _global).saved = [];\n    (this || _global).cArrPos = 0;\n    (this || _global).cTr = new Matrix();\n    (this || _global).cO = 1;\n    var i;\n    var len = 15;\n    (this || _global).savedOp = createTypedArray(\"float32\", len);\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = len;\n  }\n\n  CVContextData.prototype.duplicate = function () {\n    var newLength = (this || _global)._length * 2;\n    var currentSavedOp = (this || _global).savedOp;\n    (this || _global).savedOp = createTypedArray(\"float32\", newLength);\n\n    (this || _global).savedOp.set(currentSavedOp);\n\n    var i = 0;\n\n    for (i = (this || _global)._length; i < newLength; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = newLength;\n  };\n\n  CVContextData.prototype.reset = function () {\n    (this || _global).cArrPos = 0;\n\n    (this || _global).cTr.reset();\n\n    (this || _global).cO = 1;\n  };\n  /* global CVEffects, getBlendMode, CVMaskElement, Matrix */\n\n\n  function CVBaseElement() {}\n\n  CVBaseElement.prototype = {\n    createElements: function () {},\n    initRendererElement: function () {},\n    createContainerElements: function () {\n      (this || _global).canvasContext = (this || _global).globalData.canvasContext;\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n    },\n    createContent: function () {},\n    setBlendMode: function () {\n      var globalData = (this || _global).globalData;\n\n      if (globalData.blendMode !== (this || _global).data.bm) {\n        globalData.blendMode = (this || _global).data.bm;\n        var blendModeValue = getBlendMode((this || _global).data.bm);\n        globalData.canvasContext.globalCompositeOperation = blendModeValue;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new CVMaskElement((this || _global).data, this || _global);\n    },\n    hideElement: function () {\n      if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n        (this || _global).hidden = true;\n      }\n    },\n    showElement: function () {\n      if ((this || _global).isInRange && !(this || _global).isTransparent) {\n        (this || _global).hidden = false;\n        (this || _global)._isFirstFrame = true;\n        (this || _global).maskManager._isFirstFrame = true;\n      }\n    },\n    renderFrame: function () {\n      if ((this || _global).hidden || (this || _global).data.hd) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.setBlendMode();\n      var forceRealStack = (this || _global).data.ty === 0;\n\n      (this || _global).globalData.renderer.save(forceRealStack);\n\n      (this || _global).globalData.renderer.ctxTransform((this || _global).finalTransform.mat.props);\n\n      (this || _global).globalData.renderer.ctxOpacity((this || _global).finalTransform.mProp.o.v);\n\n      this.renderInnerContent();\n\n      (this || _global).globalData.renderer.restore(forceRealStack);\n\n      if ((this || _global).maskManager.hasMasks) {\n        (this || _global).globalData.renderer.restore(true);\n      }\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).canvasContext = null;\n      (this || _global).data = null;\n      (this || _global).globalData = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    mHelper: new Matrix()\n  };\n  CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n  CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\n  RenderableElement, SVGShapeElement, IImageElement, createTag */\n\n  function CVImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).img = globalData.imageLoader.getAsset((this || _global).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 || _global).img.width && ((this || _global).assetData.w !== (this || _global).img.width || (this || _global).assetData.h !== (this || _global).img.height)) {\n      var canvas = createTag(\"canvas\");\n      canvas.width = (this || _global).assetData.w;\n      canvas.height = (this || _global).assetData.h;\n      var ctx = canvas.getContext(\"2d\");\n      var imgW = (this || _global).img.width;\n      var imgH = (this || _global).img.height;\n      var imgRel = imgW / imgH;\n      var canvasRel = (this || _global).assetData.w / (this || _global).assetData.h;\n      var widthCrop;\n      var heightCrop;\n      var par = (this || _global).assetData.pr || (this || _global).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 || _global).img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, (this || _global).assetData.w, (this || _global).assetData.h);\n      (this || _global).img = canvas;\n    }\n  };\n\n  CVImageElement.prototype.renderInnerContent = function () {\n    (this || _global).canvasContext.drawImage((this || _global).img, 0, 0);\n  };\n\n  CVImageElement.prototype.destroy = function () {\n    (this || _global).img = null;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\n\n\n  function CVCompElement(data, globalData, comp) {\n    (this || _global).completeLayers = false;\n    (this || _global).layers = data.layers;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = createSizedArray((this || _global).layers.length);\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\n\n  CVCompElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.beginPath();\n    ctx.moveTo(0, 0);\n    ctx.lineTo((this || _global).data.w, 0);\n    ctx.lineTo((this || _global).data.w, (this || _global).data.h);\n    ctx.lineTo(0, (this || _global).data.h);\n    ctx.lineTo(0, 0);\n    ctx.clip();\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  CVCompElement.prototype.destroy = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).layers = null;\n    (this || _global).elements = null;\n  };\n  /* global createSizedArray, ShapePropertyFactory, MaskElement */\n\n\n  function CVMaskElement(data, element) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).viewData = createSizedArray((this || _global).masksProperties.length);\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var hasMasks = false;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        hasMasks = true;\n      }\n\n      (this || _global).viewData[i] = ShapePropertyFactory.getShapeProp((this || _global).element, (this || _global).masksProperties[i], 3);\n    }\n\n    (this || _global).hasMasks = hasMasks;\n\n    if (hasMasks) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  CVMaskElement.prototype.renderFrame = function () {\n    if (!(this || _global).hasMasks) {\n      return;\n    }\n\n    var transform = (this || _global).element.finalTransform.mat;\n    var ctx = (this || _global).element.canvasContext;\n    var i;\n    var len = (this || _global).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 || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).masksProperties[i].inv) {\n          ctx.moveTo(0, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, 0);\n        }\n\n        data = (this || _global).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 || _global).element.globalData.renderer.save(true);\n\n    ctx.clip();\n  };\n\n  CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n  CVMaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n  };\n  /* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\n  HierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\n  DashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor */\n\n\n  function CVShapeElement(data, globalData, comp) {\n    (this || _global).shapes = [];\n    (this || _global).shapesData = data.shapes;\n    (this || _global).stylesList = [];\n    (this || _global).itemsData = [];\n    (this || _global).prevViewData = [];\n    (this || _global).shapeModifiers = [];\n    (this || _global).processedElements = [];\n    (this || _global).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 || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n  };\n\n  CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n    var styleElem = {\n      data: data,\n      type: data.ty,\n      preTransforms: (this || _global).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 || _global, data.c, 1, 255, this || _global);\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 || _global, data.s, 1, null, this || _global);\n      elementData.e = PropertyFactory.getProp(this || _global, data.e, 1, null, this || _global);\n      elementData.h = PropertyFactory.getProp(this || _global, data.h || {\n        k: 0\n      }, 0, 0.01, this || _global);\n      elementData.a = PropertyFactory.getProp(this || _global, data.a || {\n        k: 0\n      }, 0, degToRads, this || _global);\n      elementData.g = new GradientProperty(this || _global, data.g, this || _global);\n    }\n\n    elementData.o = PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global);\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      styleElem.lc = (this || _global).lcEnum[data.lc] || \"round\";\n      styleElem.lj = (this || _global).ljEnum[data.lj] || \"round\";\n\n      if (data.lj == 1) {\n        // eslint-disable-line eqeqeq\n        styleElem.ml = data.ml;\n      }\n\n      elementData.w = PropertyFactory.getProp(this || _global, data.w, 0, null, this || _global);\n\n      if (!elementData.w.k) {\n        styleElem.wi = elementData.w.v;\n      }\n\n      if (data.d) {\n        var d = new DashProperty(this || _global, data.d, \"canvas\", this || _global);\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 || _global).stylesList.push(styleElem);\n\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 || _global).transformsManager.getNewKey(),\n        op: PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global),\n        mProps: TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global)\n      }\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createShapeElement = function (data) {\n    var elementData = new CVShapeData(this || _global, data, (this || _global).stylesList, (this || _global).transformsManager);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    return elementData;\n  };\n\n  CVShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n  };\n\n  CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.push(transform);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.removeTransformFromStyleList = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).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\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).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 || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\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 || _global).transformHelper.opacity = 1;\n    (this || _global).transformHelper._opMdf = false;\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n\n    this.renderShape((this || _global).transformHelper, (this || _global).shapesData, (this || _global).itemsData, true);\n  };\n\n  CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n    if (parentTransform._opMdf || groupTransform.op._mdf || (this || _global)._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 || _global).stylesList.length;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var elems;\n    var nodes;\n    var renderer = (this || _global).globalData.renderer;\n    var ctx = (this || _global).globalData.canvasContext;\n    var type;\n    var currentStyle;\n\n    for (i = 0; i < len; i += 1) {\n      currentStyle = (this || _global).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 || _global).globalData.currentGlobalAlpha === 0)) {\n        renderer.save();\n        elems = currentStyle.elements;\n\n        if (type === \"st\" || type === \"gs\") {\n          ctx.strokeStyle = type === \"st\" ? currentStyle.co : currentStyle.grd;\n          ctx.lineWidth = currentStyle.wi;\n          ctx.lineCap = currentStyle.lc;\n          ctx.lineJoin = currentStyle.lj;\n          ctx.miterLimit = currentStyle.ml || 0;\n        } else {\n          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\n            if (currentStyle.da) {\n              ctx.setLineDash((this || _global).dashResetter);\n            }\n          }\n        }\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.fill(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 || _global)._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 || _global)._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 || _global)._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 || _global).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 || _global)._isFirstFrame)) {\n      styleElem.da = d.dashArray;\n      styleElem.do = d.dashoffset[0];\n    }\n\n    if (itemData.c._mdf || (this || _global)._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 || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n\n    if (itemData.w._mdf || (this || _global)._isFirstFrame) {\n      styleElem.wi = itemData.w.v;\n    }\n  };\n\n  CVShapeElement.prototype.destroy = function () {\n    (this || _global).shapesData = null;\n    (this || _global).globalData = null;\n    (this || _global).canvasContext = null;\n    (this || _global).stylesList.length = 0;\n    (this || _global).itemsData.length = 0;\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\n  SVGShapeElement, IImageElement */\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 || _global).canvasContext;\n    ctx.fillStyle = (this || _global).data.sc;\n    ctx.fillRect(0, 0, (this || _global).data.sw, (this || _global).data.sh); //\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\n  RenderableElement, ITextElement, createTag, createSizedArray */\n\n\n  function CVTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).yOffset = 0;\n    (this || _global).fillColorAnim = false;\n    (this || _global).strokeColorAnim = false;\n    (this || _global).strokeWidthAnim = false;\n    (this || _global).stroke = false;\n    (this || _global).fill = false;\n    (this || _global).justifyOffset = 0;\n    (this || _global).currentRender = null;\n    (this || _global).renderType = \"canvas\";\n    (this || _global).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 || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var hasFill = false;\n\n    if (documentData.fc) {\n      hasFill = true;\n      (this || _global).values.fill = this.buildColor(documentData.fc);\n    } else {\n      (this || _global).values.fill = \"rgba(0,0,0,0)\";\n    }\n\n    (this || _global).fill = hasFill;\n    var hasStroke = false;\n\n    if (documentData.sc) {\n      hasStroke = true;\n      (this || _global).values.stroke = this.buildColor(documentData.sc);\n      (this || _global).values.sWidth = documentData.sw;\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    var matrixHelper = (this || _global).mHelper;\n    (this || _global).stroke = hasStroke;\n    (this || _global).values.fValue = documentData.finalSize + \"px \" + (this || _global).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 || _global).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 || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).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);\n\n      for (j = 0; j < jLen; j += 1) {\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[j] = pathArr;\n      }\n\n      if (singleShape) {\n        xPos += letters[i].l;\n        xPos += trackingOffset;\n      }\n\n      if ((this || _global).textSpans[cnt]) {\n        (this || _global).textSpans[cnt].elem = commands;\n      } else {\n        (this || _global).textSpans[cnt] = {\n          elem: commands\n        };\n      }\n\n      cnt += 1;\n    }\n  };\n\n  CVTextElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.font = (this || _global).values.fValue;\n    ctx.lineCap = \"butt\";\n    ctx.lineJoin = \"miter\";\n    ctx.miterLimit = 4;\n\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).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 || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).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\n    for (i = 0; i < len; i += 1) {\n      if (!letters[i].n) {\n        renderedLetter = renderedLetters[i];\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.save();\n\n          (this || _global).globalData.renderer.ctxTransform(renderedLetter.p);\n\n          (this || _global).globalData.renderer.ctxOpacity(renderedLetter.o);\n        }\n\n        if ((this || _global).fill) {\n          if (renderedLetter && renderedLetter.fc) {\n            if (lastFill !== renderedLetter.fc) {\n              lastFill = renderedLetter.fc;\n              ctx.fillStyle = renderedLetter.fc;\n            }\n          } else if (lastFill !== (this || _global).values.fill) {\n            lastFill = (this || _global).values.fill;\n            ctx.fillStyle = (this || _global).values.fill;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).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 || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n\n        }\n\n        if ((this || _global).stroke) {\n          if (renderedLetter && renderedLetter.sw) {\n            if (lastStrokeW !== renderedLetter.sw) {\n              lastStrokeW = renderedLetter.sw;\n              ctx.lineWidth = renderedLetter.sw;\n            }\n          } else if (lastStrokeW !== (this || _global).values.sWidth) {\n            lastStrokeW = (this || _global).values.sWidth;\n            ctx.lineWidth = (this || _global).values.sWidth;\n          }\n\n          if (renderedLetter && renderedLetter.sc) {\n            if (lastStroke !== renderedLetter.sc) {\n              lastStroke = renderedLetter.sc;\n              ctx.strokeStyle = renderedLetter.sc;\n            }\n          } else if (lastStroke !== (this || _global).values.stroke) {\n            lastStroke = (this || _global).values.stroke;\n            ctx.strokeStyle = (this || _global).values.stroke;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).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 || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n\n        }\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.restore();\n        }\n      }\n    }\n  };\n\n  function CVEffects() {}\n\n  CVEffects.prototype.renderFrame = function () {};\n  /* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\n\n\n  function HBaseElement() {}\n\n  HBaseElement.prototype = {\n    checkBlendMode: function () {},\n    initRendererElement: function () {\n      (this || _global).baseElement = createTag((this || _global).data.tg || \"div\");\n\n      if ((this || _global).data.hasMask) {\n        (this || _global).svgElement = createNS(\"svg\");\n        (this || _global).layerElement = createNS(\"g\");\n        (this || _global).maskedElement = (this || _global).layerElement;\n\n        (this || _global).svgElement.appendChild((this || _global).layerElement);\n\n        (this || _global).baseElement.appendChild((this || _global).svgElement);\n      } else {\n        (this || _global).layerElement = (this || _global).baseElement;\n      }\n\n      styleDiv((this || _global).baseElement);\n    },\n    createContainerElements: function () {\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n      (this || _global).transformedElement = (this || _global).baseElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      var transformedElementStyle = (this || _global).transformedElement ? (this || _global).transformedElement.style : {};\n\n      if ((this || _global).finalTransform._matMdf) {\n        var matrixValue = (this || _global).finalTransform.mat.toCSS();\n\n        transformedElementStyle.transform = matrixValue;\n        transformedElementStyle.webkitTransform = matrixValue;\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        transformedElementStyle.opacity = (this || _global).finalTransform.mProp.o.v;\n      }\n    },\n    renderFrame: function () {\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 || _global).data.hd || (this || _global).hidden) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.renderElement();\n      this.renderInnerContent();\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).layerElement = null;\n      (this || _global).transformedElement = null;\n\n      if ((this || _global).matteElement) {\n        (this || _global).matteElement = null;\n      }\n\n      if ((this || _global).maskManager) {\n        (this || _global).maskManager.destroy();\n\n        (this || _global).maskManager = null;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n    },\n    addEffects: function () {},\n    setMatte: function () {}\n  };\n  HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n  HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n  HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, createNS, createTag */\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 || _global).data.hasMask) {\n      rect = createNS(\"rect\");\n      rect.setAttribute(\"width\", (this || _global).data.sw);\n      rect.setAttribute(\"height\", (this || _global).data.sh);\n      rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.sw);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.sh);\n    } else {\n      rect = createTag(\"div\");\n      rect.style.width = (this || _global).data.sw + \"px\";\n      rect.style.height = (this || _global).data.sh + \"px\";\n      rect.style.backgroundColor = (this || _global).data.sc;\n    }\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\n\n\n  function HCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = !data.hasMask;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : [];\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([HybridRenderer, 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 || _global).data.hasMask) {\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.h);\n\n      (this || _global).transformedElement = (this || _global).baseElement;\n    } else {\n      (this || _global).transformedElement = (this || _global).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 || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n        nextElement = (this || _global).elements[j].getBaseElement();\n      }\n\n      j += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(elem, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(elem);\n    }\n  };\n  /* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\n  HierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\n\n\n  function HShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    (this || _global).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 || _global).prevViewData = [];\n    (this || _global).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 || _global).baseElement.style.fontSize = 0;\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).layerElement.appendChild((this || _global).shapesContainer);\n\n      cont = (this || _global).svgElement;\n    } else {\n      cont = createNS(\"svg\");\n      var size = (this || _global).comp.data ? (this || _global).comp.data : (this || _global).globalData.compSize;\n      cont.setAttribute(\"width\", size.w);\n      cont.setAttribute(\"height\", size.h);\n      cont.appendChild((this || _global).shapesContainer);\n\n      (this || _global).layerElement.appendChild(cont);\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).shapesContainer, 0, [], true);\n    this.filterUniqueShapes();\n    (this || _global).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 || _global).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 || _global).shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n    (this || _global).shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n    (this || _global).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      }\n    }\n  };\n\n  HShapeElement.prototype.currentBoxContains = function (box) {\n    return (this || _global).currentBBox.x <= box.x && (this || _global).currentBBox.y <= box.y && (this || _global).currentBBox.width + (this || _global).currentBBox.x >= box.x + box.width && (this || _global).currentBBox.height + (this || _global).currentBBox.y >= box.y + box.height;\n  };\n\n  HShapeElement.prototype.renderInnerContent = function () {\n    this._renderShapeFrame();\n\n    if (!(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var tempBoundingBox = (this || _global).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 || _global).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 || _global).currentBBox.w !== tempBoundingBox.width) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n\n        (this || _global).shapeCont.setAttribute(\"width\", tempBoundingBox.width);\n\n        changed = true;\n      }\n\n      if ((this || _global).currentBBox.h !== tempBoundingBox.height) {\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n\n        (this || _global).shapeCont.setAttribute(\"height\", tempBoundingBox.height);\n\n        changed = true;\n      }\n\n      if (changed || (this || _global).currentBBox.x !== tempBoundingBox.x || (this || _global).currentBBox.y !== tempBoundingBox.y) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n        (this || _global).currentBBox.x = tempBoundingBox.x;\n        (this || _global).currentBBox.y = tempBoundingBox.y;\n\n        (this || _global).shapeCont.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        var shapeStyle = (this || _global).shapeCont.style;\n        var shapeTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        shapeStyle.transform = shapeTransform;\n        shapeStyle.webkitTransform = shapeTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS */\n\n\n  function HTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).textPaths = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n    (this || _global).renderType = \"svg\";\n    (this || _global).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 || _global).isMasked = this.checkMasks();\n\n    if ((this || _global).isMasked) {\n      (this || _global).renderType = \"svg\";\n      (this || _global).compW = (this || _global).comp.data.w;\n      (this || _global).compH = (this || _global).comp.data.h;\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).compW);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).compH);\n\n      var g = createNS(\"g\");\n\n      (this || _global).maskedElement.appendChild(g);\n\n      (this || _global).innerElem = g;\n    } else {\n      (this || _global).renderType = \"html\";\n      (this || _global).innerElem = (this || _global).layerElement;\n    }\n\n    this.checkParenting();\n  };\n\n  HTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var innerElemStyle = (this || _global).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 || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (!(this || _global).globalData.fontManager.chars) {\n      innerElemStyle.fontSize = documentData.finalSize + \"px\";\n      innerElemStyle.lineHeight = documentData.finalSize + \"px\";\n\n      if (fontData.fClass) {\n        (this || _global).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 || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).globalData.fontManager.chars) {\n        if (!(this || _global).textPaths[cnt]) {\n          tSpan = createNS(\"path\");\n          tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n          tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n          tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n        } else {\n          tSpan = (this || _global).textPaths[cnt];\n        }\n\n        if (!(this || _global).isMasked) {\n          if ((this || _global).textSpans[cnt]) {\n            tParent = (this || _global).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 || _global).isMasked) {\n        if ((this || _global).textSpans[cnt]) {\n          tParent = (this || _global).textSpans[cnt];\n          tSpan = (this || _global).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 || _global).textPaths[cnt] ? (this || _global).textPaths[cnt] : createNS(\"text\");\n      } // tSpan.setAttribute('visibility', 'hidden');\n\n\n      if ((this || _global).globalData.fontManager.chars) {\n        var charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n\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) {\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 || _global).isMasked) {\n          (this || _global).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 || _global).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 || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent); //\n\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 || _global).innerElem.appendChild(tSpan);\n        }\n      } //\n\n\n      if (!(this || _global).isMasked) {\n        (this || _global).textSpans[cnt] = tParent;\n      } else {\n        (this || _global).textSpans[cnt] = tSpan;\n      }\n\n      (this || _global).textSpans[cnt].style.display = \"block\";\n      (this || _global).textPaths[cnt] = tSpan;\n      cnt += 1;\n    }\n\n    while (cnt < (this || _global).textSpans.length) {\n      (this || _global).textSpans[cnt].style.display = \"none\";\n      cnt += 1;\n    }\n  };\n\n  HTextElement.prototype.renderInnerContent = function () {\n    var svgStyle;\n\n    if ((this || _global).data.singleShape) {\n      if (!(this || _global)._isFirstFrame && !(this || _global).lettersChangedFlag) {\n        return;\n      }\n\n      if ((this || _global).isMasked && (this || _global).finalTransform._matMdf) {\n        // Todo Benchmark if using this is better than getBBox\n        (this || _global).svgElement.setAttribute(\"viewBox\", -(this || _global).finalTransform.mProp.p.v[0] + \" \" + -(this || _global).finalTransform.mProp.p.v[1] + \" \" + (this || _global).compW + \" \" + (this || _global).compH);\n\n        svgStyle = (this || _global).svgElement.style;\n        var translation = \"translate(\" + -(this || _global).finalTransform.mProp.p.v[0] + \"px,\" + -(this || _global).finalTransform.mProp.p.v[1] + \"px)\";\n        svgStyle.transform = translation;\n        svgStyle.webkitTransform = translation;\n      }\n    }\n\n    (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n    if (!(this || _global).lettersChangedFlag && !(this || _global).textAnimator.lettersChangedFlag) {\n      return;\n    }\n\n    var i;\n    var len;\n    var count = 0;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).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 || _global).textSpans[i];\n        textPath = (this || _global).textPaths[i];\n        renderedLetter = renderedLetters[count];\n        count += 1;\n\n        if (renderedLetter._mdf.m) {\n          if (!(this || _global).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 || _global).innerElem.getBBox && !(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var boundingBox = (this || _global).innerElem.getBBox();\n\n      if ((this || _global).currentBBox.w !== boundingBox.width) {\n        (this || _global).currentBBox.w = boundingBox.width;\n\n        (this || _global).svgElement.setAttribute(\"width\", boundingBox.width);\n      }\n\n      if ((this || _global).currentBBox.h !== boundingBox.height) {\n        (this || _global).currentBBox.h = boundingBox.height;\n\n        (this || _global).svgElement.setAttribute(\"height\", boundingBox.height);\n      }\n\n      var margin = 1;\n\n      if ((this || _global).currentBBox.w !== boundingBox.width + margin * 2 || (this || _global).currentBBox.h !== boundingBox.height + margin * 2 || (this || _global).currentBBox.x !== boundingBox.x - margin || (this || _global).currentBBox.y !== boundingBox.y - margin) {\n        (this || _global).currentBBox.w = boundingBox.width + margin * 2;\n        (this || _global).currentBBox.h = boundingBox.height + margin * 2;\n        (this || _global).currentBBox.x = boundingBox.x - margin;\n        (this || _global).currentBBox.y = boundingBox.y - margin;\n\n        (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        svgStyle = (this || _global).svgElement.style;\n        var svgTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        svgStyle.transform = svgTransform;\n        svgStyle.webkitTransform = svgTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\n  FrameElement, RenderableElement, createNS */\n\n\n  function HImageElement(data, globalData, comp) {\n    (this || _global).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 || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    var img = new Image();\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).imageElem = createNS(\"image\");\n\n      (this || _global).imageElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n      (this || _global).imageElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n      (this || _global).imageElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n      (this || _global).layerElement.appendChild((this || _global).imageElem);\n\n      (this || _global).baseElement.setAttribute(\"width\", (this || _global).assetData.w);\n\n      (this || _global).baseElement.setAttribute(\"height\", (this || _global).assetData.h);\n    } else {\n      (this || _global).layerElement.appendChild(img);\n    }\n\n    img.crossOrigin = \"anonymous\";\n    img.src = assetPath;\n\n    if ((this || _global).data.ln) {\n      (this || _global).baseElement.setAttribute(\"id\", (this || _global).data.ln);\n    }\n  };\n  /* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\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 || _global).pe = getProp(this || _global, data.pe, 0, 0, this || _global);\n\n    if (data.ks.p.s) {\n      (this || _global).px = getProp(this || _global, data.ks.p.x, 1, 0, this || _global);\n      (this || _global).py = getProp(this || _global, data.ks.p.y, 1, 0, this || _global);\n      (this || _global).pz = getProp(this || _global, data.ks.p.z, 1, 0, this || _global);\n    } else {\n      (this || _global).p = getProp(this || _global, data.ks.p, 1, 0, this || _global);\n    }\n\n    if (data.ks.a) {\n      (this || _global).a = getProp(this || _global, data.ks.a, 1, 0, this || _global);\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 || _global).or = getProp(this || _global, data.ks.or, 1, degToRads, this || _global);\n    (this || _global).or.sh = true;\n    (this || _global).rx = getProp(this || _global, data.ks.rx, 0, degToRads, this || _global);\n    (this || _global).ry = getProp(this || _global, data.ks.ry, 0, degToRads, this || _global);\n    (this || _global).rz = getProp(this || _global, data.ks.rz, 0, degToRads, this || _global);\n    (this || _global).mat = new Matrix();\n    (this || _global)._prevMat = new Matrix();\n    (this || _global)._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n    (this || _global).finalTransform = {\n      mProp: this || _global\n    };\n  }\n\n  extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n  HCameraElement.prototype.setup = function () {\n    var i;\n    var len = (this || _global).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 || _global).comp.threeDElements[i];\n\n      if (comp.type === \"3d\") {\n        perspectiveStyle = comp.perspectiveElem.style;\n        containerStyle = comp.container.style;\n        var perspective = (this || _global).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 || _global)._isFirstFrame;\n    var i;\n    var len;\n\n    if ((this || _global).hierarchy) {\n      len = (this || _global).hierarchy.length;\n\n      for (i = 0; i < len; i += 1) {\n        _mdf = (this || _global).hierarchy[i].finalTransform.mProp._mdf || _mdf;\n      }\n    }\n\n    if (_mdf || (this || _global).pe._mdf || (this || _global).p && (this || _global).p._mdf || (this || _global).px && ((this || _global).px._mdf || (this || _global).py._mdf || (this || _global).pz._mdf) || (this || _global).rx._mdf || (this || _global).ry._mdf || (this || _global).rz._mdf || (this || _global).or._mdf || (this || _global).a && (this || _global).a._mdf) {\n      (this || _global).mat.reset();\n\n      if ((this || _global).hierarchy) {\n        len = (this || _global).hierarchy.length - 1;\n\n        for (i = len; i >= 0; i -= 1) {\n          var mTransf = (this || _global).hierarchy[i].finalTransform.mProp;\n\n          (this || _global).mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\n          (this || _global).mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\n          (this || _global).mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n        }\n      }\n\n      if ((this || _global).p) {\n        (this || _global).mat.translate(-(this || _global).p.v[0], -(this || _global).p.v[1], (this || _global).p.v[2]);\n      } else {\n        (this || _global).mat.translate(-(this || _global).px.v, -(this || _global).py.v, (this || _global).pz.v);\n      }\n\n      if ((this || _global).a) {\n        var diffVector;\n\n        if ((this || _global).p) {\n          diffVector = [(this || _global).p.v[0] - (this || _global).a.v[0], (this || _global).p.v[1] - (this || _global).a.v[1], (this || _global).p.v[2] - (this || _global).a.v[2]];\n        } else {\n          diffVector = [(this || _global).px.v - (this || _global).a.v[0], (this || _global).py.v - (this || _global).a.v[1], (this || _global).pz.v - (this || _global).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\n        (this || _global).mat.rotateY(mRotationY).rotateX(-mRotationX);\n      }\n\n      (this || _global).mat.rotateX(-(this || _global).rx.v).rotateY(-(this || _global).ry.v).rotateZ((this || _global).rz.v);\n\n      (this || _global).mat.rotateX(-(this || _global).or.v[0]).rotateY(-(this || _global).or.v[1]).rotateZ((this || _global).or.v[2]);\n\n      (this || _global).mat.translate((this || _global).globalData.compSize.w / 2, (this || _global).globalData.compSize.h / 2, 0);\n\n      (this || _global).mat.translate(0, 0, (this || _global).pe.v);\n\n      var hasMatrixChanged = !(this || _global)._prevMat.equals((this || _global).mat);\n\n      if ((hasMatrixChanged || (this || _global).pe._mdf) && (this || _global).comp.threeDElements) {\n        len = (this || _global).comp.threeDElements.length;\n        var comp;\n        var perspectiveStyle;\n        var containerStyle;\n\n        for (i = 0; i < len; i += 1) {\n          comp = (this || _global).comp.threeDElements[i];\n\n          if (comp.type === \"3d\") {\n            if (hasMatrixChanged) {\n              var matValue = (this || _global).mat.toCSS();\n\n              containerStyle = comp.container.style;\n              containerStyle.transform = matValue;\n              containerStyle.webkitTransform = matValue;\n            }\n\n            if ((this || _global).pe._mdf) {\n              perspectiveStyle = comp.perspectiveElem.style;\n              perspectiveStyle.perspective = (this || _global).pe.v + \"px\";\n              perspectiveStyle.webkitPerspective = (this || _global).pe.v + \"px\";\n            }\n          }\n        }\n\n        (this || _global).mat.clone((this || _global)._prevMat);\n      }\n    }\n\n    (this || _global)._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 HEffects() {}\n\n  HEffects.prototype.renderFrame = function () {};\n  /* global createTag, AnimationItem */\n\n  /* exported animationManager */\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  /* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\n  CanvasRenderer, SVGRenderer, HybridRenderer, assetLoader, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\n  BMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\n  BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\n\n\n  var AnimationItem = function () {\n    (this || _global)._cbs = [];\n    (this || _global).name = \"\";\n    (this || _global).path = \"\";\n    (this || _global).isLoaded = false;\n    (this || _global).currentFrame = 0;\n    (this || _global).currentRawFrame = 0;\n    (this || _global).firstFrame = 0;\n    (this || _global).totalFrames = 0;\n    (this || _global).frameRate = 0;\n    (this || _global).frameMult = 0;\n    (this || _global).playSpeed = 1;\n    (this || _global).playDirection = 1;\n    (this || _global).playCount = 0;\n    (this || _global).animationData = {};\n    (this || _global).assets = [];\n    (this || _global).isPaused = true;\n    (this || _global).autoplay = false;\n    (this || _global).loop = true;\n    (this || _global).renderer = null;\n    (this || _global).animationID = createElementID();\n    (this || _global).assetsPath = \"\";\n    (this || _global).timeCompleted = 0;\n    (this || _global).segmentPos = 0;\n    (this || _global).isSubframeEnabled = subframeEnabled;\n    (this || _global).segments = [];\n    (this || _global)._idle = true;\n    (this || _global)._completedLoop = false;\n    (this || _global).projectInterface = ProjectInterface();\n    (this || _global).imagePreloader = new ImagePreloader();\n    (this || _global).audioController = audioControllerFactory();\n    (this || _global).markers = [];\n  };\n\n  extendPrototype([BaseEvent], AnimationItem);\n\n  AnimationItem.prototype.setParams = function (params) {\n    if (params.wrapper || params.container) {\n      (this || _global).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    switch (animType) {\n      case \"canvas\":\n        (this || _global).renderer = new CanvasRenderer(this || _global, params.rendererSettings);\n        break;\n\n      case \"svg\":\n        (this || _global).renderer = new SVGRenderer(this || _global, params.rendererSettings);\n        break;\n\n      default:\n        (this || _global).renderer = new HybridRenderer(this || _global, params.rendererSettings);\n        break;\n    }\n\n    (this || _global).imagePreloader.setCacheType(animType, (this || _global).renderer.globalData.defs);\n\n    (this || _global).renderer.setProjectInterface((this || _global).projectInterface);\n\n    (this || _global).animType = animType;\n\n    if (params.loop === \"\" || params.loop === null || params.loop === undefined || params.loop === true) {\n      (this || _global).loop = true;\n    } else if (params.loop === false) {\n      (this || _global).loop = false;\n    } else {\n      (this || _global).loop = parseInt(params.loop, 10);\n    }\n\n    (this || _global).autoplay = \"autoplay\" in params ? params.autoplay : true;\n    (this || _global).name = params.name ? params.name : \"\";\n    (this || _global).autoloadSegments = Object.prototype.hasOwnProperty.call(params, \"autoloadSegments\") ? params.autoloadSegments : true;\n    (this || _global).assetsPath = params.assetsPath;\n    (this || _global).initialSegment = params.initialSegment;\n\n    if (params.audioFactory) {\n      (this || _global).audioController.setAudioFactory(params.audioFactory);\n    }\n\n    if (params.animationData) {\n      this.configAnimation(params.animationData);\n    } else if (params.path) {\n      if (params.path.lastIndexOf(\"\\\\\") !== -1) {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"\\\\\") + 1);\n      } else {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"/\") + 1);\n      }\n\n      (this || _global).fileName = params.path.substr(params.path.lastIndexOf(\"/\") + 1);\n      (this || _global).fileName = (this || _global).fileName.substr(0, (this || _global).fileName.lastIndexOf(\".json\"));\n      assetLoader.load(params.path, (this || _global).configAnimation.bind(this || _global), function () {\n        this.trigger(\"data_failed\");\n      }.bind(this || _global));\n    }\n  };\n\n  AnimationItem.prototype.setData = function (wrapper, animationData) {\n    if (animationData) {\n      if (typeof 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 : \"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    this.setParams(params);\n  };\n\n  AnimationItem.prototype.includeLayers = function (data) {\n    if (data.op > (this || _global).animationData.op) {\n      (this || _global).animationData.op = data.op;\n      (this || _global).totalFrames = Math.floor(data.op - (this || _global).animationData.ip);\n    }\n\n    var layers = (this || _global).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 || _global).renderer.globalData.fontManager.addChars(data.chars);\n\n      (this || _global).renderer.globalData.fontManager.addFonts(data.fonts, (this || _global).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 || _global).animationData.assets.push(data.assets[i]);\n      }\n    }\n\n    (this || _global).animationData.__complete = false;\n    dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n    (this || _global).renderer.includeLayers(data.layers);\n\n    if (expressionsPlugin) {\n      expressionsPlugin.initExpressions(this || _global);\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.loadNextSegment = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments || segments.length === 0 || !(this || _global).autoloadSegments) {\n      this.trigger(\"data_ready\");\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      return;\n    }\n\n    var segment = segments.shift();\n    (this || _global).timeCompleted = segment.time * (this || _global).frameRate;\n    var segmentPath = (this || _global).path + (this || _global).fileName + \"_\" + (this || _global).segmentPos + \".json\";\n    (this || _global).segmentPos += 1;\n    assetLoader.load(segmentPath, (this || _global).includeLayers.bind(this || _global), function () {\n      this.trigger(\"data_failed\");\n    }.bind(this || _global));\n  };\n\n  AnimationItem.prototype.loadSegments = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments) {\n      (this || _global).timeCompleted = (this || _global).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 || _global).imagePreloader.setAssetsPath((this || _global).assetsPath);\n\n    (this || _global).imagePreloader.setPath((this || _global).path);\n\n    (this || _global).imagePreloader.loadAssets((this || _global).animationData.assets, (this || _global).imagesLoaded.bind(this || _global));\n  };\n\n  AnimationItem.prototype.configAnimation = function (animData) {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).animationData = animData;\n\n      if ((this || _global).initialSegment) {\n        (this || _global).totalFrames = Math.floor((this || _global).initialSegment[1] - (this || _global).initialSegment[0]);\n        (this || _global).firstFrame = Math.round((this || _global).initialSegment[0]);\n      } else {\n        (this || _global).totalFrames = Math.floor((this || _global).animationData.op - (this || _global).animationData.ip);\n        (this || _global).firstFrame = Math.round((this || _global).animationData.ip);\n      }\n\n      (this || _global).renderer.configAnimation(animData);\n\n      if (!animData.assets) {\n        animData.assets = [];\n      }\n\n      (this || _global).assets = (this || _global).animationData.assets;\n      (this || _global).frameRate = (this || _global).animationData.fr;\n      (this || _global).frameMult = (this || _global).animationData.fr / 1000;\n\n      (this || _global).renderer.searchExtraCompositions(animData.assets);\n\n      (this || _global).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 || _global).isPaused) {\n        (this || _global).audioController.pause();\n      }\n    } catch (error) {\n      this.triggerConfigError(error);\n    }\n  };\n\n  AnimationItem.prototype.waitForFontsLoaded = function () {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    if ((this || _global).renderer.globalData.fontManager.isLoaded) {\n      this.checkLoaded();\n    } else {\n      setTimeout((this || _global).waitForFontsLoaded.bind(this || _global), 20);\n    }\n  };\n\n  AnimationItem.prototype.checkLoaded = function () {\n    if (!(this || _global).isLoaded && (this || _global).renderer.globalData.fontManager.isLoaded && ((this || _global).imagePreloader.loadedImages() || (this || _global).renderer.rendererType !== \"canvas\") && (this || _global).imagePreloader.loadedFootages()) {\n      (this || _global).isLoaded = true;\n      dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n      if (expressionsPlugin) {\n        expressionsPlugin.initExpressions(this || _global);\n      }\n\n      (this || _global).renderer.initItems();\n\n      setTimeout(function () {\n        this.trigger(\"DOMLoaded\");\n      }.bind(this || _global), 0);\n      this.gotoFrame();\n\n      if ((this || _global).autoplay) {\n        this.play();\n      }\n    }\n  };\n\n  AnimationItem.prototype.resize = function () {\n    (this || _global).renderer.updateContainerSize();\n  };\n\n  AnimationItem.prototype.setSubframe = function (flag) {\n    (this || _global).isSubframeEnabled = !!flag;\n  };\n\n  AnimationItem.prototype.gotoFrame = function () {\n    (this || _global).currentFrame = (this || _global).isSubframeEnabled ? (this || _global).currentRawFrame : ~~(this || _global).currentRawFrame; // eslint-disable-line no-bitwise\n\n    if ((this || _global).timeCompleted !== (this || _global).totalFrames && (this || _global).currentFrame > (this || _global).timeCompleted) {\n      (this || _global).currentFrame = (this || _global).timeCompleted;\n    }\n\n    this.trigger(\"enterFrame\");\n    this.renderFrame();\n  };\n\n  AnimationItem.prototype.renderFrame = function () {\n    if ((this || _global).isLoaded === false || !(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).renderer.renderFrame((this || _global).currentFrame + (this || _global).firstFrame);\n    } catch (error) {\n      this.triggerRenderFrameError(error);\n    }\n  };\n\n  AnimationItem.prototype.play = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      (this || _global).isPaused = false;\n\n      (this || _global).audioController.resume();\n\n      if ((this || _global)._idle) {\n        (this || _global)._idle = false;\n        this.trigger(\"_active\");\n      }\n    }\n  };\n\n  AnimationItem.prototype.pause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === false) {\n      (this || _global).isPaused = true;\n      (this || _global)._idle = true;\n      this.trigger(\"_idle\");\n\n      (this || _global).audioController.pause();\n    }\n  };\n\n  AnimationItem.prototype.togglePause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n\n  AnimationItem.prototype.stop = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    this.pause();\n    (this || _global).playCount = 0;\n    (this || _global)._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 || _global).markers.length; i += 1) {\n      marker = (this || _global).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 || _global).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 || _global).frameModifier);\n    }\n\n    this.pause();\n  };\n\n  AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n    if (name && (this || _global).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 || _global).isPaused === true || (this || _global).isLoaded === false) {\n      return;\n    }\n\n    var nextValue = (this || _global).currentRawFrame + value * (this || _global).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 || _global).totalFrames - 1 && (this || _global).frameModifier > 0) {\n      if (!(this || _global).loop || (this || _global).playCount === (this || _global).loop) {\n        if (!this.checkSegments(nextValue > (this || _global).totalFrames ? nextValue % (this || _global).totalFrames : 0)) {\n          _isComplete = true;\n          nextValue = (this || _global).totalFrames - 1;\n        }\n      } else if (nextValue >= (this || _global).totalFrames) {\n        (this || _global).playCount += 1;\n\n        if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n          this.setCurrentRawFrameValue(nextValue % (this || _global).totalFrames);\n          (this || _global)._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 || _global).totalFrames)) {\n        if ((this || _global).loop && !((this || _global).playCount-- <= 0 && (this || _global).loop !== true)) {\n          // eslint-disable-line no-plusplus\n          this.setCurrentRawFrameValue((this || _global).totalFrames + nextValue % (this || _global).totalFrames);\n\n          if (!(this || _global)._completedLoop) {\n            (this || _global)._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 || _global).playCount = 0;\n\n    if (arr[1] < arr[0]) {\n      if ((this || _global).frameModifier > 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(-1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[0] - arr[1];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[1];\n      this.setCurrentRawFrameValue((this || _global).totalFrames - 0.001 - offset);\n    } else if (arr[1] > arr[0]) {\n      if ((this || _global).frameModifier < 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[1] - arr[0];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).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 || _global).isPaused) {\n      if ((this || _global).currentRawFrame + (this || _global).firstFrame < init) {\n        pendingFrame = init;\n      } else if ((this || _global).currentRawFrame + (this || _global).firstFrame > end) {\n        pendingFrame = end - init;\n      }\n    }\n\n    (this || _global).firstFrame = init;\n    (this || _global).totalFrames = end - init;\n    (this || _global).timeCompleted = (this || _global).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 || _global).segments.length = 0;\n    }\n\n    if (typeof arr[0] === \"object\") {\n      var i;\n      var len = arr.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).segments.push(arr[i]);\n      }\n    } else {\n      (this || _global).segments.push(arr);\n    }\n\n    if ((this || _global).segments.length && forceFlag) {\n      this.adjustSegment((this || _global).segments.shift(), 0);\n    }\n\n    if ((this || _global).isPaused) {\n      this.play();\n    }\n  };\n\n  AnimationItem.prototype.resetSegments = function (forceFlag) {\n    (this || _global).segments.length = 0;\n\n    (this || _global).segments.push([(this || _global).animationData.ip, (this || _global).animationData.op]); // this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\n\n\n    if (forceFlag) {\n      this.checkSegments(0);\n    }\n  };\n\n  AnimationItem.prototype.checkSegments = function (offset) {\n    if ((this || _global).segments.length) {\n      this.adjustSegment((this || _global).segments.shift(), offset);\n      return true;\n    }\n\n    return false;\n  };\n\n  AnimationItem.prototype.destroy = function (name) {\n    if (name && (this || _global).name !== name || !(this || _global).renderer) {\n      return;\n    }\n\n    (this || _global).renderer.destroy();\n\n    (this || _global).imagePreloader.destroy();\n\n    this.trigger(\"destroy\");\n    (this || _global)._cbs = null;\n    (this || _global).onEnterFrame = null;\n    (this || _global).onLoopComplete = null;\n    (this || _global).onComplete = null;\n    (this || _global).onSegmentStart = null;\n    (this || _global).onDestroy = null;\n    (this || _global).renderer = null;\n    (this || _global).renderer = null;\n    (this || _global).imagePreloader = null;\n    (this || _global).projectInterface = null;\n  };\n\n  AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n    (this || _global).currentRawFrame = value;\n    this.gotoFrame();\n  };\n\n  AnimationItem.prototype.setSpeed = function (val) {\n    (this || _global).playSpeed = val;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setDirection = function (val) {\n    (this || _global).playDirection = val < 0 ? -1 : 1;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setVolume = function (val, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.setVolume(val);\n  };\n\n  AnimationItem.prototype.getVolume = function () {\n    return (this || _global).audioController.getVolume();\n  };\n\n  AnimationItem.prototype.mute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.mute();\n  };\n\n  AnimationItem.prototype.unmute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.unmute();\n  };\n\n  AnimationItem.prototype.updaFrameModifier = function () {\n    (this || _global).frameModifier = (this || _global).frameMult * (this || _global).playSpeed * (this || _global).playDirection;\n\n    (this || _global).audioController.setRate((this || _global).playSpeed * (this || _global).playDirection);\n  };\n\n  AnimationItem.prototype.getPath = function () {\n    return (this || _global).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 || _global).assetsPath) {\n      var imagePath = assetData.p;\n\n      if (imagePath.indexOf(\"images/\") !== -1) {\n        imagePath = imagePath.split(\"/\")[1];\n      }\n\n      path = (this || _global).assetsPath + imagePath;\n    } else {\n      path = (this || _global).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 || _global).assets.length;\n\n    while (i < len) {\n      if (id === (this || _global).assets[i].id) {\n        return (this || _global).assets[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.hide = function () {\n    (this || _global).renderer.hide();\n  };\n\n  AnimationItem.prototype.show = function () {\n    (this || _global).renderer.show();\n  };\n\n  AnimationItem.prototype.getDuration = function (isFrame) {\n    return isFrame ? (this || _global).totalFrames : (this || _global).totalFrames / (this || _global).frameRate;\n  };\n\n  AnimationItem.prototype.trigger = function (name) {\n    if ((this || _global)._cbs && (this || _global)._cbs[name]) {\n      switch (name) {\n        case \"enterFrame\":\n          this.triggerEvent(name, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameModifier));\n          break;\n\n        case \"loopComplete\":\n          this.triggerEvent(name, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n          break;\n\n        case \"complete\":\n          this.triggerEvent(name, new BMCompleteEvent(name, (this || _global).frameMult));\n          break;\n\n        case \"segmentStart\":\n          this.triggerEvent(name, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n          break;\n\n        case \"destroy\":\n          this.triggerEvent(name, new BMDestroyEvent(name, this || _global));\n          break;\n\n        default:\n          this.triggerEvent(name);\n      }\n    }\n\n    if (name === \"enterFrame\" && (this || _global).onEnterFrame) {\n      (this || _global).onEnterFrame.call(this || _global, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameMult));\n    }\n\n    if (name === \"loopComplete\" && (this || _global).onLoopComplete) {\n      (this || _global).onLoopComplete.call(this || _global, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n    }\n\n    if (name === \"complete\" && (this || _global).onComplete) {\n      (this || _global).onComplete.call(this || _global, new BMCompleteEvent(name, (this || _global).frameMult));\n    }\n\n    if (name === \"segmentStart\" && (this || _global).onSegmentStart) {\n      (this || _global).onSegmentStart.call(this || _global, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n    }\n\n    if (name === \"destroy\" && (this || _global).onDestroy) {\n      (this || _global).onDestroy.call(this || _global, new BMDestroyEvent(name, this || _global));\n    }\n  };\n\n  AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n    var error = new BMRenderFrameErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n\n  AnimationItem.prototype.triggerConfigError = function (nativeError) {\n    var error = new BMConfigErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n  /* global CompExpressionInterface, expressionsPlugin: writable */\n\n  /* exported expressionsPlugin */\n\n\n  var Expressions = function () {\n    var ob = {};\n    ob.initExpressions = initExpressions;\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  expressionsPlugin = Expressions;\n  /* eslint-disable camelcase, no-unused-vars */\n\n  /* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\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\n    function $bm_isInstanceOfArray(arr) {\n      return arr.constructor === Array || arr.constructor === Float32Array;\n    }\n\n    function isNumerable(tOfV, v) {\n      return tOfV === \"number\" || tOfV === \"boolean\" || tOfV === \"string\" || v instanceof Number;\n    }\n\n    function $bm_neg(a) {\n      var tOfA = typeof a;\n\n      if (tOfA === \"number\" || tOfA === \"boolean\" || a instanceof Number) {\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 a;\n      var tOfB = typeof b;\n\n      if (tOfA === \"string\" || tOfB === \"string\") {\n        return a + b;\n      }\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\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 a;\n      var tOfB = typeof 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 a;\n      var tOfB = typeof b;\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 a;\n      var tOfB = typeof b;\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      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 () {\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;\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 || _global).data || (this || _global).data.hd !== true;\n\n      var wiggle = function wiggle(freq, amp) {\n        var iWiggle;\n        var j;\n        var lenWiggle = (this || _global).pv.length ? (this || _global).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 || _global).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 || _global).pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n      }.bind(this || _global);\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 || _global).getValueAtTime) {\n        valueAtTime = (this || _global).getValueAtTime.bind(this || _global);\n      }\n\n      if ((this || _global).getVelocityAtTime) {\n        velocityAtTime = (this || _global).getVelocityAtTime.bind(this || _global);\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(frames, fps) {\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return frames / 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 (_needsRandom) {\n          seedRandom(randSeed);\n        }\n\n        if ((this || _global).frameExpressionId === elem.globalData.frameId && (this || _global).propType !== \"textSelector\") {\n          return value;\n        }\n\n        if ((this || _global).propType === \"textSelector\") {\n          textIndex = (this || _global).textIndex;\n          textTotal = (this || _global).textTotal;\n          selectorValue = (this || _global).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 || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n\n        if (needsVelocity) {\n          velocity = velocityAtTime(time);\n        }\n\n        expression_function();\n        (this || _global).frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n\n        if (scoped_bm_rt.propType === \"shape\") {\n          scoped_bm_rt = scoped_bm_rt.v;\n        } // globalData.popExpression();\n\n\n        return scoped_bm_rt;\n      }\n\n      return executeExpression;\n    }\n\n    ob.initiateExpression = initiateExpression;\n    return ob;\n  }();\n  /* global ExpressionManager, createTypedArray */\n\n  /* exported expressionHelpers */\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 || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastFrame) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastFrame < frameNum ? (this || _global)._cachingAtTime.lastIndex : 0;\n        (this || _global)._cachingAtTime.value = this.interpolateValue(frameNum, (this || _global)._cachingAtTime);\n        (this || _global)._cachingAtTime.lastFrame = frameNum;\n      }\n\n      return (this || _global)._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 || _global).vel !== undefined) {\n        return (this || _global).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 || _global).pv;\n    }\n\n    function setGroupProperty(propertyGroup) {\n      (this || _global).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  /* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\n  initialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\n\n\n  (function addPropertyDecorator() {\n    function loopOut(type, duration, durationFlag) {\n      if (!(this || _global).k || !(this || _global).keyframes) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n      if (currentFrame <= lastKeyFrame) {\n        return (this || _global).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 || _global).elem.data.ip);\n        } else {\n          cycleDuration = Math.abs(lastKeyFrame - (this || _global).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 || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n\n        var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if ((this || _global).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 || _global).comp.globalData.frameRate, 0);\n        var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).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 || _global).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 || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function loopIn(type, duration, durationFlag) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var firstKeyFrame = keyframes[0].t;\n\n      if (currentFrame >= firstKeyFrame) {\n        return (this || _global).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 || _global).elem.data.op - firstKeyFrame);\n        } else {\n          cycleDuration = Math.abs((this || _global).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 || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0);\n        var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n        if ((this || _global).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 || _global).comp.globalData.frameRate, 0);\n        var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).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 || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function smooth(width, samples) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      width = (width || 0.4) * 0.5;\n      samples = Math.floor(samples || 5);\n\n      if (samples <= 1) {\n        return (this || _global).pv;\n      }\n\n      var currentTime = (this || _global).comp.renderedFrame / (this || _global).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 || _global).pv.length) {\n        value = createTypedArray(\"float32\", (this || _global).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 || _global).pv.length) {\n          for (j = 0; j < (this || _global).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 || _global).pv.length) {\n        for (j = 0; j < (this || _global).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 || _global)._transformCachingAtTime) {\n        (this || _global)._transformCachingAtTime = {\n          v: new Matrix()\n        };\n      } /// /\n\n\n      var matrix = (this || _global)._transformCachingAtTime.v;\n      matrix.cloneFromProps((this || _global).pre.props);\n\n      if ((this || _global).appliedTransformations < 1) {\n        var anchor = (this || _global).a.getValueAtTime(time);\n\n        matrix.translate(-anchor[0] * (this || _global).a.mult, -anchor[1] * (this || _global).a.mult, anchor[2] * (this || _global).a.mult);\n      }\n\n      if ((this || _global).appliedTransformations < 2) {\n        var scale = (this || _global).s.getValueAtTime(time);\n\n        matrix.scale(scale[0] * (this || _global).s.mult, scale[1] * (this || _global).s.mult, scale[2] * (this || _global).s.mult);\n      }\n\n      if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n        var skew = (this || _global).sk.getValueAtTime(time);\n\n        var skewAxis = (this || _global).sa.getValueAtTime(time);\n\n        matrix.skewFromAxis(-skew * (this || _global).sk.mult, skewAxis * (this || _global).sa.mult);\n      }\n\n      if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotation = (this || _global).r.getValueAtTime(time);\n\n        matrix.rotate(-rotation * (this || _global).r.mult);\n      } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotationZ = (this || _global).rz.getValueAtTime(time);\n\n        var rotationY = (this || _global).ry.getValueAtTime(time);\n\n        var rotationX = (this || _global).rx.getValueAtTime(time);\n\n        var orientation = (this || _global).or.getValueAtTime(time);\n\n        matrix.rotateZ(-rotationZ * (this || _global).rz.mult).rotateY(rotationY * (this || _global).ry.mult).rotateX(rotationX * (this || _global).rx.mult).rotateZ(-orientation[2] * (this || _global).or.mult).rotateY(orientation[1] * (this || _global).or.mult).rotateX(orientation[0] * (this || _global).or.mult);\n      }\n\n      if ((this || _global).data.p && (this || _global).data.p.s) {\n        var positionX = (this || _global).px.getValueAtTime(time);\n\n        var positionY = (this || _global).py.getValueAtTime(time);\n\n        if ((this || _global).data.p.z) {\n          var positionZ = (this || _global).pz.getValueAtTime(time);\n\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, -positionZ * (this || _global).pz.mult);\n        } else {\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, 0);\n        }\n      } else {\n        var position = (this || _global).p.getValueAtTime(time);\n\n        matrix.translate(position[0] * (this || _global).p.mult, position[1] * (this || _global).p.mult, -position[2] * (this || _global).p.mult);\n      }\n\n      return matrix; /// /\n    }\n\n    function getTransformStaticValueAtTime() {\n      return (this || _global).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 || _global)._cachingAtTime) {\n        (this || _global)._cachingAtTime = {\n          shapeValue: shapePool.clone((this || _global).pv),\n          lastIndex: 0,\n          lastTime: initialDefaultFrame\n        };\n      }\n\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastTime) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastTime < frameNum ? (this || _global)._caching.lastIndex : 0;\n        (this || _global)._cachingAtTime.lastTime = frameNum;\n        this.interpolateShape(frameNum, (this || _global)._cachingAtTime.shapeValue, (this || _global)._cachingAtTime);\n      }\n\n      return (this || _global)._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 (prop, time) {\n        if ((this || _global).k) {\n          this.getValue();\n        }\n\n        var shapePath = (this || _global).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 (time) {\n        return this.vertices(\"v\", time);\n      },\n      inTangents: function (time) {\n        return this.vertices(\"i\", time);\n      },\n      outTangents: function (time) {\n        return this.vertices(\"o\", time);\n      },\n      isClosed: function () {\n        return (this || _global).v.c;\n      },\n      pointOnPath: function (perc, time) {\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        if (!(this || _global)._segmentsLength) {\n          (this || _global)._segmentsLength = bez.getSegmentsLength(shapePath);\n        }\n\n        var segmentsLength = (this || _global)._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 (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 || _global).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 (perc, time) {\n        return this.vectorOnPath(perc, time, \"tangent\");\n      },\n      normalOnPath: function (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  /* global ExpressionManager, TextProperty */\n\n\n  (function addDecorator() {\n    function searchExpressions() {\n      if ((this || _global).data.d.x) {\n        (this || _global).calculateExpression = ExpressionManager.initiateExpression.bind(this || _global)((this || _global).elem, (this || _global).data.d, this || _global);\n        this.addEffect((this || _global).getExpressionValue.bind(this || _global));\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 || _global).kf = isKeyframed || hasExpressions;\n      return (this || _global).kf;\n    };\n\n    TextProperty.prototype.searchExpressions = searchExpressions;\n  })();\n  /* global propertyGroupFactory, PropertyInterface */\n\n  /* exported ShapePathInterface */\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 () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        shape: {\n          get: function () {\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  /* exported propertyGroupFactory */\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  /* exported PropertyInterface */\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  /* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\n\n  /* exported ShapeExpressionInterface */\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        }\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 () {\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 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 () {\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  /* exported TextExpressionInterface */\n\n\n  var TextExpressionInterface = function () {\n    return function (elem) {\n      var _prevValue;\n\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 () {\n          elem.textProperty.getValue();\n          var stringValue = elem.textProperty.currentData.t;\n\n          if (stringValue !== _prevValue) {\n            elem.textProperty.currentData.t = _prevValue;\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\n          return _sourceText;\n        }\n      });\n      return _thisLayerFunction;\n    };\n  }();\n  /* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\n\n  /* exported LayerExpressionInterface */\n\n\n  var LayerExpressionInterface = function () {\n    function getMatrix(time) {\n      var toWorldMat = new Matrix();\n\n      if (time !== undefined) {\n        var propMatrix = (this || _global)._elem.finalTransform.mProp.getValueAtTime(time);\n\n        propMatrix.clone(toWorldMat);\n      } else {\n        var transformMat = (this || _global)._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 || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._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 || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._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 || _global)._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._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 () {\n            return elem.hierarchy.length;\n          }\n        },\n        parent: {\n          get: function () {\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 () {\n            return transformInterface;\n          }\n        },\n        active: {\n          get: function () {\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  /* global */\n\n  /* exported FootageInterface */\n\n\n  var FootageInterface = function () {\n    var outlineInterfaceFactory = function (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 (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  /* exported CompExpressionInterface */\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  /* global ExpressionPropertyInterface */\n\n  /* exported TransformExpressionInterface */\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 () {\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  /* exported ProjectInterface */\n\n\n  ProjectInterface = function () {\n    function registerComposition(comp) {\n      (this || _global).compositions.push(comp);\n    }\n\n    return function () {\n      function _thisProjectFunction(name) {\n        var i = 0;\n        var len = (this || _global).compositions.length;\n\n        while (i < len) {\n          if ((this || _global).compositions[i].data && (this || _global).compositions[i].data.nm === name) {\n            if ((this || _global).compositions[i].prepareFrame && (this || _global).compositions[i].data.xt) {\n              (this || _global).compositions[i].prepareFrame((this || _global).currentFrame);\n            }\n\n            return (this || _global).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  /* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\n\n  /* exported EffectsExpressionInterface */\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 (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 () {\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 () {\n            return effectElements[0]();\n          }\n        });\n      }\n\n      Object.defineProperties(groupInterface, {\n        numProperties: {\n          get: function () {\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  /* global createSizedArray */\n\n  /* exported MaskManagerInterface */\n\n\n  var MaskManagerInterface = function () {\n    function MaskInterface(mask, data) {\n      (this || _global)._mask = mask;\n      (this || _global)._data = data;\n    }\n\n    Object.defineProperty(MaskInterface.prototype, \"maskPath\", {\n      get: function () {\n        if ((this || _global)._mask.prop.k) {\n          (this || _global)._mask.prop.getValue();\n        }\n\n        return (this || _global)._mask.prop;\n      }\n    });\n    Object.defineProperty(MaskInterface.prototype, \"maskOpacity\", {\n      get: function () {\n        if ((this || _global)._mask.op.k) {\n          (this || _global)._mask.op.getValue();\n        }\n\n        return (this || _global)._mask.op.v * 100;\n      }\n    });\n\n    var MaskManager = function (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 (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  /* global createTypedArray */\n\n  /* exported ExpressionPropertyInterface */\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 () {\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  /* global expressionHelpers, TextSelectorProp, ExpressionManager */\n\n  /* exported TextExpressionSelectorProp */\n\n\n  (function () {\n    var TextExpressionSelectorProp = function () {\n      // eslint-disable-line no-unused-vars\n      function getValueProxy(index, total) {\n        (this || _global).textIndex = index + 1;\n        (this || _global).textTotal = total;\n        (this || _global).v = this.getValue() * (this || _global).mult;\n        return (this || _global).v;\n      }\n\n      return function TextExpressionSelectorPropFactory(elem, data) {\n        (this || _global).pv = 1;\n        (this || _global).comp = elem.comp;\n        (this || _global).elem = elem;\n        (this || _global).mult = 0.01;\n        (this || _global).propType = \"textSelector\";\n        (this || _global).textTotal = data.totalChars;\n        (this || _global).selectorValue = 100;\n        (this || _global).lastValue = [1, 1, 1];\n        (this || _global).k = true;\n        (this || _global).x = true;\n        (this || _global).getValue = ExpressionManager.initiateExpression.bind(this || _global)(elem, data, this || _global);\n        (this || _global).getMult = getValueProxy;\n        (this || _global).getVelocityAtTime = expressionHelpers.getVelocityAtTime;\n\n        if ((this || _global).kf) {\n          (this || _global).getValueAtTime = expressionHelpers.getValueAtTime.bind(this || _global);\n        } else {\n          (this || _global).getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this || _global);\n        }\n\n        (this || _global).setGroupProperty = expressionHelpers.setGroupProperty;\n      };\n    }();\n\n    var propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\n\n    TextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\n      if (data.t === 1) {\n        return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\n      }\n\n      return propertyGetTextProp(elem, data, arr);\n    };\n  })();\n  /* global PropertyFactory */\n\n  /* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\n\n\n  function SliderEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function AngleEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function ColorEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function PointEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function LayerIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function MaskIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function CheckboxEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function NoValueEffect() {\n    (this || _global).p = {};\n  }\n  /* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\n  MaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\n\n\n  function EffectsManager(data, element) {\n    var effects = data.ef || [];\n    (this || _global).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\n      (this || _global).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 || _global).data = data;\n    (this || _global).effectElements = [];\n    this.initDynamicPropertyContainer(element);\n    var i;\n    var len = (this || _global).data.ef.length;\n    var eff;\n    var effects = (this || _global).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 || _global);\n          break;\n\n        case 1:\n          eff = new AngleEffect(effects[i], element, this || _global);\n          break;\n\n        case 2:\n          eff = new ColorEffect(effects[i], element, this || _global);\n          break;\n\n        case 3:\n          eff = new PointEffect(effects[i], element, this || _global);\n          break;\n\n        case 4:\n        case 7:\n          eff = new CheckboxEffect(effects[i], element, this || _global);\n          break;\n\n        case 10:\n          eff = new LayerIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 11:\n          eff = new MaskIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 5:\n          eff = new EffectsManager(effects[i], element, this || _global);\n          break;\n        // case 6:\n\n        default:\n          eff = new NoValueEffect(effects[i], element, this || _global);\n          break;\n      }\n\n      if (eff) {\n        (this || _global).effectElements.push(eff);\n      }\n    }\n  };\n\n  var lottie = {};\n\n  function setLocationHref(href) {\n    locationHref = 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    subframeEnabled = flag;\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          defaultCurveSegments = 200;\n          break;\n\n        default:\n        case \"medium\":\n          defaultCurveSegments = 50;\n          break;\n\n        case \"low\":\n          defaultCurveSegments = 10;\n          break;\n      }\n    } else if (!isNaN(value) && value > 1) {\n      defaultCurveSegments = value;\n    }\n\n    if (defaultCurveSegments >= 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      expressionsPlugin = 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 = setLocationHref;\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.__getFactory = getFactory;\n  lottie.version = \"5.7.8\";\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 standalone = \"__[STANDALONE]__\";\n  var animationData = \"__[ANIMATIONDATA]__\";\n  var renderer = \"\";\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.replace(/^[^\\?]+\\??/, \"\"); // eslint-disable-line no-useless-escape\n\n    renderer = getQueryVariable(\"renderer\");\n  }\n\n  var readyStateCheckInterval = setInterval(checkReady, 100);\n  return lottie;\n});\nvar exports$1 = exports;\n\nexport default exports$1;\n\n//# sourceMappingURL=npm:lottie-web@5.7.8!cjs.map","export { default } from \"/npm:lottie-web@5.7.8!cjs\";\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useCallback,useEffect}from\"react\";import{motion,addPropertyControls,ControlType,RenderTarget}from\"framer\";import{defaultEvents}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useAutoMotionValue}from\"https://framer.com/m/framer/useAutoMotionValue.js@0.3.0\";import lottie from\"https://jspm.dev/lottie-web@5.7.8\";var SrcType;(function(SrcType){SrcType[\"File\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));var Poster;(function(Poster){Poster[\"Auto\"]=\"Auto\";Poster[\"Custom\"]=\"Custom\";})(Poster||(Poster={}));const placeholderUrl=\"https://misc.framerstatic.com/lottie/logo.json\";/**\n * LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 350\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Lottie(props){const{style,srcUrl,srcFile,srcType,poster,progress:progressRaw,playing,loop,posterProgress,pauseOnCanvas,isForwardsDirection,speed,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,onComplete}=props;const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldPlay=(!pauseOnCanvas||!isOnCanvas)&&playing;const direction=isForwardsDirection?1:-1;const isCustomPoster=poster===\"Custom\";const el=useRef();const didInitialMount=useRef(false);const animationInfo=useRef({data:null,animation:null,duration:null});const progress=useAutoMotionValue(progressRaw,{transform:v=>v*.01});const play=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.play();};const pause=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.pause();};const destroy=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.destroy();};const scrubTo=useCallback((normalizedProgress,shouldPlayAfter)=>{if(!animationInfo.current.duration||!animationInfo.current.animation)return;// Lottie gets weird when scrubbing to the exact last frame\nconst frameNumberTarget=normalizedProgress===1?animationInfo.current.duration-1:normalizedProgress*animationInfo.current.duration;if(shouldPlayAfter)animationInfo.current.animation.goToAndPlay(frameNumberTarget,true);else animationInfo.current.animation.goToAndStop(frameNumberTarget,true);},[]);const fetchLottieData=useCallback(async url=>{if(!url)return null;const data=await fetch(url,{method:\"GET\",credentials:\"omit\",redirect:\"follow\"}).then(d=>d.json());return data;},[]);// Fetch lottie animation & start setup\nconst init=useCallback(async()=>{// Clear current animation\ndestroy();let dataUrl;if(srcType===\"URL\")dataUrl=srcUrl;if(srcType===\"Upload\")dataUrl=srcFile;if(!dataUrl){console.warn(\"No valid Lottie animation provided\");dataUrl=placeholderUrl;}const data=await fetchLottieData(dataUrl);animationInfo.current.data=data;return setup(didInitialMount.current);},[srcType,srcUrl,srcFile]);// Create Lottie animation\nconst setup=useCallback(shouldPlayAfter=>{if(!el.current)return;destroy();const options={container:el.current,renderer:\"svg\",loop:loop,autoplay:shouldPlay,animationData:animationInfo.current.data,rendererSettings:{preserveAspectRatio:\"xMidYMid slice\"}};const anim=animationInfo.current.animation=lottie.loadAnimation(options);animationInfo.current.duration=anim.getDuration(true);anim.setDirection(direction);anim.setSpeed(speed);didInitialMount.current=true;if(isOnCanvas&&isCustomPoster)scrubTo(posterProgress,false);else scrubTo(progress.get(),shouldPlay||shouldPlayAfter);return()=>{anim.destroy();};},[loop,shouldPlay,speed,direction,isOnCanvas,isCustomPoster,posterProgress]);// Initial setup or re-init when source changes\nuseEffect(()=>{let cleanup;init().then(c=>cleanup=c);return()=>{if(cleanup)cleanup();};},[srcType,srcFile,srcUrl]);// No run-time option for loop option, recreating anim\nuseEffect(()=>{if(!didInitialMount.current)return;return setup(false);},[loop]);// Perf hack lets see if anyone notices\nuseEffect(()=>lottie.setQuality(isOnCanvas?\"low\":\"medium\"),[]);// useEffect(() => {\n//     if (!isOnCanvas) return\n//     const normalizedProgress = progress.get() * 0.01\n//     if (shouldPlay) scrubTo(normalizedProgress, true)\n//     else scrubTo(normalizedProgress, false)\n// }, [progressRaw, shouldPlay])\nuseEffect(()=>progress.onChange(val=>{if(isOnCanvas)return;if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);}),[]);useEffect(()=>{const val=progress.get();if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);},[progressRaw]);useEffect(()=>{if(!isOnCanvas)return;const normalizedPosterProgress=posterProgress*.01;if(isCustomPoster)scrubTo(normalizedPosterProgress,false);else scrubTo(progress.get(),false);},[isCustomPoster,posterProgress]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setDirection(direction);scrubTo(progress.get(),true);},[direction]);useEffect(()=>{if(shouldPlay)play();else pause();},[shouldPlay]);return /*#__PURE__*/_jsx(motion.div,{ref:el,style:style,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp});}Lottie.defaultProps={height:200,width:200,srcType:\"URL\",pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:\"Auto\",posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",placeholder:\"../example.json\",hidden:props=>props.srcType===\"Upload\"},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===\"URL\"},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\npauseOnCanvas:{type:ControlType.Boolean,title:\"Canvas\",disabledTitle:\"Play\",enabledTitle:\"Pause\",hidden:props=>props.playing===false},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},isForwardsDirection:{title:\"Direction\",type:ControlType.Boolean,enabledTitle:\"Normal\",disabledTitle:\"Reverse\"},speed:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5,displayStepper:true,unit:\"x\"},poster:{title:\"Poster\",type:ControlType.Enum,options:[\"Auto\",\"Custom\"],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({poster})=>poster===\"Auto\"},progress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\",description:\"This component is made for JSON files. [Learn more here](https://lottiefiles.com/what-is-lottie).\"},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Lottie\":{\"type\":\"reactComponent\",\"name\":\"Lottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"350\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map","// Generated by Framer (400c93f)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Audio}from\"https://framerusercontent.com/modules/NRKVbMFYrBaqL0rx532t/o1XmI0MqgEIlgDIKXNDR/Audio.js\";import{Lottie}from\"https://framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js\";const AudioFonts=getFonts(Audio);const LottieFonts=getFonts(Lottie);const enabledGestures={To5DeVzd_:{hover:true}};const cycleOrder=[\"To5DeVzd_\",\"Lcu0BbWfs\"];const serializationHash=\"framer-jb5r9\";const variantClassNames={Lcu0BbWfs:\"framer-v-fq0siz\",To5DeVzd_:\"framer-v-9wscda\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Default:\"To5DeVzd_\",Playing:\"Lcu0BbWfs\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"To5DeVzd_\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"To5DeVzd_\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"Xm4ELSDYa\"},motionChild:true,nodeId:\"To5DeVzd_\",scopeId:\"X7rQlm4gy\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-9wscda\",className,classNames)} framer-se0lte`,\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"To5DeVzd_\",ref:refBinding,style:{...style},...addPropertyOverrides({\"To5DeVzd_-hover\":{\"data-framer-name\":undefined},Lcu0BbWfs:{\"data-framer-name\":\"Playing\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-16s2sec-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"rnkbCDYUh-container\",nodeId:\"rnkbCDYUh\",rendersWithMotion:true,scopeId:\"X7rQlm4gy\",children:/*#__PURE__*/_jsx(Audio,{background:\"rgba(235, 235, 235, 0)\",borderRadius:8,bottomLeftRadius:8,bottomRightRadius:8,font:{},gap:15,height:\"100%\",id:\"rnkbCDYUh\",isMixedBorderRadius:false,layoutId:\"rnkbCDYUh\",loop:false,onPlayGlobalPauseOption:\"continue\",padding:15,paddingBottom:15,paddingLeft:15,paddingPerSide:false,paddingRight:15,paddingTop:15,pauseOnExit:true,playing:false,progress:0,progressColor:\"rgba(51, 51, 51, 0)\",showPlayPause:false,showTime:false,showTrack:false,srcFile:\"https://framerusercontent.com/assets/AZgUplLsxnirB6VCZdgWCNLs.mp3\",srcType:\"Upload\",srcUrl:\"https://assets.mixkit.co/music/preview/mixkit-tech-house-vibes-130.mp3\",style:{height:\"100%\",width:\"100%\"},topLeftRadius:8,topRightRadius:8,trackColor:\"rgba(255, 255, 255, 0)\",volume:25,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-afq0xg-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"UFU2VRI0A-container\",nodeId:\"UFU2VRI0A\",rendersWithMotion:true,scopeId:\"X7rQlm4gy\",children:/*#__PURE__*/_jsx(Lottie,{height:\"100%\",id:\"UFU2VRI0A\",isForwardsDirection:true,layoutId:\"UFU2VRI0A\",loop:true,pauseOnCanvas:true,playing:false,poster:\"Auto\",posterProgress:0,progress:0,speed:1,srcFile:\"https://framerusercontent.com/assets/pqclSkvCsgatY7s84TSa7k6AID0.json\",srcType:\"Upload\",srcUrl:\"https://misc.framerstatic.com/lottie/logo.json\",style:{height:\"100%\",width:\"100%\"},width:\"100%\",...addPropertyOverrides({\"To5DeVzd_-hover\":{playing:true,speed:1.5},Lcu0BbWfs:{playing:true}},baseVariant,gestureVariant)})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-jb5r9.framer-se0lte, .framer-jb5r9 .framer-se0lte { display: block; }\",\".framer-jb5r9.framer-9wscda { cursor: pointer; height: 90px; mix-blend-mode: difference; overflow: visible; position: relative; text-decoration: none; width: 320px; }\",\".framer-jb5r9 .framer-16s2sec-container { flex: none; height: 50px; left: calc(50.00000000000002% - 240px / 2); position: absolute; top: calc(50.00000000000002% - 50px / 2); width: 240px; }\",\".framer-jb5r9 .framer-afq0xg-container { bottom: -62px; flex: none; left: -65px; position: absolute; right: -65px; top: -72px; }\",\".framer-jb5r9.framer-v-fq0siz.framer-9wscda { aspect-ratio: 1.7777777777777777 / 1; cursor: unset; height: var(--framer-aspect-ratio-supported, 180px); }\",\".framer-jb5r9.framer-v-9wscda.hover.framer-9wscda { aspect-ratio: 1.7777777777777777 / 1; height: var(--framer-aspect-ratio-supported, 180px); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 180\n * @framerIntrinsicWidth 320\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"Lcu0BbWfs\":{\"layout\":[\"fixed\",\"fixed\"]},\"B47NnXXsM\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerX7rQlm4gy=withCSS(Component,css,\"framer-jb5r9\");export default FramerX7rQlm4gy;FramerX7rQlm4gy.displayName=\"Animated logo\";FramerX7rQlm4gy.defaultProps={height:180,width:320};addPropertyControls(FramerX7rQlm4gy,{variant:{options:[\"To5DeVzd_\",\"Lcu0BbWfs\"],optionTitles:[\"Default\",\"Playing\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerX7rQlm4gy,[{explicitInter:true,fonts:[]},...AudioFonts,...LottieFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerX7rQlm4gy\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"320\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"Lcu0BbWfs\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"B47NnXXsM\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"180\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./X7rQlm4gy.map","// Generated by Framer (2797bee)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,ResolveLinks,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import ComponentsNavbarItem from\"https://framerusercontent.com/modules/g59PUgBR5OOOQMiei4Xg/16hwRukCwYp0hHovIKSm/g9oIoH2vY.js\";import AnimatedLogo from\"https://framerusercontent.com/modules/xVtssIW5xw6WT9AfpwFL/ftbFkW5liURVIYY1V3aZ/X7rQlm4gy.js\";const AnimatedLogoFonts=getFonts(AnimatedLogo);const ComponentsNavbarItemFonts=getFonts(ComponentsNavbarItem);const SmartComponentScopedContainerWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(SmartComponentScopedContainer));const PhosphorFonts=getFonts(Phosphor);const cycleOrder=[\"rQNQqYpOV\",\"bm9e676kA\",\"pFLTzIvEh\",\"EV4oyZixB\"];const serializationHash=\"framer-VFezI\";const variantClassNames={bm9e676kA:\"framer-v-p0bw8z\",EV4oyZixB:\"framer-v-p2m2lz\",pFLTzIvEh:\"framer-v-19r6zfl\",rQNQqYpOV:\"framer-v-l9yfos\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transition2={bounce:.2,delay:.2,duration:.6,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:-10};const transition3={bounce:.2,delay:.4,duration:.6,type:\"spring\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition3,x:0,y:0};const transition4={bounce:.2,delay:.8,duration:.6,type:\"spring\"};const animation3={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition4,x:0,y:0};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Phone Expanded\":\"EV4oyZixB\",Desktop:\"rQNQqYpOV\",Phone:\"pFLTzIvEh\",Tablet:\"bm9e676kA\"};const getProps=({cursor,height,id,selectionCursor,width,...props})=>{return{...props,hRGdk0qJC:selectionCursor??props.hRGdk0qJC,variant:humanReadableVariantMap[props.variant]??props.variant??\"rQNQqYpOV\",wh217cF8q:cursor??props.wh217cF8q};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,wh217cF8q,hRGdk0qJC,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"rQNQqYpOV\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const hK9FfgVOP5gkkkr=activeVariantCallback(async(...args)=>{setVariant(\"EV4oyZixB\");});const hK9FfgVOP179n53v=activeVariantCallback(async(...args)=>{setVariant(\"pFLTzIvEh\");});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"pFLTzIvEh\")return false;return true;};const router=useRouter();const isDisplayed1=()=>{if([\"pFLTzIvEh\",\"EV4oyZixB\"].includes(baseVariant))return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-l9yfos\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"rQNQqYpOV\",ref:refBinding,style:{...style},...addPropertyOverrides({bm9e676kA:{\"data-framer-name\":\"Tablet\"},EV4oyZixB:{\"data-framer-name\":\"Phone Expanded\"},pFLTzIvEh:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:78,width:\"139px\",y:(componentViewport?.y||0)+-15,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-i55995-container\",\"data-framer-cursor\":hRGdk0qJC,layoutDependency:layoutDependency,layoutId:\"fPfMmN_9q-container\",nodeId:\"fPfMmN_9q\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",style:{scale:.6},children:/*#__PURE__*/_jsx(AnimatedLogo,{height:\"100%\",id:\"fPfMmN_9q\",layoutId:\"fPfMmN_9q\",style:{height:\"100%\",width:\"100%\"},variant:\"To5DeVzd_\",width:\"100%\",...addPropertyOverrides({pFLTzIvEh:{variant:\"Lcu0BbWfs\"}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-16ic1f3\",\"data-framer-name\":\"Header\",layoutDependency:layoutDependency,layoutId:\"AvN4r7bJo\",style:{backgroundColor:\"var(--token-4321a524-8651-4268-85f9-e884d8cb6223, rgb(255, 255, 255))\"},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"Xm4ELSDYa\"},motionChild:true,nodeId:\"gAw73q17U\",scopeId:\"H2AzYnN5x\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1fgk3gp framer-iputpu\",\"data-framer-name\":\"Navbar\",layoutDependency:layoutDependency,layoutId:\"gAw73q17U\"})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-8w8zug\",layoutDependency:layoutDependency,layoutId:\"nc8q7nN8H\",children:[isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-yw9luy\",\"data-framer-name\":\"Navbar Menu\",layoutDependency:layoutDependency,layoutId:\"omBA0FrHS\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Xm4ELSDYa\"},implicitPathVariables:undefined},{href:{webPageId:\"Xm4ELSDYa\"},implicitPathVariables:undefined},{href:{webPageId:\"Xm4ELSDYa\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:17,y:(componentViewport?.y||0)+0+0+0+0+0,...addPropertyOverrides({EV4oyZixB:{y:(componentViewport?.y||0)+0+0+0+0+37+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFXWithOptimizedAppearEffect,{className:\"framer-gwnahg-container\",\"data-framer-appear-id\":\"gwnahg\",\"data-framer-cursor\":wh217cF8q,layoutDependency:layoutDependency,layoutId:\"nFVb79CsJ-container\",nodeId:\"nFVb79CsJ\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",...addPropertyOverrides({EV4oyZixB:{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,initial:animation1,optimized:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentsNavbarItem,{BS5SaAWg0:resolvedLinks[0],height:\"100%\",id:\"nFVb79CsJ\",layoutId:\"nFVb79CsJ\",NDS66P9u6:\"Home\",variant:\"ZHia6ERgq\",width:\"100%\",...addPropertyOverrides({bm9e676kA:{BS5SaAWg0:resolvedLinks[1],variant:\"OmdGC4kz7\"},EV4oyZixB:{BS5SaAWg0:resolvedLinks[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined},{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:17,y:(componentViewport?.y||0)+0+0+0+0+0,...addPropertyOverrides({EV4oyZixB:{y:(componentViewport?.y||0)+0+0+0+0+37+0+37}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFXWithOptimizedAppearEffect,{className:\"framer-p17cjc-container\",\"data-framer-appear-id\":\"p17cjc\",\"data-framer-cursor\":wh217cF8q,layoutDependency:layoutDependency,layoutId:\"wXE6pUqh4-container\",nodeId:\"wXE6pUqh4\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",...addPropertyOverrides({EV4oyZixB:{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,initial:animation1,optimized:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentsNavbarItem,{BS5SaAWg0:resolvedLinks1[0],height:\"100%\",id:\"wXE6pUqh4\",layoutId:\"wXE6pUqh4\",NDS66P9u6:\"Work\",variant:\"ZHia6ERgq\",width:\"100%\",...addPropertyOverrides({bm9e676kA:{BS5SaAWg0:resolvedLinks1[1],variant:\"OmdGC4kz7\"},EV4oyZixB:{BS5SaAWg0:resolvedLinks1[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined},{href:{webPageId:\"yceE3jxxg\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:17,y:(componentViewport?.y||0)+0+0+0+0+0,...addPropertyOverrides({EV4oyZixB:{y:(componentViewport?.y||0)+0+0+0+0+37+0+74}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFXWithOptimizedAppearEffect,{className:\"framer-cajhjp-container\",\"data-framer-appear-id\":\"cajhjp\",\"data-framer-cursor\":wh217cF8q,layoutDependency:layoutDependency,layoutId:\"Kqa8JUAXJ-container\",nodeId:\"Kqa8JUAXJ\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",...addPropertyOverrides({EV4oyZixB:{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation2,initial:animation1,optimized:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentsNavbarItem,{BS5SaAWg0:resolvedLinks2[0],height:\"100%\",id:\"Kqa8JUAXJ\",layoutId:\"Kqa8JUAXJ\",NDS66P9u6:\"About\",variant:\"ZHia6ERgq\",width:\"100%\",...addPropertyOverrides({bm9e676kA:{BS5SaAWg0:resolvedLinks2[1],variant:\"OmdGC4kz7\"},EV4oyZixB:{BS5SaAWg0:resolvedLinks2[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined},{href:{webPageId:\"iyThuKwvC\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:17,y:(componentViewport?.y||0)+0+0+0+0+0,...addPropertyOverrides({EV4oyZixB:{y:(componentViewport?.y||0)+0+0+0+0+37+0+111}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFXWithOptimizedAppearEffect,{className:\"framer-b9qe4r-container\",\"data-framer-appear-id\":\"b9qe4r\",\"data-framer-cursor\":wh217cF8q,layoutDependency:layoutDependency,layoutId:\"icKgkAiB4-container\",nodeId:\"icKgkAiB4\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",...addPropertyOverrides({EV4oyZixB:{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation2,initial:animation1,optimized:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentsNavbarItem,{BS5SaAWg0:resolvedLinks3[0],height:\"100%\",id:\"icKgkAiB4\",layoutId:\"icKgkAiB4\",NDS66P9u6:\"Process\",variant:\"ZHia6ERgq\",width:\"100%\",...addPropertyOverrides({bm9e676kA:{BS5SaAWg0:resolvedLinks3[1],variant:\"OmdGC4kz7\"},EV4oyZixB:{BS5SaAWg0:resolvedLinks3[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined},{href:{webPageId:\"bl4BI2dBM\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:17,y:(componentViewport?.y||0)+0+0+0+0+0,...addPropertyOverrides({EV4oyZixB:{y:(componentViewport?.y||0)+0+0+0+0+37+0+148}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFXWithOptimizedAppearEffect,{className:\"framer-1k2l33g-container\",\"data-framer-appear-id\":\"1k2l33g\",\"data-framer-cursor\":wh217cF8q,layoutDependency:layoutDependency,layoutId:\"BU2ky88ZQ-container\",nodeId:\"BU2ky88ZQ\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",...addPropertyOverrides({EV4oyZixB:{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation3,initial:animation1,optimized:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentsNavbarItem,{BS5SaAWg0:resolvedLinks4[0],height:\"100%\",id:\"BU2ky88ZQ\",layoutId:\"BU2ky88ZQ\",NDS66P9u6:\"Contact\",variant:\"ZHia6ERgq\",width:\"100%\",...addPropertyOverrides({bm9e676kA:{BS5SaAWg0:resolvedLinks4[1],variant:\"OmdGC4kz7\"},EV4oyZixB:{BS5SaAWg0:resolvedLinks4[2]}},baseVariant,gestureVariant)})})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-59r4rb\",\"data-framer-name\":\"Navbar\",layoutDependency:layoutDependency,layoutId:\"UNe9bUzDO\",children:[/*#__PURE__*/_jsx(Link,{href:\"https://www.instagram.com/zeligsound\",motionChild:true,nodeId:\"CC5UXFmdn\",openInNewTab:true,scopeId:\"H2AzYnN5x\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-qvkf5p framer-iputpu\",\"data-framer-cursor\":hRGdk0qJC,layoutDependency:layoutDependency,layoutId:\"CC5UXFmdn\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-wvj1kg-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"B3PaXAFn7-container\",nodeId:\"B3PaXAFn7\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",children:/*#__PURE__*/_jsx(Phosphor,{color:\"var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, rgb(14, 16, 17))\",height:\"100%\",iconSearch:\"House\",iconSelection:\"InstagramLogo\",id:\"B3PaXAFn7\",layoutId:\"B3PaXAFn7\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"regular\",width:\"100%\"})})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"AAhliYTso\"},implicitPathVariables:undefined}],children:resolvedLinks5=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({EV4oyZixB:{height:17,y:(componentViewport?.y||0)+0+0+0+0+0+0},pFLTzIvEh:{height:17,y:(componentViewport?.y||0)+0+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-unrlom-container\",layoutDependency:layoutDependency,layoutId:\"mu30rfhmT-container\",nodeId:\"mu30rfhmT\",rendersWithMotion:true,scopeId:\"H2AzYnN5x\",children:/*#__PURE__*/_jsx(ComponentsNavbarItem,{BS5SaAWg0:resolvedLinks5[0],height:\"100%\",id:\"mu30rfhmT\",layoutId:\"mu30rfhmT\",NDS66P9u6:\"Menu\",variant:\"OmdGC4kz7\",width:\"100%\",...addPropertyOverrides({EV4oyZixB:{BS5SaAWg0:undefined,hK9FfgVOP:hK9FfgVOP179n53v,NDS66P9u6:\"Close\"},pFLTzIvEh:{BS5SaAWg0:undefined,hK9FfgVOP:hK9FfgVOP5gkkkr}},baseVariant,gestureVariant)})})})})]})]})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-VFezI.framer-iputpu, .framer-VFezI .framer-iputpu { display: block; }\",\".framer-VFezI.framer-l9yfos { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: 100px; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1200px; }\",\".framer-VFezI .framer-i55995-container { aspect-ratio: 1.7804878048780488 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 78px); left: -33px; position: absolute; top: -15px; width: 139px; z-index: 1; }\",\".framer-VFezI .framer-16ic1f3 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 12px; height: 1px; justify-content: center; overflow: visible; padding: 0px 0px 4px 0px; position: relative; width: 100%; }\",\".framer-VFezI .framer-1fgk3gp { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; min-height: 50px; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 1px; }\",\".framer-VFezI .framer-8w8zug { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-VFezI .framer-yw9luy { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-VFezI .framer-gwnahg-container, .framer-VFezI .framer-p17cjc-container, .framer-VFezI .framer-cajhjp-container, .framer-VFezI .framer-b9qe4r-container, .framer-VFezI .framer-1k2l33g-container, .framer-VFezI .framer-unrlom-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-VFezI .framer-59r4rb { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-VFezI .framer-qvkf5p { flex: none; height: 17px; overflow: visible; position: relative; text-decoration: none; width: 16px; }\",\".framer-VFezI .framer-wvj1kg-container { flex: none; height: 16px; left: 0px; position: absolute; right: 0px; top: calc(47.05882352941179% - 16px / 2); }\",\".framer-VFezI.framer-v-p0bw8z.framer-l9yfos { width: 810px; }\",\".framer-VFezI.framer-v-p0bw8z .framer-i55995-container, .framer-VFezI.framer-v-19r6zfl .framer-i55995-container, .framer-VFezI.framer-v-19r6zfl .framer-unrlom-container, .framer-VFezI.framer-v-p2m2lz .framer-i55995-container, .framer-VFezI.framer-v-p2m2lz .framer-1fgk3gp, .framer-VFezI.framer-v-p2m2lz .framer-unrlom-container { order: 0; }\",\".framer-VFezI.framer-v-p0bw8z .framer-16ic1f3, .framer-VFezI.framer-v-19r6zfl .framer-16ic1f3, .framer-VFezI.framer-v-19r6zfl .framer-qvkf5p, .framer-VFezI.framer-v-p2m2lz .framer-qvkf5p { order: 1; }\",\".framer-VFezI.framer-v-19r6zfl.framer-l9yfos { gap: 12px; width: 400px; }\",\".framer-VFezI.framer-v-19r6zfl .framer-59r4rb { gap: unset; justify-content: space-between; }\",\".framer-VFezI.framer-v-p2m2lz.framer-l9yfos { gap: 12px; height: min-content; padding: 0px 0px 64px 0px; width: 400px; }\",\".framer-VFezI.framer-v-p2m2lz .framer-16ic1f3 { flex: none; height: min-content; order: 1; }\",\".framer-VFezI.framer-v-p2m2lz .framer-8w8zug { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 20px; order: 1; }\",\".framer-VFezI.framer-v-p2m2lz .framer-yw9luy { align-content: flex-start; align-items: flex-start; flex-direction: column; order: 1; }\",\".framer-VFezI.framer-v-p2m2lz .framer-59r4rb { flex: none; gap: unset; justify-content: space-between; order: 0; width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 100\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"bm9e676kA\":{\"layout\":[\"fixed\",\"fixed\"]},\"pFLTzIvEh\":{\"layout\":[\"fixed\",\"fixed\"]},\"EV4oyZixB\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"wh217cF8q\":\"cursor\",\"hRGdk0qJC\":\"selectionCursor\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerH2AzYnN5x=withCSS(Component,css,\"framer-VFezI\");export default FramerH2AzYnN5x;FramerH2AzYnN5x.displayName=\"Layout/Header\";FramerH2AzYnN5x.defaultProps={height:100,width:1200};addPropertyControls(FramerH2AzYnN5x,{variant:{options:[\"rQNQqYpOV\",\"bm9e676kA\",\"pFLTzIvEh\",\"EV4oyZixB\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\",\"Phone Expanded\"],title:\"Variant\",type:ControlType.Enum},wh217cF8q:{title:\"Cursor\",type:ControlType.CustomCursor},hRGdk0qJC:{title:\"Selection Cursor\",type:ControlType.CustomCursor}});addFonts(FramerH2AzYnN5x,[{explicitInter:true,fonts:[]},...AnimatedLogoFonts,...ComponentsNavbarItemFonts,...PhosphorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerH2AzYnN5x\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"100\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"bm9e676kA\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"pFLTzIvEh\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"EV4oyZixB\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"wh217cF8q\\\":\\\"cursor\\\",\\\"hRGdk0qJC\\\":\\\"selectionCursor\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1200\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./H2AzYnN5x.map","// Generated by Framer (400c93f)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getPropertyControls,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/bmd6zvl7JnESGhE5At74/uqb7Rppf25l8CnNb1IFp/MD1Cowi_v.js\";const PhosphorFonts=getFonts(Phosphor);const PhosphorControls=getPropertyControls(Phosphor);const cycleOrder=[\"X1Y4aC1hX\",\"AQ57ccTtE\",\"MG95AvdYx\",\"kgPWG7i1_\",\"AZt7oqUvq\",\"fs2MJNwI3\",\"Dvasz6H7Z\"];const serializationHash=\"framer-mHPyj\";const variantClassNames={AQ57ccTtE:\"framer-v-10blwwi\",AZt7oqUvq:\"framer-v-wt2rme\",Dvasz6H7Z:\"framer-v-rrh9gh\",fs2MJNwI3:\"framer-v-15g9zfn\",kgPWG7i1_:\"framer-v-156yoh8\",MG95AvdYx:\"framer-v-s9kmfr\",X1Y4aC1hX:\"framer-v-1s8i3xv\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Default:\"X1Y4aC1hX\",Drag:\"Dvasz6H7Z\",None:\"kgPWG7i1_\",Selected:\"AQ57ccTtE\",Type:\"fs2MJNwI3\",View:\"MG95AvdYx\",XL:\"AZt7oqUvq\"};const getProps=({cursorLabel,height,iconType,iconVisible,id,width,...props})=>{return{...props,avjuk0Fpt:cursorLabel??props.avjuk0Fpt??\"VIEW\",cdXc0P9Cn:iconType??props.cdXc0P9Cn??\"ArrowUpRight\",rHFdRyuMG:iconVisible??props.rHFdRyuMG??true,variant:humanReadableVariantMap[props.variant]??props.variant??\"X1Y4aC1hX\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,avjuk0Fpt,rHFdRyuMG,cdXc0P9Cn,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"X1Y4aC1hX\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"Dvasz6H7Z\")return false;return true;};const isDisplayed1=value=>{if(baseVariant===\"MG95AvdYx\")return value;if(baseVariant===\"Dvasz6H7Z\")return false;return true;};const isDisplayed2=()=>{if(baseVariant===\"Dvasz6H7Z\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1s8i3xv\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"X1Y4aC1hX\",ref:refBinding,style:{backgroundColor:\"var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, rgb(14, 16, 17))\",borderBottomLeftRadius:386,borderBottomRightRadius:386,borderTopLeftRadius:386,borderTopRightRadius:386,opacity:1,...style},variants:{AZt7oqUvq:{opacity:1},Dvasz6H7Z:{opacity:1},fs2MJNwI3:{opacity:1},kgPWG7i1_:{opacity:0}},...addPropertyOverrides({AQ57ccTtE:{\"data-framer-name\":\"Selected\"},AZt7oqUvq:{\"data-framer-name\":\"XL\"},Dvasz6H7Z:{\"data-framer-name\":\"Drag\"},fs2MJNwI3:{\"data-framer-name\":\"Type\"},kgPWG7i1_:{\"data-framer-name\":\"None\"},MG95AvdYx:{\"data-framer-name\":\"View\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-hilyl1\",\"data-styles-preset\":\"MD1Cowi_v\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255)))\"},children:\"VIEW\"})}),className:\"framer-ry7r8q\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"sonW2Bccx\",style:{\"--extracted-r6o4lv\":\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",opacity:0},variants:{MG95AvdYx:{opacity:1}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({MG95AvdYx:{text:avjuk0Fpt}},baseVariant,gestureVariant)}),isDisplayed1(rHFdRyuMG)&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1iv7atp-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"x7tDwMPaQ-container\",nodeId:\"x7tDwMPaQ\",rendersWithMotion:true,scopeId:\"IOio2SRf0\",style:{opacity:0},variants:{MG95AvdYx:{opacity:1}},children:/*#__PURE__*/_jsx(Phosphor,{color:\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\",height:\"100%\",iconSearch:\"House\",iconSelection:\"ArrowUpRight\",id:\"x7tDwMPaQ\",layoutId:\"x7tDwMPaQ\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"regular\",width:\"100%\",...addPropertyOverrides({MG95AvdYx:{iconSelection:cdXc0P9Cn}},baseVariant,gestureVariant)})})}),isDisplayed2()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-fc99p7-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"nBmRl95NA-container\",nodeId:\"nBmRl95NA\",rendersWithMotion:true,scopeId:\"IOio2SRf0\",children:/*#__PURE__*/_jsx(Phosphor,{color:\"var(--token-c5446a54-80de-4f79-b24b-55997bf1fe5e, rgb(255, 255, 255))\",height:\"100%\",iconSearch:\"House\",iconSelection:\"ArrowsOutCardinal\",id:\"nBmRl95NA\",layoutId:\"nBmRl95NA\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"regular\",width:\"100%\"})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-mHPyj.framer-4y7y2d, .framer-mHPyj .framer-4y7y2d { display: block; }\",\".framer-mHPyj.framer-1s8i3xv { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 3px; height: 12px; justify-content: flex-start; mix-blend-mode: difference; padding: 0px; position: relative; width: 12px; }\",\".framer-mHPyj .framer-ry7r8q { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-mHPyj .framer-1iv7atp-container { aspect-ratio: 1 / 1; flex: none; height: 12px; position: relative; width: var(--framer-aspect-ratio-supported, 12px); }\",\".framer-mHPyj .framer-fc99p7-container { flex: none; height: 24px; position: relative; width: 24px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-mHPyj.framer-1s8i3xv { gap: 0px; } .framer-mHPyj.framer-1s8i3xv > * { margin: 0px; margin-left: calc(3px / 2); margin-right: calc(3px / 2); } .framer-mHPyj.framer-1s8i3xv > :first-child { margin-left: 0px; } .framer-mHPyj.framer-1s8i3xv > :last-child { margin-right: 0px; } }\",\".framer-mHPyj.framer-v-10blwwi.framer-1s8i3xv { aspect-ratio: 1 / 1; height: var(--framer-aspect-ratio-supported, 40px); width: 40px; }\",\".framer-mHPyj.framer-v-s9kmfr.framer-1s8i3xv { gap: 4px; height: 24px; justify-content: center; mix-blend-mode: unset; padding: 9px 7px 9px 9px; width: 64px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-mHPyj.framer-v-s9kmfr.framer-1s8i3xv { gap: 0px; } .framer-mHPyj.framer-v-s9kmfr.framer-1s8i3xv > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-mHPyj.framer-v-s9kmfr.framer-1s8i3xv > :first-child { margin-left: 0px; } .framer-mHPyj.framer-v-s9kmfr.framer-1s8i3xv > :last-child { margin-right: 0px; } }\",\".framer-mHPyj.framer-v-wt2rme.framer-1s8i3xv { aspect-ratio: 1 / 1; height: var(--framer-aspect-ratio-supported, 80px); width: 80px; }\",\".framer-mHPyj.framer-v-15g9zfn.framer-1s8i3xv { height: 22px; width: 2px; }\",\".framer-mHPyj.framer-v-rrh9gh.framer-1s8i3xv { gap: 4px; height: 48px; justify-content: center; mix-blend-mode: unset; padding: 10px; width: 48px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-mHPyj.framer-v-rrh9gh.framer-1s8i3xv { gap: 0px; } .framer-mHPyj.framer-v-rrh9gh.framer-1s8i3xv > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-mHPyj.framer-v-rrh9gh.framer-1s8i3xv > :first-child { margin-left: 0px; } .framer-mHPyj.framer-v-rrh9gh.framer-1s8i3xv > :last-child { margin-right: 0px; } }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 12\n * @framerIntrinsicWidth 12\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"AQ57ccTtE\":{\"layout\":[\"fixed\",\"fixed\"]},\"MG95AvdYx\":{\"layout\":[\"fixed\",\"fixed\"]},\"kgPWG7i1_\":{\"layout\":[\"fixed\",\"fixed\"]},\"AZt7oqUvq\":{\"layout\":[\"fixed\",\"fixed\"]},\"fs2MJNwI3\":{\"layout\":[\"fixed\",\"fixed\"]},\"Dvasz6H7Z\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"avjuk0Fpt\":\"cursorLabel\",\"rHFdRyuMG\":\"iconVisible\",\"cdXc0P9Cn\":\"iconType\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerIOio2SRf0=withCSS(Component,css,\"framer-mHPyj\");export default FramerIOio2SRf0;FramerIOio2SRf0.displayName=\"Cursor\";FramerIOio2SRf0.defaultProps={height:12,width:12};addPropertyControls(FramerIOio2SRf0,{variant:{options:[\"X1Y4aC1hX\",\"AQ57ccTtE\",\"MG95AvdYx\",\"kgPWG7i1_\",\"AZt7oqUvq\",\"fs2MJNwI3\",\"Dvasz6H7Z\"],optionTitles:[\"Default\",\"Selected\",\"View\",\"None\",\"XL\",\"Type\",\"Drag\"],title:\"Variant\",type:ControlType.Enum},avjuk0Fpt:{defaultValue:\"VIEW\",displayTextArea:false,title:\"Cursor Label\",type:ControlType.String},rHFdRyuMG:{defaultValue:true,title:\"Icon Visible\",type:ControlType.Boolean},cdXc0P9Cn:PhosphorControls?.[\"iconSelection\"]&&{...PhosphorControls[\"iconSelection\"],defaultValue:\"ArrowUpRight\",description:undefined,hidden:undefined,title:\"Icon type\"}});addFonts(FramerIOio2SRf0,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerIOio2SRf0\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"avjuk0Fpt\\\":\\\"cursorLabel\\\",\\\"rHFdRyuMG\\\":\\\"iconVisible\\\",\\\"cdXc0P9Cn\\\":\\\"iconType\\\"}\",\"framerIntrinsicWidth\":\"12\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"AQ57ccTtE\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"MG95AvdYx\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"kgPWG7i1_\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"AZt7oqUvq\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"fs2MJNwI3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"Dvasz6H7Z\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"12\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./IOio2SRf0.map","// Generated by Framer (52a4463)\nexport default function metadata(params,activeLocale){return{description:\"We provide original composition and sound design for films, TV, branding and games. Zelig Sound is based in London.\",favicon:\"https://framerusercontent.com/assets/eT3nGFNTGYajd8qQOrttNu9e8A.png\",robots:\"max-image-preview:large\",title:\"Zelig Sound\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}