{"version":3,"file":"static/js/main.3310305f.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/fast-deep-equal/es6/react.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rfdc/default.js","../node_modules/rfdc/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","locales|lazy|/^/.//.*/.json$/|groupOptions: {}|namespace object","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","components/Icons.jsx","../node_modules/gsap/gsap-core.js","../node_modules/gsap/CSSPlugin.js","../node_modules/gsap/index.js","../node_modules/gsap/Observer.js","../node_modules/gsap/ScrollTrigger.js","../node_modules/gsap/ScrollToPlugin.js","assets/images/svg/page-logo.svg","components/Header.jsx","assets/images/svg/arrow.svg","../node_modules/react-lottie-player/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-lottie-player/node_modules/object-assign/index.js","../node_modules/react-lottie-player/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/react-lottie-player/node_modules/prop-types/node_modules/react-is/index.js","../node_modules/react-lottie-player/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-lottie-player/node_modules/prop-types/lib/has.js","../node_modules/react-lottie-player/node_modules/prop-types/checkPropTypes.js","../node_modules/react-lottie-player/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-lottie-player/node_modules/prop-types/index.js","../node_modules/react-lottie-player/src/props.js","../node_modules/react-lottie-player/src/makeLottiePlayer.js","../node_modules/react-lottie-player/src/LottiePlayer.js","components/LottieHero.jsx","components/Hero.jsx","assets/images/svg/small-arrow-icon.svg","assets/images/svg/outlineArrow.svg","components/Business.jsx","components/AboutUs.jsx","assets/images/svg/Step1.svg","assets/images/svg/Step2.svg","assets/images/svg/arrow-large-2.svg","assets/images/svg/Step3.svg","assets/images/svg/Step4.svg","components/Timeline.jsx","assets/images/svg/small-arrow-icon-2.svg","components/partners/Image.jsx","components/partners/data.js","components/partners/Partners.jsx","assets/images/svg/salesforce-logo.svg","assets/images/svg/hubsport-logo.svg","assets/images/svg/pipedrive-logo.svg","assets/images/svg/zendesk-suite-logo.svg","components/Crm.jsx","assets/images/svg/footer_logo.svg","assets/images/svg/sms_img.svg","assets/images/svg/icon.svg","assets/images/svg/Arrows.svg","components/BackToTopButton.jsx","components/Footer.jsx","components/Meeting.jsx","assets/images/svg/largeArrow.svg","components/PreLoader.jsx","Main.jsx","App.js","index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\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\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\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\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\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\n function trailingEdge(time) {\n timerId = undefined;\n\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\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\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}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\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))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_pause');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_play');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.11.0';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 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.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.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 globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var 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\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\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.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.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 if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n CVContextData.prototype.popTransform = function () {\n var popped = this.saved[this.cArrPos];\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n return popped;\n };\n\n CVContextData.prototype.popOpacity = function () {\n var popped = this.savedOp[this.cArrPos];\n this.cO = popped;\n return popped;\n };\n\n CVContextData.prototype.pop = function () {\n this.cArrPos -= 1;\n var transform = this.popTransform();\n var opacity = this.popOpacity();\n return {\n transform: transform,\n opacity: opacity\n };\n };\n\n CVContextData.prototype.push = function () {\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var i;\n var arr = this.saved[this.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.savedOp[this.cArrPos] = this.cO;\n this.cArrPos += 1;\n };\n\n CVContextData.prototype.getTransform = function () {\n return this.cTr;\n };\n\n CVContextData.prototype.getOpacity = function () {\n return this.cO;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.cO = value;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n 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 processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n 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.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._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.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.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.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.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n } // Resetting the canvas transform matrix to the new transform\n\n\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.contextData.getTransform();\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n var currentOpacity = this.contextData.getOpacity();\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = currentOpacity;\n return;\n }\n\n currentOpacity *= op < 0 ? 0 : op;\n this.contextData.setOpacity(currentOpacity);\n\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\n this.canvasContext.globalAlpha = currentOpacity;\n this.globalData.currentGlobalAlpha = currentOpacity;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n this.contextData.push();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n var popped = this.contextData.pop();\n var transform = popped.transform;\n var opacity = popped.opacity;\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (this.globalData.currentGlobalAlpha !== opacity) {\n this.canvasContext.globalAlpha = opacity;\n this.globalData.currentGlobalAlpha = opacity;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n 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 var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(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$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\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\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\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\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","'use strict'\n\nmodule.exports = require('./index.js')()\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","var map = {\n\t\"./it.json\": [\n\t\t672,\n\t\t672\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 96;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"5dae121b\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"daicar-group-animation:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdaicar_group_animation\"] = self[\"webpackChunkdaicar_group_animation\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export const ToggleIcon = () => (\n \n \n \n \n \n \n);\n\nexport const Icon1 = () => (\n \n \n \n \n);\n\nexport const Icon3 = () => (\n \n \n \n \n);\nexport const Icon4 = () => (\n \n \n \n);\nexport const Icon4_2 = () => (\n \n \n \n);\nexport const UpArrowIcon = () => {\n return (\n \n \n \n \n );\n};\nexport const CarIcon = () => {\n return (\n \n \n \n );\n};\nexport const Icon5 = () => {\n return (\n \n \n \n );\n};\n\nexport const UpArrowNoiIcon = () => {\n return (\n \n \n \n \n );\n};\nexport const DownArrowNoiIcon = () => {\n return (\n \n \n \n \n );\n};\n\nexport const ChatIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const TabRightIcon = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\nexport const InstagramIcon = () => {\n return (\n \n \n \n \n \n \n );\n};\nexport const FbIcon = () => {\n return (\n \n \n \n \n );\n};\nexport const Linkedin = () => {\n return (\n \n \n \n \n );\n};\nexport const CloseIcon = () => {\n return (\n \n \n \n );\n};\n","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * GSAP 3.11.5\n * https://greensock.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _reverting,\n _context,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi,\n // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\n_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _startAtRevertConfig = {\n suppressEvents: true,\n isStart: true,\n kill: false\n},\n _revertConfigNoKill = {\n suppressEvents: true,\n kill: false\n},\n _revertConfig = {\n suppressEvents: true\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 10000000) / 10000000 || 0;\n},\n // increased precision mostly for timing values.\n_parseRelative = function _parseRelative(start, value) {\n var operator = value.charAt(0),\n end = parseFloat(value.substr(2));\n start = parseFloat(start);\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && !_reverting && _lazyRender();\n animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));\n _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {\n return function (obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults[p]);\n }\n };\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || child._initted && !child._dur) {\n //in case, for example, the _start is moved on a tween that has already rendered. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning.\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n _isFromOrFromStart(child) || (timeline._recent = child);\n skipChecks || _postAddChecks(timeline, child);\n timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\n\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {\n _initTween(tween, time, tTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [tTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_isFromOrFromStart = function _isFromOrFromStart(_ref2) {\n var data = _ref2.data;\n return data === \"isFromStart\" || data === \"isStart\";\n},\n _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\n // if iteration changed\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents && !_reverting) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _roundPrecise(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\n animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc,\n totalDuration: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position, percentAnimation) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset,\n isPercent;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n offset = position.charAt(0);\n isPercent = position.substr(-1) === \"%\";\n i = position.indexOf(\"=\");\n\n if (offset === \"<\" || offset === \">\") {\n i >= 0 && (position = position.replace(/=/, \"\"));\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n }\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\n\n if (isPercent && percentAnimation) {\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n }\n\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _createTweenType = function _createTweenType(type, params, timeline) {\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars,\n parent;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = timeline;\n\n if (type) {\n irVars = vars;\n parent = timeline;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return new Tween(params[0], vars, params[varsIndex + 1]);\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value, v) {\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, scope, leaveStrings) {\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n selector = function selector(value) {\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n return function (v) {\n var el = value.current || value.nativeElement || value;\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n };\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\n\n return function (raw) {\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n prevContext = _context,\n context = animation._ctx,\n params,\n scope,\n result;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n context && (_context = context);\n result = params ? callback.apply(scope, params) : callback.call(scope);\n _context = prevContext;\n return result;\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _registerPluginQueue = [],\n _createPlugin = function _createPlugin(config) {\n if (!_windowExists()) {\n _registerPluginQueue.push(config);\n\n return;\n }\n\n config = !config.name && config[\"default\"] || config; //UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\n// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\n// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\n_hue = function _hue(h, m1, m2) {\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _raf = _win.requestAnimationFrame;\n\n _registerPluginQueue.forEach(_createPlugin);\n }\n\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback, once, prioritize) {\n var func = once ? function (t, d, f, v) {\n callback(t, d, f, v);\n\n _self.remove(func);\n } : callback;\n\n _self.remove(callback);\n\n _listeners[prioritize ? \"unshift\" : \"push\"](func);\n\n _wake();\n\n return func;\n },\n remove: function remove(callback, i) {\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars) {\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n\n if (_context) {\n this._ctx = _context;\n\n _context.data.push(this);\n }\n\n _tickerActive || _ticker.wake();\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent && parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\n //(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), true);\n\n _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\n\n\n return _recacheAncestors(this);\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detached parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.revert = function revert(config) {\n if (config === void 0) {\n config = _revertConfig;\n }\n\n var prevIsReverting = _reverting;\n _reverting = config;\n\n if (this._initted || this._startAt) {\n this.timeline && this.timeline.revert(config);\n this.totalTime(-0.01, config.suppressEvents);\n }\n\n this.data !== \"nested\" && config.kill !== false && this.kill();\n _reverting = prevIsReverting;\n return this;\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (animation._ts || 1);\n animation = animation._dp;\n }\n\n return !this.parent && this._sat ? this._sat.vars.immediateRender ? -1 : this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). \"_sat\" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert().\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n var time = this._time;\n this._rDelay = value;\n\n _onUpdateTotalDuration(this);\n\n return time ? this.time(time) : this;\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, position) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\n vars.reversed && _this.reverse();\n vars.paused && _this.paused(true);\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n _createTweenType(0, arguments, this);\n\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n _createTweenType(1, arguments, this);\n\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n _createTweenType(2, arguments, this);\n\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),\n // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://greensock.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the \"repeatDelay\" portion\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : dur;\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\n\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n if (!prevTime && time && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position, child));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result.filter((v, i) => result.indexOf(v) === i);\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n initted,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n\n if (!initted) {\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n initted = 1;\n }\n\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate(soft) {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate(soft);\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this, soft);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n\n if (pt || pt === 0) {\n // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\n end = pt;\n }\n }\n }\n\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\n if (!isNaN(parsedStart * end) && end !== \"\") {\n // fun fact: any number multiplied by \"\" is evaluated as the number 0!\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_forceAllPropTweens,\n _initTween = function _initTween(tween, time, tTime) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n onUpdateParams = vars.onUpdateParams,\n callbackScope = vars.callbackScope,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n if (!tl || keyframes && !vars.stagger) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n\n if (prevStartAt) {\n prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\n\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\n // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\n\n prevStartAt._lazy = 0;\n }\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: !prevStartAt && _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate,\n onUpdateParams: onUpdateParams,\n callbackScope: callbackScope,\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set.\n\n tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween\n\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\n\n if (immediateRender) {\n if (dur && time <= 0 && tTime <= 0) {\n // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (!prevStartAt) {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y:gsap.utils.wrap([-100,100])})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline!\n\n tween._startAt._sat = tween; // used in globalTime()\n\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n tween._zTime = time;\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = tween._ptCache = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n\n keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\n},\n _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time) {\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],\n pt,\n rootPT,\n lookup,\n i;\n\n if (!ptCache) {\n ptCache = tween._ptCache[property] = [];\n lookup = tween._ptLookup;\n i = tween._targets.length;\n\n while (i--) {\n pt = lookup[i][property];\n\n if (pt && pt.d && pt.d._pt) {\n // it's a plugin, so find the nested PropTween\n pt = pt.d._pt;\n\n while (pt && pt.p !== property && pt.fp !== property) {\n // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\n pt = pt._next;\n }\n }\n\n if (!pt) {\n // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\n // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\n _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\n\n tween.vars[property] = \"+=0\";\n\n _initTween(tween, time);\n\n _forceAllPropTweens = 0;\n return 1;\n }\n\n ptCache.push(pt);\n }\n }\n\n i = ptCache.length;\n\n while (i--) {\n rootPT = ptCache[i];\n pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\n\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n pt.c = value - pt.s;\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\n\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\n }\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n // parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\n_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {\n var ease = obj.ease || easeEach || \"power1.inOut\",\n p,\n a;\n\n if (_isArray(obj)) {\n a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease\n\n obj.forEach(function (value, i) {\n return a.push({\n t: i / (obj.length - 1) * 100,\n v: value,\n e: ease\n });\n });\n } else {\n for (p in obj) {\n a = allProps[p] || (allProps[p] = []);\n p === \"ease\" || a.push({\n t: parseFloat(prop),\n v: obj[p],\n e: ease\n });\n }\n }\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\n _staggerPropsToSkip = {};\n\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function (name) {\n return _staggerPropsToSkip[name] = 1;\n});\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, position, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n position.duration = vars;\n vars = position;\n position = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = vars.parent || _globalTimeline,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://greensock.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {},\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\n }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\n\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n l = parsedTargets.length;\n staggerFunc = stagger && distribute(stagger);\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = _copyExcluding(vars, _staggerPropsToSkip);\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n tl._ease = _easeMap.none;\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n } else if (keyframes) {\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\n ease: \"none\"\n }));\n\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n var time = 0,\n a,\n kf,\n v;\n\n if (_isArray(keyframes)) {\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\n } else {\n copy = {};\n\n for (p in keyframes) {\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n }\n\n for (p in copy) {\n a = copy[p].sort(function (a, b) {\n return a.t - b.t;\n });\n time = 0;\n\n for (i = 0; i < a.length; i++) {\n kf = a[i];\n v = {\n ease: kf.e,\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\n };\n v[p] = kf.v;\n tl.to(parsedTargets, v, time);\n time += v.duration;\n }\n }\n\n tl.duration() < duration && tl.to({}, {\n duration: duration - tl.duration()\n }); // in case keyframes didn't go to 100%\n }\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\n\n vars.reversed && _this3.reverse();\n vars.paused && _this3.paused(true);\n\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay) || 0); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n isNegative = totalTime < 0,\n tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {\n //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && isNegative) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n this._tTime = tTime;\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock) {\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (prevTime !== this._time) {\n // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values.\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n if (time && !prevTime && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate(soft) {\n // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate(soft);\n return _Animation2.prototype.invalidate.call(this, soft);\n };\n\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative) {\n _tickerActive || _ticker.wake();\n this._ts || this.play();\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\n ratio;\n this._initted || _initTween(this, time);\n ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\n // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\n // if (_isObject(property)) { // performance optimization\n // \tfor (p in property) {\n // \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\n // \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n // \t\t}\n // \t}\n // } else {\n\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time)) {\n return this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n } //}\n\n\n _alignPlayhead(this, 0);\n\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n return this.render(0);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return _createTweenType(1, arguments);\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return _createTweenType(2, arguments);\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n\nvar _media = [],\n _listeners = {},\n _emptyArray = [],\n _lastMediaTime = 0,\n _dispatch = function _dispatch(type) {\n return (_listeners[type] || _emptyArray).map(function (f) {\n return f();\n });\n},\n _onMediaChange = function _onMediaChange() {\n var time = Date.now(),\n matches = [];\n\n if (time - _lastMediaTime > 2) {\n _dispatch(\"matchMediaInit\");\n\n _media.forEach(function (c) {\n var queries = c.queries,\n conditions = c.conditions,\n match,\n p,\n anyMatch,\n toggled;\n\n for (p in queries) {\n match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\n\n match && (anyMatch = 1);\n\n if (match !== conditions[p]) {\n conditions[p] = match;\n toggled = 1;\n }\n }\n\n if (toggled) {\n c.revert();\n anyMatch && matches.push(c);\n }\n });\n\n _dispatch(\"matchMediaRevert\");\n\n matches.forEach(function (c) {\n return c.onMatch(c);\n });\n _lastMediaTime = time;\n\n _dispatch(\"matchMedia\");\n }\n};\n\nvar Context = /*#__PURE__*/function () {\n function Context(func, scope) {\n this.selector = scope && selector(scope);\n this.data = [];\n this._r = []; // returned/cleanup functions\n\n this.isReverted = false;\n func && this.add(func);\n }\n\n var _proto5 = Context.prototype;\n\n _proto5.add = function add(name, func, scope) {\n // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function.\n // if (name && _isFunction(name.revert)) {\n // \tthis.data.push(name);\n // \treturn (name._ctx = this);\n // }\n if (_isFunction(name)) {\n scope = func;\n func = name;\n name = _isFunction;\n }\n\n var self = this,\n f = function f() {\n var prev = _context,\n prevSelector = self.selector,\n result;\n prev && prev !== self && prev.data.push(self);\n scope && (self.selector = selector(scope));\n _context = self;\n result = func.apply(self, arguments);\n _isFunction(result) && self._r.push(result);\n _context = prev;\n self.selector = prevSelector;\n self.isReverted = false;\n return result;\n };\n\n self.last = f;\n return name === _isFunction ? f(self) : name ? self[name] = f : f;\n };\n\n _proto5.ignore = function ignore(func) {\n var prev = _context;\n _context = null;\n func(this);\n _context = prev;\n };\n\n _proto5.getTweens = function getTweens() {\n var a = [];\n this.data.forEach(function (e) {\n return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\n });\n return a;\n };\n\n _proto5.clear = function clear() {\n this._r.length = this.data.length = 0;\n };\n\n _proto5.kill = function kill(revert, matchMedia) {\n var _this4 = this;\n\n if (revert) {\n var tweens = this.getTweens();\n this.data.forEach(function (t) {\n // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\n if (t.data === \"isFlip\") {\n t.revert();\n t.getChildren(true, true, false).forEach(function (tween) {\n return tweens.splice(tweens.indexOf(tween), 1);\n });\n }\n }); // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\n\n tweens.map(function (t) {\n return {\n g: t.globalTime(0),\n t: t\n };\n }).sort(function (a, b) {\n return b.g - a.g || -1;\n }).forEach(function (o) {\n return o.t.revert(revert);\n }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\n\n this.data.forEach(function (e) {\n return !(e instanceof Animation) && e.revert && e.revert(revert);\n });\n\n this._r.forEach(function (f) {\n return f(revert, _this4);\n });\n\n this.isReverted = true;\n } else {\n this.data.forEach(function (e) {\n return e.kill && e.kill();\n });\n }\n\n this.clear();\n\n if (matchMedia) {\n var i = _media.indexOf(this);\n\n !!~i && _media.splice(i, 1);\n }\n };\n\n _proto5.revert = function revert(config) {\n this.kill(config || {});\n };\n\n return Context;\n}();\n\nvar MatchMedia = /*#__PURE__*/function () {\n function MatchMedia(scope) {\n this.contexts = [];\n this.scope = scope;\n }\n\n var _proto6 = MatchMedia.prototype;\n\n _proto6.add = function add(conditions, func, scope) {\n _isObject(conditions) || (conditions = {\n matches: conditions\n });\n var context = new Context(0, scope || this.scope),\n cond = context.conditions = {},\n mq,\n p,\n active;\n this.contexts.push(context);\n func = context.add(\"onMatch\", func);\n context.queries = conditions;\n\n for (p in conditions) {\n if (p === \"all\") {\n active = 1;\n } else {\n mq = _win.matchMedia(conditions[p]);\n\n if (mq) {\n _media.indexOf(context) < 0 && _media.push(context);\n (cond[p] = mq.matches) && (active = 1);\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n }\n }\n }\n\n active && func(context);\n return this;\n } // refresh() {\n // \tlet time = _lastMediaTime,\n // \t\tmedia = _media;\n // \t_lastMediaTime = -1;\n // \t_media = this.contexts;\n // \t_onMediaChange();\n // \t_lastMediaTime = time;\n // \t_media = media;\n // }\n ;\n\n _proto6.revert = function revert(config) {\n this.kill(config || {});\n };\n\n _proto6.kill = function kill(revert) {\n this.contexts.forEach(function (c) {\n return c.kill(revert, true);\n });\n };\n\n return MatchMedia;\n}();\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n quickTo: function quickTo(target, property, vars) {\n var _merge2;\n\n var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = \"+=0.1\", _merge2.paused = true, _merge2), vars || {})),\n func = function func(value, start, startIsRelative) {\n return tween.resetTo(property, value, start, startIsRelative);\n };\n\n func.tween = tween;\n return func;\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref3) {\n var name = _ref3.name,\n effect = _ref3.effect,\n plugins = _ref3.plugins,\n defaults = _ref3.defaults,\n extendTimeline = _ref3.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n context: function context(func, scope) {\n return func ? new Context(func, scope) : _context;\n },\n matchMedia: function matchMedia(scope) {\n return new MatchMedia(scope);\n },\n matchMediaRefresh: function matchMediaRefresh() {\n return _media.forEach(function (c) {\n var cond = c.conditions,\n found,\n p;\n\n for (p in cond) {\n if (cond[p]) {\n cond[p] = false;\n found = 1;\n }\n }\n\n found && c.revert();\n }) || _onMediaChange();\n },\n addEventListener: function addEventListener(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n },\n removeEventListener: function removeEventListener(type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n selector: selector,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n reverting: function reverting() {\n return _reverting;\n },\n context: function context(toAdd) {\n if (toAdd && _context) {\n _context.data.push(toAdd);\n\n toAdd._ctx = _context;\n }\n\n return _context;\n },\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt, v;\n this.tween = tween;\n\n for (p in vars) {\n v = target.getAttribute(p) || \"\";\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt.op = p;\n pt.b = v; // record the beginning value so we can revert()\n\n this._props.push(p);\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\n\n pt = pt._next;\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.11.5\";\n_coreReady = 1;\n_windowExists() && _wake();\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative };","/*!\n * CSSPlugin 3.11.5\n * https://greensock.com\n *\n * Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n\n var target = this.target,\n style = target.style;\n\n if (property in _transformProps) {\n this.tfm = this.tfm || {};\n\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = target._gsap.x ? target._gsap[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n\n if (target._gsap.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n\n property = _transformProp;\n }\n\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n},\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n},\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n }\n\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n\n i = _reverting();\n\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n},\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n });\n return saver;\n},\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://greensock.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a element and/or . We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a or ). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n if (property.substr(0, 2) === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://greensock.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://greensock.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n target.style[prop] = start;\n }\n\n a = [start, end];\n\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n\n _removeIndependentTransforms(style);\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://greensock.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin);\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y;\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n\n style.scale = style.rotate = style.translate = \"none\";\n }\n\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n inlineProps.push(\"visibility\", 0, style.visibility);\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*!\n * Observer 3.11.5\n * https://greensock.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _clamp,\n _win,\n _doc,\n _docEl,\n _body,\n _isTouch,\n _pointerType,\n ScrollTrigger,\n _root,\n _normalizer,\n _eventTypes,\n _context,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _startup = 1,\n _observers = [],\n _scrollers = [],\n _proxies = [],\n _getTime = Date.now,\n _bridge = function _bridge(name, value) {\n return value;\n},\n _integrate = function _integrate() {\n var core = ScrollTrigger.core,\n data = core.bridge || {},\n scrollers = core._scrollers,\n proxies = core._proxies;\n scrollers.push.apply(scrollers, _scrollers);\n proxies.push.apply(proxies, _proxies);\n _scrollers = scrollers;\n _proxies = proxies;\n\n _bridge = function _bridge(name, value) {\n return data[name](value);\n };\n},\n _getProxyProp = function _getProxyProp(element, property) {\n return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];\n},\n _isViewport = function _isViewport(el) {\n return !!~_root.indexOf(el);\n},\n _addListener = function _addListener(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n},\n _scrollLeft = \"scrollLeft\",\n _scrollTop = \"scrollTop\",\n _onScroll = function _onScroll() {\n return _normalizer && _normalizer.isPressed || _scrollers.cache++;\n},\n _scrollCacheFunc = function _scrollCacheFunc(f, doNotCache) {\n var cachingFunc = function cachingFunc(value) {\n // since reading the scrollTop/scrollLeft/pageOffsetY/pageOffsetX can trigger a layout, this function allows us to cache the value so it only gets read fresh after a \"scroll\" event fires (or while we're refreshing because that can lengthen the page and alter the scroll position). when \"soft\" is true, that means don't actually set the scroll, but cache the new value instead (useful in ScrollSmoother)\n if (value || value === 0) {\n _startup && (_win.history.scrollRestoration = \"manual\"); // otherwise the new position will get overwritten by the browser onload.\n\n var isNormalizing = _normalizer && _normalizer.isPressed;\n value = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); //TODO: iOS Bug: if you allow it to go to 0, Safari can start to report super strange (wildly inaccurate) touch positions!\n\n f(value);\n cachingFunc.cacheID = _scrollers.cache;\n isNormalizing && _bridge(\"ss\", value); // set scroll (notify ScrollTrigger so it can dispatch a \"scrollStart\" event if necessary\n } else if (doNotCache || _scrollers.cache !== cachingFunc.cacheID || _bridge(\"ref\")) {\n cachingFunc.cacheID = _scrollers.cache;\n cachingFunc.v = f();\n }\n\n return cachingFunc.v + cachingFunc.offset;\n };\n\n cachingFunc.offset = 0;\n return f && cachingFunc;\n},\n _horizontal = {\n s: _scrollLeft,\n p: \"left\",\n p2: \"Left\",\n os: \"right\",\n os2: \"Right\",\n d: \"width\",\n d2: \"Width\",\n a: \"x\",\n sc: _scrollCacheFunc(function (value) {\n return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;\n })\n},\n _vertical = {\n s: _scrollTop,\n p: \"top\",\n p2: \"Top\",\n os: \"bottom\",\n os2: \"Bottom\",\n d: \"height\",\n d2: \"Height\",\n a: \"y\",\n op: _horizontal,\n sc: _scrollCacheFunc(function (value) {\n return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;\n })\n},\n _getTarget = function _getTarget(t) {\n return gsap.utils.toArray(t)[0] || (typeof t === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t) : null);\n},\n _getScrollFunc = function _getScrollFunc(element, _ref) {\n var s = _ref.s,\n sc = _ref.sc;\n // we store the scroller functions in an alternating sequenced Array like [element, verticalScrollFunc, horizontalScrollFunc, ...] so that we can minimize memory, maximize performance, and we also record the last position as a \".rec\" property in order to revert to that after refreshing to ensure things don't shift around.\n _isViewport(element) && (element = _doc.scrollingElement || _docEl);\n\n var i = _scrollers.indexOf(element),\n offset = sc === _vertical.sc ? 1 : 2;\n\n !~i && (i = _scrollers.push(element) - 1);\n _scrollers[i + offset] || element.addEventListener(\"scroll\", _onScroll); // clear the cache when a scroll occurs\n\n var prev = _scrollers[i + offset],\n func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function (value) {\n return arguments.length ? element[s] = value : element[s];\n })));\n func.target = element;\n prev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\"); // only set it the first time (don't reset every time a scrollFunc is requested because perhaps it happens during a refresh() when it's disabled in ScrollTrigger.\n\n return func;\n},\n _getVelocityProp = function _getVelocityProp(value, minTimeRefresh, useDelta) {\n var v1 = value,\n v2 = value,\n t1 = _getTime(),\n t2 = t1,\n min = minTimeRefresh || 50,\n dropToZeroTime = Math.max(500, min * 3),\n update = function update(value, force) {\n var t = _getTime();\n\n if (force || t - t1 > min) {\n v2 = v1;\n v1 = value;\n t2 = t1;\n t1 = t;\n } else if (useDelta) {\n v1 += value;\n } else {\n // not totally necessary, but makes it a bit more accurate by adjusting the v1 value according to the new slope. This way we're not just ignoring the incoming data. Removing for now because it doesn't seem to make much practical difference and it's probably not worth the kb.\n v1 = v2 + (value - v2) / (t - t2) * (t1 - t2);\n }\n },\n reset = function reset() {\n v2 = v1 = useDelta ? 0 : v1;\n t2 = t1 = 0;\n },\n getVelocity = function getVelocity(latestValue) {\n var tOld = t2,\n vOld = v2,\n t = _getTime();\n\n (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000;\n };\n\n return {\n update: update,\n reset: reset,\n getVelocity: getVelocity\n };\n},\n _getEvent = function _getEvent(e, preventDefault) {\n preventDefault && !e._gsapAllow && e.preventDefault();\n return e.changedTouches ? e.changedTouches[0] : e;\n},\n _getAbsoluteMax = function _getAbsoluteMax(a) {\n var max = Math.max.apply(Math, a),\n min = Math.min.apply(Math, a);\n return Math.abs(max) >= Math.abs(min) ? max : min;\n},\n _setScrollTrigger = function _setScrollTrigger() {\n ScrollTrigger = gsap.core.globals().ScrollTrigger;\n ScrollTrigger && ScrollTrigger.core && _integrate();\n},\n _initCore = function _initCore(core) {\n gsap = core || _getGSAP();\n\n if (gsap && typeof document !== \"undefined\" && document.body) {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n _root = [_win, _doc, _docEl, _body];\n _clamp = gsap.utils.clamp;\n\n _context = gsap.core.context || function () {};\n\n _pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\"; // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : \"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;\n _eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n setTimeout(function () {\n return _startup = 0;\n }, 500);\n\n _setScrollTrigger();\n\n _coreInitted = 1;\n }\n\n return _coreInitted;\n};\n\n_horizontal.op = _vertical;\n_scrollers.cache = 0;\nexport var Observer = /*#__PURE__*/function () {\n function Observer(vars) {\n this.init(vars);\n }\n\n var _proto = Observer.prototype;\n\n _proto.init = function init(vars) {\n _coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n ScrollTrigger || _setScrollTrigger();\n var tolerance = vars.tolerance,\n dragMinimum = vars.dragMinimum,\n type = vars.type,\n target = vars.target,\n lineHeight = vars.lineHeight,\n debounce = vars.debounce,\n preventDefault = vars.preventDefault,\n onStop = vars.onStop,\n onStopDelay = vars.onStopDelay,\n ignore = vars.ignore,\n wheelSpeed = vars.wheelSpeed,\n event = vars.event,\n onDragStart = vars.onDragStart,\n onDragEnd = vars.onDragEnd,\n onDrag = vars.onDrag,\n onPress = vars.onPress,\n onRelease = vars.onRelease,\n onRight = vars.onRight,\n onLeft = vars.onLeft,\n onUp = vars.onUp,\n onDown = vars.onDown,\n onChangeX = vars.onChangeX,\n onChangeY = vars.onChangeY,\n onChange = vars.onChange,\n onToggleX = vars.onToggleX,\n onToggleY = vars.onToggleY,\n onHover = vars.onHover,\n onHoverEnd = vars.onHoverEnd,\n onMove = vars.onMove,\n ignoreCheck = vars.ignoreCheck,\n isNormalizer = vars.isNormalizer,\n onGestureStart = vars.onGestureStart,\n onGestureEnd = vars.onGestureEnd,\n onWheel = vars.onWheel,\n onEnable = vars.onEnable,\n onDisable = vars.onDisable,\n onClick = vars.onClick,\n scrollSpeed = vars.scrollSpeed,\n capture = vars.capture,\n allowClicks = vars.allowClicks,\n lockAxis = vars.lockAxis,\n onLockAxis = vars.onLockAxis;\n this.target = target = _getTarget(target) || _docEl;\n this.vars = vars;\n ignore && (ignore = gsap.utils.toArray(ignore));\n tolerance = tolerance || 1e-9;\n dragMinimum = dragMinimum || 0;\n wheelSpeed = wheelSpeed || 1;\n scrollSpeed = scrollSpeed || 1;\n type = type || \"wheel,touch,pointer\";\n debounce = debounce !== false;\n lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report \"normal\", so default to 22.\n\n var id,\n onStopDelayedCall,\n dragged,\n moved,\n wheeled,\n locked,\n axis,\n self = this,\n prevDeltaX = 0,\n prevDeltaY = 0,\n scrollFuncX = _getScrollFunc(target, _horizontal),\n scrollFuncY = _getScrollFunc(target, _vertical),\n scrollX = scrollFuncX(),\n scrollY = scrollFuncY(),\n limitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\",\n // for devices that accommodate mouse events and touch events, we need to distinguish.\n isViewport = _isViewport(target),\n ownerDoc = target.ownerDocument || _doc,\n deltaX = [0, 0, 0],\n // wheel, scroll, pointer/touch\n deltaY = [0, 0, 0],\n onClickTime = 0,\n clickCapture = function clickCapture() {\n return onClickTime = _getTime();\n },\n _ignoreCheck = function _ignoreCheck(e, isPointerOrTouch) {\n return (self.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);\n },\n onStopFunc = function onStopFunc() {\n self._vx.reset();\n\n self._vy.reset();\n\n onStopDelayedCall.pause();\n onStop && onStop(self);\n },\n update = function update() {\n var dx = self.deltaX = _getAbsoluteMax(deltaX),\n dy = self.deltaY = _getAbsoluteMax(deltaY),\n changedX = Math.abs(dx) >= tolerance,\n changedY = Math.abs(dy) >= tolerance;\n\n onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out.\n\n if (changedX) {\n onRight && self.deltaX > 0 && onRight(self);\n onLeft && self.deltaX < 0 && onLeft(self);\n onChangeX && onChangeX(self);\n onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self);\n prevDeltaX = self.deltaX;\n deltaX[0] = deltaX[1] = deltaX[2] = 0;\n }\n\n if (changedY) {\n onDown && self.deltaY > 0 && onDown(self);\n onUp && self.deltaY < 0 && onUp(self);\n onChangeY && onChangeY(self);\n onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self);\n prevDeltaY = self.deltaY;\n deltaY[0] = deltaY[1] = deltaY[2] = 0;\n }\n\n if (moved || dragged) {\n onMove && onMove(self);\n\n if (dragged) {\n onDrag(self);\n dragged = false;\n }\n\n moved = false;\n }\n\n locked && !(locked = false) && onLockAxis && onLockAxis(self);\n\n if (wheeled) {\n onWheel(self);\n wheeled = false;\n }\n\n id = 0;\n },\n onDelta = function onDelta(x, y, index) {\n deltaX[index] += x;\n deltaY[index] += y;\n\n self._vx.update(x);\n\n self._vy.update(y);\n\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n },\n onTouchOrPointerDelta = function onTouchOrPointerDelta(x, y) {\n if (lockAxis && !axis) {\n self.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n locked = true;\n }\n\n if (axis !== \"y\") {\n deltaX[2] += x;\n\n self._vx.update(x, true); // update the velocity as frequently as possible instead of in the debounced function so that very quick touch-scrolls (flicks) feel natural. If it's the mouse/touch/pointer, force it so that we get snappy/accurate momentum scroll.\n\n }\n\n if (axis !== \"x\") {\n deltaY[2] += y;\n\n self._vy.update(y, true);\n }\n\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n },\n _onDrag = function _onDrag(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n\n e = _getEvent(e, preventDefault);\n var x = e.clientX,\n y = e.clientY,\n dx = x - self.x,\n dy = y - self.y,\n isDragging = self.isDragging;\n self.x = x;\n self.y = y;\n\n if (isDragging || Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum) {\n onDrag && (dragged = true);\n isDragging || (self.isDragging = true);\n onTouchOrPointerDelta(dx, dy);\n isDragging || onDragStart && onDragStart(self);\n }\n },\n _onPress = self.onPress = function (e) {\n if (_ignoreCheck(e, 1) || e && e.button) {\n return;\n }\n\n self.axis = axis = null;\n onStopDelayedCall.pause();\n self.isPressed = true;\n e = _getEvent(e); // note: may need to preventDefault(?) Won't side-scroll on iOS Safari if we do, though.\n\n prevDeltaX = prevDeltaY = 0;\n self.startX = self.x = e.clientX;\n self.startY = self.y = e.clientY;\n\n self._vx.reset(); // otherwise the t2 may be stale if the user touches and flicks super fast and releases in less than 2 requestAnimationFrame ticks, causing velocity to be 0.\n\n\n self._vy.reset();\n\n _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, preventDefault, true);\n\n self.deltaX = self.deltaY = 0;\n onPress && onPress(self);\n },\n _onRelease = self.onRelease = function (e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n\n var isTrackingDrag = !isNaN(self.y - self.startY),\n wasDragging = self.isDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3),\n // some touch devices need some wiggle room in terms of sensing clicks - the finger may move a few pixels.\n eventData = _getEvent(e);\n\n if (!wasDragging && isTrackingDrag) {\n self._vx.reset();\n\n self._vy.reset();\n\n if (preventDefault && allowClicks) {\n gsap.delayedCall(0.08, function () {\n // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular \"click\" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the \"real\"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the \"real\" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched.\n if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n if (e.target.click) {\n //some browsers (like mobile Safari) don't properly trigger the click event\n e.target.click();\n } else if (ownerDoc.createEvent) {\n var syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n e.target.dispatchEvent(syntheticEvent);\n }\n }\n });\n }\n }\n\n self.isDragging = self.isGesturing = self.isPressed = false;\n onStop && !isNormalizer && onStopDelayedCall.restart(true);\n onDragEnd && wasDragging && onDragEnd(self);\n onRelease && onRelease(self, wasDragging);\n },\n _onGestureStart = function _onGestureStart(e) {\n return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging);\n },\n _onGestureEnd = function _onGestureEnd() {\n return (self.isGesturing = false) || onGestureEnd(self);\n },\n onScroll = function onScroll(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n var x = scrollFuncX(),\n y = scrollFuncY();\n onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n scrollX = x;\n scrollY = y;\n onStop && onStopDelayedCall.restart(true);\n },\n _onWheel = function _onWheel(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n e = _getEvent(e, preventDefault);\n onWheel && (wheeled = true);\n var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n onStop && !isNormalizer && onStopDelayedCall.restart(true);\n },\n _onMove = function _onMove(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n var x = e.clientX,\n y = e.clientY,\n dx = x - self.x,\n dy = y - self.y;\n self.x = x;\n self.y = y;\n moved = true;\n (dx || dy) && onTouchOrPointerDelta(dx, dy);\n },\n _onHover = function _onHover(e) {\n self.event = e;\n onHover(self);\n },\n _onHoverEnd = function _onHoverEnd(e) {\n self.event = e;\n onHoverEnd(self);\n },\n _onClick = function _onClick(e) {\n return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self);\n };\n\n onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n self.deltaX = self.deltaY = 0;\n self._vx = _getVelocityProp(0, 50, true);\n self._vy = _getVelocityProp(0, 50, true);\n self.scrollX = scrollFuncX;\n self.scrollY = scrollFuncY;\n self.isDragging = self.isGesturing = self.isPressed = false;\n\n _context(this);\n\n self.enable = function (e) {\n if (!self.isEnabled) {\n _addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\n type.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, preventDefault, capture);\n type.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, preventDefault, capture);\n\n if (type.indexOf(\"touch\") >= 0 && _isTouch || type.indexOf(\"pointer\") >= 0) {\n _addListener(target, _eventTypes[0], _onPress, preventDefault, capture);\n\n _addListener(ownerDoc, _eventTypes[2], _onRelease);\n\n _addListener(ownerDoc, _eventTypes[3], _onRelease);\n\n allowClicks && _addListener(target, \"click\", clickCapture, false, true);\n onClick && _addListener(target, \"click\", _onClick);\n onGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n onGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n onHover && _addListener(target, _pointerType + \"enter\", _onHover);\n onHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n onMove && _addListener(target, _pointerType + \"move\", _onMove);\n }\n\n self.isEnabled = true;\n e && e.type && _onPress(e);\n onEnable && onEnable(self);\n }\n\n return self;\n };\n\n self.disable = function () {\n if (self.isEnabled) {\n // only remove the _onScroll listener if there aren't any others that rely on the functionality.\n _observers.filter(function (o) {\n return o !== self && _isViewport(o.target);\n }).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\n if (self.isPressed) {\n self._vx.reset();\n\n self._vy.reset();\n\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n }\n\n _removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n\n _removeListener(target, \"wheel\", _onWheel, capture);\n\n _removeListener(target, _eventTypes[0], _onPress, capture);\n\n _removeListener(ownerDoc, _eventTypes[2], _onRelease);\n\n _removeListener(ownerDoc, _eventTypes[3], _onRelease);\n\n _removeListener(target, \"click\", clickCapture, true);\n\n _removeListener(target, \"click\", _onClick);\n\n _removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n\n _removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n\n _removeListener(target, _pointerType + \"enter\", _onHover);\n\n _removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n\n _removeListener(target, _pointerType + \"move\", _onMove);\n\n self.isEnabled = self.isPressed = self.isDragging = false;\n onDisable && onDisable(self);\n }\n };\n\n self.kill = self.revert = function () {\n self.disable();\n\n var i = _observers.indexOf(self);\n\n i >= 0 && _observers.splice(i, 1);\n _normalizer === self && (_normalizer = 0);\n };\n\n _observers.push(self);\n\n isNormalizer && _isViewport(target) && (_normalizer = self);\n self.enable(event);\n };\n\n _createClass(Observer, [{\n key: \"velocityX\",\n get: function get() {\n return this._vx.getVelocity();\n }\n }, {\n key: \"velocityY\",\n get: function get() {\n return this._vy.getVelocity();\n }\n }]);\n\n return Observer;\n}();\nObserver.version = \"3.11.5\";\n\nObserver.create = function (vars) {\n return new Observer(vars);\n};\n\nObserver.register = _initCore;\n\nObserver.getAll = function () {\n return _observers.slice();\n};\n\nObserver.getById = function (id) {\n return _observers.filter(function (o) {\n return o.vars.id === id;\n })[0];\n};\n\n_getGSAP() && gsap.registerPlugin(Observer);\nexport { Observer as default, _isViewport, _scrollers, _getScrollFunc, _getProxyProp, _proxies, _getVelocityProp, _vertical, _horizontal, _getTarget };","/*!\n * ScrollTrigger 3.11.5\n * https://greensock.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { Observer, _getTarget, _vertical, _horizontal, _scrollers, _proxies, _getScrollFunc, _getProxyProp, _getVelocityProp } from \"./Observer.js\";\n\nvar gsap,\n _coreInitted,\n _win,\n _doc,\n _docEl,\n _body,\n _root,\n _resizeDelay,\n _toArray,\n _clamp,\n _time2,\n _syncInterval,\n _refreshing,\n _pointerIsDown,\n _transformProp,\n _i,\n _prevWidth,\n _prevHeight,\n _autoRefresh,\n _sort,\n _suppressOverwrites,\n _ignoreResize,\n _normalizer,\n _ignoreMobileResize,\n _baseScreenHeight,\n _baseScreenWidth,\n _fixIOSBug,\n _context,\n _scrollRestoration,\n _limitCallbacks,\n // if true, we'll only trigger callbacks if the active state toggles, so if you scroll immediately past both the start and end positions of a ScrollTrigger (thus inactive to inactive), neither its onEnter nor onLeave will be called. This is useful during startup.\n_startup = 1,\n _getTime = Date.now,\n _time1 = _getTime(),\n _lastScrollTime = 0,\n _enabled = 0,\n _rafBugFix = function _rafBugFix() {\n return _enabled && requestAnimationFrame(_rafBugFix);\n},\n // in some browsers (like Firefox), screen repaints weren't consistent unless we had SOMETHING queued up in requestAnimationFrame()! So this just creates a super simple loop to keep it alive and smooth out repaints.\n_pointerDownHandler = function _pointerDownHandler() {\n return _pointerIsDown = 1;\n},\n _pointerUpHandler = function _pointerUpHandler() {\n return _pointerIsDown = 0;\n},\n _passThrough = function _passThrough(v) {\n return v;\n},\n _round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isViewport = function _isViewport(e) {\n return !!~_root.indexOf(e);\n},\n _getBoundsFunc = function _getBoundsFunc(element) {\n return _getProxyProp(element, \"getBoundingClientRect\") || (_isViewport(element) ? function () {\n _winOffsets.width = _win.innerWidth;\n _winOffsets.height = _win.innerHeight;\n return _winOffsets;\n } : function () {\n return _getBounds(element);\n });\n},\n _getSizeFunc = function _getSizeFunc(scroller, isViewport, _ref) {\n var d = _ref.d,\n d2 = _ref.d2,\n a = _ref.a;\n return (a = _getProxyProp(scroller, \"getBoundingClientRect\")) ? function () {\n return a()[d];\n } : function () {\n return (isViewport ? _win[\"inner\" + d2] : scroller[\"client\" + d2]) || 0;\n };\n},\n _getOffsetsFunc = function _getOffsetsFunc(element, isViewport) {\n return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function () {\n return _winOffsets;\n };\n},\n _maxScroll = function _maxScroll(element, _ref2) {\n var s = _ref2.s,\n d2 = _ref2.d2,\n d = _ref2.d,\n a = _ref2.a;\n return Math.max(0, (s = \"scroll\" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport(element) ? (_docEl[s] || _body[s]) - (_win[\"inner\" + d2] || _docEl[\"client\" + d2] || _body[\"client\" + d2]) : element[s] - element[\"offset\" + d2]);\n},\n _iterateAutoRefresh = function _iterateAutoRefresh(func, events) {\n for (var i = 0; i < _autoRefresh.length; i += 3) {\n (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]);\n }\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _callIfFunc = function _callIfFunc(value) {\n return _isFunction(value) && value();\n},\n _combineFunc = function _combineFunc(f1, f2) {\n return function () {\n var result1 = _callIfFunc(f1),\n result2 = _callIfFunc(f2);\n\n return function () {\n _callIfFunc(result1);\n\n _callIfFunc(result2);\n };\n };\n},\n _endAnimation = function _endAnimation(animation, reversed, pause) {\n return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();\n},\n _callback = function _callback(self, func) {\n if (self.enabled) {\n var result = func(self);\n result && result.totalTime && (self.callbackAnimation = result);\n }\n},\n _abs = Math.abs,\n _scrollLeft = \"scrollLeft\",\n _scrollTop = \"scrollTop\",\n _left = \"left\",\n _top = \"top\",\n _right = \"right\",\n _bottom = \"bottom\",\n _width = \"width\",\n _height = \"height\",\n _Right = \"Right\",\n _Left = \"Left\",\n _Top = \"Top\",\n _Bottom = \"Bottom\",\n _padding = \"padding\",\n _margin = \"margin\",\n _Width = \"Width\",\n _Height = \"Height\",\n _px = \"px\",\n _getComputedStyle = function _getComputedStyle(element) {\n return _win.getComputedStyle(element);\n},\n _makePositionable = function _makePositionable(element) {\n // if the element already has position: absolute or fixed, leave that, otherwise make it position: relative\n var position = _getComputedStyle(element).position;\n\n element.style.position = position === \"absolute\" || position === \"fixed\" ? position : \"relative\";\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _getBounds = function _getBounds(element, withoutTransforms) {\n var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== \"matrix(1, 0, 0, 1, 0, 0)\" && gsap.to(element, {\n x: 0,\n y: 0,\n xPercent: 0,\n yPercent: 0,\n rotation: 0,\n rotationX: 0,\n rotationY: 0,\n scale: 1,\n skewX: 0,\n skewY: 0\n }).progress(1),\n bounds = element.getBoundingClientRect();\n tween && tween.progress(0).kill();\n return bounds;\n},\n _getSize = function _getSize(element, _ref3) {\n var d2 = _ref3.d2;\n return element[\"offset\" + d2] || element[\"client\" + d2] || 0;\n},\n _getLabelRatioArray = function _getLabelRatioArray(timeline) {\n var a = [],\n labels = timeline.labels,\n duration = timeline.duration(),\n p;\n\n for (p in labels) {\n a.push(labels[p] / duration);\n }\n\n return a;\n},\n _getClosestLabel = function _getClosestLabel(animation) {\n return function (value) {\n return gsap.utils.snap(_getLabelRatioArray(animation), value);\n };\n},\n _snapDirectional = function _snapDirectional(snapIncrementOrArray) {\n var snap = gsap.utils.snap(snapIncrementOrArray),\n a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function (a, b) {\n return a - b;\n });\n return a ? function (value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n\n var i;\n\n if (!direction) {\n return snap(value);\n }\n\n if (direction > 0) {\n value -= threshold; // to avoid rounding errors. If we're too strict, it might snap forward, then immediately again, and again.\n\n for (i = 0; i < a.length; i++) {\n if (a[i] >= value) {\n return a[i];\n }\n }\n\n return a[i - 1];\n } else {\n i = a.length;\n value += threshold;\n\n while (i--) {\n if (a[i] <= value) {\n return a[i];\n }\n }\n }\n\n return a[0];\n } : function (value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n\n var snapped = snap(value);\n return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);\n };\n},\n _getLabelAtDirection = function _getLabelAtDirection(timeline) {\n return function (value, st) {\n return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction);\n };\n},\n _multiListener = function _multiListener(func, element, types, callback) {\n return types.split(\",\").forEach(function (type) {\n return func(element, type, callback);\n });\n},\n _addListener = function _addListener(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n},\n _wheelListener = function _wheelListener(func, el, scrollFunc) {\n scrollFunc = scrollFunc && scrollFunc.wheelHandler;\n\n if (scrollFunc) {\n func(el, \"wheel\", scrollFunc);\n func(el, \"touchmove\", scrollFunc);\n }\n},\n _markerDefaults = {\n startColor: \"green\",\n endColor: \"red\",\n indent: 0,\n fontSize: \"16px\",\n fontWeight: \"normal\"\n},\n _defaults = {\n toggleActions: \"play\",\n anticipatePin: 0\n},\n _keywords = {\n top: 0,\n left: 0,\n center: 0.5,\n bottom: 1,\n right: 1\n},\n _offsetToPx = function _offsetToPx(value, size) {\n if (_isString(value)) {\n var eqIndex = value.indexOf(\"=\"),\n relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;\n\n if (~eqIndex) {\n value.indexOf(\"%\") > eqIndex && (relative *= size / 100);\n value = value.substr(0, eqIndex - 1);\n }\n\n value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf(\"%\") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);\n }\n\n return value;\n},\n _createMarker = function _createMarker(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {\n var startColor = _ref4.startColor,\n endColor = _ref4.endColor,\n fontSize = _ref4.fontSize,\n indent = _ref4.indent,\n fontWeight = _ref4.fontWeight;\n\n var e = _doc.createElement(\"div\"),\n useFixedPosition = _isViewport(container) || _getProxyProp(container, \"pinType\") === \"fixed\",\n isScroller = type.indexOf(\"scroller\") !== -1,\n parent = useFixedPosition ? _body : container,\n isStart = type.indexOf(\"start\") !== -1,\n color = isStart ? startColor : endColor,\n css = \"border-color:\" + color + \";font-size:\" + fontSize + \";color:\" + color + \";font-weight:\" + fontWeight + \";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;\";\n\n css += \"position:\" + ((isScroller || containerAnimation) && useFixedPosition ? \"fixed;\" : \"absolute;\");\n (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + \":\" + (offset + parseFloat(indent)) + \"px;\");\n matchWidthEl && (css += \"box-sizing:border-box;text-align:left;width:\" + matchWidthEl.offsetWidth + \"px;\");\n e._isStart = isStart;\n e.setAttribute(\"class\", \"gsap-marker-\" + type + (name ? \" marker-\" + name : \"\"));\n e.style.cssText = css;\n e.innerText = name || name === 0 ? type + \"-\" + name : type;\n parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e);\n e._offset = e[\"offset\" + direction.op.d2];\n\n _positionMarker(e, 0, direction, isStart);\n\n return e;\n},\n _positionMarker = function _positionMarker(marker, start, direction, flipped) {\n var vars = {\n display: \"block\"\n },\n side = direction[flipped ? \"os2\" : \"p2\"],\n oppositeSide = direction[flipped ? \"p2\" : \"os2\"];\n marker._isFlipped = flipped;\n vars[direction.a + \"Percent\"] = flipped ? -100 : 0;\n vars[direction.a] = flipped ? \"1px\" : 0;\n vars[\"border\" + side + _Width] = 1;\n vars[\"border\" + oppositeSide + _Width] = 0;\n vars[direction.p] = start + \"px\";\n gsap.set(marker, vars);\n},\n _triggers = [],\n _ids = {},\n _rafID,\n _sync = function _sync() {\n return _getTime() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));\n},\n _onScroll = function _onScroll() {\n // previously, we tried to optimize performance by batching/deferring to the next requestAnimationFrame(), but discovered that Safari has a few bugs that make this unworkable (especially on iOS). See https://codepen.io/GreenSock/pen/16c435b12ef09c38125204818e7b45fc?editors=0010 and https://codepen.io/GreenSock/pen/JjOxYpQ/3dd65ccec5a60f1d862c355d84d14562?editors=0010 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503?editors=0010\n if (!_normalizer || !_normalizer.isPressed || _normalizer.startX > _body.clientWidth) {\n // if the user is dragging the scrollbar, allow it.\n _scrollers.cache++;\n\n if (_normalizer) {\n _rafID || (_rafID = requestAnimationFrame(_updateAll));\n } else {\n _updateAll(); // Safari in particular (on desktop) NEEDS the immediate update rather than waiting for a requestAnimationFrame() whereas iOS seems to benefit from waiting for the requestAnimationFrame() tick, at least when normalizing. See https://codepen.io/GreenSock/pen/qBYozqO?editors=0110\n\n }\n\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime();\n }\n},\n _setBaseDimensions = function _setBaseDimensions() {\n _baseScreenWidth = _win.innerWidth;\n _baseScreenHeight = _win.innerHeight;\n},\n _onResize = function _onResize() {\n _scrollers.cache++;\n !_refreshing && !_ignoreResize && !_doc.fullscreenElement && !_doc.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win.innerWidth || Math.abs(_win.innerHeight - _baseScreenHeight) > _win.innerHeight * 0.25) && _resizeDelay.restart(true);\n},\n // ignore resizes triggered by refresh()\n_listeners = {},\n _emptyArray = [],\n _softRefresh = function _softRefresh() {\n return _removeListener(ScrollTrigger, \"scrollEnd\", _softRefresh) || _refreshAll(true);\n},\n _dispatch = function _dispatch(type) {\n return _listeners[type] && _listeners[type].map(function (f) {\n return f();\n }) || _emptyArray;\n},\n _savedStyles = [],\n // when ScrollTrigger.saveStyles() is called, the inline styles are recorded in this Array in a sequential format like [element, cssText, gsCache, media]. This keeps it very memory-efficient and fast to iterate through.\n_revertRecorded = function _revertRecorded(media) {\n for (var i = 0; i < _savedStyles.length; i += 5) {\n if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) {\n _savedStyles[i].style.cssText = _savedStyles[i + 1];\n _savedStyles[i].getBBox && _savedStyles[i].setAttribute(\"transform\", _savedStyles[i + 2] || \"\");\n _savedStyles[i + 3].uncache = 1;\n }\n }\n},\n _revertAll = function _revertAll(kill, media) {\n var trigger;\n\n for (_i = 0; _i < _triggers.length; _i++) {\n trigger = _triggers[_i];\n\n if (trigger && (!media || trigger._ctx === media)) {\n if (kill) {\n trigger.kill(1);\n } else {\n trigger.revert(true, true);\n }\n }\n }\n\n media && _revertRecorded(media);\n media || _dispatch(\"revert\");\n},\n _clearScrollMemory = function _clearScrollMemory(scrollRestoration, force) {\n // zero-out all the recorded scroll positions. Don't use _triggers because if, for example, .matchMedia() is used to create some ScrollTriggers and then the user resizes and it removes ALL ScrollTriggers, and then go back to a size where there are ScrollTriggers, it would have kept the position(s) saved from the initial state.\n _scrollers.cache++;\n (force || !_refreshingAll) && _scrollers.forEach(function (obj) {\n return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0);\n });\n _isString(scrollRestoration) && (_win.history.scrollRestoration = _scrollRestoration = scrollRestoration);\n},\n _refreshingAll,\n _refreshID = 0,\n _queueRefreshID,\n _queueRefreshAll = function _queueRefreshAll() {\n // we don't want to call _refreshAll() every time we create a new ScrollTrigger (for performance reasons) - it's better to batch them. Some frameworks dynamically load content and we can't rely on the window's \"load\" or \"DOMContentLoaded\" events to trigger it.\n if (_queueRefreshID !== _refreshID) {\n var id = _queueRefreshID = _refreshID;\n requestAnimationFrame(function () {\n return id === _refreshID && _refreshAll(true);\n });\n }\n},\n _refreshAll = function _refreshAll(force, skipRevert) {\n if (_lastScrollTime && !force) {\n _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\n return;\n }\n\n _refreshingAll = ScrollTrigger.isRefreshing = true;\n\n _scrollers.forEach(function (obj) {\n return _isFunction(obj) && obj.cacheID++ && (obj.rec = obj());\n }); // force the clearing of the cache because some browsers take a little while to dispatch the \"scroll\" event and the user may have changed the scroll position and then called ScrollTrigger.refresh() right away\n\n\n var refreshInits = _dispatch(\"refreshInit\");\n\n _sort && ScrollTrigger.sort();\n skipRevert || _revertAll();\n\n _scrollers.forEach(function (obj) {\n if (_isFunction(obj)) {\n obj.smooth && (obj.target.style.scrollBehavior = \"auto\"); // smooth scrolling interferes\n\n obj(0);\n }\n });\n\n _triggers.slice(0).forEach(function (t) {\n return t.refresh();\n }); // don't loop with _i because during a refresh() someone could call ScrollTrigger.update() which would iterate through _i resulting in a skip.\n\n\n _triggers.forEach(function (t, i) {\n // nested pins (pinnedContainer) with pinSpacing may expand the container, so we must accommodate that here.\n if (t._subPinOffset && t.pin) {\n var prop = t.vars.horizontal ? \"offsetWidth\" : \"offsetHeight\",\n original = t.pin[prop];\n t.revert(true, 1);\n t.adjustPinSpacing(t.pin[prop] - original);\n t.refresh();\n }\n });\n\n _triggers.forEach(function (t) {\n return t.vars.end === \"max\" && t.setPositions(t.start, Math.max(t.start + 1, _maxScroll(t.scroller, t._dir)));\n }); // the scroller's max scroll position may change after all the ScrollTriggers refreshed (like pinning could push it down), so we need to loop back and correct any with end: \"max\".\n\n\n refreshInits.forEach(function (result) {\n return result && result.render && result.render(-1);\n }); // if the onRefreshInit() returns an animation (typically a gsap.set()), revert it. This makes it easy to put things in a certain spot before refreshing for measurement purposes, and then put things back.\n\n _scrollers.forEach(function (obj) {\n if (_isFunction(obj)) {\n obj.smooth && requestAnimationFrame(function () {\n return obj.target.style.scrollBehavior = \"smooth\";\n });\n obj.rec && obj(obj.rec);\n }\n });\n\n _clearScrollMemory(_scrollRestoration, 1);\n\n _resizeDelay.pause();\n\n _refreshID++;\n _refreshingAll = 2;\n\n _updateAll(2);\n\n _triggers.forEach(function (t) {\n return _isFunction(t.vars.onRefresh) && t.vars.onRefresh(t);\n });\n\n _refreshingAll = ScrollTrigger.isRefreshing = false;\n\n _dispatch(\"refresh\");\n},\n _lastScroll = 0,\n _direction = 1,\n _primary,\n _updateAll = function _updateAll(force) {\n if (!_refreshingAll || force === 2) {\n ScrollTrigger.isUpdating = true;\n _primary && _primary.update(0); // ScrollSmoother uses refreshPriority -9999 to become the primary that gets updated before all others because it affects the scroll position.\n\n var l = _triggers.length,\n time = _getTime(),\n recordVelocity = time - _time1 >= 50,\n scroll = l && _triggers[0].scroll();\n\n _direction = _lastScroll > scroll ? -1 : 1;\n _refreshingAll || (_lastScroll = scroll);\n\n if (recordVelocity) {\n if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {\n _lastScrollTime = 0;\n\n _dispatch(\"scrollEnd\");\n }\n\n _time2 = _time1;\n _time1 = time;\n }\n\n if (_direction < 0) {\n _i = l;\n\n while (_i-- > 0) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n\n _direction = 1;\n } else {\n for (_i = 0; _i < l; _i++) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n }\n\n ScrollTrigger.isUpdating = false;\n }\n\n _rafID = 0;\n},\n _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, \"display\", \"flexShrink\", \"float\", \"zIndex\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"gridArea\", \"justifySelf\", \"alignSelf\", \"placeSelf\", \"order\"],\n _stateProps = _propNamesToCopy.concat([_width, _height, \"boxSizing\", \"max\" + _Width, \"max\" + _Height, \"position\", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]),\n _swapPinOut = function _swapPinOut(pin, spacer, state) {\n _setState(state);\n\n var cache = pin._gsap;\n\n if (cache.spacerIsNative) {\n _setState(cache.spacerState);\n } else if (pin._gsap.swappedIn) {\n var parent = spacer.parentNode;\n\n if (parent) {\n parent.insertBefore(pin, spacer);\n parent.removeChild(spacer);\n }\n }\n\n pin._gsap.swappedIn = false;\n},\n _swapPinIn = function _swapPinIn(pin, spacer, cs, spacerState) {\n if (!pin._gsap.swappedIn) {\n var i = _propNamesToCopy.length,\n spacerStyle = spacer.style,\n pinStyle = pin.style,\n p;\n\n while (i--) {\n p = _propNamesToCopy[i];\n spacerStyle[p] = cs[p];\n }\n\n spacerStyle.position = cs.position === \"absolute\" ? \"absolute\" : \"relative\";\n cs.display === \"inline\" && (spacerStyle.display = \"inline-block\");\n pinStyle[_bottom] = pinStyle[_right] = \"auto\";\n spacerStyle.flexBasis = cs.flexBasis || \"auto\";\n spacerStyle.overflow = \"visible\";\n spacerStyle.boxSizing = \"border-box\";\n spacerStyle[_width] = _getSize(pin, _horizontal) + _px;\n spacerStyle[_height] = _getSize(pin, _vertical) + _px;\n spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = \"0\";\n\n _setState(spacerState);\n\n pinStyle[_width] = pinStyle[\"max\" + _Width] = cs[_width];\n pinStyle[_height] = pinStyle[\"max\" + _Height] = cs[_height];\n pinStyle[_padding] = cs[_padding];\n\n if (pin.parentNode !== spacer) {\n pin.parentNode.insertBefore(spacer, pin);\n spacer.appendChild(pin);\n }\n\n pin._gsap.swappedIn = true;\n }\n},\n _capsExp = /([A-Z])/g,\n _setState = function _setState(state) {\n if (state) {\n var style = state.t.style,\n l = state.length,\n i = 0,\n p,\n value;\n (state.t._gsap || gsap.core.getCache(state.t)).uncache = 1; // otherwise transforms may be off\n\n for (; i < l; i += 2) {\n value = state[i + 1];\n p = state[i];\n\n if (value) {\n style[p] = value;\n } else if (style[p]) {\n style.removeProperty(p.replace(_capsExp, \"-$1\").toLowerCase());\n }\n }\n }\n},\n _getState = function _getState(element) {\n // returns an Array with alternating values like [property, value, property, value] and a \"t\" property pointing to the target (element). Makes it fast and cheap.\n var l = _stateProps.length,\n style = element.style,\n state = [],\n i = 0;\n\n for (; i < l; i++) {\n state.push(_stateProps[i], style[_stateProps[i]]);\n }\n\n state.t = element;\n return state;\n},\n _copyState = function _copyState(state, override, omitOffsets) {\n var result = [],\n l = state.length,\n i = omitOffsets ? 8 : 0,\n // skip top, left, right, bottom if omitOffsets is true\n p;\n\n for (; i < l; i += 2) {\n p = state[i];\n result.push(p, p in override ? override[p] : state[i + 1]);\n }\n\n result.t = state.t;\n return result;\n},\n _winOffsets = {\n left: 0,\n top: 0\n},\n // // potential future feature (?) Allow users to calculate where a trigger hits (scroll position) like getScrollPosition(\"#id\", \"top bottom\")\n// _getScrollPosition = (trigger, position, {scroller, containerAnimation, horizontal}) => {\n// \tscroller = _getTarget(scroller || _win);\n// \tlet direction = horizontal ? _horizontal : _vertical,\n// \t\tisViewport = _isViewport(scroller);\n// \t_getSizeFunc(scroller, isViewport, direction);\n// \treturn _parsePosition(position, _getTarget(trigger), _getSizeFunc(scroller, isViewport, direction)(), direction, _getScrollFunc(scroller, direction)(), 0, 0, 0, _getOffsetsFunc(scroller, isViewport)(), isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0, 0, containerAnimation ? containerAnimation.duration() : _maxScroll(scroller), containerAnimation);\n// },\n_parsePosition = function _parsePosition(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation) {\n _isFunction(value) && (value = value(self));\n\n if (_isString(value) && value.substr(0, 3) === \"max\") {\n value = scrollerMax + (value.charAt(4) === \"=\" ? _offsetToPx(\"0\" + value.substr(3), scrollerSize) : 0);\n }\n\n var time = containerAnimation ? containerAnimation.time() : 0,\n p1,\n p2,\n element;\n containerAnimation && containerAnimation.seek(0);\n\n if (!_isNumber(value)) {\n _isFunction(trigger) && (trigger = trigger(self));\n var offsets = (value || \"0\").split(\" \"),\n bounds,\n localOffset,\n globalOffset,\n display;\n element = _getTarget(trigger) || _body;\n bounds = _getBounds(element) || {};\n\n if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === \"none\") {\n // if display is \"none\", it won't report getBoundingClientRect() properly\n display = element.style.display;\n element.style.display = \"block\";\n bounds = _getBounds(element);\n display ? element.style.display = display : element.style.removeProperty(\"display\");\n }\n\n localOffset = _offsetToPx(offsets[0], bounds[direction.d]);\n globalOffset = _offsetToPx(offsets[1] || \"0\", scrollerSize);\n value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;\n markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);\n scrollerSize -= scrollerSize - globalOffset; // adjust for the marker\n } else {\n containerAnimation && (value = gsap.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));\n markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);\n }\n\n if (marker) {\n var position = value + scrollerSize,\n isStart = marker._isStart;\n p1 = \"scroll\" + direction.d2;\n\n _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body[p1], _docEl[p1]) : marker.parentNode[p1]) <= position + 1);\n\n if (useFixedPosition) {\n scrollerBounds = _getBounds(markerScroller);\n useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);\n }\n }\n\n if (containerAnimation && element) {\n p1 = _getBounds(element);\n containerAnimation.seek(scrollerMax);\n p2 = _getBounds(element);\n containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];\n value = value / containerAnimation._caScrollDist * scrollerMax;\n }\n\n containerAnimation && containerAnimation.seek(time);\n return containerAnimation ? value : Math.round(value);\n},\n _prefixExp = /(webkit|moz|length|cssText|inset)/i,\n _reparent = function _reparent(element, parent, top, left) {\n if (element.parentNode !== parent) {\n var style = element.style,\n p,\n cs;\n\n if (parent === _body) {\n element._stOrig = style.cssText; // record original inline styles so we can revert them later\n\n cs = _getComputedStyle(element);\n\n for (p in cs) {\n // must copy all relevant styles to ensure that nothing changes visually when we reparent to the . Skip the vendor prefixed ones.\n if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n style[p] = cs[p];\n }\n }\n\n style.top = top;\n style.left = left;\n } else {\n style.cssText = element._stOrig;\n }\n\n gsap.core.getCache(element).uncache = 1;\n parent.appendChild(element);\n }\n},\n _interruptionTracker = function _interruptionTracker(getValueFunc, initialValue, onInterrupt) {\n var last1 = initialValue,\n last2 = last1;\n return function (value) {\n var current = Math.round(getValueFunc()); // round because in some [very uncommon] Windows environments, scroll can get reported with decimals even though it was set without.\n\n if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {\n // if the user scrolls, kill the tween. iOS Safari intermittently misreports the scroll position, it may be the most recently-set one or the one before that! When Safari is zoomed (CMD-+), it often misreports as 1 pixel off too! So if we set the scroll position to 125, for example, it'll actually report it as 124.\n value = current;\n onInterrupt && onInterrupt();\n }\n\n last2 = last1;\n last1 = value;\n return value;\n };\n},\n // _mergeAnimations = animations => {\n// \tlet tl = gsap.timeline({smoothChildTiming: true}).startTime(Math.min(...animations.map(a => a.globalTime(0))));\n// \tanimations.forEach(a => {let time = a.totalTime(); tl.add(a); a.totalTime(time); });\n// \ttl.smoothChildTiming = false;\n// \treturn tl;\n// },\n// returns a function that can be used to tween the scroll position in the direction provided, and when doing so it'll add a .tween property to the FUNCTION itself, and remove it when the tween completes or gets killed. This gives us a way to have multiple ScrollTriggers use a central function for any given scroller and see if there's a scroll tween running (which would affect if/how things get updated)\n_getTweenCreator = function _getTweenCreator(scroller, direction) {\n var getScroll = _getScrollFunc(scroller, direction),\n prop = \"_scroll\" + direction.p2,\n // add a tweenable property to the scroller that's a getter/setter function, like _scrollTop or _scrollLeft. This way, if someone does gsap.killTweensOf(scroller) it'll kill the scroll tween.\n lastScroll1,\n lastScroll2,\n getTween = function getTween(scrollTo, vars, initialValue, change1, change2) {\n var tween = getTween.tween,\n onComplete = vars.onComplete,\n modifiers = {};\n initialValue = initialValue || getScroll();\n\n var checkForInterruption = _interruptionTracker(getScroll, initialValue, function () {\n tween.kill();\n getTween.tween = 0;\n });\n\n change2 = change1 && change2 || 0; // if change1 is 0, we set that to the difference and ignore change2. Otherwise, there would be a compound effect.\n\n change1 = change1 || scrollTo - initialValue;\n tween && tween.kill();\n lastScroll1 = Math.round(initialValue);\n vars[prop] = scrollTo;\n vars.modifiers = modifiers;\n\n modifiers[prop] = function () {\n return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);\n };\n\n vars.onUpdate = function () {\n _scrollers.cache++;\n\n _updateAll();\n };\n\n vars.onComplete = function () {\n getTween.tween = 0;\n onComplete && onComplete.call(tween);\n };\n\n tween = getTween.tween = gsap.to(scroller, vars);\n return tween;\n };\n\n scroller[prop] = getScroll;\n\n getScroll.wheelHandler = function () {\n return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n };\n\n _addListener(scroller, \"wheel\", getScroll.wheelHandler); // Windows machines handle mousewheel scrolling in chunks (like \"3 lines per scroll\") meaning the typical strategy for cancelling the scroll isn't as sensitive. It's much more likely to match one of the previous 2 scroll event positions. So we kill any snapping as soon as there's a wheel event.\n\n\n ScrollTrigger.isTouch && _addListener(scroller, \"touchmove\", getScroll.wheelHandler);\n return getTween;\n};\n\nexport var ScrollTrigger = /*#__PURE__*/function () {\n function ScrollTrigger(vars, animation) {\n _coreInitted || ScrollTrigger.register(gsap) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n this.init(vars, animation);\n }\n\n var _proto = ScrollTrigger.prototype;\n\n _proto.init = function init(vars, animation) {\n this.progress = this.start = 0;\n this.vars && this.kill(true, true); // in case it's being initted again\n\n if (!_enabled) {\n this.update = this.refresh = this.kill = _passThrough;\n return;\n }\n\n vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? {\n trigger: vars\n } : vars, _defaults);\n\n var _vars = vars,\n onUpdate = _vars.onUpdate,\n toggleClass = _vars.toggleClass,\n id = _vars.id,\n onToggle = _vars.onToggle,\n onRefresh = _vars.onRefresh,\n scrub = _vars.scrub,\n trigger = _vars.trigger,\n pin = _vars.pin,\n pinSpacing = _vars.pinSpacing,\n invalidateOnRefresh = _vars.invalidateOnRefresh,\n anticipatePin = _vars.anticipatePin,\n onScrubComplete = _vars.onScrubComplete,\n onSnapComplete = _vars.onSnapComplete,\n once = _vars.once,\n snap = _vars.snap,\n pinReparent = _vars.pinReparent,\n pinSpacer = _vars.pinSpacer,\n containerAnimation = _vars.containerAnimation,\n fastScrollEnd = _vars.fastScrollEnd,\n preventOverlaps = _vars.preventOverlaps,\n direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical,\n isToggle = !scrub && scrub !== 0,\n scroller = _getTarget(vars.scroller || _win),\n scrollerCache = gsap.core.getCache(scroller),\n isViewport = _isViewport(scroller),\n useFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || isViewport && \"fixed\") === \"fixed\",\n callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack],\n toggleActions = isToggle && vars.toggleActions.split(\" \"),\n markers = \"markers\" in vars ? vars.markers : _defaults.markers,\n borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0,\n self = this,\n onRefreshInit = vars.onRefreshInit && function () {\n return vars.onRefreshInit(self);\n },\n getScrollerSize = _getSizeFunc(scroller, isViewport, direction),\n getScrollerOffsets = _getOffsetsFunc(scroller, isViewport),\n lastSnap = 0,\n lastRefresh = 0,\n scrollFunc = _getScrollFunc(scroller, direction),\n tweenTo,\n pinCache,\n snapFunc,\n scroll1,\n scroll2,\n start,\n end,\n markerStart,\n markerEnd,\n markerStartTrigger,\n markerEndTrigger,\n markerVars,\n change,\n pinOriginalState,\n pinActiveState,\n pinState,\n spacer,\n offset,\n pinGetter,\n pinSetter,\n pinStart,\n pinChange,\n spacingStart,\n spacerState,\n markerStartSetter,\n pinMoves,\n markerEndSetter,\n cs,\n snap1,\n snap2,\n scrubTween,\n scrubSmooth,\n snapDurClamp,\n snapDelayedCall,\n prevProgress,\n prevScroll,\n prevAnimProgress,\n caMarkerSetter,\n customRevertReturn;\n\n _context(self);\n\n self._dir = direction;\n anticipatePin *= 45;\n self.scroller = scroller;\n self.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n scroll1 = scrollFunc();\n self.vars = vars;\n animation = animation || vars.animation;\n\n if (\"refreshPriority\" in vars) {\n _sort = 1;\n vars.refreshPriority === -9999 && (_primary = self); // used by ScrollSmoother\n }\n\n scrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n top: _getTweenCreator(scroller, _vertical),\n left: _getTweenCreator(scroller, _horizontal)\n };\n self.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n\n self.scrubDuration = function (value) {\n scrubSmooth = _isNumber(value) && value;\n\n if (!scrubSmooth) {\n scrubTween && scrubTween.progress(1).kill();\n scrubTween = 0;\n } else {\n scrubTween ? scrubTween.duration(value) : scrubTween = gsap.to(animation, {\n ease: \"expo\",\n totalProgress: \"+=0.001\",\n duration: scrubSmooth,\n paused: true,\n onComplete: function onComplete() {\n return onScrubComplete && onScrubComplete(self);\n }\n });\n }\n };\n\n if (animation) {\n animation.vars.lazy = false;\n animation._initted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true);\n self.animation = animation.pause();\n animation.scrollTrigger = self;\n self.scrubDuration(scrub);\n scrubTween && scrubTween.resetTo && scrubTween.resetTo(\"totalProgress\", 0); // otherwise the initial scrub progress value would start at 0.001 which normally is no big deal, but for containerAnimation it can be noticeable since the range is so tiny.\n\n snap1 = 0;\n id || (id = animation.vars.id);\n }\n\n _triggers.push(self);\n\n if (snap) {\n // TODO: potential idea: use legitimate CSS scroll snapping by pushing invisible elements into the DOM that serve as snap positions, and toggle the document.scrollingElement.style.scrollSnapType onToggle. See https://codepen.io/GreenSock/pen/JjLrgWM for a quick proof of concept.\n if (!_isObject(snap) || snap.push) {\n snap = {\n snapTo: snap\n };\n }\n\n \"scrollBehavior\" in _body.style && gsap.set(isViewport ? [_body, _docEl] : scroller, {\n scrollBehavior: \"auto\"\n }); // smooth scrolling doesn't work with snap.\n\n _scrollers.forEach(function (o) {\n return _isFunction(o) && o.target === (isViewport ? _doc.scrollingElement || _docEl : scroller) && (o.smooth = false);\n }); // note: set smooth to false on both the vertical and horizontal scroll getters/setters\n\n\n snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? function (value, st) {\n return _snapDirectional(snap.snapTo)(value, _getTime() - lastRefresh < 500 ? 0 : st.direction);\n } : gsap.utils.snap(snap.snapTo);\n snapDurClamp = snap.duration || {\n min: 0.1,\n max: 2\n };\n snapDurClamp = _isObject(snapDurClamp) ? _clamp(snapDurClamp.min, snapDurClamp.max) : _clamp(snapDurClamp, snapDurClamp);\n snapDelayedCall = gsap.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function () {\n var scroll = scrollFunc(),\n refreshedRecently = _getTime() - lastRefresh < 500,\n tween = tweenTo.tween;\n\n if ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n var progress = (scroll - start) / change,\n totalProgress = animation && !isToggle ? animation.totalProgress() : progress,\n velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime() - _time2) * 1000 || 0,\n change1 = gsap.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185),\n naturalEnd = progress + (snap.inertia === false ? 0 : change1),\n endValue = _clamp(0, 1, snapFunc(naturalEnd, self)),\n endScroll = Math.round(start + endValue * change),\n _snap = snap,\n onStart = _snap.onStart,\n _onInterrupt = _snap.onInterrupt,\n _onComplete = _snap.onComplete;\n\n if (scroll <= end && scroll >= start && endScroll !== scroll) {\n if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {\n // there's an overlapping snap! So we must figure out which one is closer and let that tween live.\n return;\n }\n\n if (snap.inertia === false) {\n change1 = endValue - progress;\n }\n\n tweenTo(endScroll, {\n duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),\n ease: snap.ease || \"power3\",\n data: _abs(endScroll - scroll),\n // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.\n onInterrupt: function onInterrupt() {\n return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self);\n },\n onComplete: function onComplete() {\n self.update();\n lastSnap = scrollFunc();\n snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress;\n onSnapComplete && onSnapComplete(self);\n _onComplete && _onComplete(self);\n }\n }, scroll, change1 * change, endScroll - scroll - change1 * change);\n onStart && onStart(self, tweenTo.tween);\n }\n } else if (self.isActive && lastSnap !== scroll) {\n snapDelayedCall.restart(true);\n }\n }).pause();\n }\n\n id && (_ids[id] = self);\n trigger = self.trigger = _getTarget(trigger || pin); // if a trigger has some kind of scroll-related effect applied that could contaminate the \"y\" or \"x\" position (like a ScrollSmoother effect), we needed a way to temporarily revert it, so we use the stRevert property of the gsCache. It can return another function that we'll call at the end so it can return to its normal state.\n\n customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n customRevertReturn && (customRevertReturn = customRevertReturn(self));\n pin = pin === true ? trigger : _getTarget(pin);\n _isString(toggleClass) && (toggleClass = {\n targets: trigger,\n className: toggleClass\n });\n\n if (pin) {\n pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding); // if the parent is display: flex, don't apply pinSpacing by default. We should check that pin.parentNode is an element (not shadow dom window)\n\n self.pin = pin;\n pinCache = gsap.core.getCache(pin);\n\n if (!pinCache.spacer) {\n // record the spacer and pinOriginalState on the cache in case someone tries pinning the same element with MULTIPLE ScrollTriggers - we don't want to have multiple spacers or record the \"original\" pin state after it has already been affected by another ScrollTrigger.\n if (pinSpacer) {\n pinSpacer = _getTarget(pinSpacer);\n pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); // for React & Angular\n\n pinCache.spacerIsNative = !!pinSpacer;\n pinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n }\n\n pinCache.spacer = spacer = pinSpacer || _doc.createElement(\"div\");\n spacer.classList.add(\"pin-spacer\");\n id && spacer.classList.add(\"pin-spacer-\" + id);\n pinCache.pinState = pinOriginalState = _getState(pin);\n } else {\n pinOriginalState = pinCache.pinState;\n }\n\n vars.force3D !== false && gsap.set(pin, {\n force3D: true\n });\n self.spacer = spacer = pinCache.spacer;\n cs = _getComputedStyle(pin);\n spacingStart = cs[pinSpacing + direction.os2];\n pinGetter = gsap.getProperty(pin);\n pinSetter = gsap.quickSetter(pin, direction.a, _px); // pin.firstChild && !_maxScroll(pin, direction) && (pin.style.overflow = \"hidden\"); // protects from collapsing margins, but can have unintended consequences as demonstrated here: https://codepen.io/GreenSock/pen/1e42c7a73bfa409d2cf1e184e7a4248d so it was removed in favor of just telling people to set up their CSS to avoid the collapsing margins (overflow: hidden | auto is just one option. Another is border-top: 1px solid transparent).\n\n _swapPinIn(pin, spacer, cs);\n\n pinState = _getState(pin);\n }\n\n if (markers) {\n markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n markerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n markerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n offset = markerStartTrigger[\"offset\" + direction.op.d2];\n\n var content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n\n markerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n markerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n containerAnimation && (caMarkerSetter = gsap.quickSetter([markerStart, markerEnd], direction.a, _px));\n\n if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true)) {\n _makePositionable(isViewport ? _body : scroller);\n\n gsap.set([markerStartTrigger, markerEndTrigger], {\n force3D: true\n });\n markerStartSetter = gsap.quickSetter(markerStartTrigger, direction.a, _px);\n markerEndSetter = gsap.quickSetter(markerEndTrigger, direction.a, _px);\n }\n }\n\n if (containerAnimation) {\n var oldOnUpdate = containerAnimation.vars.onUpdate,\n oldParams = containerAnimation.vars.onUpdateParams;\n containerAnimation.eventCallback(\"onUpdate\", function () {\n self.update(0, 0, 1);\n oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);\n });\n }\n\n self.previous = function () {\n return _triggers[_triggers.indexOf(self) - 1];\n };\n\n self.next = function () {\n return _triggers[_triggers.indexOf(self) + 1];\n };\n\n self.revert = function (revert, temp) {\n if (!temp) {\n return self.kill(true);\n } // for compatibility with gsap.context() and gsap.matchMedia() which call revert()\n\n\n var r = revert !== false || !self.enabled,\n prevRefreshing = _refreshing;\n\n if (r !== self.isReverted) {\n if (r) {\n // if (!self.scroll.rec && (_refreshing || _refreshingAll)) {\n // \tself.scroll.rec = scrollFunc();\n // \t_refreshingAll && scrollFunc(0);\n // }\n prevScroll = Math.max(scrollFunc(), self.scroll.rec || 0); // record the scroll so we can revert later (repositioning/pinning things can affect scroll position). In the static refresh() method, we first record all the scroll positions as a reference.\n\n prevProgress = self.progress;\n prevAnimProgress = animation && animation.progress();\n }\n\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n return m.style.display = r ? \"none\" : \"block\";\n });\n\n if (r) {\n _refreshing = self;\n self.update(r); // make sure the pin is back in its original position so that all the measurements are correct. do this BEFORE swapping the pin out\n }\n\n if (pin && (!pinReparent || !self.isActive)) {\n if (r) {\n _swapPinOut(pin, spacer, pinOriginalState);\n } else {\n _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);\n }\n }\n\n r || self.update(r); // when we're restoring, the update should run AFTER swapping the pin into its pin-spacer.\n\n _refreshing = prevRefreshing; // restore. We set it to true during the update() so that things fire properly in there.\n\n self.isReverted = r;\n }\n };\n\n self.refresh = function (soft, force) {\n if ((_refreshing || !self.enabled) && !force) {\n return;\n }\n\n if (pin && soft && _lastScrollTime) {\n _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\n return;\n }\n\n !_refreshingAll && onRefreshInit && onRefreshInit(self);\n _refreshing = self;\n lastRefresh = _getTime();\n\n if (tweenTo.tween) {\n tweenTo.tween.kill();\n tweenTo.tween = 0;\n }\n\n scrubTween && scrubTween.pause();\n invalidateOnRefresh && animation && animation.revert({\n kill: false\n }).invalidate();\n self.isReverted || self.revert(true, true);\n self._subPinOffset = false; // we'll set this to true in the sub-pins if we find any\n\n var size = getScrollerSize(),\n scrollerBounds = getScrollerOffsets(),\n max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction),\n isFirstRefresh = change <= 0.01,\n offset = 0,\n otherPinOffset = 0,\n parsedEnd = vars.end,\n parsedEndTrigger = vars.endTrigger || trigger,\n parsedStart = vars.start || (vars.start === 0 || !trigger ? 0 : pin ? \"0 0\" : \"0 100%\"),\n pinnedContainer = self.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer),\n triggerIndex = trigger && Math.max(0, _triggers.indexOf(self)) || 0,\n i = triggerIndex,\n cs,\n bounds,\n scroll,\n isVertical,\n override,\n curTrigger,\n curPin,\n oppositeScroll,\n initted,\n revertedPins,\n forcedOverflow;\n\n while (i--) {\n // user might try to pin the same element more than once, so we must find any prior triggers with the same pin, revert them, and determine how long they're pinning so that we can offset things appropriately. Make sure we revert from last to first so that things \"rewind\" properly.\n curTrigger = _triggers[i];\n curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self); // if it's a timeline-based trigger that hasn't been fully initialized yet because it's waiting for 1 tick, just force the refresh() here, otherwise if it contains a pin that's supposed to affect other ScrollTriggers further down the page, they won't be adjusted properly.\n\n curPin = curTrigger.pin;\n\n if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {\n revertedPins || (revertedPins = []);\n revertedPins.unshift(curTrigger); // we'll revert from first to last to make sure things reach their end state properly\n\n curTrigger.revert(true, true);\n }\n\n if (curTrigger !== _triggers[i]) {\n // in case it got removed.\n triggerIndex--;\n i--;\n }\n }\n\n _isFunction(parsedStart) && (parsedStart = parsedStart(self));\n start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation) || (pin ? -0.001 : 0);\n _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self));\n\n if (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n if (~parsedEnd.indexOf(\" \")) {\n parsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n } else {\n offset = _offsetToPx(parsedEnd.substr(2), size);\n parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset; // _parsePosition won't factor in the offset if the start is a number, so do it here.\n\n parsedEndTrigger = trigger;\n }\n }\n\n end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation)) || -0.001;\n change = end - start || (start -= 0.01) && 0.001;\n offset = 0;\n i = triggerIndex;\n\n while (i--) {\n curTrigger = _triggers[i];\n curPin = curTrigger.pin;\n\n if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {\n cs = curTrigger.end - curTrigger.start;\n\n if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && !_isNumber(parsedStart)) {\n // numeric start values shouldn't be offset at all - treat them as absolute\n offset += cs * (1 - curTrigger.progress);\n }\n\n curPin === pin && (otherPinOffset += cs);\n }\n }\n\n start += offset;\n end += offset;\n\n if (isFirstRefresh) {\n // on the very first refresh(), the prevProgress couldn't have been accurate yet because the start/end were never calculated, so we set it here. Before 3.11.5, it could lead to an inaccurate scroll position restoration with snapping.\n prevProgress = gsap.utils.clamp(0, 1, gsap.utils.normalize(start, end, prevScroll));\n }\n\n self._pinPush = otherPinOffset;\n\n if (markerStart && offset) {\n // offset the markers if necessary\n cs = {};\n cs[direction.a] = \"+=\" + offset;\n pinnedContainer && (cs[direction.p] = \"-=\" + scrollFunc());\n gsap.set([markerStart, markerEnd], cs);\n }\n\n if (pin) {\n cs = _getComputedStyle(pin);\n isVertical = direction === _vertical;\n scroll = scrollFunc(); // recalculate because the triggers can affect the scroll\n\n pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n\n if (!max && end > 1) {\n // makes sure the scroller has a scrollbar, otherwise if something has width: 100%, for example, it would be too big (exclude the scrollbar). See https://greensock.com/forums/topic/25182-scrolltrigger-width-of-page-increase-where-markers-are-set-to-false/\n forcedOverflow = (isViewport ? _doc.scrollingElement || _docEl : scroller).style;\n forcedOverflow = {\n style: forcedOverflow,\n value: forcedOverflow[\"overflow\" + direction.a.toUpperCase()]\n };\n forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = \"scroll\";\n }\n\n _swapPinIn(pin, spacer, cs);\n\n pinState = _getState(pin); // transforms will interfere with the top/left/right/bottom placement, so remove them temporarily. getBoundingClientRect() factors in transforms.\n\n bounds = _getBounds(pin, true);\n oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n\n if (pinSpacing) {\n spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n spacerState.t = spacer;\n i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;\n i && spacerState.push(direction.d, i + _px); // for box-sizing: border-box (must include padding).\n\n _setState(spacerState);\n\n if (pinnedContainer) {\n // in ScrollTrigger.refresh(), we need to re-evaluate the pinContainer's size because this pinSpacing may stretch it out, but we can't just add the exact distance because depending on layout, it may not push things down or it may only do so partially.\n _triggers.forEach(function (t) {\n if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) {\n t._subPinOffset = true;\n }\n });\n }\n\n useFixedPosition && scrollFunc(prevScroll);\n }\n\n if (useFixedPosition) {\n override = {\n top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,\n left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,\n boxSizing: \"border-box\",\n position: \"fixed\"\n };\n override[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n override[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n override[_padding] = cs[_padding];\n override[_padding + _Top] = cs[_padding + _Top];\n override[_padding + _Right] = cs[_padding + _Right];\n override[_padding + _Bottom] = cs[_padding + _Bottom];\n override[_padding + _Left] = cs[_padding + _Left];\n pinActiveState = _copyState(pinOriginalState, override, pinReparent);\n _refreshingAll && scrollFunc(0);\n }\n\n if (animation) {\n // the animation might be affecting the transform, so we must jump to the end, check the value, and compensate accordingly. Otherwise, when it becomes unpinned, the pinSetter() will get set to a value that doesn't include whatever the animation did.\n initted = animation._initted; // if not, we must invalidate() after this step, otherwise it could lock in starting values prematurely.\n\n _suppressOverwrites(1);\n\n animation.render(animation.duration(), true, true);\n pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n pinMoves = Math.abs(change - pinChange) > 1;\n useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); // transform is the last property/value set in the state Array. Since the animation is controlling that, we should omit it.\n\n animation.render(0, true, true);\n initted || animation.invalidate(true);\n animation.parent || animation.totalTime(animation.totalTime()); // if, for example, a toggleAction called play() and then refresh() happens and when we render(1) above, it would cause the animation to complete and get removed from its parent, so this makes sure it gets put back in.\n\n _suppressOverwrites(0);\n } else {\n pinChange = change;\n }\n\n forcedOverflow && (forcedOverflow.value ? forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty(\"overflow-\" + direction.a));\n } else if (trigger && scrollFunc() && !containerAnimation) {\n // it may be INSIDE a pinned element, so walk up the tree and look for any elements with _pinOffset to compensate because anything with pinSpacing that's already scrolled would throw off the measurements in getBoundingClientRect()\n bounds = trigger.parentNode;\n\n while (bounds && bounds !== _body) {\n if (bounds._pinOffset) {\n start -= bounds._pinOffset;\n end -= bounds._pinOffset;\n }\n\n bounds = bounds.parentNode;\n }\n }\n\n revertedPins && revertedPins.forEach(function (t) {\n return t.revert(false, true);\n });\n self.start = start;\n self.end = end;\n scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); // reset velocity\n\n if (!containerAnimation && !_refreshingAll) {\n scroll1 < prevScroll && scrollFunc(prevScroll);\n self.scroll.rec = 0;\n }\n\n self.revert(false, true);\n\n if (snapDelayedCall) {\n lastSnap = -1;\n self.isActive && scrollFunc(start + change * prevProgress); // just so snapping gets re-enabled, clear out any recorded last value\n\n snapDelayedCall.restart(true);\n }\n\n _refreshing = 0;\n animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress, true).render(animation.time(), true, true); // must force a re-render because if saveStyles() was used on the target(s), the styles could have been wiped out during the refresh().\n\n if (isFirstRefresh || prevProgress !== self.progress || containerAnimation) {\n // ensures that the direction is set properly (when refreshing, progress is set back to 0 initially, then back again to wherever it needs to be) and that callbacks are triggered.\n animation && !isToggle && animation.totalProgress(containerAnimation && start < -0.001 && !prevProgress ? gsap.utils.normalize(start, end, 0) : prevProgress, true); // to avoid issues where animation callbacks like onStart aren't triggered.\n\n self.progress = (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n }\n\n pin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange));\n scrubTween && scrubTween.invalidate();\n onRefresh && !_refreshingAll && onRefresh(self); // when refreshing all, we do extra work to correct pinnedContainer sizes and ensure things don't exceed the maxScroll, so we should do all the refreshes at the end after all that work so that the start/end values are corrected.\n };\n\n self.getVelocity = function () {\n return (scrollFunc() - scroll2) / (_getTime() - _time2) * 1000 || 0;\n };\n\n self.endAnimation = function () {\n _endAnimation(self.callbackAnimation);\n\n if (animation) {\n scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1);\n }\n };\n\n self.labelToScroll = function (label) {\n return animation && animation.labels && (start || self.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;\n };\n\n self.getTrailing = function (name) {\n var i = _triggers.indexOf(self),\n a = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1);\n\n return (_isString(name) ? a.filter(function (t) {\n return t.vars.preventOverlaps === name;\n }) : a).filter(function (t) {\n return self.direction > 0 ? t.end <= start : t.start >= end;\n });\n };\n\n self.update = function (reset, recordVelocity, forceFake) {\n if (containerAnimation && !forceFake && !reset) {\n return;\n }\n\n var scroll = _refreshingAll === true ? prevScroll : self.scroll(),\n p = reset ? 0 : (scroll - start) / change,\n clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0,\n prevProgress = self.progress,\n isActive,\n wasActive,\n toggleState,\n action,\n stateChanged,\n toggled,\n isAtMax,\n isTakingAction;\n\n if (recordVelocity) {\n scroll2 = scroll1;\n scroll1 = containerAnimation ? scrollFunc() : scroll;\n\n if (snap) {\n snap2 = snap1;\n snap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n }\n } // anticipate the pinning a few ticks ahead of time based on velocity to avoid a visual glitch due to the fact that most browsers do scrolling on a separate thread (not synced with requestAnimationFrame).\n\n\n anticipatePin && !clipped && pin && !_refreshing && !_startup && _lastScrollTime && start < scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin && (clipped = 0.0001);\n\n if (clipped !== prevProgress && self.enabled) {\n isActive = self.isActive = !!clipped && clipped < 1;\n wasActive = !!prevProgress && prevProgress < 1;\n toggled = isActive !== wasActive;\n stateChanged = toggled || !!clipped !== !!prevProgress; // could go from start all the way to end, thus it didn't toggle but it did change state in a sense (may need to fire a callback)\n\n self.direction = clipped > prevProgress ? 1 : -1;\n self.progress = clipped;\n\n if (stateChanged && !_refreshing) {\n toggleState = clipped && !prevProgress ? 0 : clipped === 1 ? 1 : prevProgress === 1 ? 2 : 3; // 0 = enter, 1 = leave, 2 = enterBack, 3 = leaveBack (we prioritize the FIRST encounter, thus if you scroll really fast past the onEnter and onLeave in one tick, it'd prioritize onEnter.\n\n if (isToggle) {\n action = !toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1] || toggleActions[toggleState]; // if it didn't toggle, that means it shot right past and since we prioritize the \"enter\" action, we should switch to the \"leave\" in this case (but only if one is defined)\n\n isTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n }\n }\n\n preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(function (t) {\n return t.endAnimation();\n }));\n\n if (!isToggle) {\n if (scrubTween && !_refreshing && !_startup) {\n scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); // if there's a scrub on both the container animation and this one (or a ScrollSmoother), the update order would cause this one not to have rendered yet, so it wouldn't make any progress before we .restart() it heading toward the new progress so it'd appear stuck thus we force a render here.\n\n if (scrubTween.resetTo) {\n scrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n } else {\n // legacy support (courtesy), before 3.10.0\n scrubTween.vars.totalProgress = clipped;\n scrubTween.invalidate().restart();\n }\n } else if (animation) {\n animation.totalProgress(clipped, !!_refreshing);\n }\n }\n\n if (pin) {\n reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n\n if (!useFixedPosition) {\n pinSetter(_round(pinStart + pinChange * clipped));\n } else if (stateChanged) {\n isAtMax = !reset && clipped > prevProgress && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); // if it's at the VERY end of the page, don't switch away from position: fixed because it's pointless and it could cause a brief flash when the user scrolls back up (when it gets pinned again)\n\n if (pinReparent) {\n if (!reset && (isActive || isAtMax)) {\n var bounds = _getBounds(pin, true),\n _offset = scroll - start;\n\n _reparent(pin, _body, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);\n } else {\n _reparent(pin, spacer);\n }\n }\n\n _setState(isActive || isAtMax ? pinActiveState : pinState);\n\n pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n }\n }\n\n snap && !tweenTo.tween && !_refreshing && !_startup && snapDelayedCall.restart(true);\n toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function (el) {\n return el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className);\n }); // classes could affect positioning, so do it even if reset or refreshing is true.\n\n onUpdate && !isToggle && !reset && onUpdate(self);\n\n if (stateChanged && !_refreshing) {\n if (isToggle) {\n if (isTakingAction) {\n if (action === \"complete\") {\n animation.pause().totalProgress(1);\n } else if (action === \"reset\") {\n animation.restart(true).pause();\n } else if (action === \"restart\") {\n animation.restart(true);\n } else {\n animation[action]();\n }\n }\n\n onUpdate && onUpdate(self);\n }\n\n if (toggled || !_limitCallbacks) {\n // on startup, the page could be scrolled and we don't want to fire callbacks that didn't toggle. For example onEnter shouldn't fire if the ScrollTrigger isn't actually entered.\n onToggle && toggled && _callback(self, onToggle);\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n once && (clipped === 1 ? self.kill(false, 1) : callbacks[toggleState] = 0); // a callback shouldn't be called again if once is true.\n\n if (!toggled) {\n // it's possible to go completely past, like from before the start to after the end (or vice-versa) in which case BOTH callbacks should be fired in that order\n toggleState = clipped === 1 ? 1 : 3;\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n }\n }\n\n if (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n _endAnimation(self.callbackAnimation);\n\n scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n }\n } else if (isToggle && onUpdate && !_refreshing) {\n onUpdate(self);\n }\n } // update absolutely-positioned markers (only if the scroller isn't the viewport)\n\n\n if (markerEndSetter) {\n var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0));\n markerEndSetter(n);\n }\n\n caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n };\n\n self.enable = function (reset, refresh) {\n if (!self.enabled) {\n self.enabled = true;\n\n _addListener(scroller, \"resize\", _onResize);\n\n _addListener(isViewport ? _doc : scroller, \"scroll\", _onScroll);\n\n onRefreshInit && _addListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\n if (reset !== false) {\n self.progress = prevProgress = 0;\n scroll1 = scroll2 = lastSnap = scrollFunc();\n }\n\n refresh !== false && self.refresh();\n }\n };\n\n self.getTween = function (snap) {\n return snap && tweenTo ? tweenTo.tween : scrubTween;\n };\n\n self.setPositions = function (newStart, newEnd) {\n // doesn't persist after refresh()! Intended to be a way to override values that were set during refresh(), like you could set it in onRefresh()\n if (pin) {\n pinStart += newStart - start;\n pinChange += newEnd - newStart - change;\n pinSpacing === _padding && self.adjustPinSpacing(newEnd - newStart - change);\n }\n\n self.start = start = newStart;\n self.end = end = newEnd;\n change = newEnd - newStart;\n self.update();\n };\n\n self.adjustPinSpacing = function (amount) {\n if (spacerState && amount) {\n var i = spacerState.indexOf(direction.d) + 1;\n spacerState[i] = parseFloat(spacerState[i]) + amount + _px;\n spacerState[1] = parseFloat(spacerState[1]) + amount + _px;\n\n _setState(spacerState);\n }\n };\n\n self.disable = function (reset, allowAnimation) {\n if (self.enabled) {\n reset !== false && self.revert(true, true);\n self.enabled = self.isActive = false;\n allowAnimation || scrubTween && scrubTween.pause();\n prevScroll = 0;\n pinCache && (pinCache.uncache = 1);\n onRefreshInit && _removeListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\n if (snapDelayedCall) {\n snapDelayedCall.pause();\n tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n }\n\n if (!isViewport) {\n var i = _triggers.length;\n\n while (i--) {\n if (_triggers[i].scroller === scroller && _triggers[i] !== self) {\n return; //don't remove the listeners if there are still other triggers referencing it.\n }\n }\n\n _removeListener(scroller, \"resize\", _onResize);\n\n _removeListener(scroller, \"scroll\", _onScroll);\n }\n }\n };\n\n self.kill = function (revert, allowAnimation) {\n self.disable(revert, allowAnimation);\n scrubTween && !allowAnimation && scrubTween.kill();\n id && delete _ids[id];\n\n var i = _triggers.indexOf(self);\n\n i >= 0 && _triggers.splice(i, 1);\n i === _i && _direction > 0 && _i--; // if we're in the middle of a refresh() or update(), splicing would cause skips in the index, so adjust...\n // if no other ScrollTrigger instances of the same scroller are found, wipe out any recorded scroll position. Otherwise, in a single page application, for example, it could maintain scroll position when it really shouldn't.\n\n i = 0;\n\n _triggers.forEach(function (t) {\n return t.scroller === self.scroller && (i = 1);\n });\n\n i || _refreshingAll || (self.scroll.rec = 0);\n\n if (animation) {\n animation.scrollTrigger = null;\n revert && animation.revert({\n kill: false\n });\n allowAnimation || animation.kill();\n }\n\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n return m.parentNode && m.parentNode.removeChild(m);\n });\n _primary === self && (_primary = 0);\n\n if (pin) {\n pinCache && (pinCache.uncache = 1);\n i = 0;\n\n _triggers.forEach(function (t) {\n return t.pin === pin && i++;\n });\n\n i || (pinCache.spacer = 0); // if there aren't any more ScrollTriggers with the same pin, remove the spacer, otherwise it could be contaminated with old/stale values if the user re-creates a ScrollTrigger for the same element.\n }\n\n vars.onKill && vars.onKill(self);\n };\n\n self.enable(false, false);\n customRevertReturn && customRevertReturn(self);\n !animation || !animation.add || change ? self.refresh() : gsap.delayedCall(0.01, function () {\n return start || end || self.refresh();\n }) && (change = 0.01) && (start = end = 0); // if the animation is a timeline, it may not have been populated yet, so it wouldn't render at the proper place on the first refresh(), thus we should schedule one for the next tick. If \"change\" is defined, we know it must be re-enabling, thus we can refresh() right away.\n\n pin && _queueRefreshAll(); // pinning could affect the positions of other things, so make sure we queue a full refresh()\n };\n\n ScrollTrigger.register = function register(core) {\n if (!_coreInitted) {\n gsap = core || _getGSAP();\n _windowExists() && window.document && ScrollTrigger.enable();\n _coreInitted = _enabled;\n }\n\n return _coreInitted;\n };\n\n ScrollTrigger.defaults = function defaults(config) {\n if (config) {\n for (var p in config) {\n _defaults[p] = config[p];\n }\n }\n\n return _defaults;\n };\n\n ScrollTrigger.disable = function disable(reset, kill) {\n _enabled = 0;\n\n _triggers.forEach(function (trigger) {\n return trigger[kill ? \"kill\" : \"disable\"](reset);\n });\n\n _removeListener(_win, \"wheel\", _onScroll);\n\n _removeListener(_doc, \"scroll\", _onScroll);\n\n clearInterval(_syncInterval);\n\n _removeListener(_doc, \"touchcancel\", _passThrough);\n\n _removeListener(_body, \"touchstart\", _passThrough);\n\n _multiListener(_removeListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\n _multiListener(_removeListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\n _resizeDelay.kill();\n\n _iterateAutoRefresh(_removeListener);\n\n for (var i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n }\n };\n\n ScrollTrigger.enable = function enable() {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n\n if (gsap) {\n _toArray = gsap.utils.toArray;\n _clamp = gsap.utils.clamp;\n _context = gsap.core.context || _passThrough;\n _suppressOverwrites = gsap.core.suppressOverwrites || _passThrough;\n _scrollRestoration = _win.history.scrollRestoration || \"auto\";\n _lastScroll = _win.pageYOffset;\n gsap.core.globals(\"ScrollTrigger\", ScrollTrigger); // must register the global manually because in Internet Explorer, functions (classes) don't have a \"name\" property.\n\n if (_body) {\n _enabled = 1;\n\n _rafBugFix();\n\n Observer.register(gsap); // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n ScrollTrigger.isTouch = Observer.isTouch;\n _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); // since 2017, iOS has had a bug that causes event.clientX/Y to be inaccurate when a scroll occurs, thus we must alternate ignoring every other touchmove event to work around it. See https://bugs.webkit.org/show_bug.cgi?id=181954 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503\n\n _addListener(_win, \"wheel\", _onScroll); // mostly for 3rd party smooth scrolling libraries.\n\n\n _root = [_win, _doc, _docEl, _body];\n\n if (gsap.matchMedia) {\n ScrollTrigger.matchMedia = function (vars) {\n var mm = gsap.matchMedia(),\n p;\n\n for (p in vars) {\n mm.add(p, vars[p]);\n }\n\n return mm;\n };\n\n gsap.addEventListener(\"matchMediaInit\", function () {\n return _revertAll();\n });\n gsap.addEventListener(\"matchMediaRevert\", function () {\n return _revertRecorded();\n });\n gsap.addEventListener(\"matchMedia\", function () {\n _refreshAll(0, 1);\n\n _dispatch(\"matchMedia\");\n });\n gsap.matchMedia(\"(orientation: portrait)\", function () {\n // when orientation changes, we should take new base measurements for the ignoreMobileResize feature.\n _setBaseDimensions();\n\n return _setBaseDimensions;\n });\n } else {\n console.warn(\"Requires GSAP 3.11.0 or later\");\n }\n\n _setBaseDimensions();\n\n _addListener(_doc, \"scroll\", _onScroll); // some browsers (like Chrome), the window stops dispatching scroll events on the window if you scroll really fast, but it's consistent on the document!\n\n\n var bodyStyle = _body.style,\n border = bodyStyle.borderTopStyle,\n AnimationProto = gsap.core.Animation.prototype,\n bounds,\n i;\n AnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", {\n value: function value() {\n return this.time(-0.01, true);\n }\n }); // only for backwards compatibility (Animation.revert() was added after 3.10.4)\n\n bodyStyle.borderTopStyle = \"solid\"; // works around an issue where a margin of a child element could throw off the bounds of the _body, making it seem like there's a margin when there actually isn't. The border ensures that the bounds are accurate.\n\n bounds = _getBounds(_body);\n _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; // accommodate the offset of the caused by margins and/or padding\n\n _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty(\"border-top-style\"); // TODO: (?) maybe move to leveraging the velocity mechanism in Observer and skip intervals.\n\n _syncInterval = setInterval(_sync, 250);\n gsap.delayedCall(0.5, function () {\n return _startup = 0;\n });\n\n _addListener(_doc, \"touchcancel\", _passThrough); // some older Android devices intermittently stop dispatching \"touchmove\" events if we don't listen for \"touchcancel\" on the document.\n\n\n _addListener(_body, \"touchstart\", _passThrough); //works around Safari bug: https://greensock.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\n\n _multiListener(_addListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\n _multiListener(_addListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\n _transformProp = gsap.utils.checkPrefix(\"transform\");\n\n _stateProps.push(_transformProp);\n\n _coreInitted = _getTime();\n _resizeDelay = gsap.delayedCall(0.2, _refreshAll).pause();\n _autoRefresh = [_doc, \"visibilitychange\", function () {\n var w = _win.innerWidth,\n h = _win.innerHeight;\n\n if (_doc.hidden) {\n _prevWidth = w;\n _prevHeight = h;\n } else if (_prevWidth !== w || _prevHeight !== h) {\n _onResize();\n }\n }, _doc, \"DOMContentLoaded\", _refreshAll, _win, \"load\", _refreshAll, _win, \"resize\", _onResize];\n\n _iterateAutoRefresh(_addListener);\n\n _triggers.forEach(function (trigger) {\n return trigger.enable(0, 1);\n });\n\n for (i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n }\n }\n }\n };\n\n ScrollTrigger.config = function config(vars) {\n \"limitCallbacks\" in vars && (_limitCallbacks = !!vars.limitCallbacks);\n var ms = vars.syncInterval;\n ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);\n \"ignoreMobileResize\" in vars && (_ignoreMobileResize = ScrollTrigger.isTouch === 1 && vars.ignoreMobileResize);\n\n if (\"autoRefreshEvents\" in vars) {\n _iterateAutoRefresh(_removeListener) || _iterateAutoRefresh(_addListener, vars.autoRefreshEvents || \"none\");\n _ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n }\n };\n\n ScrollTrigger.scrollerProxy = function scrollerProxy(target, vars) {\n var t = _getTarget(target),\n i = _scrollers.indexOf(t),\n isViewport = _isViewport(t);\n\n if (~i) {\n _scrollers.splice(i, isViewport ? 6 : 2);\n }\n\n if (vars) {\n isViewport ? _proxies.unshift(_win, vars, _body, vars, _docEl, vars) : _proxies.unshift(t, vars);\n }\n };\n\n ScrollTrigger.clearMatchMedia = function clearMatchMedia(query) {\n _triggers.forEach(function (t) {\n return t._ctx && t._ctx.query === query && t._ctx.kill(true, true);\n });\n };\n\n ScrollTrigger.isInViewport = function isInViewport(element, ratio, horizontal) {\n var bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(),\n offset = bounds[horizontal ? _width : _height] * ratio || 0;\n return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win.innerHeight;\n };\n\n ScrollTrigger.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {\n _isString(element) && (element = _getTarget(element));\n var bounds = element.getBoundingClientRect(),\n size = bounds[horizontal ? _width : _height],\n offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;\n return horizontal ? (bounds.left + offset) / _win.innerWidth : (bounds.top + offset) / _win.innerHeight;\n };\n\n ScrollTrigger.killAll = function killAll(allowListeners) {\n _triggers.slice(0).forEach(function (t) {\n return t.vars.id !== \"ScrollSmoother\" && t.kill();\n });\n\n if (allowListeners !== true) {\n var listeners = _listeners.killAll || [];\n _listeners = {};\n listeners.forEach(function (f) {\n return f();\n });\n }\n };\n\n return ScrollTrigger;\n}();\nScrollTrigger.version = \"3.11.5\";\n\nScrollTrigger.saveStyles = function (targets) {\n return targets ? _toArray(targets).forEach(function (target) {\n // saved styles are recorded in a consecutive alternating Array, like [element, cssText, transform attribute, cache, matchMedia, ...]\n if (target && target.style) {\n var i = _savedStyles.indexOf(target);\n\n i >= 0 && _savedStyles.splice(i, 5);\n\n _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap.core.getCache(target), _context());\n }\n }) : _savedStyles;\n};\n\nScrollTrigger.revert = function (soft, media) {\n return _revertAll(!soft, media);\n};\n\nScrollTrigger.create = function (vars, animation) {\n return new ScrollTrigger(vars, animation);\n};\n\nScrollTrigger.refresh = function (safe) {\n return safe ? _onResize() : (_coreInitted || ScrollTrigger.register()) && _refreshAll(true);\n};\n\nScrollTrigger.update = function (force) {\n return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);\n};\n\nScrollTrigger.clearScrollMemory = _clearScrollMemory;\n\nScrollTrigger.maxScroll = function (element, horizontal) {\n return _maxScroll(element, horizontal ? _horizontal : _vertical);\n};\n\nScrollTrigger.getScrollFunc = function (element, horizontal) {\n return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\n};\n\nScrollTrigger.getById = function (id) {\n return _ids[id];\n};\n\nScrollTrigger.getAll = function () {\n return _triggers.filter(function (t) {\n return t.vars.id !== \"ScrollSmoother\";\n });\n}; // it's common for people to ScrollTrigger.getAll(t => t.kill()) on page routes, for example, and we don't want it to ruin smooth scrolling by killing the main ScrollSmoother one.\n\n\nScrollTrigger.isScrolling = function () {\n return !!_lastScrollTime;\n};\n\nScrollTrigger.snapDirectional = _snapDirectional;\n\nScrollTrigger.addEventListener = function (type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n};\n\nScrollTrigger.removeEventListener = function (type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n};\n\nScrollTrigger.batch = function (targets, vars) {\n var result = [],\n varsCopy = {},\n interval = vars.interval || 0.016,\n batchMax = vars.batchMax || 1e9,\n proxyCallback = function proxyCallback(type, callback) {\n var elements = [],\n triggers = [],\n delay = gsap.delayedCall(interval, function () {\n callback(elements, triggers);\n elements = [];\n triggers = [];\n }).pause();\n return function (self) {\n elements.length || delay.restart(true);\n elements.push(self.trigger);\n triggers.push(self);\n batchMax <= elements.length && delay.progress(1);\n };\n },\n p;\n\n for (p in vars) {\n varsCopy[p] = p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\" ? proxyCallback(p, vars[p]) : vars[p];\n }\n\n if (_isFunction(batchMax)) {\n batchMax = batchMax();\n\n _addListener(ScrollTrigger, \"refresh\", function () {\n return batchMax = vars.batchMax();\n });\n }\n\n _toArray(targets).forEach(function (target) {\n var config = {};\n\n for (p in varsCopy) {\n config[p] = varsCopy[p];\n }\n\n config.trigger = target;\n result.push(ScrollTrigger.create(config));\n });\n\n return result;\n}; // to reduce file size. clamps the scroll and also returns a duration multiplier so that if the scroll gets chopped shorter, the duration gets curtailed as well (otherwise if you're very close to the top of the page, for example, and swipe up really fast, it'll suddenly slow down and take a long time to reach the top).\n\n\nvar _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier(scrollFunc, current, end, max) {\n current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n},\n _allowNativePanning = function _allowNativePanning(target, direction) {\n if (direction === true) {\n target.style.removeProperty(\"touch-action\");\n } else {\n target.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\"; // note: Firefox doesn't support it pinch-zoom properly, at least in addition to a pan-x or pan-y.\n }\n\n target === _docEl && _allowNativePanning(_body, direction);\n},\n _overflow = {\n auto: 1,\n scroll: 1\n},\n _nestedScroll = function _nestedScroll(_ref5) {\n var event = _ref5.event,\n target = _ref5.target,\n axis = _ref5.axis;\n\n var node = (event.changedTouches ? event.changedTouches[0] : event).target,\n cache = node._gsap || gsap.core.getCache(node),\n time = _getTime(),\n cs;\n\n if (!cache._isScrollT || time - cache._isScrollT > 2000) {\n // cache for 2 seconds to improve performance.\n while (node && node !== _body && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {\n node = node.parentNode;\n }\n\n cache._isScroll = node && node !== target && !_isViewport(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n cache._isScrollT = time;\n }\n\n if (cache._isScroll || axis === \"x\") {\n event.stopPropagation();\n event._gsapAllow = true;\n }\n},\n // capture events on scrollable elements INSIDE the and allow those by calling stopPropagation() when we find a scrollable ancestor\n_inputObserver = function _inputObserver(target, type, inputs, nested) {\n return Observer.create({\n target: target,\n capture: true,\n debounce: false,\n lockAxis: true,\n type: type,\n onWheel: nested = nested && _nestedScroll,\n onPress: nested,\n onDrag: nested,\n onScroll: nested,\n onEnable: function onEnable() {\n return inputs && _addListener(_doc, Observer.eventTypes[0], _captureInputs, false, true);\n },\n onDisable: function onDisable() {\n return _removeListener(_doc, Observer.eventTypes[0], _captureInputs, true);\n }\n });\n},\n _inputExp = /(input|label|select|textarea)/i,\n _inputIsFocused,\n _captureInputs = function _captureInputs(e) {\n var isInput = _inputExp.test(e.target.tagName);\n\n if (isInput || _inputIsFocused) {\n e._gsapAllow = true;\n _inputIsFocused = isInput;\n }\n},\n _getScrollNormalizer = function _getScrollNormalizer(vars) {\n _isObject(vars) || (vars = {});\n vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n vars.type || (vars.type = \"wheel,touch\");\n vars.debounce = !!vars.debounce;\n vars.id = vars.id || \"normalizer\";\n\n var _vars2 = vars,\n normalizeScrollX = _vars2.normalizeScrollX,\n momentum = _vars2.momentum,\n allowNestedScroll = _vars2.allowNestedScroll,\n onRelease = _vars2.onRelease,\n self,\n maxY,\n target = _getTarget(vars.target) || _docEl,\n smoother = gsap.core.globals().ScrollSmoother,\n smootherInstance = smoother && smoother.get(),\n content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()),\n scrollFuncY = _getScrollFunc(target, _vertical),\n scrollFuncX = _getScrollFunc(target, _horizontal),\n scale = 1,\n initialScale = (Observer.isTouch && _win.visualViewport ? _win.visualViewport.scale * _win.visualViewport.width : _win.outerWidth) / _win.innerWidth,\n wheelRefresh = 0,\n resolveMomentumDuration = _isFunction(momentum) ? function () {\n return momentum(self);\n } : function () {\n return momentum || 2.8;\n },\n lastRefreshID,\n skipTouchMove,\n inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll),\n resumeTouchMove = function resumeTouchMove() {\n return skipTouchMove = false;\n },\n scrollClampX = _passThrough,\n scrollClampY = _passThrough,\n updateClamps = function updateClamps() {\n maxY = _maxScroll(target, _vertical);\n scrollClampY = _clamp(_fixIOSBug ? 1 : 0, maxY);\n normalizeScrollX && (scrollClampX = _clamp(0, _maxScroll(target, _horizontal)));\n lastRefreshID = _refreshID;\n },\n removeContentOffset = function removeContentOffset() {\n content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n scrollFuncY.offset = scrollFuncY.cacheID = 0;\n },\n ignoreDrag = function ignoreDrag() {\n if (skipTouchMove) {\n requestAnimationFrame(resumeTouchMove);\n\n var offset = _round(self.deltaY / 2),\n scroll = scrollClampY(scrollFuncY.v - offset);\n\n if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n scrollFuncY.offset = scroll - scrollFuncY.v;\n\n var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n content._gsap.y = y + \"px\";\n scrollFuncY.cacheID = _scrollers.cache;\n\n _updateAll();\n }\n\n return true;\n }\n\n scrollFuncY.offset && removeContentOffset();\n skipTouchMove = true;\n },\n tween,\n startScrollX,\n startScrollY,\n onStopDelayedCall,\n onResize = function onResize() {\n // if the window resizes, like on an iPhone which Apple FORCES the address bar to show/hide even if we event.preventDefault(), it may be scrolling too far now that the address bar is showing, so we must dynamically adjust the momentum tween.\n updateClamps();\n\n if (tween.isActive() && tween.vars.scrollY > maxY) {\n scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n }\n };\n\n content && gsap.set(content, {\n y: \"+=0\"\n }); // to ensure there's a cache (element._gsap)\n\n vars.ignoreCheck = function (e) {\n return _fixIOSBug && e.type === \"touchmove\" && ignoreDrag(e) || scale > 1.05 && e.type !== \"touchstart\" || self.isGesturing || e.touches && e.touches.length > 1;\n };\n\n vars.onPress = function () {\n skipTouchMove = false;\n var prevScale = scale;\n scale = _round((_win.visualViewport && _win.visualViewport.scale || 1) / initialScale);\n tween.pause();\n prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n startScrollX = scrollFuncX();\n startScrollY = scrollFuncY();\n updateClamps();\n lastRefreshID = _refreshID;\n };\n\n vars.onRelease = vars.onGestureStart = function (self, wasDragging) {\n scrollFuncY.offset && removeContentOffset();\n\n if (!wasDragging) {\n onStopDelayedCall.restart(true);\n } else {\n _scrollers.cache++; // make sure we're pulling the non-cached value\n // alternate algorithm: durX = Math.min(6, Math.abs(self.velocityX / 800)),\tdur = Math.max(durX, Math.min(6, Math.abs(self.velocityY / 800))); dur = dur * (0.4 + (1 - _power4In(dur / 6)) * 0.6)) * (momentumSpeed || 1)\n\n var dur = resolveMomentumDuration(),\n currentScroll,\n endScroll;\n\n if (normalizeScrollX) {\n currentScroll = scrollFuncX();\n endScroll = currentScroll + dur * 0.05 * -self.velocityX / 0.227; // the constant .227 is from power4(0.05). velocity is inverted because scrolling goes in the opposite direction.\n\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n tween.vars.scrollX = scrollClampX(endScroll);\n }\n\n currentScroll = scrollFuncY();\n endScroll = currentScroll + dur * 0.05 * -self.velocityY / 0.227; // the constant .227 is from power4(0.05)\n\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n tween.vars.scrollY = scrollClampY(endScroll);\n tween.invalidate().duration(dur).play(0.01);\n\n if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {\n // iOS bug: it'll show the address bar but NOT fire the window \"resize\" event until the animation is done but we must protect against overshoot so we leverage an onUpdate to do so.\n gsap.to({}, {\n onUpdate: onResize,\n duration: dur\n });\n }\n }\n\n onRelease && onRelease(self);\n };\n\n vars.onWheel = function () {\n tween._ts && tween.pause();\n\n if (_getTime() - wheelRefresh > 1000) {\n // after 1 second, refresh the clamps otherwise that'll only happen when ScrollTrigger.refresh() is called or for touch-scrolling.\n lastRefreshID = 0;\n wheelRefresh = _getTime();\n }\n };\n\n vars.onChange = function (self, dx, dy, xArray, yArray) {\n _refreshID !== lastRefreshID && updateClamps();\n dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self.startX - self.x) : scrollFuncX() + dx - xArray[1])); // for more precision, we track pointer/touch movement from the start, otherwise it'll drift.\n\n if (dy) {\n scrollFuncY.offset && removeContentOffset();\n var isTouch = yArray[2] === dy,\n y = isTouch ? startScrollY + self.startY - self.y : scrollFuncY() + dy - yArray[1],\n yClamped = scrollClampY(y);\n isTouch && y !== yClamped && (startScrollY += yClamped - y);\n scrollFuncY(yClamped);\n }\n\n (dy || dx) && _updateAll();\n };\n\n vars.onEnable = function () {\n _allowNativePanning(target, normalizeScrollX ? false : \"x\");\n\n ScrollTrigger.addEventListener(\"refresh\", onResize);\n\n _addListener(_win, \"resize\", onResize);\n\n if (scrollFuncY.smooth) {\n scrollFuncY.target.style.scrollBehavior = \"auto\";\n scrollFuncY.smooth = scrollFuncX.smooth = false;\n }\n\n inputObserver.enable();\n };\n\n vars.onDisable = function () {\n _allowNativePanning(target, true);\n\n _removeListener(_win, \"resize\", onResize);\n\n ScrollTrigger.removeEventListener(\"refresh\", onResize);\n inputObserver.kill();\n };\n\n vars.lockAxis = vars.lockAxis !== false;\n self = new Observer(vars);\n self.iOS = _fixIOSBug; // used in the Observer getCachedScroll() function to work around an iOS bug that wreaks havoc with TouchEvent.clientY if we allow scroll to go all the way back to 0.\n\n _fixIOSBug && !scrollFuncY() && scrollFuncY(1); // iOS bug causes event.clientY values to freak out (wildly inaccurate) if the scroll position is exactly 0.\n\n _fixIOSBug && gsap.ticker.add(_passThrough); // prevent the ticker from sleeping\n\n onStopDelayedCall = self._dc;\n tween = gsap.to(self, {\n ease: \"power4\",\n paused: true,\n scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\",\n scrollY: \"+=0.1\",\n modifiers: {\n scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function () {\n return tween.pause();\n })\n },\n onUpdate: _updateAll,\n onComplete: onStopDelayedCall.vars.onComplete\n }); // we need the modifier to sense if the scroll position is altered outside of the momentum tween (like with a scrollTo tween) so we can pause() it to prevent conflicts.\n\n return self;\n};\n\nScrollTrigger.sort = function (func) {\n return _triggers.sort(func || function (a, b) {\n return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6);\n });\n};\n\nScrollTrigger.observe = function (vars) {\n return new Observer(vars);\n};\n\nScrollTrigger.normalizeScroll = function (vars) {\n if (typeof vars === \"undefined\") {\n return _normalizer;\n }\n\n if (vars === true && _normalizer) {\n return _normalizer.enable();\n }\n\n if (vars === false) {\n return _normalizer && _normalizer.kill();\n }\n\n var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n _normalizer && _normalizer.target === normalizer.target && _normalizer.kill();\n _isViewport(normalizer.target) && (_normalizer = normalizer);\n return normalizer;\n};\n\nScrollTrigger.core = {\n // smaller file size way to leverage in ScrollSmoother and Observer\n _getVelocityProp: _getVelocityProp,\n _inputObserver: _inputObserver,\n _scrollers: _scrollers,\n _proxies: _proxies,\n bridge: {\n // when normalizeScroll sets the scroll position (ss = setScroll)\n ss: function ss() {\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime();\n },\n // a way to get the _refreshing value in Observer\n ref: function ref() {\n return _refreshing;\n }\n }\n};\n_getGSAP() && gsap.registerPlugin(ScrollTrigger);\nexport { ScrollTrigger as default };","/*!\n * ScrollToPlugin 3.11.5\n * https://greensock.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _window,\n _docEl,\n _body,\n _toArray,\n _config,\n ScrollTrigger,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _max = function _max(element, axis) {\n var dim = axis === \"x\" ? \"Width\" : \"Height\",\n scroll = \"scroll\" + dim,\n client = \"client\" + dim;\n return element === _window || element === _docEl || element === _body ? Math.max(_docEl[scroll], _body[scroll]) - (_window[\"inner\" + dim] || _docEl[client] || _body[client]) : element[scroll] - element[\"offset\" + dim];\n},\n _buildGetter = function _buildGetter(e, axis) {\n //pass in an element and an axis (\"x\" or \"y\") and it'll return a getter function for the scroll position of that element (like scrollTop or scrollLeft, although if the element is the window, it'll use the pageXOffset/pageYOffset or the documentElement's scrollTop/scrollLeft or document.body's. Basically this streamlines things and makes a very fast getter across browsers.\n var p = \"scroll\" + (axis === \"x\" ? \"Left\" : \"Top\");\n\n if (e === _window) {\n if (e.pageXOffset != null) {\n p = \"page\" + axis.toUpperCase() + \"Offset\";\n } else {\n e = _docEl[p] != null ? _docEl : _body;\n }\n }\n\n return function () {\n return e[p];\n };\n},\n _clean = function _clean(value, index, target, targets) {\n _isFunction(value) && (value = value(index, target, targets));\n\n if (typeof value !== \"object\") {\n return _isString(value) && value !== \"max\" && value.charAt(1) !== \"=\" ? {\n x: value,\n y: value\n } : {\n y: value\n }; //if we don't receive an object as the parameter, assume the user intends \"y\".\n } else if (value.nodeType) {\n return {\n y: value,\n x: value\n };\n } else {\n var result = {},\n p;\n\n for (p in value) {\n result[p] = p !== \"onAutoKill\" && _isFunction(value[p]) ? value[p](index, target, targets) : value[p];\n }\n\n return result;\n }\n},\n _getOffset = function _getOffset(element, container) {\n element = _toArray(element)[0];\n\n if (!element || !element.getBoundingClientRect) {\n return console.warn(\"scrollTo target doesn't exist. Using 0\") || {\n x: 0,\n y: 0\n };\n }\n\n var rect = element.getBoundingClientRect(),\n isRoot = !container || container === _window || container === _body,\n cRect = isRoot ? {\n top: _docEl.clientTop - (_window.pageYOffset || _docEl.scrollTop || _body.scrollTop || 0),\n left: _docEl.clientLeft - (_window.pageXOffset || _docEl.scrollLeft || _body.scrollLeft || 0)\n } : container.getBoundingClientRect(),\n offsets = {\n x: rect.left - cRect.left,\n y: rect.top - cRect.top\n };\n\n if (!isRoot && container) {\n //only add the current scroll position if it's not the window/body.\n offsets.x += _buildGetter(container, \"x\")();\n offsets.y += _buildGetter(container, \"y\")();\n }\n\n return offsets;\n},\n _parseVal = function _parseVal(value, target, axis, currentVal, offset) {\n return !isNaN(value) && typeof value !== \"object\" ? parseFloat(value) - offset : _isString(value) && value.charAt(1) === \"=\" ? parseFloat(value.substr(2)) * (value.charAt(0) === \"-\" ? -1 : 1) + currentVal - offset : value === \"max\" ? _max(target, axis) - offset : Math.min(_max(target, axis), _getOffset(value, target)[axis] - offset);\n},\n _initCore = function _initCore() {\n gsap = _getGSAP();\n\n if (_windowExists() && gsap && typeof document !== \"undefined\" && document.body) {\n _window = window;\n _body = document.body;\n _docEl = document.documentElement;\n _toArray = gsap.utils.toArray;\n gsap.config({\n autoKillThreshold: 7\n });\n _config = gsap.config();\n _coreInitted = 1;\n }\n};\n\nexport var ScrollToPlugin = {\n version: \"3.11.5\",\n name: \"scrollTo\",\n rawVars: 1,\n register: function register(core) {\n gsap = core;\n\n _initCore();\n },\n init: function init(target, value, tween, index, targets) {\n _coreInitted || _initCore();\n var data = this,\n snapType = gsap.getProperty(target, \"scrollSnapType\");\n data.isWin = target === _window;\n data.target = target;\n data.tween = tween;\n value = _clean(value, index, target, targets);\n data.vars = value;\n data.autoKill = !!value.autoKill;\n data.getX = _buildGetter(target, \"x\");\n data.getY = _buildGetter(target, \"y\");\n data.x = data.xPrev = data.getX();\n data.y = data.yPrev = data.getY();\n ScrollTrigger || (ScrollTrigger = gsap.core.globals().ScrollTrigger);\n gsap.getProperty(target, \"scrollBehavior\") === \"smooth\" && gsap.set(target, {\n scrollBehavior: \"auto\"\n });\n\n if (snapType && snapType !== \"none\") {\n // disable scroll snapping to avoid strange behavior\n data.snap = 1;\n data.snapInline = target.style.scrollSnapType;\n target.style.scrollSnapType = \"none\";\n }\n\n if (value.x != null) {\n data.add(data, \"x\", data.x, _parseVal(value.x, target, \"x\", data.x, value.offsetX || 0), index, targets);\n\n data._props.push(\"scrollTo_x\");\n } else {\n data.skipX = 1;\n }\n\n if (value.y != null) {\n data.add(data, \"y\", data.y, _parseVal(value.y, target, \"y\", data.y, value.offsetY || 0), index, targets);\n\n data._props.push(\"scrollTo_y\");\n } else {\n data.skipY = 1;\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt,\n target = data.target,\n tween = data.tween,\n autoKill = data.autoKill,\n xPrev = data.xPrev,\n yPrev = data.yPrev,\n isWin = data.isWin,\n snap = data.snap,\n snapInline = data.snapInline,\n x,\n y,\n yDif,\n xDif,\n threshold;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n x = isWin || !data.skipX ? data.getX() : xPrev;\n y = isWin || !data.skipY ? data.getY() : yPrev;\n yDif = y - yPrev;\n xDif = x - xPrev;\n threshold = _config.autoKillThreshold;\n\n if (data.x < 0) {\n //can't scroll to a position less than 0! Might happen if someone uses a Back.easeOut or Elastic.easeOut when scrolling back to the top of the page (for example)\n data.x = 0;\n }\n\n if (data.y < 0) {\n data.y = 0;\n }\n\n if (autoKill) {\n //note: iOS has a bug that throws off the scroll by several pixels, so we need to check if it's within 7 pixels of the previous one that we set instead of just looking for an exact match.\n if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, \"x\")) {\n data.skipX = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, \"y\")) {\n data.skipY = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (data.skipX && data.skipY) {\n tween.kill();\n data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []);\n }\n }\n\n if (isWin) {\n _window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y);\n } else {\n data.skipY || (target.scrollTop = data.y);\n data.skipX || (target.scrollLeft = data.x);\n }\n\n if (snap && (ratio === 1 || ratio === 0)) {\n y = target.scrollTop;\n x = target.scrollLeft;\n snapInline ? target.style.scrollSnapType = snapInline : target.style.removeProperty(\"scroll-snap-type\");\n target.scrollTop = y + 1; // bug in Safari causes the element to totally reset its scroll position when scroll-snap-type changes, so we need to set it to a slightly different value and then back again to work around this bug.\n\n target.scrollLeft = x + 1;\n target.scrollTop = y;\n target.scrollLeft = x;\n }\n\n data.xPrev = data.x;\n data.yPrev = data.y;\n ScrollTrigger && ScrollTrigger.update();\n },\n kill: function kill(property) {\n var both = property === \"scrollTo\";\n\n if (both || property === \"scrollTo_x\") {\n this.skipX = 1;\n }\n\n if (both || property === \"scrollTo_y\") {\n this.skipY = 1;\n }\n }\n};\nScrollToPlugin.max = _max;\nScrollToPlugin.getOffset = _getOffset;\nScrollToPlugin.buildGetter = _buildGetter;\n_getGSAP() && gsap.registerPlugin(ScrollToPlugin);\nexport { ScrollToPlugin as default };","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPageLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 232,\n height: 42,\n viewBox: \"0 0 232 42\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_623_401)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.8196 0.988525V12.7428C22.3696 10.8537 20.2291 9.66429 16.9839 9.66429C15.6029 9.66429 14.291 9.94416 13.1172 10.4339C13.3243 10.5738 13.5315 10.7138 13.6696 10.9237L15.8791 13.1626C15.9481 13.2326 16.0172 13.3025 16.0862 13.4424C16.5005 13.3725 16.9148 13.3025 17.3981 13.3025C21.1267 13.3025 23.7505 16.1711 23.7505 19.7394C23.7505 23.3076 21.1267 26.3861 17.3981 26.3861C16.9839 26.3861 16.5005 26.3162 16.0862 26.2462C16.0172 26.3162 15.9481 26.4561 15.8791 26.5261L13.6696 28.765C13.5315 28.9049 13.3243 29.1148 13.1172 29.1848C14.291 29.6745 15.6029 29.9544 16.9839 29.9544C20.2291 29.9544 22.4386 28.695 23.8196 26.8759V29.6745H27.8243V0.988525H23.8196Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.1166 17.9204C42.3952 17.9204 44.1214 18.4101 44.9499 18.8299V17.7804C44.9499 15.3316 43.0166 13.5125 39.9785 13.5125C37.5618 13.5125 35.6285 14.9118 34.4547 16.2412L31.969 13.7224C33.488 11.8334 36.5261 9.73438 40.0475 9.73438C45.5023 9.73438 48.8856 12.6729 48.8856 17.4306V29.6746H45.019V27.1559C43.8452 28.975 41.6356 30.0944 39.0118 30.0944C34.7999 30.0944 31.5547 27.9255 31.5547 24.1473C31.6237 20.4392 35.0761 17.9204 40.1166 17.9204ZM39.6333 26.7361C42.7404 26.7361 44.9499 24.5671 44.9499 21.9084C44.1214 21.4886 42.2571 20.9989 40.1856 20.9989C37.6999 20.9989 35.5594 21.8385 35.5594 23.9374C35.6285 25.7566 37.4237 26.7361 39.6333 26.7361Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.7904 1.05859C57.2404 1.05859 58.2761 2.10808 58.2761 3.57737C58.2761 5.04665 57.2404 6.09614 55.7904 6.09614C54.3404 6.09614 53.3047 5.04665 53.3047 3.57737C53.3047 2.10808 54.3404 1.05859 55.7904 1.05859ZM53.788 29.6746V10.0842H57.7928V29.6746H53.788Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.4531 19.8794C61.4531 14.1422 66.0103 9.73438 71.8103 9.73438C75.6079 9.73438 78.7841 11.7634 80.5793 15.1217L77.4722 17.2207C76.2984 14.9818 74.0888 13.5125 71.6722 13.5125C67.9436 13.5125 65.3888 16.3112 65.3888 19.8794C65.3888 23.5177 68.0126 26.3163 71.6031 26.3163C74.0888 26.3163 76.2293 24.9869 77.5412 22.6781L80.5103 24.847C78.715 28.0654 75.4698 30.1644 71.6031 30.1644C65.8031 30.0944 61.4531 25.5467 61.4531 19.8794Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.14 17.9204C93.4186 17.9204 95.1448 18.4101 95.9734 18.8299V17.7804C95.9734 15.3316 94.04 13.5125 91.0019 13.5125C88.5853 13.5125 86.6519 14.9118 85.4781 16.2412L82.9924 13.7224C84.5115 11.8334 87.5496 9.73438 91.071 9.73438C96.5257 9.73438 99.9091 12.6729 99.9091 17.4306V29.6746H96.0424V27.1559C94.8686 28.975 92.6591 30.0944 90.0353 30.0944C85.8234 30.0944 82.5781 27.9255 82.5781 24.1473C82.5781 20.4392 86.0305 17.9204 91.14 17.9204ZM90.6567 26.7361C93.7638 26.7361 95.9734 24.5671 95.9734 21.9084C95.1448 21.4886 93.2805 20.9989 91.2091 20.9989C88.7234 20.9989 86.5829 21.8385 86.5829 23.9374C86.5829 25.7566 88.3781 26.7361 90.6567 26.7361Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.742 29.6745V10.0841H108.747V12.7428C109.852 10.5739 111.647 9.66431 113.787 9.66431C115.306 9.66431 116.411 10.1541 116.411 10.1541L115.997 13.8623C115.79 13.7923 114.892 13.4425 113.649 13.4425C111.509 13.4425 108.747 14.5619 108.747 18.9698V29.6745H104.742Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.141 19.7394C118.141 14.0022 122.353 9.52441 127.945 9.52441C131.605 9.52441 134.505 11.3435 136.024 13.6524V9.94421H138.441V28.1353C138.441 34.2224 134.298 38.2104 127.669 38.2104C124.217 38.2104 121.11 36.951 119.038 34.6422L120.626 33.0329C122.56 34.992 124.976 35.9715 127.669 35.9715C132.779 35.9715 136.024 33.1729 136.024 28.6951V25.8265C134.574 28.2053 131.674 30.0244 127.945 30.0244C122.353 30.0244 118.141 25.5466 118.141 19.7394ZM120.557 19.7394C120.557 24.2872 123.803 27.7855 128.153 27.7855C132.71 27.7855 136.162 24.2872 136.162 19.7394C136.162 15.2616 132.71 11.7633 128.153 11.7633C123.803 11.7633 120.557 15.2616 120.557 19.7394Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144.102 9.94421H146.518V13.0927C147.623 10.7138 149.625 9.52441 151.973 9.52441C153.216 9.52441 154.044 9.73431 154.804 10.0142L154.528 12.323C153.699 11.9732 153.078 11.7633 151.766 11.7633C148.728 11.7633 146.518 14.0722 146.518 18.48V29.6046H144.102V9.94421Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.977 19.8093C155.977 14.0721 160.396 9.59424 166.265 9.59424C172.134 9.59424 176.553 14.0721 176.553 19.8093C176.553 25.5465 172.134 30.0243 166.265 30.0243C160.396 30.0243 155.977 25.5465 155.977 19.8093ZM166.334 27.7854C170.822 27.7854 174.205 24.2871 174.205 19.8093C174.205 15.3314 170.822 11.8331 166.334 11.8331C161.846 11.8331 158.462 15.3314 158.462 19.8093C158.462 24.2871 161.846 27.7854 166.334 27.7854Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.695 21.9782V9.94409H183.112V21.2086C183.112 25.6164 185.252 27.7154 189.257 27.7154C192.917 27.7154 195.817 24.9868 195.817 21.0687V9.94409H198.233V29.6045H195.817V26.1762C194.298 28.8349 191.536 30.0243 188.912 30.0243C184.01 30.0243 180.695 27.2956 180.695 21.9782Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.534 27.4356C215.844 27.6455 215.084 27.7854 214.256 27.7854C209.698 27.7854 206.246 24.2871 206.246 19.7393C206.246 15.2615 209.698 11.7632 214.256 11.7632C215.084 11.7632 215.913 11.9032 216.603 12.113L218.398 10.2939C217.225 9.73421 215.844 9.45435 214.394 9.45435C210.734 9.45435 207.834 11.2735 206.315 13.5823V9.87414H203.898V37.7206H206.315V25.8264C207.765 28.2052 210.665 30.0243 214.394 30.0243C215.775 30.0243 217.087 29.7444 218.26 29.2547L216.534 27.4356Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M11.3271 20.3692L14.7104 23.7975C14.9866 24.0774 14.9866 24.4972 14.7104 24.777L11.9485 27.5757C11.6723 27.8555 11.258 27.8555 10.9818 27.5757L3.80089 20.3692C3.5247 20.0893 3.5247 19.6695 3.80089 19.3897L10.9818 12.1132C11.258 11.8334 11.6723 11.8334 11.9485 12.1132L14.7104 14.9119C14.9866 15.1917 14.9866 15.6115 14.7104 15.8914L11.258 19.3197C11.0509 19.6695 11.0509 20.0893 11.3271 20.3692Z\",\n fill: \"#7EE49C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.66429 20.3692L11.0476 23.7975C11.3238 24.0774 11.3238 24.4972 11.0476 24.777L8.28572 27.5757C8.00952 27.8555 7.59524 27.8555 7.31905 27.5757L0.207143 20.3692C-0.0690476 20.0893 -0.0690476 19.6695 0.207143 19.3897L7.3881 12.1132C7.66429 11.8334 8.07857 11.8334 8.35476 12.1132L11.1167 14.9119C11.3929 15.1917 11.3929 15.6115 11.1167 15.8914L7.66429 19.3197C7.45714 19.6695 7.45714 20.0893 7.66429 20.3692Z\",\n fill: \"#7EE49C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M220.676 19.3898L217.293 15.9614C217.017 15.6816 217.017 15.2618 217.293 14.9819L220.055 12.1833C220.331 11.9034 220.745 11.9034 221.022 12.1833L228.203 19.4597C228.479 19.7396 228.479 20.1594 228.203 20.4393L221.022 27.7157C220.745 27.9956 220.331 27.9956 220.055 27.7157L217.293 24.9171C217.017 24.6372 217.017 24.2174 217.293 23.9376L220.745 20.5092C220.953 20.0894 220.953 19.6696 220.676 19.3898Z\",\n fill: \"#7EE49C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.27 19.3898L220.887 15.9614C220.611 15.6816 220.611 15.2618 220.887 14.9819L223.649 12.1833C223.925 11.9034 224.339 11.9034 224.615 12.1833L231.796 19.4597C232.073 19.7396 232.073 20.1594 231.796 20.4393L224.615 27.7157C224.339 27.9956 223.925 27.9956 223.649 27.7157L220.887 24.9171C220.611 24.6372 220.611 24.2174 220.887 23.9376L224.339 20.5092C224.546 20.0894 224.546 19.6696 224.27 19.3898Z\",\n fill: \"#7EE49C\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_623_401\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 232,\n height: 41,\n fill: \"white\",\n transform: \"translate(0 0.988525)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPageLogo);\nexport default __webpack_public_path__ + \"static/media/page-logo.745da22bdebe7b2c5732e265afde1e6e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\nimport pagelogo from \"../assets/images/svg/page-logo.svg\";\nimport { CloseIcon, ToggleIcon } from \"./Icons\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\nconst Header = ({locale}) => {\n const [navShow, setNavShow] = useState(false);\n if (navShow) {\n document.documentElement.classList.add(\"overflow-hidden\");\n document.body.classList.add(\"overflow-hidden\");\n document.body.classList.add(\"vh-100\");\n } else {\n document.documentElement.classList.remove(\"overflow-hidden\");\n document.body.classList.remove(\"overflow-hidden\");\n document.body.classList.remove(\"vh-100\");\n }\n\n gsap.registerPlugin(ScrollTrigger);\n useEffect(() => {\n let headerValue = gsap.matchMedia();\n headerValue.add(\"(min-width:992px)\", () => {\n const tl = gsap.timeline({ fastScrollEnd: true });\n tl.from(\".header_section\", {\n autoAlpha: 0,\n }).from(\".header_section\", {\n top: \"-100px\",\n duration: 1,\n delay: 2,\n });\n });\n }, []);\n\n const mainAssetsBtn = () => {\n if (window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 3000, ease: \"linear\" });\n }\n if (window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 1700, ease: \"linear\" });\n }\n if (window.innerWidth < 1100) {\n gsap.to(window, { duration: 0.3, scrollTo: 1000, ease: \"linear\" });\n }\n if (window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (window.innerHeight > 1090 && window.innerHeight <= 1500) {\n gsap.to(window, { duration: 0.3, scrollTo: 2100, ease: \"linear\" });\n }\n };\n const contactBtn = (isChat) => {\n if (window.innerWidth > 2000) {\n gsap.to(window, { duration: 1, scrollTo: 40000, ease: \"linear\" });\n }\n if (window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 1, scrollTo: 30000, ease: \"linear\" });\n }\n if (window.innerWidth < 1599) {\n gsap.to(window, { duration: 1, scrollTo: 32000, ease: \"linear\" });\n }\n };\n const daicarBtn = () => {\n gsap.to(window, { duration: 0.3, scrollTo: \".timeline_all_btns_hover\", ease: \"linear\" });\n return\n };\n const Servizi = () => {\n if (window.innerHeight > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 12000, ease: \"linear\" });\n }\n if (window.innerHeight > 1025 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 7200, ease: \"linear\" });\n }\n if (window.innerHeight > 800 && window.innerHeight < 900) {\n gsap.to(window, { duration: 0.3, scrollTo: 5600, ease: \"linear\" });\n }else if (window.innerHeight < 1025) {\n gsap.to(window, { duration: 0.3, scrollTo: 6300, ease: \"linear\" });\n }\n if (window.innerHeight > 1090 && window.innerHeight <= 1500) {\n gsap.to(window, { duration: 0.3, scrollTo: 8000, ease: \"linear\" });\n }\n };\n\n return (\n
\n
\n
\n \n \n \n setNavShow(!navShow)}\n className=\"text-danger px-2 py-1 d-lg-none rounded-3 toggle_icon\"\n >\n \n
\n
    \n
  • mainAssetsBtn()}>\n \n MattIA\n \n
  • \n
  • Servizi()}>\n \n {locale.menuFeatures}\n \n
  • \n
  • daicarBtn()}>\n \n {locale.menuHowWorks}\n \n
  • \n
  • \n \n {locale.menuAboutUs}\n \n
  • \n
  • contactBtn()}>\n \n {locale.menuDemo}\n \n
  • \n
\n
\n contactBtn()}\n >\n {locale.menuContact}\n \n
\n
\n
\n
\n
    \n setNavShow(false)}\n className=\"btn_close_position position-absolute\"\n >\n \n \n
  • mainAssetsBtn()}>\n setNavShow(false)}\n href=\"#intro-content\"\n className=\"font_2xl color_white_off nav_hover\"\n >\n MattIA\n \n
  • \n
  • Servizi()}>\n setNavShow(false)}\n href=\"#servizi\"\n className=\"font_2xl color_white_off nav_hover\"\n >\n {locale.menuFeatures}\n \n
  • \n
  • daicarBtn()}>\n setNavShow(false)}\n href=\"#timeline\"\n className=\"font_2xl color_white_off nav_hover\"\n >\n {locale.menuHowWorks}\n \n
  • \n
  • \n \n {locale.menuAboutUs}\n \n
  • \n
    contactBtn()} className=\"pt-2 text-center\">\n setNavShow(false)}\n className=\"mb-0 fw-bold font_2xl color_white_off sentia_link pt2\"\n >\n {locale.menuContact}\n \n
    \n
\n
\n
\n
\n \n );\n};\n\nexport default Header;\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 603,\n height: 581,\n viewBox: \"0 0 603 581\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M283.235 445.776L153.462 573.263C151.006 575.677 148.09 577.593 144.881 578.9C141.671 580.207 138.231 580.879 134.756 580.879C131.282 580.879 127.842 580.207 124.632 578.9C121.422 577.593 118.506 575.677 116.051 573.263L8.80972 468.137C6.33196 465.736 4.36452 462.875 3.02168 459.72C1.67884 456.566 0.987319 453.181 0.987319 449.761C0.987318 446.342 1.67884 442.957 3.02168 439.802C4.36452 436.648 6.33196 433.787 8.80972 431.385L283.235 161.796C285.679 159.367 288.589 157.438 291.798 156.122C295.006 154.806 298.448 154.128 301.924 154.128C305.401 154.128 308.843 154.806 312.051 156.122C315.259 157.438 318.17 159.367 320.614 161.796L595.039 431.385C597.517 433.787 599.484 436.648 600.827 439.802C602.17 442.957 602.862 446.342 602.862 449.761C602.862 453.181 602.17 456.566 600.827 459.72C599.484 462.875 597.517 465.736 595.039 468.137L487.831 573.295C485.375 575.71 482.459 577.625 479.25 578.932C476.04 580.239 472.6 580.912 469.125 580.912C465.651 580.912 462.211 580.239 459.001 578.932C455.791 577.625 452.875 575.71 450.42 573.295L320.614 445.776C315.656 440.91 308.933 438.176 301.924 438.176C294.915 438.176 288.193 440.91 283.235 445.776Z\",\n fill: \"#7EE49C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M283.235 300.064L153.462 430.819C151.006 433.295 148.09 435.26 144.881 436.6C141.671 437.941 138.231 438.631 134.756 438.631C131.282 438.631 127.842 437.941 124.632 436.6C121.422 435.26 118.506 433.295 116.051 430.819L8.80972 322.998C6.33196 320.535 4.36452 317.601 3.02168 314.365C1.67884 311.13 0.98732 307.658 0.987319 304.151C0.987319 300.644 1.67884 297.172 3.02168 293.936C4.36452 290.701 6.33196 287.767 8.80972 285.304L283.235 8.80196C285.679 6.31047 288.589 4.3324 291.798 2.98237C295.006 1.63233 298.448 0.937175 301.924 0.937174C305.401 0.937174 308.843 1.63233 312.051 2.98236C315.259 4.3324 318.17 6.31047 320.614 8.80196L595.039 285.304C597.517 287.767 599.484 290.701 600.827 293.936C602.17 297.172 602.862 300.644 602.862 304.151C602.862 307.658 602.17 311.13 600.827 314.365C599.484 317.601 597.517 320.535 595.039 322.998L487.831 430.852C485.375 433.328 482.459 435.293 479.25 436.633C476.04 437.974 472.6 438.664 469.125 438.664C465.651 438.664 462.211 437.974 459.001 436.633C455.791 435.293 452.875 433.328 450.42 430.852L320.614 300.064C315.656 295.072 308.933 292.268 301.924 292.268C294.915 292.268 288.193 295.072 283.235 300.064Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrow);\nexport default __webpack_public_path__ + \"static/media/arrow.29824e304d61ee776d5d42df202c3255.svg\";\nexport { ForwardRef as ReactComponent };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport PropTypes from 'prop-types';\n\nexport const propTypes = {\n // You can use either animationData OR path\n animationData: PropTypes.object,\n path: PropTypes.string,\n\n play: PropTypes.bool,\n goTo: PropTypes.number,\n speed: PropTypes.number,\n direction: PropTypes.number,\n loop: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n useSubframes: PropTypes.bool,\n\n segments: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.bool]),\n\n rendererSettings: PropTypes.object,\n\n renderer: PropTypes.string,\n\n audioFactory: PropTypes.func,\n\n onComplete: PropTypes.func,\n onLoopComplete: PropTypes.func,\n onEnterFrame: PropTypes.func,\n onSegmentStart: PropTypes.func,\n};\n\nexport const defaultProps = {\n animationData: null,\n path: null,\n\n play: null,\n segments: null,\n goTo: null,\n useSubframes: true,\n\n speed: 1,\n direction: 1,\n loop: true,\n\n rendererSettings: {},\n renderer: 'svg',\n\n audioFactory: null,\n\n onLoad: () => {},\n onComplete: () => {},\n onLoopComplete: () => {},\n onEnterFrame: () => {},\n onSegmentStart: () => {},\n};\n","// eslint-disable-next-line no-unused-vars\nimport React, {\n memo, useRef, useEffect, useState, forwardRef, useCallback,\n} from 'react';\nimport equal from 'fast-deep-equal/es6/react';\nimport clone from 'rfdc/default';\n\nimport { propTypes, defaultProps } from './props';\n\nconst makeLottiePlayer = ({ loadAnimation }) => {\n const Lottie = memo(forwardRef(({\n animationData,\n path,\n\n play,\n speed,\n direction,\n segments: segmentsIn,\n goTo,\n useSubframes,\n\n renderer,\n loop,\n rendererSettings: rendererSettingsIn,\n\n audioFactory,\n\n onLoad,\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n\n ...props\n }, forwardedRef) => {\n const animElementRef = useRef();\n const animRef = useRef();\n\n const [ready, setReady] = useState(false);\n\n const [segments, setSegments] = useState(segmentsIn);\n\n // Prevent re-init\n useEffect(() => {\n if (!equal(segments, segmentsIn)) setSegments(segmentsIn);\n }, [segmentsIn, segments]);\n\n const [rendererSettings, setRendererSettings] = useState(rendererSettingsIn);\n\n // Prevent re-init\n useEffect(() => {\n if (!equal(rendererSettings, rendererSettingsIn)) setRendererSettings(rendererSettingsIn);\n }, [rendererSettingsIn, rendererSettings]);\n\n // In order to remove listeners before animRef gets destroyed:\n useEffect(() => () => animRef.current.removeEventListener('complete', onComplete), [onComplete]);\n useEffect(() => () => animRef.current.removeEventListener('loopComplete', onLoopComplete), [onLoopComplete]);\n useEffect(() => () => animRef.current.removeEventListener('enterFrame', onEnterFrame), [onEnterFrame]);\n useEffect(() => () => animRef.current.removeEventListener('segmentStart', onSegmentStart), [onSegmentStart]);\n useEffect(() => () => animRef.current.removeEventListener('DOMLoaded', onLoad), [onLoad]);\n\n const setLottieRefs = useCallback((newRef) => {\n animRef.current = newRef;\n // eslint-disable-next-line no-param-reassign\n if (forwardedRef) forwardedRef.current = newRef;\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n function parseAnimationData() {\n if (animationData == null || typeof animationData !== 'object') return animationData;\n\n // https://github.com/mifi/react-lottie-player/issues/11#issuecomment-879310039\n // https://github.com/chenqingspring/vue-lottie/issues/20\n if (typeof animationData.default === 'object') {\n return clone(animationData.default);\n }\n // cloneDeep to prevent memory leak. See #35\n return clone(animationData);\n }\n\n // console.log('init')\n const lottie = loadAnimation({\n animationData: parseAnimationData(),\n path,\n container: animElementRef.current,\n renderer,\n loop: false,\n autoplay: false, // We want to explicitly control playback\n rendererSettings,\n audioFactory,\n });\n setLottieRefs(lottie);\n\n const onDomLoaded = () => setReady(true);\n\n animRef.current.addEventListener('DOMLoaded', onDomLoaded);\n\n return () => {\n animRef.current.removeEventListener('DOMLoaded', onDomLoaded);\n setReady(false);\n animRef.current.destroy();\n setLottieRefs(undefined);\n };\n }, [loop, renderer, rendererSettings, animationData, path, audioFactory, setLottieRefs]);\n\n useEffect(() => {\n animRef.current.addEventListener('DOMLoaded', onLoad);\n }, [onLoad]);\n\n useEffect(() => {\n animRef.current.addEventListener('complete', onComplete);\n }, [onComplete]);\n\n useEffect(() => {\n animRef.current.addEventListener('loopComplete', onLoopComplete);\n }, [onLoopComplete]);\n\n useEffect(() => {\n animRef.current.addEventListener('enterFrame', onEnterFrame);\n }, [onEnterFrame]);\n\n useEffect(() => {\n animRef.current.addEventListener('segmentStart', onSegmentStart);\n }, [onSegmentStart]);\n\n useEffect(() => {\n if (!ready) return;\n animRef.current.loop = loop;\n }, [ready, loop]);\n\n const wasPlayingSegmentsRef = useRef(false);\n\n useEffect(() => {\n if (!ready) return;\n\n // Without this code, when playback restarts, it will not play in reverse:\n // https://github.com/mifi/react-lottie-player/issues/19\n function playReverse(lastFrame) {\n animRef.current.goToAndPlay(lastFrame, true);\n animRef.current.setDirection(direction);\n }\n\n if (play === true) {\n const force = true;\n if (segments) {\n animRef.current.playSegments(segments, force);\n wasPlayingSegmentsRef.current = true;\n\n // This needs to be called after playSegments or it will not play backwards\n if (direction === -1) {\n // TODO What if more than one segment\n const lastFrame = segments[1];\n playReverse(lastFrame);\n }\n } else {\n // If we called playSegments last time, the segments are stored as a state in the lottie object\n // Need to reset segments or else it will still play the old segments also when calling play()\n // wasPlayingSegmentsRef: Only reset segments if playSegments last time, because resetSegments will also reset playback position\n // https://github.com/airbnb/lottie-web/blob/master/index.d.ts\n if (wasPlayingSegmentsRef.current) animRef.current.resetSegments(force);\n wasPlayingSegmentsRef.current = false;\n\n if (direction === -1) {\n const lastFrame = animRef.current.getDuration(true);\n playReverse(lastFrame);\n } else {\n animRef.current.play();\n }\n }\n } else if (play === false) {\n animRef.current.pause();\n }\n }, [play, segments, ready, direction]);\n\n useEffect(() => {\n if (!ready) return;\n if (Number.isNaN(speed)) return;\n animRef.current.setSpeed(speed);\n }, [speed, ready]);\n\n // This handles the case where only direction has changed (direction is not a dependency of the other effect that calls setDirection)\n useEffect(() => {\n if (!ready) return;\n animRef.current.setDirection(direction);\n }, [direction, ready]);\n\n useEffect(() => {\n if (!ready) return;\n if (goTo == null) return;\n const isFrame = true; // TODO\n if (play) animRef.current.goToAndPlay(goTo, isFrame);\n else animRef.current.goToAndStop(goTo, isFrame);\n }, [goTo, play, ready]);\n\n useEffect(() => {\n if (animRef.current.setSubframe) animRef.current.setSubframe(useSubframes);\n // console.log(animRef.current.isSubframeEnabled)\n }, [useSubframes]);\n\n return (\n \n );\n }));\n\n Lottie.propTypes = propTypes;\n Lottie.defaultProps = defaultProps;\n\n return Lottie;\n};\n\nexport default makeLottiePlayer;\n","import lottie from 'lottie-web';\nimport makeLottiePlayer from './makeLottiePlayer';\n\nexport default makeLottiePlayer(lottie);\n","import React, { useEffect, useState } from \"react\";\nimport Lottie from \"react-lottie-player\";\nimport lottieurl from \"../assets/lotties/hero-icon.json\";\nimport { gsap } from \"gsap\";\n\nconst LottieHero = () => {\n const [lottieicon, setlottieicon] = useState(false);\n const heroscrollicon = () => {\n if (window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 1000, ease: \"linear\" });\n }\n if (window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 600, ease: \"linear\" });\n }\n if (window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 500, ease: \"linear\" });\n }\n if (window.innerWidth < 900) {\n gsap.to(window, { duration: 0.3, scrollTo: 800, ease: \"linear\" });\n }\n if (window.innerWidth < 500) {\n gsap.to(window, { duration: 0.3, scrollTo: 500, ease: \"linear\" });\n }\n };\n useEffect(() => {\n window.addEventListener(\"scroll\", () => {\n if (window.pageYOffset < 300) {\n setlottieicon(true);\n } else {\n setlottieicon(false);\n }\n });\n }, []);\n return (\n <>\n {lottieicon && (\n heroscrollicon()}\n >\n \n \n )}\n \n );\n};\n\nexport default LottieHero;\n","import React, { useEffect } from \"react\";\nimport { Icon4 } from \"./Icons\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\";\nimport Header from \"./Header\";\nimport ipad from \"../assets/images/png/ipad.png\";\nimport videoWebmV from \"../assets/Video-MattIA_Daicar-Group-vertical4.webm\";\nimport arrow from \"../assets/images/svg/arrow.svg\";\nimport { TabRightIcon } from \"./Icons\";\nimport comeLottie from \"../assets/lotties/tabs-1.json\";\nimport marketingLottie from \"../assets/lotties/tabs-2.json\";\nimport techDrivenLottie from \"../assets/lotties/tabs-3.json\";\nimport realTimeLottie from \"../assets/lotties/tabs-4.json\";\nimport crmLottie from \"../assets/lotties/tabs-5.json\";\nimport LottieHero from \"./LottieHero\";\n// import VisibilitySensor from \"react-visibility-sensor\";\n\nconst Hero = ({locale: {Hero}}) => {\n let tl;\n gsap.registerPlugin(ScrollTrigger, ScrollToPlugin);\n\n useEffect(() => {\n let mm = gsap.matchMedia();\n mm.add(\"(min-width: 1600px)\", () => {\n gsap.set([\"#hero-sub-heading-two\", \"#hero-sub-heading-two h2\"], {\n zIndex: \"-1\",\n });\n gsap.set(\"#hero-sub-heading-one h2\", {\n y: \"170px\",\n });\n gsap.set(\".arrow-hero-one\", {\n y: \"30px\",\n scale: 1.1,\n });\n gsap.set(\".arrow-hero-two\", {\n yPercent: -9,\n xPercent: 100,\n scale: 0.4,\n });\n gsap.set(\".arrow-hero-three\", {\n xPercent: -90,\n yPercent: -26,\n scale: 0.2,\n });\n gsap.set(\"#hero-large-arrow\", {\n left: \"50%\",\n xPercent: -50,\n top: \"76%\",\n });\n gsap.set(\"#intro-content\", {\n display: \"none\",\n });\n gsap.from([\".arrow-hero-one\", \".arrow-hero-two\", \".arrow-hero-three\"], {\n y: 500,\n stagger: 0.1,\n duration: 1.5,\n delay: 3.0,\n });\n gsap.set(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-one\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 0,\n }\n );\n gsap.set(\"#hero-outline-arrow\", {\n autoAlpha: 0,\n yPercent: 100,\n });\n gsap.set([\"#hero-ipad\", \"#hero-ipad-white\"], {\n scale: 2,\n top: \"45%\",\n left: \"50%\",\n xPercent: -50,\n yPercent: -50,\n });\n gsap.set(\"#main-content\", {\n y: \"-130px\",\n });\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#hero\",\n start: \"top top\",\n end: \"+=500%\",\n pin: true,\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n\n tl.to(\".arrow-hero-one\", {\n yPercent: -200,\n autoAlpha: 0,\n })\n .to(\n \".arrow-hero-three\",\n {\n yPercent: -300,\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\"#hero-sub-heading-one h2\", {\n y: \"0px\",\n })\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 73,\n yPercent: -8,\n scale: 0.19,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .set(\"#hero-outline-arrow\", {\n autoAlpha: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\n \"#hero-sub-heading-one\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n }\n )\n .to(\n [\n \"#hero-sub-heading-one h2\"\n ],\n {\n scale: 0.7\n }\n )\n .to(\n [\n \"#hero-sub-heading-two h2\"\n ],\n {\n scale: 0.82\n }\n )\n .to(\"#hero-ipad\", {\n scale: 1,\n })\n .to(\n \"#main-content\",\n {\n scale: 1,\n },\n \"<\"\n )\n .to(\"#hero-outline-arrow\", {\n yPercent: -200,\n duration: 5,\n })\n .to(\n [\n \"#hero-sub-heading-one h2\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 0,\n },\n \"<1\"\n )\n .to(\n [\n \"#hero-sub-heading-two\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n },\n \"<\"\n )\n .to(\n \"#hero_section\",\n {\n height: 0,\n duration: 2,\n },\n \"<\"\n )\n .set(\n \"#hero-ipad-white\",\n {\n scale: 0.8,\n },\n \">\"\n )\n .to(\n [\"#hero-ipad\", \".hero_slide_2\"],\n {\n scale: 0.8,\n },\n \">\"\n )\n .to(\n \".hero_slide_1\",\n {\n scale: 0.8,\n },\n \"<\"\n )\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 58,\n yPercent: -8,\n scale: 0.13,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .to(\n \"#hero-ipad\",\n {\n autoAlpha: 0,\n },\n \">\"\n )\n .to(\n \"#hero-ipad-white\",\n {\n opacity: 1,\n },\n \"<\"\n )\n .set(\n \"#main-content\",\n {\n display: \"none\",\n },\n \"<\"\n )\n\n //////////\n .addLabel(\"button_0\")\n .to(\n \".active_button_0\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"<\"\n )\n .set(\n \"#intro-content\",\n {\n display: \"block\",\n },\n \"<20%\"\n )\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"73%\",\n })\n // .fromTo(\n // \".card_img_0\",\n // {\n // top: \"50px\",\n // },\n // {\n // top: \"0px\",\n // }\n // )\n .to(\n \".side_icon\",\n {\n bottom: \"10%\",\n },\n \"-=.5\"\n )\n // .to(\".card_img_0\", {\n // opacity: 0,\n // })\n // .fromTo(\n // \".card_img_1\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_0\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_1\")\n .to(\n \".active_button_1\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"70%\",\n })\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n },\n \"-=.5\"\n )\n .fromTo(\n \".left_text_2\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"30%\",\n },\n \"-=.5\"\n )\n\n // .to(\".card_img_1\", {\n // opacity: 0,\n // })\n // .fromTo(\n // \".card_img_2\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_1\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_2\")\n .to(\n \".active_button_2\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"64%\",\n })\n .fromTo(\n \".left_text_2\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n },\n \"-=.5\"\n )\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"35%\",\n },\n \"-=.5\"\n )\n\n // .to(\".card_img_2\", {\n // opacity: 0,\n // })\n // .fromTo(\n // \".card_img_3\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_2\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_3\")\n .to(\".active_button_3\", {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n })\n .to(\"#hero-large-arrow\", {\n top: \"58%\",\n })\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n },\n \"-=.5\"\n )\n .fromTo(\n \".left_text_4\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"40%\",\n },\n \"-=.5\"\n )\n // .to(\".card_img_3\", {\n // opacity: 0,\n // })\n // .fromTo(\n // \".card_img_4\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_3\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_4\")\n .to(\n \".active_button_4\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"52%\",\n })\n .fromTo(\n \".left_text_4\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n },\n \"-=.5\"\n )\n .fromTo(\n \".left_text_5\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"45%\",\n },\n \"-=.5\"\n )\n .to([\"#para_text_01 button\", \"#para_text_01 p\"], {\n color: \"white\",\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n });\n });\n\n mm.add(\"(min-width: 1000px) and (max-width:1298px)\", () => {\n gsap.set(\"#main-content\", {\n y: \"-60px\",\n });\n gsap.set([\"#hero-sub-heading-two\", \"#hero-sub-heading-two h2\"], {\n zIndex: \"-1\",\n });\n gsap.set(\"#hero-sub-heading-one h2\", {\n y: \"100px\",\n });\n gsap.set(\".arrow-hero-one\", {\n scale: 0.8,\n });\n gsap.set(\".arrow-hero-two\", {\n yPercent: -11,\n xPercent: 75,\n scale: 0.3,\n });\n gsap.set(\".arrow-hero-three\", {\n xPercent: -65,\n yPercent: -22,\n scale: 0.15,\n });\n gsap.set(\"#hero-large-arrow\", {\n left: \"50%\",\n xPercent: -50,\n top: \"70%\",\n });\n gsap.set(\"#intro-content\", {\n display: \"none\",\n });\n gsap.from([\".arrow-hero-one\", \".arrow-hero-two\", \".arrow-hero-three\"], {\n y: 500,\n stagger: 0.1,\n duration: 1.5,\n delay: 3.0,\n });\n\n gsap.set(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-one\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 0,\n }\n );\n\n gsap.set(\"#hero-outline-arrow\", {\n autoAlpha: 0,\n yPercent: 100,\n });\n\n gsap.set([\"#hero-ipad\", \"#hero-ipad-white\"], {\n scale: 2,\n top: \"45%\",\n left: \"50%\",\n xPercent: -50,\n yPercent: -50,\n });\n gsap.set(\"#main-content\", {\n y: \"-70px\",\n });\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#hero\",\n start: \"top top\",\n end: \"+=500%\",\n pin: true,\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n\n tl.to(\".arrow-hero-one\", {\n yPercent: -200,\n autoAlpha: 0,\n })\n .to(\n \".arrow-hero-three\",\n {\n yPercent: -300,\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\"#hero-sub-heading-one h2\", {\n y: \"0px\",\n })\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 78,\n yPercent: 3,\n scale: 0.1,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .set(\"#hero-outline-arrow\", {\n autoAlpha: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\n \"#hero-sub-heading-one\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n }\n )\n .to(\"#hero-ipad\", {\n scale: 0.7,\n })\n .to(\n \"#main-content\",\n {\n scale: 0.7,\n },\n \"<\"\n )\n .to(\"#hero-outline-arrow\", {\n yPercent: -200,\n duration: 5,\n })\n .to(\n [\n \"#hero-sub-heading-one h2\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 0,\n },\n \"<1\"\n )\n .to(\n [\n \"#hero-sub-heading-two\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n },\n \"<\"\n )\n .to(\n \"#hero_section\",\n {\n height: 0,\n duration: 2,\n },\n \"<\"\n )\n .set(\n \"#hero-ipad-white\",\n {\n scale: 0.7,\n },\n \">\"\n )\n .to(\n \"#hero-ipad\",\n {\n scale: 0.7,\n },\n \">\"\n )\n .to(\n \".hero_slide_2\",\n {\n scale: 0.8,\n },\n \"<\"\n )\n .to(\n \".hero_slide_1\",\n {\n scale: 0.8,\n },\n \"<\"\n )\n .to(\n \"#hero-ipad\",\n {\n autoAlpha: 0,\n },\n \">\"\n )\n .to(\n \"#hero-ipad-white\",\n {\n opacity: 1,\n },\n \"<\"\n )\n .set(\n \"#main-content\",\n {\n display: \"none\",\n },\n \"<\"\n )\n //////////\n .addLabel(\"button_0\")\n .to(\n \".active_button_0\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"<\"\n )\n .set(\n \"#intro-content\",\n {\n display: \"block\",\n },\n \"<20%\"\n )\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"68%\",\n })\n // .fromTo(\n // \".card_img_0\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\n \".side_icon\",\n {\n bottom: \"10%\",\n },\n \"-=.5\"\n )\n // .fromTo(\n // \".card_img_0\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_1\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_0\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n .to(\"#hero-large-arrow\", {\n top: \"63%\",\n })\n ////////\n .addLabel(\"button_1\")\n .to(\n \".active_button_1\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_2\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"30%\",\n },\n \"-=.5\"\n )\n\n // .fromTo(\n // \".card_img_1\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_2\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_1\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_2\")\n .to(\n \".active_button_2\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"58%\",\n })\n .fromTo(\n \".left_text_2\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"35%\",\n },\n \"-=.5\"\n )\n\n // .fromTo(\n // \".card_img_2\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_3\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_2\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_3\")\n .to(\".active_button_3\", {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n })\n .to(\"#hero-large-arrow\", {\n top: \"53%\",\n })\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_4\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"40%\",\n },\n \"-=.5\"\n )\n // .fromTo(\n // \".card_img_3\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_4\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_3\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_4\")\n .to(\n \".active_button_4\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"48%\",\n })\n .fromTo(\n \".left_text_4\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_5\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"45%\",\n },\n \"-=.5\"\n )\n .to([\"#para_text_01 button\", \"#para_text_01 p\"], {\n color: \"white\",\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n });\n });\n\n mm.add(\"(min-width: 1299px) and (max-width:1599.98px)\", () => {\n gsap.set(\"#main-content\", {\n y: \"-60px\",\n });\n gsap.set([\"#hero-sub-heading-two\", \"#hero-sub-heading-two h2\"], {\n zIndex: \"-1\",\n });\n gsap.set(\"#hero-sub-heading-one h2\", {\n y: \"100px\",\n });\n gsap.set(\".arrow-hero-one\", {\n scale: 0.8,\n });\n gsap.set(\".arrow-hero-two\", {\n yPercent: -11,\n xPercent: 75,\n scale: 0.3,\n });\n gsap.set(\".arrow-hero-three\", {\n xPercent: -65,\n yPercent: -22,\n scale: 0.15,\n });\n gsap.set(\"#hero-large-arrow\", {\n left: \"50%\",\n xPercent: -50,\n top: \"70%\",\n });\n gsap.set(\"#intro-content\", {\n display: \"none\",\n });\n gsap.from([\".arrow-hero-one\", \".arrow-hero-two\", \".arrow-hero-three\"], {\n y: 500,\n stagger: 0.1,\n duration: 1.5,\n delay: 3.0,\n });\n\n gsap.set(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-one\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 0,\n }\n );\n\n gsap.set(\"#hero-outline-arrow\", {\n autoAlpha: 0,\n yPercent: 100,\n });\n\n gsap.set([\"#hero-ipad\", \"#hero-ipad-white\"], {\n scale: 2,\n top: \"45%\",\n left: \"50%\",\n xPercent: -50,\n yPercent: -50,\n });\n gsap.set(\"#main-content\", {\n y: \"-70px\",\n });\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#hero\",\n start: \"top top\",\n end: \"+=500%\",\n pin: true,\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n\n tl.to(\".arrow-hero-one\", {\n yPercent: -200,\n autoAlpha: 0,\n })\n .to(\n \".arrow-hero-three\",\n {\n yPercent: -300,\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\"#hero-sub-heading-one h2\", {\n y: \"0px\",\n })\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 78,\n yPercent: 3,\n scale: 0.1,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .set(\"#hero-outline-arrow\", {\n autoAlpha: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\n \"#hero-sub-heading-one\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n }\n )\n .to(\n [\n \"#hero-sub-heading-one h2\"\n ],\n {\n scale: 0.8\n }\n )\n .to(\n [\n \"#hero-sub-heading-two h2\"\n ],\n {\n scale: 0.8\n }\n )\n .to(\"#hero-ipad\", {\n scale: 1,\n })\n .to(\n \"#main-content\",\n {\n scale: 1,\n },\n \"<\"\n )\n .to(\"#hero-outline-arrow\", {\n yPercent: -200,\n duration: 5,\n })\n .to(\n [\n \"#hero-sub-heading-one h2\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 0,\n },\n \"<1\"\n )\n .to(\n [\n \"#hero-sub-heading-two\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n },\n \"<\"\n )\n .to(\n \"#hero_section\",\n {\n height: 0,\n duration: 2,\n },\n \"<\"\n )\n .set(\n \"#hero-ipad-white\",\n {\n scale: 0.8,\n },\n \">\"\n )\n .to(\n \"#hero-ipad\",\n {\n scale: 0.8,\n },\n \">\"\n )\n .to(\n \".hero_slide_2\",\n {\n scale: 0.8,\n },\n \"<\"\n )\n .to(\n \".hero_slide_1\",\n {\n scale: 0.8,\n },\n \"<\"\n )\n .to(\n \"#hero-ipad\",\n {\n autoAlpha: 0,\n },\n \">\"\n )\n .to(\n \"#hero-ipad-white\",\n {\n opacity: 1,\n },\n \"<\"\n )\n .set(\n \"#main-content\",\n {\n display: \"none\",\n },\n \"<\"\n )\n //////////\n .addLabel(\"button_0\")\n .to(\n \".active_button_0\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"<\"\n )\n .set(\n \"#intro-content\",\n {\n display: \"block\",\n },\n \"<20%\"\n )\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"68%\",\n })\n // .fromTo(\n // \".card_img_0\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\n \".side_icon\",\n {\n bottom: \"10%\",\n },\n \"-=.5\"\n )\n // .fromTo(\n // \".card_img_0\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_1\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_0\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n .to(\"#hero-large-arrow\", {\n top: \"63%\",\n })\n ////////\n .addLabel(\"button_1\")\n .to(\n \".active_button_1\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_2\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"30%\",\n },\n \"-=.5\"\n )\n\n // .fromTo(\n // \".card_img_1\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_2\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_1\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_2\")\n .to(\n \".active_button_2\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"58%\",\n })\n .fromTo(\n \".left_text_2\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"35%\",\n },\n \"-=.5\"\n )\n\n // .fromTo(\n // \".card_img_2\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_3\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_2\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_3\")\n .to(\".active_button_3\", {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n })\n .to(\"#hero-large-arrow\", {\n top: \"53%\",\n })\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_4\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"40%\",\n },\n \"-=.5\"\n )\n // .fromTo(\n // \".card_img_3\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_4\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_3\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_4\")\n .to(\n \".active_button_4\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"48%\",\n })\n .fromTo(\n \".left_text_4\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n .fromTo(\n \".left_text_5\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .to(\n \".side_icon\",\n {\n bottom: \"45%\",\n },\n \"-=.5\"\n )\n .to([\"#para_text_01 button\", \"#para_text_01 p\"], {\n color: \"white\",\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n });\n });\n\n mm.add(\"(min-width: 834px) and (max-width:999.98px)\", () => {\n gsap.set(\"#main-content\", {\n y: \"-60px\",\n });\n gsap.set(\".arrow-hero-one\", {\n scale: 0.8,\n });\n gsap.set(\".arrow-hero-two\", {\n xPercent: 80,\n yPercent: 48,\n scale: 0.4,\n });\n gsap.set(\".arrow-hero-three\", {\n xPercent: -54,\n yPercent: -15,\n scale: 0.15,\n });\n gsap.set(\"#hero-large-arrow\", {\n left: \"50%\",\n xPercent: -50,\n top: \"75%\",\n });\n gsap.set([\"#hero-sub-heading-two\", \"#hero-sub-heading-two h2\"], {\n zIndex: \"-1\",\n });\n gsap.set(\"#hero-sub-heading-one h2\", {\n y: \"100px\",\n });\n gsap.from([\".arrow-hero-one\", \".arrow-hero-two\", \".arrow-hero-three\"], {\n y: 500,\n stagger: 0.1,\n duration: 1.5,\n delay: 3.0,\n });\n\n gsap.set(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-one\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 0,\n }\n );\n gsap.set(\"#hero-outline-arrow\", {\n autoAlpha: 0,\n yPercent: 100,\n });\n gsap.set([\"#hero-ipad\", \"#hero-ipad-white\"], {\n scale: 2,\n top: \"45%\",\n left: \"50%\",\n xPercent: -50,\n yPercent: -50,\n });\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#hero\",\n start: \"top top\",\n end: \"+=500%\",\n pin: true,\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n\n tl.to(\".arrow-hero-one\", {\n yPercent: -200,\n autoAlpha: 0,\n })\n .to(\n \".arrow-hero-three\",\n {\n yPercent: -300,\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\"#hero-sub-heading-one h2\", {\n y: \"0px\",\n })\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 78,\n yPercent: 3,\n scale: 0.1,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .set(\"#hero-outline-arrow\", {\n autoAlpha: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\n \"#hero-sub-heading-one\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n }\n )\n .to(\"#hero-ipad\", {\n scale: 1,\n })\n .to(\n \"#main-content\",\n {\n scale: 1,\n },\n \"<\"\n )\n .to(\"#hero-outline-arrow\", {\n yPercent: -200,\n duration: 5,\n })\n .to(\n [\n \"#hero-sub-heading-one h2\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 0,\n },\n \"<1\"\n )\n .to(\n [\n \"#hero-sub-heading-two\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n },\n \"<\"\n )\n .to(\n \"#hero_section\",\n {\n height: 0,\n duration: 2,\n },\n \"<\"\n )\n .set(\n \"#hero-ipad-white\",\n {\n scale: 1,\n },\n \">\"\n )\n .to(\n [\".hero_slide_1\", \".hero_slide_2\"],\n {\n scale: 0.8,\n },\n \">\"\n )\n .to(\n [\".hero_slide_2\", \".hero_slide_1\"],\n {\n top: \"20%\",\n },\n \"<\"\n )\n .to(\n \"#hero-ipad\",\n {\n autoAlpha: 0,\n },\n \">\"\n )\n .to(\n \"#hero-ipad-white\",\n {\n opacity: 1,\n },\n \"<\"\n )\n .set(\n \"#main-content\",\n {\n display: \"none\",\n },\n \"<\"\n )\n //////////\n .addLabel(\"button_0\")\n .to(\n \".active_button_0\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"<\"\n )\n .set(\n \"#intro-content\",\n {\n display: \"block\",\n },\n \"<20%\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"73%\",\n })\n // .fromTo(\n // \".card_img_0\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n // .fromTo(\n // \".card_img_0\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_1\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_0\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_1\")\n .to(\n \".active_button_1\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"70%\",\n })\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n\n // .fromTo(\n // \".card_img_1\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_2\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_1\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_2\")\n .to(\n \".active_button_2\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"68%\",\n })\n\n // .fromTo(\n // \".card_img_2\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_3\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_2\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_3\")\n .to(\".active_button_3\", {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n })\n .to(\"#hero-large-arrow\", {\n top: \"66%\",\n })\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n // .fromTo(\n // \".card_img_3\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_4\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_3\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_4\")\n .to(\n \".active_button_4\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"64%\",\n })\n .to([\"#para_text_01 button\", \"#para_text_01 p\"], {\n color: \"white\",\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n });\n });\n\n mm.add(\"(min-width: 576px) and (max-width:833px)\", () => {\n gsap.set(\"#main-content\", {\n y: \"-60px\",\n });\n gsap.set(\".arrow-hero-one\", {\n scale: 0.8,\n });\n gsap.set(\".arrow-hero-two\", {\n xPercent: 80,\n yPercent: 48,\n scale: 0.4,\n });\n gsap.set(\".arrow-hero-three\", {\n xPercent: -54,\n yPercent: -15,\n scale: 0.15,\n });\n gsap.set(\"#hero-large-arrow\", {\n left: \"50%\",\n xPercent: -50,\n top: \"75%\",\n });\n gsap.set([\"#hero-sub-heading-two\", \"#hero-sub-heading-two h2\"], {\n zIndex: \"-1\",\n });\n gsap.set(\"#hero-sub-heading-one h2\", {\n y: \"100px\",\n });\n gsap.from([\".arrow-hero-one\", \".arrow-hero-two\", \".arrow-hero-three\"], {\n y: 500,\n stagger: 0.1,\n duration: 1.5,\n delay: 3.0,\n });\n\n gsap.set(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-one\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 0,\n }\n );\n gsap.set(\"#hero-outline-arrow\", {\n autoAlpha: 0,\n yPercent: 100,\n });\n gsap.set([\"#hero-ipad\", \"#hero-ipad-white\"], {\n scale: 2,\n top: \"45%\",\n left: \"50%\",\n xPercent: -50,\n yPercent: -50,\n });\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#hero\",\n start: \"top top\",\n end: \"+=500%\",\n pin: true,\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n\n tl.to(\".arrow-hero-one\", {\n yPercent: -200,\n autoAlpha: 0,\n })\n .to(\n \".arrow-hero-three\",\n {\n yPercent: -300,\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\"#hero-sub-heading-one h2\", {\n y: \"0px\",\n })\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 78,\n yPercent: 3,\n scale: 0.1,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .set(\"#hero-outline-arrow\", {\n autoAlpha: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\n \"#hero-sub-heading-one\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n }\n )\n .to(\"#hero-ipad\", {\n scale: 1,\n })\n .to(\n \"#main-content\",\n {\n scale: 1,\n },\n \"<\"\n )\n .to(\"#hero-outline-arrow\", {\n yPercent: -200,\n duration: 5,\n })\n .to(\n [\n \"#hero-sub-heading-one h2\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 0,\n },\n \"<1\"\n )\n .to(\n [\n \"#hero-sub-heading-two\",\n \"#hero-sub-heading-two h2\",\n \"#hero-sub-heading-two h3\",\n \"#hero-sub-heading-two p\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 1,\n zIndex: 10,\n },\n \"<\"\n )\n .to(\n \"#hero_section\",\n {\n height: 0,\n duration: 2,\n },\n \"<\"\n )\n .set(\n \"#hero-ipad-white\",\n {\n scale: 0.8,\n top: \"35%\",\n },\n \">\"\n )\n .to(\n [\"#hero-ipad\", \".hero_slide_1\", \".hero_slide_2\"],\n {\n scale: 0.8,\n },\n \">\"\n )\n .to(\n \"#hero-ipad\",\n {\n top: \"35%\",\n },\n \"<\"\n )\n .to(\n [\".hero_slide_2\", \".hero_slide_1\"],\n {\n top: \"20%\",\n },\n \"<\"\n )\n .to(\n \"#hero-ipad\",\n {\n autoAlpha: 0,\n },\n \">\"\n )\n .to(\n \"#hero-ipad-white\",\n {\n opacity: 1,\n },\n \"<\"\n )\n .set(\n \"#main-content\",\n {\n display: \"none\",\n },\n \"<\"\n )\n //////////\n .addLabel(\"button_0\")\n .to(\n \".active_button_0\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"<\"\n )\n .set(\n \"#intro-content\",\n {\n display: \"block\",\n },\n \"<20%\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"73%\",\n })\n // .fromTo(\n // \".card_img_0\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n // .fromTo(\n // \".card_img_0\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_1\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_0\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_1\")\n .to(\n \".active_button_1\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"70%\",\n })\n .fromTo(\n \".left_text_1\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n\n // .fromTo(\n // \".card_img_1\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_2\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_1\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_2\")\n .to(\n \".active_button_2\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"68%\",\n })\n\n // .fromTo(\n // \".card_img_2\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_3\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_2\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_3\")\n .to(\".active_button_3\", {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n })\n .to(\"#hero-large-arrow\", {\n top: \"66%\",\n })\n .fromTo(\n \".left_text_3\",\n {\n autoAlpha: 1,\n },\n {\n autoAlpha: 0,\n }\n )\n // .fromTo(\n // \".card_img_3\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_4\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_3\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_4\")\n .to(\n \".active_button_4\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"64%\",\n })\n .to([\"#para_text_01 button\", \"#para_text_01 p\"], {\n color: \"white\",\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n });\n });\n\n mm.add(\"(max-width:575.98px)\", () => {\n gsap.set(\"#main-content\", {\n // y: \"-145px\",\n marginLeft: \"calc(var(--bs-gutter-x) * -0.5)\",\n marginRight: \"calc(var(--bs-gutter-x) * -0.5)\"\n });\n gsap.set(\".arrow-hero-one\", {\n scale: 0.5,\n });\n gsap.set(\".arrow-hero-two\", {\n xPercent: 29,\n yPercent: -24,\n scale: 0.15,\n });\n gsap.set(\".arrow-hero-three\", {\n xPercent: -24,\n yPercent: 37,\n scale: 0.12,\n });\n gsap.set(\"#hero-large-arrow\", {\n left: \"50%\",\n xPercent: -50,\n top: \"75%\",\n });\n gsap.set(\"#hero-sub-heading-one h2\", {\n y: \"80px\",\n });\n gsap.from([\".arrow-hero-one\", \".arrow-hero-two\", \".arrow-hero-three\"], {\n y: 500,\n stagger: 0.1,\n duration: 1.5,\n delay: 3.0,\n });\n\n gsap.set(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-sub-heading-two\",\n \"#hero-para-one\",\n \"#hero-para-two\",\n ],\n {\n autoAlpha: 0,\n }\n );\n gsap.set(\"#hero-outline-arrow\", {\n autoAlpha: 0,\n yPercent: 100,\n });\n\n gsap.set([\"#hero-ipad\", \"#hero-ipad-white\"], {\n scale: 2,\n top: \"45%\",\n left: \"50%\",\n xPercent: -50,\n yPercent: -44,\n });\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#hero\",\n start: \"top top\",\n end: \"+=500%\",\n pin: true,\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n\n tl.to(\".arrow-hero-one\", {\n yPercent: -200,\n autoAlpha: 0,\n })\n .to(\n \".arrow-hero-three\",\n {\n yPercent: -300,\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\"#hero-sub-heading-one h2\", {\n y: \"0px\",\n })\n .to(\n \".arrow-hero-two\",\n {\n xPercent: 53,\n yPercent: 3,\n scale: 0.1,\n rotate: \"45deg\",\n },\n \"<\"\n )\n .set(\"#hero-outline-arrow\", {\n autoAlpha: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 1,\n }\n )\n .to(\"#hero-ipad\", {\n scale: 1,\n })\n .set(\n \"#hero-ipad\",\n {\n scale: 0.98,\n },\n \">\"\n )\n .to(\n \"#main-content\",\n {\n scale: 1,\n },\n \"<\"\n )\n .to(\"#hero-outline-arrow\", {\n yPercent: -200,\n duration: 5,\n })\n .to(\n [\n \"#hero-sub-heading-one h2\",\n \"#hero-sub-heading-one h3\",\n \"#hero-sub-heading-one p\",\n \"#hero-para-one\",\n ],\n {\n autoAlpha: 0,\n },\n \"<1\"\n )\n .to(\n [\"#hero-sub-heading-two\", \"#hero-para-two\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n \"#hero_section\",\n {\n height: 0,\n duration: 4,\n },\n \"<\"\n )\n .set(\n \"#hero-ipad-white\",\n {\n scale: 0.98,\n },\n \">\"\n )\n .to(\n \"#hero-ipad\",\n {\n autoAlpha: 0,\n },\n \">\"\n )\n .to(\n \"#hero-ipad-white\",\n {\n opacity: 1,\n },\n \"<\"\n )\n .set(\n \"#main-content\",\n {\n display: \"none\",\n },\n \"<\"\n )\n .set(\n \"#intro-content\",\n {\n display: \"block\",\n },\n \"<20%\"\n )\n //////////\n .addLabel(\"button_0\")\n .to(\n \".active_button_0\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"73%\",\n })\n // .fromTo(\n // \".card_img_0\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n // .fromTo(\n // \".card_img_0\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_1\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_0\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_1\")\n .to(\n \".active_button_1\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"70%\",\n })\n // .fromTo(\n // \".card_img_1\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_2\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_1\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_2\")\n .to(\n \".active_button_2\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"68%\",\n })\n // .fromTo(\n // \".card_img_2\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_3\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_2\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_3\")\n .to(\".active_button_3\", {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n })\n .to(\"#hero-large-arrow\", {\n top: \"66%\",\n })\n // .fromTo(\n // \".card_img_3\",\n // {\n // opacity: 1,\n // },\n // {\n // opacity: 0,\n // }\n // )\n // .fromTo(\n // \".card_img_4\",\n // {\n // top: \"50px\",\n // },\n // {\n // opacity: 1,\n // top: \"0px\",\n // }\n // )\n .to(\".active_button_3\", {\n background: \"rgba(126, 228, 156, 0.5)\",\n rotate: 0,\n })\n //////////\n .addLabel(\"button_4\")\n .to(\n \".active_button_4\",\n {\n background: \"rgba(83, 132, 153, 0.5)\",\n rotate: \"-3deg\",\n },\n \"-=.5\"\n )\n .to(\"#hero-large-arrow\", {\n top: \"64%\",\n })\n .to([\"#para_text_01 button\", \"#para_text_01 p\"], {\n color: \"white\",\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n });\n });\n }, []);\n\n const {\n buttonData: buttonDataLocale,\n buttonDataMobile: buttonDataMobileLocale,\n Header: headerLocale\n } = Hero;\n\n const buttonData = [\n {\n buttonText: \"MattIA\",\n buttonId: \"button_0\",\n card_img: comeLottie,\n para: buttonDataLocale[0].para,\n },\n {\n buttonText: buttonDataLocale[1].buttonText,\n buttonId: \"button_1\",\n card_img: marketingLottie,\n para: buttonDataLocale[1].para,\n },\n {\n buttonText: buttonDataLocale[2].buttonText,\n buttonId: \"button_2\",\n card_img: techDrivenLottie,\n para: buttonDataLocale[2].para,\n },\n {\n buttonText: buttonDataLocale[3].buttonText,\n buttonId: \"button_3\",\n card_img: realTimeLottie,\n para: buttonDataLocale[3].para\n },\n {\n buttonText: buttonDataLocale[4].buttonText,\n buttonId: \"button_4\",\n card_img: crmLottie,\n para: buttonDataLocale[4].para\n }\n ];\n\n const buttonDataMobile = [\n {\n buttonText: \"MattIA\",\n buttonId: \"button_0\",\n card_img: comeLottie,\n para: buttonDataMobileLocale[0].para,\n after: buttonDataMobileLocale[0].after\n },\n {\n buttonText: buttonDataMobileLocale[1].buttonText,\n buttonId: \"button_1\",\n card_img: marketingLottie\n },\n {\n buttonText: buttonDataMobileLocale[2].buttonText,\n buttonId: \"button_2\",\n card_img: techDrivenLottie,\n para: buttonDataMobileLocale[2].para,\n },\n {\n buttonText: buttonDataMobileLocale[3].buttonText,\n buttonId: \"button_3\",\n card_img: realTimeLottie,\n para: buttonDataMobileLocale[3].para\n },\n {\n buttonText: buttonDataMobileLocale[4].buttonText,\n buttonId: \"button_4\",\n card_img: crmLottie,\n para: buttonDataMobileLocale[4].para\n }\n ];\n\n const venditeItbtn2 = () => {\n if (window.innerWidth > 1600) {\n gsap.to(window, { duration: 0.3, scrollTo: 2500, ease: \"linear\" });\n }\n if (window.innerWidth > 1600 && window.innerHeight <= 1025) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 1500, ease: \"linear\" });\n }\n if (window.innerWidth < 1200) {\n gsap.to(window, { duration: 0.3, scrollTo: 1200, ease: \"linear\" });\n }\n if (window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (window.innerWidth < 769 && window.innerHeight <= 1025) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (window.innerWidth < 576 && window.innerHeight) {\n gsap.to(window, { duration: 0.3, scrollTo: 3000, ease: \"linear\" });\n }\n };\n const moveToIt = (id) => {\n ////////// 1\n if (id === 0 && window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 2800, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth > 1600 && window.innerHeight <= 1025) {\n gsap.to(window, { duration: 0.3, scrollTo: 1800, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 1500, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth < 1100) {\n gsap.to(window, { duration: 0.3, scrollTo: 1200, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth <= 1024) {\n gsap.to(window, { duration: 0.3, scrollTo: 1900, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (id === 0 && window.innerWidth < 576) {\n gsap.to(window, { duration: 0.3, scrollTo: 1200, ease: \"linear\" });\n }\n\n ////////// 2\n if (id === 1 && window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 4000, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth > 1600 && window.innerHeight <= 1000) {\n gsap.to(window, { duration: 0.3, scrollTo: 2500, ease: \"linear\" });\n }else if (id === 1 && window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 2800, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth > 1600 && window.innerHeight <= 1025) {\n //gsap.to(window, { duration: 0.3, scrollTo: 2500, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 2000, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth < 1100) {\n gsap.to(window, { duration: 0.3, scrollTo: 1600, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth <= 1024) {\n gsap.to(window, { duration: 0.3, scrollTo: 3000, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 3000, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth < 769) {\n gsap.to(window, { duration: 0.3, scrollTo: 3200, ease: \"linear\" });\n }\n if (id === 1 && window.innerWidth < 576) {\n gsap.to(window, { duration: 0.3, scrollTo: 1600, ease: \"linear\" });\n }\n\n ////////// 3\n if (id === 2 && window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 4900, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 3500, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth > 1600 && window.innerHeight <= 1025) {\n //gsap.to(window, { duration: 0.3, scrollTo: 3450, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 2500, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth < 1100) {\n gsap.to(window, { duration: 0.3, scrollTo: 2050, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth <= 1024) {\n gsap.to(window, { duration: 0.3, scrollTo: 4000, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 3900, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth < 769) {\n gsap.to(window, { duration: 0.3, scrollTo: 3500, ease: \"linear\" });\n }\n if (id === 2 && window.innerWidth < 576) {\n gsap.to(window, { duration: 0.3, scrollTo: 2300, ease: \"linear\" });\n }\n\n ////////// 4\n if (id === 3 && window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 6000, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 4300, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth > 1600 && window.innerHeight <= 1025) {\n gsap.to(window, { duration: 0.3, scrollTo: 4000, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 3000, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth < 1100) {\n gsap.to(window, { duration: 0.3, scrollTo: 2320, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth <= 1024) {\n gsap.to(window, { duration: 0.3, scrollTo: 5000, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 5200, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth < 769) {\n gsap.to(window, { duration: 0.3, scrollTo: 4000, ease: \"linear\" });\n }\n if (id === 3 && window.innerWidth < 576) {\n gsap.to(window, { duration: 0.3, scrollTo: 2600, ease: \"linear\" });\n }\n\n ////////// 5\n if (id === 4 && window.innerWidth > 2000) {\n gsap.to(window, { duration: 0.3, scrollTo: 6800, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth > 1600 && window.innerHeight <= 1090) {\n gsap.to(window, { duration: 0.3, scrollTo: 5000, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth > 1600 && window.innerHeight <= 1025) {\n gsap.to(window, { duration: 0.3, scrollTo: 4700, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth < 1599) {\n gsap.to(window, { duration: 0.3, scrollTo: 3600, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth < 1100) {\n gsap.to(window, { duration: 0.3, scrollTo: 2820, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth <= 1024) {\n gsap.to(window, { duration: 0.3, scrollTo: 6000, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth < 992) {\n gsap.to(window, { duration: 0.3, scrollTo: 6000, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth < 769) {\n gsap.to(window, { duration: 0.3, scrollTo: 4700, ease: \"linear\" });\n }\n if (id === 4 && window.innerWidth < 576) {\n gsap.to(window, { duration: 0.3, scrollTo: 3200, ease: \"linear\" });\n }\n };\n\n console.log(window.innerWidth + ' x ' + window.innerHeight);\n\n return (\n <>\n
\n
\n
\n
\n \n
\n \n
\n \n \n

\n {Hero.phrase1}\n \n venditeItbtn2()}\n >\n {Hero.phrase2}\n \n \n

\n {Hero.phrase3}\n {' '}\n

\n {Hero.phrase3b}
\n {Hero.phrase4}\n

\n

\n +25%\n

\n

\n {Hero.phrase5}\n

\n

\n {Hero.phrase6}
\n {Hero.phrase7}
\n {Hero.phrase8}\n

\n
\n {/* ============================================================================== */}\n \n

\n {Hero.phrase9}
\n {Hero.phrase10}\n

\n

\n +50%\n

\n

\n {Hero.phrase11}\n

\n

\n {Hero.phrase12}
\n {Hero.phrase13}
\n {Hero.phrase14}\n
\n

\n
\n
\n\n \n \n \n\n \n \n \n \n\n
\n \n {/* ===== BREADCRUMBS STARTS ===== */}\n
\n
\n

\n {Hero.discoverMattia}\n

\n \n
\n
\n

\n {Hero.discoverMattia}\n

\n \n
\n
\n

\n {Hero.discoverMattia}\n

\n \n
\n
\n

\n {Hero.discoverMattia}\n

\n \n
\n
\n

\n {Hero.discoverMattia}\n

\n \n
\n
\n {/* ===== BREADCRUMBS ENDS ===== */}\n\n
\n
\n
\n\n {/* video */}\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n {buttonData.map((obj, index) => (\n
\n
\n \n

\n \n {obj.para}\n \n \n {buttonDataMobile[index].para}\n \n

\n {(obj.buttonText || buttonDataMobile[index].buttonText) &&\n (\n <>\n moveToIt(index)}\n >\n moveToIt(index)}\n >\n \n )\n }\n {(obj.after || buttonDataMobile[index].after) &&

\n \n {obj.after}\n \n \n {buttonDataMobile[index].after}\n \n

}\n
\n
\n
\n ))}\n
\n
\n
\n
\n \n \n\n \n {/* */}\n\n {/* \n */}\n \n \n \n \n \n );\n};\n\nexport default Hero;\n","var _g, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSmallArrowIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 44,\n height: 45,\n viewBox: \"0 0 44 45\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.7931 23.8864L43.2448 33.5077C43.4238 33.6898 43.5659 33.9059 43.6628 34.1439C43.7597 34.3819 43.8095 34.6369 43.8095 34.8945C43.8095 35.1521 43.7597 35.4072 43.6628 35.6451C43.5659 35.8831 43.4238 36.0993 43.2448 36.2813L35.4509 44.2321C35.2729 44.4158 35.0607 44.5617 34.8269 44.6613C34.593 44.7608 34.342 44.8121 34.0885 44.8121C33.835 44.8121 33.584 44.7608 33.3502 44.6613C33.1163 44.5617 32.9042 44.4158 32.7261 44.2321L12.7389 23.8864C12.5588 23.7052 12.4158 23.4894 12.3183 23.2516C12.2207 23.0137 12.1704 22.7585 12.1704 22.5008C12.1704 22.243 12.2207 21.9878 12.3183 21.75C12.4158 21.5121 12.5588 21.2964 12.7389 21.1152L32.7261 0.769395C32.9042 0.585696 33.1163 0.439832 33.3501 0.340274C33.584 0.240717 33.835 0.189449 34.0885 0.189449C34.342 0.189449 34.593 0.240717 34.8269 0.340274C35.0607 0.439832 35.2729 0.585695 35.4509 0.769395L43.2472 8.71776C43.4262 8.89981 43.5683 9.116 43.6651 9.35396C43.762 9.59192 43.8119 9.84699 43.8119 10.1046C43.8119 10.3622 43.762 10.6172 43.6651 10.8552C43.5683 11.0932 43.4262 11.3094 43.2472 11.4914L33.7931 21.1152C33.4322 21.4828 33.2296 21.9811 33.2296 22.5008C33.2296 23.0204 33.4322 23.5188 33.7931 23.8864Z\",\n fill: \"#EDFAFB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.7931 23.8864L43.2448 33.5077C43.4238 33.6898 43.5659 33.9059 43.6628 34.1439C43.7597 34.3819 43.8095 34.6369 43.8095 34.8945C43.8095 35.1521 43.7597 35.4072 43.6628 35.6451C43.5659 35.8831 43.4238 36.0993 43.2448 36.2813L35.4509 44.2321C35.2729 44.4158 35.0607 44.5617 34.8269 44.6613C34.593 44.7608 34.342 44.8121 34.0885 44.8121C33.835 44.8121 33.584 44.7608 33.3502 44.6613C33.1163 44.5617 32.9042 44.4158 32.7261 44.2321L12.7389 23.8864C12.5588 23.7052 12.4158 23.4894 12.3183 23.2516C12.2207 23.0137 12.1704 22.7585 12.1704 22.5008C12.1704 22.243 12.2207 21.9878 12.3183 21.75C12.4158 21.5121 12.5588 21.2964 12.7389 21.1152L32.7261 0.769395C32.9042 0.585696 33.1163 0.439832 33.3501 0.340274C33.584 0.240717 33.835 0.189449 34.0885 0.189449C34.342 0.189449 34.593 0.240717 34.8269 0.340274C35.0607 0.439832 35.2729 0.585695 35.4509 0.769395L43.2472 8.71776C43.4262 8.89981 43.5683 9.116 43.6651 9.35396C43.762 9.59192 43.8119 9.84699 43.8119 10.1046C43.8119 10.3622 43.762 10.6172 43.6651 10.8552C43.5683 11.0932 43.4262 11.3094 43.2472 11.4914L33.7931 21.1152C33.4322 21.4828 33.2296 21.9811 33.2296 22.5008C33.2296 23.0204 33.4322 23.5188 33.7931 23.8864Z\",\n fill: \"#EDFAFB\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.9876 23.8864L32.6817 33.5077C32.8654 33.6898 33.011 33.9059 33.1104 34.1439C33.2098 34.3819 33.2609 34.6369 33.2609 34.8945C33.2609 35.1521 33.2098 35.4072 33.1104 35.6451C33.011 35.8831 32.8654 36.0993 32.6817 36.2813L24.688 44.2321C24.5054 44.4158 24.2878 44.5617 24.0479 44.6613C23.8081 44.7608 23.5507 44.8121 23.2907 44.8121C23.0307 44.8121 22.7732 44.7608 22.5334 44.6613C22.2935 44.5617 22.0759 44.4158 21.8933 44.2321L1.39364 23.8864C1.20892 23.7052 1.06227 23.4894 0.96218 23.2516C0.862089 23.0137 0.810551 22.7585 0.810551 22.5008C0.810551 22.243 0.862089 21.9878 0.96218 21.75C1.06227 21.5121 1.20892 21.2964 1.39364 21.1152L21.8933 0.769395C22.0759 0.585696 22.2935 0.439832 22.5334 0.340274C22.7732 0.240717 23.0306 0.189449 23.2906 0.189449C23.5506 0.189449 23.8081 0.240716 24.0479 0.340274C24.2878 0.439832 24.5054 0.585695 24.688 0.769395L32.6842 8.71776C32.8678 8.89981 33.0135 9.116 33.1128 9.35396C33.2122 9.59192 33.2634 9.84699 33.2634 10.1046C33.2634 10.3622 33.2122 10.6172 33.1128 10.8552C33.0135 11.0932 32.8678 11.3094 32.6842 11.4914L22.9876 21.1152C22.6176 21.4828 22.4097 21.9811 22.4097 22.5008C22.4097 23.0204 22.6176 23.5188 22.9876 23.8864Z\",\n fill: \"#EDFAFB\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.9876 23.8864L32.6817 33.5077C32.8654 33.6898 33.011 33.9059 33.1104 34.1439C33.2098 34.3819 33.2609 34.6369 33.2609 34.8945C33.2609 35.1521 33.2098 35.4072 33.1104 35.6451C33.011 35.8831 32.8654 36.0993 32.6817 36.2813L24.688 44.2321C24.5054 44.4158 24.2878 44.5617 24.0479 44.6613C23.8081 44.7608 23.5507 44.8121 23.2907 44.8121C23.0307 44.8121 22.7732 44.7608 22.5334 44.6613C22.2935 44.5617 22.0759 44.4158 21.8933 44.2321L1.39364 23.8864C1.20892 23.7052 1.06227 23.4894 0.96218 23.2516C0.862089 23.0137 0.810551 22.7585 0.810551 22.5008C0.810551 22.243 0.862089 21.9878 0.96218 21.75C1.06227 21.5121 1.20892 21.2964 1.39364 21.1152L21.8933 0.769395C22.0759 0.585696 22.2935 0.439832 22.5334 0.340274C22.7732 0.240717 23.0306 0.189449 23.2906 0.189449C23.5506 0.189449 23.8081 0.240716 24.0479 0.340274C24.2878 0.439832 24.5054 0.585695 24.688 0.769395L32.6842 8.71776C32.8678 8.89981 33.0135 9.116 33.1128 9.35396C33.2122 9.59192 33.2634 9.84699 33.2634 10.1046C33.2634 10.3622 33.2122 10.6172 33.1128 10.8552C33.0135 11.0932 32.8678 11.3094 32.6842 11.4914L22.9876 21.1152C22.6176 21.4828 22.4097 21.9811 22.4097 22.5008C22.4097 23.0204 22.6176 23.5188 22.9876 23.8864Z\",\n fill: \"#EDFAFB\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmallArrowIcon);\nexport default __webpack_public_path__ + \"static/media/small-arrow-icon.6133190f6dfe6e2eba6eea6f8bb8bbd8.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOutlineArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 1119,\n height: 814,\n viewBox: \"0 0 1119 814\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M520.851 552.382L520.849 552.384L279.576 795.537L279.574 795.539C275.517 799.631 270.702 802.875 265.406 805.088C260.109 807.3 254.433 808.439 248.702 808.439C242.972 808.439 237.296 807.3 231.999 805.088C226.703 802.875 221.888 799.631 217.831 795.539L217.825 795.533L18.4433 595.029L18.4322 595.017L18.4211 595.006C14.3312 590.94 11.0813 586.093 8.86228 580.745C6.64329 575.397 5.49998 569.657 5.49998 563.858C5.49998 558.059 6.64329 552.319 8.86228 546.972C11.0813 541.624 14.3312 536.777 18.4211 532.71L18.4344 532.697L18.4475 532.684L528.657 18.4994L528.669 18.4879L528.68 18.4763C532.714 14.3627 537.516 11.0991 542.806 8.87247C548.096 6.6459 553.77 5.49998 559.5 5.49998C565.23 5.49998 570.904 6.6459 576.194 8.87247C581.484 11.0991 586.286 14.3627 590.32 18.4764L590.331 18.4879L590.343 18.4994L1100.55 532.684L1100.57 532.697L1100.58 532.711C1104.67 536.777 1107.92 541.624 1110.14 546.972C1112.36 552.319 1113.5 558.06 1113.5 563.858C1113.5 569.657 1112.36 575.398 1110.14 580.745C1107.92 586.093 1104.67 590.94 1100.58 595.006L1100.57 595.018L1100.56 595.03L901.235 795.596L901.23 795.601C897.173 799.693 892.358 802.937 887.062 805.149C881.765 807.362 876.09 808.5 870.359 808.5C864.628 808.5 858.952 807.362 853.655 805.149C848.359 802.937 843.544 799.693 839.487 795.601L839.485 795.599L598.151 552.384L598.149 552.382C587.903 542.065 574.003 536.261 559.5 536.261C544.997 536.261 531.096 542.065 520.851 552.382Z\",\n stroke: \"#7EE49C\",\n strokeOpacity: 0.49,\n strokeWidth: 11\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOutlineArrow);\nexport default __webpack_public_path__ + \"static/media/outlineArrow.20491a5e26695c251a9ef153ee7075d2.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport Lottie from \"react-lottie-player\";\nimport { gsap } from \"gsap\";\n// import businessOne from \"../assets/images/png/business-1.png\";\n// import businessTwo from \"../assets/images/png/business-2.png\";\n// import businessThree from \"../assets/images/png/business-3.png\";\n// import businessFour from \"../assets/images/png/business-4.png\";\n\nimport businessOne from \"../assets/MattIA-potenzia-il-tuo-business.gif\";\nimport businessTwo from \"../assets/lotties/LandingConversazionale.json\";\nimport businessThree from \"../assets/lotties/autentificazione.json\";\nimport businessFour from \"../assets/lotties/crm.json\";\n\nimport businessLeftTextIcon from \"../assets/images/svg/small-arrow-icon.svg\";\nimport businessIconSmall from \"../assets/images/png/business-small-arrow.png\";\nimport businessTabImg from \"../assets/images/png/arrow-tab-img.png\";\nimport outlineArrow from \"../assets/images/svg/outlineArrow.svg\";\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\nconst Business = ({locale: {Business}}) => {\n let tl;\n gsap.registerPlugin(ScrollTrigger, ScrollToPlugin);\n useEffect(() => {\n let mm = gsap.matchMedia();\n gsap.set(\".business_para_1\", {\n height: 0,\n });\n gsap.set(\".business_para_2\", {\n height: 0,\n });\n gsap.set(\".business_para_3\", {\n height: 0,\n });\n gsap.set(\".business_para_4\", {\n height: 0,\n });\n gsap.set(\"#solution-outlineArrow\", {\n left: \"50%\",\n top: \"50%\",\n yPercent: -50,\n xPercent: -50,\n });\n mm.add(\"(min-width:1600px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top bottom\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl2\n .to(\"#hero-large-arrow\", {\n scale: 1.8,\n top: \"20%\",\n immediateRender: false,\n })\n .to(\n \"#solution-outlineArrow\",\n {\n yPercent: -120,\n immediateRender: false,\n },\n \"<\"\n );\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top top\",\n end: \"+=300%\",\n scrub: 3,\n pin: true,\n fastScrollEnd: true,\n },\n });\n tl.fromTo(\n \".business_text\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .from(\".main_text\", {\n autoAlpha: 0,\n scale: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"30%\",\n }\n )\n .to(\n [\n \".business_heading_1\",\n \".business_heading_2\",\n \".business_heading_3\",\n \".business_heading_4\",\n ],\n {\n autoAlpha: 0.5,\n }\n )\n\n .to(\".small_icon\", {\n top: \"-5px\",\n })\n .from(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\".business_para_1\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_1\")\n .to(\n \".business_para_1\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_1\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_2\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"60px\",\n })\n\n ///////////\n .from(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"30%\",\n },\n {\n bottom: \"40%\",\n }\n )\n .to(\".business_para_2\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_2\")\n .to(\n \".business_para_2\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_2\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_3\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"130px\",\n })\n\n //////////\n .from(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"50%\",\n }\n )\n .to(\".business_para_3\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_3\")\n .to(\n \".business_para_3\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_3\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_4\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"128px\",\n })\n\n //////////\n .to(\n \".business_img_4\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"198px\",\n })\n .from(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"50%\",\n },\n {\n bottom: \"60%\",\n }\n )\n .to(\".business_para_4\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_4\")\n .to(\n \".business_para_4\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_4\", {\n autoAlpha: 0.5,\n });\n });\n\n mm.add(\"(min-width:1300px) and (max-width:1599.98px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top bottom\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n\n tl2\n .to(\"#hero-large-arrow\", {\n scale: 1.8,\n top: \"20%\",\n immediateRender: false,\n })\n .to(\n \"#solution-outlineArrow\",\n {\n yPercent: -150,\n immediateRender: false,\n },\n \"<\"\n );\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top top\",\n end: \"+=400%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n tl.fromTo(\n \".business_text\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .from(\".main_text\", {\n autoAlpha: 0,\n scale: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"30%\",\n }\n )\n .to(\n [\n \".business_heading_1\",\n \".business_heading_2\",\n \".business_heading_3\",\n \".business_heading_4\",\n ],\n {\n autoAlpha: 0.5,\n }\n )\n .to(\".small_icon\", {\n top: \"13px\",\n })\n\n .from(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_para_1\",\n {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n },\n \">\"\n )\n .addLabel(\"business_accordion_1\")\n .to(\n \".business_para_1\",\n {\n autoAlpha: 0,\n height: \"0\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_1\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_2\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"73px\",\n })\n //////////\n .from(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"30%\",\n },\n {\n bottom: \"40%\",\n }\n )\n .to(\".business_para_2\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_2\")\n .to(\n \".business_para_2\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n\n .to(\n \".business_img_2\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_3\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"138px\",\n })\n //////////\n .from(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"50%\",\n }\n )\n .to(\".business_para_3\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_3\")\n .to(\n \".business_para_3\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_3\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_4\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"200px\",\n })\n //////////\n .addLabel(\"business_accordion_4\")\n .from(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"50%\",\n },\n {\n bottom: \"60%\",\n }\n )\n .to(\".business_para_4\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_4\")\n .to(\n \".business_para_4\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .to(\".business_heading\", {\n autoAlpha: 0,\n });\n });\n\n mm.add(\"(min-width:1100px) and (max-width:1299.98px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top bottom\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n\n tl2\n .to(\"#hero-large-arrow\", {\n scale: 1.8,\n top: \"20%\",\n immediateRender: false,\n })\n .to(\n \"#solution-outlineArrow\",\n {\n yPercent: -150,\n immediateRender: false,\n },\n \"<\"\n );\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top top\",\n end: \"+=400%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n tl.fromTo(\n \".business_text\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .from(\".main_text\", {\n autoAlpha: 0,\n scale: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"30%\",\n }\n )\n .to(\n [\n \".business_heading_1\",\n \".business_heading_2\",\n \".business_heading_3\",\n \".business_heading_4\",\n ],\n {\n autoAlpha: 0.5,\n }\n )\n .to(\".small_icon\", {\n top: \"0px\",\n })\n\n .from(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_para_1\",\n {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n },\n \">\"\n )\n .addLabel(\"business_accordion_1\")\n .to(\n \".business_para_1\",\n {\n autoAlpha: 0,\n height: \"0\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_1\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_2\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"50px\",\n })\n //////////\n .from(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"30%\",\n },\n {\n bottom: \"40%\",\n }\n )\n .to(\".business_para_2\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_2\")\n .to(\n \".business_para_2\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n\n .to(\n \".business_img_2\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_3\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"100px\",\n })\n //////////\n .from(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"50%\",\n }\n )\n .to(\".business_para_3\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_3\")\n .to(\n \".business_para_3\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_3\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_4\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"150px\",\n })\n //////////\n .addLabel(\"business_accordion_4\")\n .from(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"50%\",\n },\n {\n bottom: \"60%\",\n }\n )\n .to(\".business_para_4\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_4\")\n .to(\n \".business_para_4\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .to(\".business_heading\", {\n autoAlpha: 0,\n });\n });\n\n mm.add(\"(min-width:992px) and (max-width:1099.98px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top bottom\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n\n tl2\n .to(\"#hero-large-arrow\", {\n scale: 1.8,\n top: \"20%\",\n immediateRender: false,\n })\n .to(\n \"#solution-outlineArrow\",\n {\n yPercent: -150,\n immediateRender: false,\n },\n \"<\"\n );\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top top\",\n end: \"+=400%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n tl.fromTo(\n \".business_text\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .from(\".main_text\", {\n autoAlpha: 0,\n scale: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"30%\",\n }\n )\n .to(\n [\n \".business_heading_1\",\n \".business_heading_2\",\n \".business_heading_3\",\n \".business_heading_4\",\n ],\n {\n autoAlpha: 0.5,\n }\n )\n .to(\".small_icon\", {\n top: \"0px\",\n })\n\n .from(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_para_1\",\n {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n },\n \">\"\n )\n .addLabel(\"business_accordion_1\")\n .to(\n \".business_para_1\",\n {\n autoAlpha: 0,\n height: \"0\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_1\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_1\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_2\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"45px\",\n })\n //////////\n .from(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"30%\",\n },\n {\n bottom: \"40%\",\n }\n )\n .to(\".business_para_2\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_2\")\n .to(\n \".business_para_2\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_2\", {\n autoAlpha: 0.5,\n })\n\n .to(\n \".business_img_2\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_3\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"92px\",\n })\n //////////\n .from(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"50%\",\n }\n )\n .to(\".business_para_3\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_3\")\n .to(\n \".business_para_3\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_3\", {\n autoAlpha: 0.5,\n })\n .to(\n \".business_img_3\",\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n \".business_img_4\",\n {\n autoAlpha: 1,\n },\n \">\"\n )\n .to(\".small_icon\", {\n top: \"140px\",\n })\n //////////\n .addLabel(\"business_accordion_4\")\n .from(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .fromTo(\n \".business_left_icon\",\n {\n bottom: \"50%\",\n },\n {\n bottom: \"60%\",\n }\n )\n .to(\".business_para_4\", {\n autoAlpha: 1,\n height: \"auto\",\n marginTop: \"16px\",\n marginBottom: \"16px\",\n })\n .addLabel(\"business_accordion_4\")\n .to(\n \".business_para_4\",\n {\n autoAlpha: 0,\n delay: 1,\n duration: 7,\n height: \"0px\",\n margin: \"0\",\n },\n \"+=50\"\n )\n .to(\".business_heading_4\", {\n autoAlpha: 0.5,\n })\n .to(\".business_heading\", {\n autoAlpha: 0,\n });\n });\n\n mm.add(\"(min-width:576px) and (max-width:991.98px)\", () => {\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top 80%\",\n end: \"bottom center\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.from(\".business_tab_1\", {\n xPercent: \"-150\",\n stagger: 0.3,\n })\n .from(\".business_tab_2\", {\n xPercent: \"150\",\n stagger: 0.3,\n })\n .from(\".business_tab_3\", {\n xPercent: \"-150\",\n stagger: 0.3,\n })\n .from(\".business_tab_4\", {\n xPercent: \"150\",\n stagger: 0.3,\n });\n });\n\n mm.add(\"(max-width:575.98px)\", () => {\n tl = gsap.timeline({\n scrollTrigger: {\n trigger: \".business_parent\",\n start: \"top 30%\",\n end: \"bottom 70%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.from(\".business_small_img_1\", {\n autoAlpha: 0,\n })\n .from(\".business_small_heading_1\", {\n yPercent: \"50\",\n autoAlpha: 0,\n })\n .from(\".business_small_para_1\", {\n yPercent: \"100\",\n autoAlpha: 0,\n })\n .from(\".business_small_img_2\", {\n autoAlpha: 0,\n })\n .from(\".business_small_heading_2\", {\n yPercent: \"50\",\n autoAlpha: 0,\n })\n .from(\".business_small_para_2\", {\n yPercent: \"100\",\n autoAlpha: 0,\n })\n .from(\".business_small_img_3\", {\n autoAlpha: 0,\n })\n .from(\".business_small_heading_3\", {\n yPercent: \"50\",\n autoAlpha: 0,\n })\n .from(\".business_small_para_3\", {\n yPercent: \"100\",\n autoAlpha: 0,\n })\n .from(\".business_small_img_4\", {\n autoAlpha: 0,\n })\n .from(\".business_small_heading_4\", {\n yPercent: \"50\",\n autoAlpha: 0,\n })\n .from(\".business_small_para_4\", {\n yPercent: \"100\",\n autoAlpha: 0,\n });\n });\n }, []);\n\n const moveTo1 = () => {\n if(window.innerWidth<=550){\n return;\n }\n gsap.to(window, { duration: 0.3, scrollTo: (document.body.scrollHeight*29)/100, ease: \"linear\" });\n };\n const moveTo2 = () => {\n if(window.innerWidth<=550){\n return;\n }\n gsap.to(window, { duration: 0.3, scrollTo: (document.body.scrollHeight*31)/100, ease: \"linear\" });\n };\n const moveTo3 = () => {\n if(window.innerWidth<=550){\n return;\n }\n gsap.to(window, { duration: 0.3, scrollTo: (document.body.scrollHeight*35)/100, ease: \"linear\" });\n };\n const moveTo4 = () => {\n if(window.innerWidth<=550){\n return;\n }\n gsap.to(window, { duration: 0.3, scrollTo: (document.body.scrollHeight*39.5)/100, ease: \"linear\" });\n };\n return (\n <>\n \n
\n
\n \n
\n
\n

\n MattIA\n \n \n \n {Business.phrase2}\n

\n
\n
\n

Potenzia il tuo business

\n
\n \"business-small-arrow\"\n
\n
\n
\n
\n
\n
\n {/* */}\n \n \n \n \n\n {/* \n \n \n */}\n
\n
\n \n
\n moveTo1()}\n >\n {Business.section1.title}\n \n

\n {Business.section1.text}\n

\n
\n
\n moveTo2()}\n >\n {Business.section2.title}\n \n

\n {Business.section2.text}\n

\n
\n
\n moveTo3()}\n >\n {Business.section3.title}\n \n

\n {Business.section3.text}\n

\n
\n
\n moveTo4()}\n >\n {Business.section4.title}\n \n

\n {Business.section4.text}\n

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

\n {Business.section1.title}\n

\n
\n

\n {Business.section1.text}\n

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

\n {Business.section2.title}\n

\n
\n

\n {Business.section2.text}\n

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

\n {Business.section3.title}\n

\n
\n

\n {Business.section3.text}\n

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

\n {Business.section4.title}\n

\n
\n

\n {Business.section4.text}\n

\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n \n );\n};\n\nexport default Business;\n","import React, { useEffect, useState } from \"react\";\nimport smallbgImg from \"../assets/images/png/small-bg-forth.png\";\nimport { gsap } from \"gsap\";\nimport { DownArrowNoiIcon, UpArrowNoiIcon } from \"./Icons\";\nimport aboutArrow from \"../assets/images/png/about-arrow.png\";\nimport aboutArrowTwo from \"../assets/images/png/about-arrow-2.png\";\nimport aboutArrowThree from \"../assets/images/png/about-arrow-3.png\";\nimport businessLeftTextIcon from \"../assets/images/svg/small-arrow-icon.svg\";\n\nconst About = ({locale: {About}}) => {\n const [aboutArrowSrc, setAboutArrowSrc] = useState(aboutArrow)\n\n useEffect(() => {\n gsap.set([\"#about-image-block-2\", \"#about-image-block-3\"], {\n autoAlpha: 0,\n });\n let mm = gsap.matchMedia();\n mm.add(\"(min-width: 1600px)\", () => {\n const tl1 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#about\",\n start: \"top bottom\",\n end: \"top top\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl1\n .to(\"#hero-large-arrow\", {\n scale: 1.2,\n top: \"-95%\",\n duration: 5,\n })\n .to(\n \"#root\",\n {\n backgroundColor: \"#7EE49C80\",\n },\n \"<2\"\n );\n\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#about\",\n start: \"top top\",\n end: \"+=300%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n\n tl2\n .from(\"#about-arrow-img\", {\n xPercent: -50,\n autoAlpha: 0,\n scale: 0.6,\n onComplete: () => {\n setAboutArrowSrc(aboutArrow)\n }\n })\n\n .from(\"#about-image-block\", {\n autoAlpha: 0\n // scale: 0,\n // xPercent: -50,\n })\n .fromTo(\n \".left_text_about\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"20%\"\n }\n )\n .fromTo(\n \"#about-image-block\",\n {\n width: \"90%\",\n },\n {\n width: \"70%\"\n },\n \"<3\"\n )\n .to(\"#about-image-block-1\", {\n autoAlpha: 0,\n onReverseComplete: () => {\n setAboutArrowSrc(aboutArrow)\n },\n onComplete: () => {\n setAboutArrowSrc(aboutArrowTwo)\n }\n })\n .fromTo(\n \".left_text_about\",\n {\n bottom: \"20%\",\n },\n {\n bottom: \"40%\",\n }\n )\n .to(\"#about-image-block-2\", {\n autoAlpha: 1,\n })\n .fromTo(\n \"#about-image-block\",\n {\n width: \"70%\",\n },\n {\n width: \"60%\"\n },\n \"<3\"\n )\n\n .to(\"#about-image-block-2\", {\n autoAlpha: 0,\n onReverseComplete: () => {\n setAboutArrowSrc(aboutArrowTwo)\n },\n onComplete: () => {\n setAboutArrowSrc(aboutArrowThree)\n }\n })\n .fromTo(\n \".left_text_about\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"60%\",\n }\n )\n .to(\"#about-image-block-3\", {\n autoAlpha: 1,\n })\n .to(\n \"#about-image-block-3\",\n {\n autoAlpha: 1\n },\n \"<3\"\n );\n });\n mm.add(\"(min-width: 1200px) and (max-width:1599.98px)\", () => {\n const tl1 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#about\",\n start: \"top bottom\",\n end: \"top top\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl1\n .to(\"#hero-large-arrow\", {\n scale: 1.2,\n top: \"-145%\",\n duration: 5,\n })\n .to(\n \"#root\",\n {\n backgroundColor: \"#7EE49C80\",\n },\n \"<2\"\n );\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#about\",\n start: \"top top\",\n end: \"+=300%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n\n tl2\n .from(\"#about-arrow-img\", {\n xPercent: -50,\n autoAlpha: 0,\n scale: 0.6,\n })\n .from(\"#about-image-block\", {\n autoAlpha: 0,\n })\n .fromTo(\n \".left_text_about\",\n {\n bottom: \"0%\",\n autoAlpha: 0,\n },\n {\n bottom: \"20%\",\n autoAlpha: 1,\n }\n )\n .fromTo(\n \"#about-image-block\",\n {\n width: \"90%\",\n },\n {\n width: \"70%\",\n },\n \"<3\"\n )\n .to(\"#about-image-block-1\", {\n autoAlpha: 0,\n })\n .fromTo(\n \".left_text_about\",\n {\n bottom: \"20%\",\n },\n {\n bottom: \"40%\",\n }\n )\n .to(\"#about-image-block-2\", {\n autoAlpha: 1,\n })\n .fromTo(\n \"#about-image-block\",\n {\n width: \"70%\",\n },\n {\n width: \"60%\",\n },\n \"<3\"\n )\n .to(\"#about-image-block-2\", {\n autoAlpha: 0,\n })\n .fromTo(\n \".left_text_about\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"60%\",\n }\n )\n .to(\"#about-image-block-3\", {\n autoAlpha: 1,\n })\n .to(\n \"#about-image-block-3\",\n {\n autoAlpha: 1,\n },\n \"<3\"\n );\n });\n mm.add(\"(min-width: 992px) and (max-width:1199.98px)\", () => {\n const tl1 = gsap.timeline({\n scrollTrigger: {\n trigger: \".about_parent\",\n start: \"top bottom\",\n end: \"top top\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl1\n .to(\"#hero-large-arrow\", {\n scale: 1.2,\n top: \"-190%\",\n duration: 5,\n })\n .to(\n \"#root\",\n {\n backgroundColor: \"#7EE49C80\",\n },\n \"<2\"\n );\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \".about_parent\",\n start: \"top top\",\n end: \"+=100%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n\n tl2\n .from(\"#about-arrow-img\", {\n xPercent: -50,\n autoAlpha: 0,\n scale: 0.6,\n })\n\n .from(\"#about-image-block\", {\n autoAlpha: 0,\n scale: 0,\n xPercent: -50,\n })\n .fromTo(\n \"#about-image-block\",\n {\n width: \"70%\",\n },\n {\n width: \"60%\",\n },\n \"<3\"\n )\n .to(\"#about-image-block-1\", {\n autoAlpha: 0,\n })\n .to(\"#about-image-block-2\", {\n autoAlpha: 1,\n })\n .fromTo(\n \"#about-image-block\",\n {\n width: \"60%\",\n },\n {\n width: \"50%\",\n },\n \"<3\"\n )\n .to(\"#about-image-block-2\", {\n autoAlpha: 0,\n })\n .to(\"#about-image-block-3\", {\n autoAlpha: 1,\n })\n .to(\n \"#about-image-block-3\",\n {\n autoAlpha: 1,\n },\n \"<3\"\n );\n\n let secondSection4 = gsap.timeline({\n scrollTrigger: {\n trigger: \".about_parent\",\n start: \"top 80%\",\n end: \"bottom center\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n secondSection4\n .from(\".founder_1\", {\n xPercent: \"-100\",\n duration: 1,\n stagger: 0.3,\n })\n .from(\".founder_2\", {\n xPercent: \"100\",\n duration: 1,\n stagger: 0.3,\n })\n .from(\".founder_3\", {\n xPercent: \"-100\",\n duration: 1,\n stagger: 0.3,\n });\n });\n mm.add(\"(max-width:991.98px)\", () => {\n let secondSection4 = gsap.timeline({\n scrollTrigger: {\n trigger: \".about_parent\",\n start: \"top 80%\",\n end: \"bottom center\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n secondSection4\n .from(\".founder_1\", {\n xPercent: \"-100\",\n duration: 1,\n stagger: 0.3,\n })\n .from(\".founder_2\", {\n xPercent: \"100\",\n duration: 1,\n stagger: 0.3,\n })\n .from(\".founder_3\", {\n xPercent: \"-100\",\n duration: 1,\n stagger: 0.3,\n });\n });\n }, []);\n\n return (\n <>\n
\n
\n
\n

{About.arrowText}

\n
\n \"about-small-arrow\"\n
\n
\n
\n
\n

\n {About.title}\n \n \n \n

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

\n {About.section1.title}\n

\n
\n
\n

\n {About.section1.text}\n

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

\n {About.section2.title}\n

\n
\n
\n

\n {About.section2.text}\n

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

\n {About.section3.title}\n

\n
\n
\n

\n {About.section3.text}\n

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

\n {About.titleWithoutLink}\n

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

\n {About.section1.title}\n

\n
\n

\n {About.section1.text}\n

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

\n {About.section2.title}\n

\n
\n

\n {About.section2.text}\n

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

\n {About.section3.title}\n

\n
\n

\n {About.section3.text}\n
\n \n
\n

\n
\n
\n
\n
\n
\n
\n \n \n );\n};\n\nexport default About;\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgStep1(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 1412,\n height: 1407,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n xmlSpace: \"preserve\",\n overflow: \"hidden\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-971 -1003)\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M703 234.333C816.242 234.333 908.042 326.133 908.042 439.375 908.042 552.617 816.242 644.417 703 644.417 589.758 644.417 497.958 552.617 497.958 439.375 498.071 326.18 589.805 234.446 703 234.333M703 205.042C573.581 205.042 468.667 309.956 468.667 439.375 468.667 568.794 573.581 673.708 703 673.708 832.419 673.708 937.333 568.794 937.333 439.375 937.333 309.956 832.419 205.042 703 205.042Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1,\n transform: \"matrix(1 0 0 1 975 1004)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1171.67 1200.96 1142.38 1200.96 1142.38 973.948C1141.68 942.839 1127.02 913.693 1102.47 894.582 1038.23 845.296 964.689 809.521 886.263 789.41 826.885 771.138 765.126 761.761 703 761.583 640.893 762.661 579.208 772.02 519.576 789.41 441.969 812.141 368.75 847.79 302.993 894.86 278.684 913.994 264.236 943.019 263.625 973.948L263.625 1200.96 234.333 1200.96 234.333 973.948C235.06 933.944 253.758 896.394 285.242 871.705 353.953 822.381 430.513 785.034 511.681 761.246 573.881 743.124 638.223 733.386 703 732.292 767.912 732.451 832.443 742.219 894.494 761.276 976.65 782.445 1053.66 820.039 1120.89 871.793 1152.31 896.48 1170.96 933.994 1171.67 973.948Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1,\n transform: \"matrix(1 0 0 1 975 1004)\"\n })))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1841 2111.5C1841 1978.12 1949.12 1870 2082.5 1870L2109.5 1870C2242.88 1870 2351 1978.12 2351 2111.5 2351 2244.88 2242.88 2353 2109.5 2353L2082.5 2353C1949.12 2353 1841 2244.88 1841 2111.5Z\",\n fill: \"#7FE39C\",\n fillRule: \"evenodd\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"text\", {\n fill: \"#FFFFFF\",\n fillOpacity: 1,\n fontFamily: \"Lato,Lato_MSFontService,sans-serif\",\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: 248,\n textAnchor: \"start\",\n direction: \"ltr\",\n writingMode: \"lr-tb\",\n unicodeBidi: \"normal\",\n textDecoration: \"none\",\n transform: \"matrix(1 0 0 1 2023.88 2207)\"\n }, \"+\")))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgStep1);\nexport default __webpack_public_path__ + \"static/media/Step1.b972c1e84de1815cb9af137b467fb1c2.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgStep2(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 410,\n height: 410,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n xmlSpace: \"preserve\",\n overflow: \"hidden\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-566 -292)\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M951.86 571.759 928.824 563.588 928.824 525.146 947.344 517.311C949.512 516.396 950.528 513.897 949.614 511.729 949.045 510.382 947.825 509.42 946.382 509.182L915.975 504.159 915.975 466.484 952.035 451.914C954.217 451.032 955.271 448.549 954.39 446.368 953.933 445.235 953.012 444.354 951.86 443.947L928.824 435.775 928.824 397.333 947.344 389.498C949.511 388.582 950.525 386.082 949.608 383.915 949.15 382.832 948.265 381.986 947.161 381.578L804.182 328.788C803.261 328.447 802.251 328.435 801.323 328.753L608.326 396.059C607.923 396.197 607.544 396.395 607.201 396.647 606.652 397.073 593.713 406.915 593.713 437.151 593.661 444.038 594.451 450.906 596.065 457.601 591.042 461.862 580.932 473.365 580.932 496.797 580.844 513.66 586.244 530.094 596.316 543.619 594.501 550.586 593.626 557.764 593.713 564.964 593.713 594.948 606.895 607.142 607.457 607.64 607.831 607.981 608.264 608.251 608.735 608.437L745.068 662.084C745.566 662.278 746.094 662.378 746.628 662.378 747.176 662.379 747.718 662.273 748.225 662.067L952.035 579.726C954.217 578.845 955.271 576.362 954.39 574.18 953.933 573.048 953.012 572.166 951.86 571.759ZM907.454 504.871 746.453 569.024 611.585 515.931 611.585 481.8 745.085 534.272C746.099 534.676 747.229 534.676 748.242 534.272L907.446 469.939ZM746.632 653.529 612.727 600.845C610.648 598.527 602.242 587.744 602.242 564.964 602.12 557.85 603.087 550.759 605.109 543.939 605.57 542.49 605.225 540.905 604.202 539.78 594.524 527.55 589.322 512.376 589.461 496.78 589.461 471.452 602.553 463.25 603.094 462.931 604.799 461.943 605.604 459.915 605.041 458.027 603.113 451.239 602.175 444.208 602.255 437.151 602.255 414.499 610.141 405.564 611.922 403.835L802.661 337.308 934.009 385.809C934.069 385.809 934.069 385.869 934.009 385.89L746.632 461.81 621.665 412.62C619.476 411.759 617.002 412.835 616.141 415.025 615.946 415.522 615.846 416.052 615.846 416.586L615.846 459.19C615.846 460.939 616.915 462.51 618.543 463.153L745.085 512.97C746.099 513.374 747.229 513.374 748.242 512.97L922.6 442.502 938.321 448.181C938.376 448.203 938.376 448.237 938.321 448.262L746.632 525.717 608.884 471.584C606.694 470.723 604.221 471.8 603.36 473.989 603.164 474.487 603.064 475.016 603.064 475.55L603.064 518.836C603.065 520.585 604.134 522.156 605.761 522.798L744.902 577.57C745.909 577.969 747.031 577.969 748.038 577.57L912.188 512.173 930.328 515.155C930.409 515.155 930.414 515.206 930.328 515.236L746.632 589.623 621.665 540.432C619.476 539.571 617.002 540.648 616.141 542.838 615.946 543.335 615.846 543.864 615.846 544.399L615.846 587.003C615.846 588.752 616.915 590.323 618.543 590.965L745.085 640.782C746.099 641.186 747.229 641.186 748.242 640.782L922.6 570.315 938.321 575.994C938.376 575.994 938.376 576.049 938.321 576.075ZM920.304 434.241 746.632 504.415 624.358 456.272 624.358 422.828 745.085 470.365C746.099 470.77 747.229 470.77 748.242 470.365L920.304 400.827ZM920.304 562.054 746.632 632.227 624.358 584.084 624.358 550.64 745.085 598.178C746.099 598.582 747.229 598.582 748.242 598.178L920.304 528.639Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1\n }))))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgStep2);\nexport default __webpack_public_path__ + \"static/media/Step2.91ee3871101e58c193682313207bc48f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrowLarge2(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 1674,\n height: 1737,\n viewBox: \"0 0 1674 1737\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M390.398 814.19L22.0975 439.838C15.1216 432.754 9.5875 424.343 5.8118 415.084C2.03609 405.825 0.092689 395.901 0.0926881 385.879C0.0926873 375.856 2.03609 365.932 5.81179 356.673C9.5875 347.414 15.1216 339.003 22.0975 331.919L325.799 22.5651C332.736 15.4176 341.002 9.74225 350.115 5.86861C359.228 1.99497 369.008 0.00016959 378.886 0.000168758C388.764 0.000167925 398.544 1.99497 407.657 5.86861C416.77 9.74225 425.036 15.4176 431.973 22.5651L1210.8 814.19C1217.82 821.239 1223.39 829.635 1227.19 838.889C1231 848.143 1232.96 858.073 1232.96 868.102C1232.96 878.131 1231 888.06 1227.19 897.314C1223.39 906.568 1217.82 914.964 1210.8 922.014L431.973 1713.64C425.036 1720.79 416.77 1726.46 407.657 1730.33C398.544 1734.21 388.764 1736.2 378.886 1736.2C369.008 1736.2 359.228 1734.21 350.115 1730.33C341.002 1726.46 332.736 1720.79 325.799 1713.64L22.0043 1404.38C15.0284 1397.3 9.49442 1388.88 5.71871 1379.63C1.94301 1370.37 -0.000395609 1360.44 -0.000396454 1350.42C-0.000397299 1340.4 1.943 1330.47 5.71871 1321.21C9.49441 1311.96 15.0284 1303.54 22.0042 1296.46L390.398 922.014C404.458 907.711 412.356 888.32 412.356 868.102C412.356 847.883 404.458 828.492 390.398 814.19Z\",\n fill: \"#7EE49C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M804.959 814.19L425.384 439.838C418.194 432.754 412.491 424.343 408.599 415.084C404.708 405.825 402.705 395.901 402.705 385.879C402.705 375.856 404.708 365.932 408.599 356.673C412.491 347.414 418.194 339.003 425.384 331.919L738.382 22.5651C745.532 15.4177 754.05 9.74226 763.442 5.86861C772.835 1.99497 782.914 0.00017182 793.094 0.000170961C803.275 0.000170103 813.354 1.99497 822.746 5.86861C832.138 9.74225 840.657 15.4176 847.806 22.5651L1650.48 814.19C1657.71 821.239 1663.45 829.635 1667.37 838.889C1671.29 848.143 1673.31 858.073 1673.31 868.102C1673.31 878.131 1671.29 888.06 1667.37 897.314C1663.45 906.568 1657.71 914.964 1650.48 922.014L847.807 1713.64C840.657 1720.79 832.138 1726.46 822.746 1730.33C813.354 1734.21 803.275 1736.2 793.094 1736.2C782.914 1736.2 772.835 1734.21 763.443 1730.33C754.05 1726.46 745.532 1720.79 738.382 1713.64L425.288 1404.38C418.098 1397.3 412.395 1388.88 408.504 1379.63C404.612 1370.37 402.609 1360.44 402.609 1350.42C402.609 1340.4 404.612 1330.47 408.504 1321.21C412.395 1311.96 418.098 1303.54 425.288 1296.46L804.959 922.014C819.449 907.711 827.589 888.32 827.589 868.102C827.589 847.883 819.449 828.492 804.959 814.19Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLarge2);\nexport default __webpack_public_path__ + \"static/media/arrow-large-2.53d69b1a17f0e8b22a2c606e4ea28592.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgStep3(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 416,\n height: 416,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n xmlSpace: \"preserve\",\n overflow: \"hidden\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-846 -292)\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M336.375 81.9375C341.139 81.9375 345 85.7989 345 90.5625L345 263.062C345 267.826 341.139 271.688 336.375 271.688L284.625 271.688 284.625 319.867 241.129 276.371 238.602 273.844 77.625 273.844C72.8614 273.844 69 269.982 69 265.219L69 90.5625C69 85.7989 72.8614 81.9375 77.625 81.9375L336.375 81.9375M336.375 73.3125 77.625 73.3125C68.0983 73.3125 60.375 81.0358 60.375 90.5625L60.375 265.219C60.375 274.745 68.0983 282.469 77.625 282.469L235.031 282.469 293.25 340.688 293.25 280.312 336.375 280.312C345.902 280.312 353.625 272.589 353.625 263.062L353.625 90.5625C353.625 81.0358 345.902 73.3125 336.375 73.3125Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1,\n transform: \"matrix(1.00242 0 0 1 847 293)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288.938 176.812C288.938 183.958 283.145 189.75 276 189.75 268.855 189.75 263.062 183.958 263.062 176.812 263.062 169.667 268.855 163.875 276 163.875 283.145 163.875 288.938 169.667 288.938 176.812Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1,\n transform: \"matrix(1.00242 0 0 1 847 293)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M219.938 176.812C219.938 183.958 214.145 189.75 207 189.75 199.855 189.75 194.062 183.958 194.062 176.812 194.062 169.667 199.855 163.875 207 163.875 214.145 163.875 219.938 169.667 219.938 176.812Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1,\n transform: \"matrix(1.00242 0 0 1 847 293)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.938 176.812C150.938 183.958 145.145 189.75 138 189.75 130.855 189.75 125.062 183.958 125.062 176.812 125.062 169.667 130.855 163.875 138 163.875 145.145 163.875 150.938 169.667 150.938 176.812Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1,\n transform: \"matrix(1.00242 0 0 1 847 293)\"\n }))))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgStep3);\nexport default __webpack_public_path__ + \"static/media/Step3.83accaf21be85d667bc0c0ccf1e3768c.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgStep4(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 409,\n height: 411,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n xmlSpace: \"preserve\",\n overflow: \"hidden\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1140 -293)\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1254.61 525.128 1191.07 539.502C1186.1 540.677 1180.98 538.305 1178.65 533.759 1176.04 529.232 1176.81 523.511 1180.52 519.832L1248.12 452.232C1251.5 449.084 1256.36 448.081 1260.71 449.629L1278.48 456.697C1279.76 454.187 1281.15 451.661 1282.54 449.139L1263.72 441.658C1256.31 438.962 1248 440.666 1242.25 446.067L1174.51 513.808C1168.05 520.133 1166.69 530.024 1171.2 537.858 1174.57 544.277 1181.21 548.303 1188.46 548.317 1189.97 548.314 1191.47 548.146 1192.95 547.819L1252.89 534.258C1253.38 531.331 1253.95 528.323 1254.61 525.128Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1391.91 556.237C1389.38 557.639 1386.87 559.019 1384.34 560.31L1392.58 581.553C1394.32 585.798 1393.33 590.675 1390.07 593.908L1322.33 661.648C1317.89 666.257 1310.54 666.388 1305.94 661.94 1303.03 659.136 1301.79 655.024 1302.67 651.083L1317.3 583.994C1314.2 584.655 1311.17 585.254 1308.18 585.787L1294.35 649.268C1292.27 658.008 1296.36 667.048 1304.31 671.247 1312.2 675.69 1322.09 674.226 1328.36 667.69L1396.1 599.949C1401.77 594.291 1403.5 585.778 1400.47 578.357Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1517.09 326.775C1511.35 321.037 1489.77 322.455 1452.97 330.993 1443.84 333.123 1434.58 335.752 1424.65 339.058L1413.21 342.893C1382.17 356.018 1354.04 375.155 1330.44 399.202 1278.04 451.58 1263.41 515.337 1259.34 548.683L1259.09 550.745 1288.44 580.096 1290.5 579.844C1331.67 574.821 1391.1 558.487 1440.41 509.181 1464.54 485.725 1483.71 457.662 1496.79 426.657L1501.52 413.449C1503.69 407.391 1505.66 401.094 1507.37 394.763L1509.82 385.718C1519.18 351.273 1523.77 333 1517.09 326.775ZM1488.83 423.615C1476.18 453.499 1457.67 480.546 1434.39 503.157 1387.62 549.936 1331.29 565.977 1291.53 571.127L1268.07 547.661C1272.33 514.898 1286.95 454.746 1336.46 405.227 1359.19 382.041 1386.28 363.57 1416.16 350.872L1427.35 347.144C1431.02 345.922 1434.59 344.818 1438.08 343.779 1449.84 350.528 1460.68 358.78 1470.31 368.327 1480.44 378.514 1489.14 390.03 1496.17 402.56 1495.32 405.265 1494.43 407.949 1493.49 410.578ZM1501.61 383.486 1499.48 391.333C1492.81 380.875 1485.05 371.144 1476.35 362.303 1468.11 354.214 1459.1 346.957 1449.43 340.639 1451.26 340.174 1453.09 339.714 1454.9 339.292 1490.96 330.925 1508.53 330.895 1511.12 332.846 1514.23 337.03 1506.93 363.871 1501.59 383.469Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1270.75 576.116C1269.09 575.245 1267.54 574.192 1266.11 572.976 1264.78 571.513 1263.62 569.899 1262.67 568.166 1260.77 565.014 1258.61 561.439 1254.27 560.924 1250.29 560.464 1246.18 562.713 1240.11 568.78 1231.31 577.573 1200.69 616.045 1211.56 627.633 1213.41 629.396 1215.9 630.32 1218.45 630.189 1223.7 630.189 1230.98 627.424 1240.43 621.869 1251.29 615.449 1261.37 607.79 1270.46 599.046 1276.48 592.843 1278.81 588.484 1278.25 584.471 1277.64 580.074 1273.98 577.974 1270.75 576.116ZM1264.4 593.051C1248.59 608.866 1222.15 623.965 1217.78 621.809 1215.47 617.025 1230.95 589.988 1246.14 574.791 1248.05 572.498 1250.41 570.634 1253.08 569.321 1253.99 570.297 1254.77 571.39 1255.39 572.572 1256.7 574.92 1258.3 577.097 1260.14 579.052L1260.24 579.15C1262.16 580.845 1264.26 582.306 1266.52 583.504 1267.68 584.107 1268.79 584.81 1269.82 585.604 1269.81 585.681 1269.76 587.517 1264.4 593.051Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1397.25 399.692C1385.62 411.249 1385.56 430.045 1397.12 441.675 1402.79 447.386 1410.54 450.546 1418.59 450.434 1426.44 450.478 1433.98 447.395 1439.55 441.866 1451.2 430.185 1451.17 411.273 1439.49 399.626 1427.81 387.979 1408.9 388.007 1397.25 399.688ZM1433.54 435.842C1425.32 444.289 1411.8 444.469 1403.35 436.243 1394.91 428.017 1394.73 414.501 1402.95 406.054 1403.08 405.918 1403.22 405.784 1403.35 405.653 1407.34 401.706 1412.73 399.51 1418.34 399.548 1430.04 399.369 1439.68 408.716 1439.86 420.423 1439.94 426.209 1437.66 431.779 1433.54 435.842Z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n fillOpacity: 1\n }))))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgStep4);\nexport default __webpack_public_path__ + \"static/media/Step4.fb99e29d3a9944f4f87bd5435da6bfeb.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport timelineImg1 from \"../assets/images/svg/Step1.svg\";\nimport timelineImg2 from \"../assets/images/svg/Step2.svg\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport largeArrow2 from \"../assets/images/svg/arrow-large-2.svg\";\nimport businessLeftTextIcon from \"../assets/images/svg/small-arrow-icon.svg\";\nimport timelineImg3 from \"../assets/images/svg/Step3.svg\";\nimport timelineImg4 from \"../assets/images/svg/Step4.svg\";\n\ngsap.registerPlugin(ScrollTrigger);\n\nconst Timeline = ({locale: {Timeline}}) => {\n useEffect(() => {\n let mm = gsap.matchMedia();\n gsap.set(\n [\n \"#timeline-heading-1\",\n \"#timeline-heading-2\",\n \"#timeline-heading-3\",\n \"#timeline-heading-4\",\n \"#timeline-year-1\",\n \"#timeline-year-2\",\n \"#timeline-year-3\",\n \"#timeline-year-4\",\n ],\n {\n autoAlpha: 0,\n }\n );\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow\", {\n top: \"-150%\",\n autoAlpha: 0,\n immediateRender: false,\n })\n .to(\"#root\", {\n backgroundColor: \"#29424D\",\n })\n .fromTo(\n \".timeline_text_heading\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n );\n mm.add(\"(min-width: 1800px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(min-width: 1600px) and (max-width:1799.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(min-width: 1500px) and (max-width:1599.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(max-width: 1499.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(max-width: 1299.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(max-width: 1199.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(max-width: 991.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n mm.add(\"(min-width: 576px) and (max-width:769.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top bottom\",\n end: \"top 50%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#hero-large-arrow-2\", {\n display: \"block\",\n autoAlpha: 0,\n immediateRender: false,\n });\n });\n\n mm.add(\"(min-width: 1200px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top top\",\n end: \"+=200%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n // FIRST VALUE\n tl2\n .fromTo(\n \"#hero-large-arrow-2\",\n {\n right: \"130%\",\n },\n {\n right: `${\n document.querySelector(\"#timeline-dot-4\").getBoundingClientRect()\n .right\n }px`,\n autoAlpha: 1,\n }\n )\n .from(\n [\n \"#timeline-dot-1\",\n \"#timeline-dot-2\",\n \"#timeline-dot-3\",\n \"#timeline-dot-4\",\n ],\n {\n autoAlpha: 0,\n xPercent: -100,\n stagger: 0.4,\n },\n \"<\"\n )\n .from(\n \"#timeline-dot-line\",\n {\n width: 0,\n duration: 1,\n },\n \">20%\"\n )\n .to(\n [\"#timeline-heading-1\", \"#timeline-year-1\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .fromTo(\n \".timeline_left_icon\",\n {\n bottom: \"0%\",\n autoAlpha: 0,\n },\n {\n bottom: \"20%\",\n autoAlpha: 1,\n }\n )\n // SECOND VALUE\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-3\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n \"#timeline-heading-container\",\n {\n left: `${\n document.querySelector(\"#timeline-dot-2\").getBoundingClientRect()\n .right -\n document\n .querySelector(\"#timeline-heading-container\")\n .parentNode.getBoundingClientRect().left\n }px`,\n },\n \"<1\"\n )\n .to(\n [\"#timeline-heading-1\", \"#timeline-year-1\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-2\", \"#timeline-year-2\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .fromTo(\n \".timeline_left_icon\",\n {\n bottom: \"20%\",\n },\n {\n bottom: \"40%\",\n }\n )\n // THIRD VALUE\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-2\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n \"#timeline-heading-container\",\n {\n left: `${\n document.querySelector(\"#timeline-dot-3\").getBoundingClientRect()\n .right -\n document\n .querySelector(\"#timeline-heading-container\")\n .parentNode.getBoundingClientRect().left\n }px`,\n },\n \"<1\"\n )\n .to(\n [\"#timeline-heading-2\", \"#timeline-year-2\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-3\", \"#timeline-year-3\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .fromTo(\n \".timeline_left_icon\",\n {\n bottom: \"40%\",\n },\n {\n bottom: \"80%\",\n }\n )\n // FOURTH VALUE\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-1\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n \"#timeline-heading-container\",\n {\n left: `${\n document.querySelector(\"#timeline-dot-4\").getBoundingClientRect()\n .right -\n document\n .querySelector(\"#timeline-heading-container\")\n .parentNode.getBoundingClientRect().left\n }px`,\n },\n \"<1\"\n )\n .to(\n [\"#timeline-heading-3\", \"#timeline-year-3\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-4\", \"#timeline-year-4\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-4\", \"#timeline-year-4\"],\n {\n autoAlpha: 1,\n },\n \"+=2\"\n )\n .fromTo(\n \".timeline_left_icon\",\n {\n bottom: \"80%\",\n },\n {\n bottom: \"90%\",\n }\n );\n });\n mm.add(\"(min-width: 992px) and (max-width:1199.98px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top top\",\n end: \"+=200%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n // FIRST VALUE\n tl2\n .fromTo(\n \".timeline_text_heading\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .fromTo(\n \"#hero-large-arrow-2\",\n {\n right: \"130%\",\n },\n {\n right: `${\n document.querySelector(\"#timeline-dot-4\").getBoundingClientRect()\n .right\n }px`,\n autoAlpha: 1,\n }\n )\n .from(\n [\n \"#timeline-dot-1\",\n \"#timeline-dot-2\",\n \"#timeline-dot-3\",\n \"#timeline-dot-4\",\n ],\n {\n autoAlpha: 0,\n xPercent: -100,\n stagger: 0.4,\n },\n \"<\"\n )\n .from(\n \"#timeline-dot-line\",\n {\n width: 0,\n duration: 1,\n },\n \">20%\"\n )\n .to(\n [\"#timeline-heading-1\", \"#timeline-year-1\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n\n // SECOND VALUE\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-3\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n [\"#timeline-heading-1\", \"#timeline-year-1\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-2\", \"#timeline-year-2\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n\n // THIRD VALUE\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-2\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n [\"#timeline-heading-2\", \"#timeline-year-2\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-3\", \"#timeline-year-3\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n\n // FOURTH VALUE\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-1\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n [\"#timeline-heading-3\", \"#timeline-year-3\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-4\", \"#timeline-year-4\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-4\", \"#timeline-year-4\"],\n {\n autoAlpha: 1,\n },\n \"+=2\"\n );\n });\n mm.add(\"(max-width: 991.98px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#timeline\",\n start: \"top top\",\n end: \"+=200%\",\n scrub: 1,\n pin: true,\n fastScrollEnd: true,\n },\n });\n tl2\n .fromTo(\n \".timeline_text_heading\",\n {\n autoAlpha: 0,\n },\n {\n autoAlpha: 1,\n }\n )\n .fromTo(\n \"#hero-large-arrow-2\",\n {\n right: \"130%\",\n },\n {\n right: `${\n document.querySelector(\"#timeline-dot-4\").getBoundingClientRect()\n .right\n }px`,\n autoAlpha: 1,\n }\n )\n .from(\n [\n \"#timeline-dot-1\",\n \"#timeline-dot-2\",\n \"#timeline-dot-3\",\n \"#timeline-dot-4\",\n ],\n {\n autoAlpha: 0,\n xPercent: -100,\n stagger: 0.4,\n },\n \"<\"\n )\n .from(\n \"#timeline-dot-line\",\n {\n width: 0,\n duration: 1,\n },\n \">20%\"\n )\n .to(\n [\"#timeline-heading-1\", \"#timeline-year-1\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-3\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n [\"#timeline-heading-1\", \"#timeline-year-1\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-2\", \"#timeline-year-2\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-2\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to(\n [\"#timeline-heading-2\", \"#timeline-year-2\"],\n {\n autoAlpha: 0,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-3\", \"#timeline-year-3\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n\n .to(\"#hero-large-arrow-2\", {\n right: `${\n document.querySelector(\"#timeline-dot-1\").getBoundingClientRect()\n .right\n }px`,\n duration: 4,\n })\n .to([\"#timeline-heading-3\", \"#timeline-year-3\"], {\n autoAlpha: 0,\n })\n .to(\n [\"#timeline-heading-4\", \"#timeline-year-4\"],\n {\n autoAlpha: 1,\n },\n \"<\"\n )\n .to(\n [\"#timeline-heading-4\", \"#timeline-year-4\"],\n {\n autoAlpha: 1,\n },\n \"+=4\"\n );\n });\n\n }, []);\n return (\n <>\n
\n
\n
\n \n
\n
\n

{Timeline.arrowText}

\n
\n \"business-small-arrow\"\n
\n
\n
\n \n
\n

\n {Timeline.title}\n \n \n \n

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

\n {Timeline.section1.text}\n

\n \n
\n \n {Timeline.section2.title}\n

\n {Timeline.section2.text}\n

\n
\n \n \n

\n {Timeline.section3.text}\n

\n
\n \n \n

\n {Timeline.section4.text}\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n {Timeline.section1.title}\n \n \n {Timeline.section2.title}\n \n \n {Timeline.section3.title}\n \n \n {Timeline.section4.title}\n \n
\n \n \n \n \n \n \n \n );\n};\n\nexport default Timeline;\n","var _g, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSmallArrowIcon2(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 44,\n height: 45,\n viewBox: \"0 0 44 45\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.7958 23.8546L43.2742 33.4496C43.4537 33.6312 43.5963 33.847 43.6939 34.0847C43.7914 34.3224 43.842 34.5773 43.8427 34.8349C43.8435 35.0925 43.7943 35.3477 43.6981 35.5859C43.6018 35.8241 43.4604 36.0407 43.2819 36.2233L35.5101 44.1957C35.3325 44.3799 35.1208 44.5263 34.8872 44.6265C34.6536 44.7267 34.4028 44.7787 34.1493 44.7794C33.8958 44.7801 33.6447 44.7295 33.4105 44.6306C33.1764 44.5317 32.9638 44.3865 32.7853 44.2032L12.7417 23.913C12.5611 23.7323 12.4175 23.517 12.3193 23.2794C12.221 23.0418 12.1701 22.7868 12.1693 22.529C12.1686 22.2713 12.2182 22.0159 12.3151 21.7778C12.412 21.5397 12.5544 21.3235 12.734 21.1418L32.6647 0.740663C32.8422 0.55647 33.0539 0.410018 33.2875 0.309812C33.5211 0.209606 33.7719 0.157642 34.0254 0.156938C34.2789 0.156235 34.5301 0.206805 34.7642 0.305713C34.9984 0.404621 35.2109 0.549896 35.3894 0.7331L43.2078 8.6598C43.3873 8.84135 43.5299 9.05715 43.6275 9.29484C43.725 9.53253 43.7756 9.78746 43.7763 10.045C43.777 10.3026 43.7279 10.5578 43.6316 10.7961C43.5354 11.0343 43.394 11.2509 43.2155 11.4334L33.7881 21.0834C33.4283 21.452 33.227 21.9509 33.2284 22.4706C33.2298 22.9902 33.4339 23.488 33.7958 23.8546Z\",\n fill: \"#7EE49C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.7958 23.8546L43.2742 33.4496C43.4537 33.6312 43.5963 33.847 43.6939 34.0847C43.7914 34.3224 43.842 34.5773 43.8427 34.8349C43.8435 35.0925 43.7943 35.3477 43.6981 35.5859C43.6018 35.8241 43.4604 36.0407 43.2819 36.2233L35.5101 44.1957C35.3325 44.3799 35.1208 44.5263 34.8872 44.6265C34.6536 44.7267 34.4028 44.7787 34.1493 44.7794C33.8958 44.7801 33.6447 44.7295 33.4105 44.6306C33.1764 44.5317 32.9638 44.3865 32.7853 44.2032L12.7417 23.913C12.5611 23.7323 12.4175 23.517 12.3193 23.2794C12.221 23.0418 12.1701 22.7868 12.1693 22.529C12.1686 22.2713 12.2182 22.0159 12.3151 21.7778C12.412 21.5397 12.5544 21.3235 12.734 21.1418L32.6647 0.740663C32.8422 0.55647 33.0539 0.410018 33.2875 0.309812C33.5211 0.209606 33.7719 0.157642 34.0254 0.156938C34.2789 0.156235 34.5301 0.206805 34.7642 0.305713C34.9984 0.404621 35.2109 0.549896 35.3894 0.7331L43.2078 8.6598C43.3873 8.84135 43.5299 9.05715 43.6275 9.29484C43.725 9.53253 43.7756 9.78746 43.7763 10.045C43.777 10.3026 43.7279 10.5578 43.6316 10.7961C43.5354 11.0343 43.394 11.2509 43.2155 11.4334L33.7881 21.0834C33.4283 21.452 33.227 21.9509 33.2284 22.4706C33.2298 22.9902 33.4339 23.488 33.7958 23.8546Z\",\n fill: \"#7EE49C\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.9908 23.8848L32.7116 33.4792C32.8957 33.6607 33.042 33.8765 33.142 34.1142C33.2421 34.3519 33.2939 34.6068 33.2946 34.8644C33.2953 35.122 33.2449 35.3772 33.1462 35.6154C33.0475 35.8537 32.9024 36.0702 32.7193 36.2528L24.7476 44.2258C24.5655 44.41 24.3484 44.5564 24.1088 44.6567C23.8692 44.7569 23.6119 44.8089 23.3519 44.8096C23.0919 44.8103 22.8344 44.7598 22.5942 44.6609C22.3541 44.562 22.1361 44.4167 21.953 44.2335L1.39691 23.9447C1.21169 23.7641 1.06444 23.5487 0.963686 23.3111C0.862936 23.0736 0.810689 22.8185 0.809973 22.5607C0.809258 22.303 0.860088 22.0477 0.959518 21.8095C1.05895 21.5714 1.205 21.3552 1.38922 21.1735L21.8324 0.770939C22.0145 0.586733 22.2316 0.440266 22.4712 0.340043C22.7108 0.23982 22.9681 0.187838 23.2281 0.187117C23.4881 0.186395 23.7456 0.236948 23.9858 0.335839C24.2259 0.434731 24.4439 0.57999 24.627 0.763182L32.6452 8.68932C32.8294 8.87087 32.9756 9.08665 33.0757 9.32433C33.1757 9.56202 33.2276 9.81694 33.2283 10.0745C33.229 10.3321 33.1785 10.5873 33.0798 10.8256C32.9811 11.0638 32.836 11.2804 32.6529 11.463L22.9831 21.1136C22.6141 21.4822 22.4076 21.9812 22.409 22.5008C22.4105 23.0204 22.6197 23.5182 22.9908 23.8848Z\",\n fill: \"#7EE49C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.9908 23.8848L32.7116 33.4792C32.8957 33.6607 33.042 33.8765 33.142 34.1142C33.2421 34.3519 33.2939 34.6068 33.2946 34.8644C33.2953 35.122 33.2449 35.3772 33.1462 35.6154C33.0475 35.8537 32.9024 36.0702 32.7193 36.2528L24.7476 44.2258C24.5655 44.41 24.3484 44.5564 24.1088 44.6567C23.8692 44.7569 23.6119 44.8089 23.3519 44.8096C23.0919 44.8103 22.8344 44.7598 22.5942 44.6609C22.3541 44.562 22.1361 44.4167 21.953 44.2335L1.39691 23.9447C1.21169 23.7641 1.06444 23.5487 0.963686 23.3111C0.862936 23.0736 0.810689 22.8185 0.809973 22.5607C0.809258 22.303 0.860088 22.0477 0.959518 21.8095C1.05895 21.5714 1.205 21.3552 1.38922 21.1735L21.8324 0.770939C22.0145 0.586733 22.2316 0.440266 22.4712 0.340043C22.7108 0.23982 22.9681 0.187838 23.2281 0.187117C23.4881 0.186395 23.7456 0.236948 23.9858 0.335839C24.2259 0.434731 24.4439 0.57999 24.627 0.763182L32.6452 8.68932C32.8294 8.87087 32.9756 9.08665 33.0757 9.32433C33.1757 9.56202 33.2276 9.81694 33.2283 10.0745C33.229 10.3321 33.1785 10.5873 33.0798 10.8256C32.9811 11.0638 32.836 11.2804 32.6529 11.463L22.9831 21.1136C22.6141 21.4822 22.4076 21.9812 22.409 22.5008C22.4105 23.0204 22.6197 23.5182 22.9908 23.8848Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmallArrowIcon2);\nexport default __webpack_public_path__ + \"static/media/small-arrow-icon-2.8dfeeb7bfa585486cc1b7ebb6a66d33e.svg\";\nexport { ForwardRef as ReactComponent };","const Image = ({ src, alt, height, width, onMouseEnter, onMouseLeave }) => {\n return (\n
\n \n
\n );\n};\n\nexport default Image;\n","const data = [\n [\n {\n src: \"/partners/stelllantis.png\",\n alt: \"stelllantis\",\n height: 39,\n width: 179,\n },\n {\n src: \"/partners/ald-automotive.png\",\n alt: \"ald\",\n height: 47,\n width: 164,\n },\n {\n src: \"/partners/bmw-group.png\",\n alt: \"bmw-group\",\n height: 44,\n width: 90,\n },\n {\n src: \"/partners/lexus.png\",\n alt: \"lexus\",\n height: 44,\n width: 178,\n },\n {\n src: \"/partners/mercedes-benz.png\",\n alt: \"mercedes-benz\",\n height: 47,\n width: 190,\n },\n ],\n [\n {\n src: \"/partners/renault.png\",\n alt: \"renault\",\n height: 77,\n width: 92,\n },\n {\n src: \"/partners/dacia.png\",\n alt: \"dacia\",\n height: 57,\n width: 110,\n },\n {\n src: \"/partners/smart.png\",\n alt: \"smart\",\n height: 100,\n width: 100,\n },\n {\n src: \"/partners/toyota.png\",\n alt: \"toyota\",\n height: 63,\n width: 114,\n },\n ],\n [\n {\n src: \"/partners/Leonori-logo.png\",\n alt: \"Leonori\",\n height: 28,\n width: 255,\n },\n {\n src: \"/partners/fiori-rent.png\",\n alt: \"Fiori Rent\",\n height: 74,\n width: 200,\n },\n {\n src: \"/partners/Bisson-Logo.png\",\n alt: \"BissonAuto\",\n height: 60,\n width: 296,\n },\n {\n src: \"/partners/unipol-rental.png\",\n alt: \"unipol\",\n height: 49,\n width: 222,\n },\n {\n src: \"/partners/athlon.png\",\n alt: \"athlon\",\n height: 41,\n width: 153,\n },\n ],\n];\n\nexport default data;\n","import React, { useEffect, useState } from \"react\";\nimport businessLeftTextIcon2 from \"../../assets/images/svg/small-arrow-icon-2.svg\";\nimport Slider from \"react-slick\";\nimport Image from \"./Image\";\nimport data from \"./data\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\n\ngsap.registerPlugin(ScrollTrigger);\n\nconst Partners = ({locale: {Partners}}) => {\n const [isMobileDevice, setIsMobileDevice] = useState(false);\n\n var settings = {\n dots: false,\n infinite: true,\n arrows: false,\n autoplay: true,\n centerMode: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n };\n\n useEffect(() => {\n window.innerWidth < 1299 && setIsMobileDevice(true);\n window.innerWidth > 1299 && setIsMobileDevice(false);\n window.addEventListener(\"resize\", () => {\n window.innerWidth < 1299 && setIsMobileDevice(true);\n window.innerWidth > 1299 && setIsMobileDevice(false);\n });\n let mm = gsap.matchMedia();\n mm.add(\"(min-width: 1300px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#partners\",\n start: \"top bottom\",\n end: \"top 10%\",\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#timeline-content\", {\n autoAlpha: 0,\n xPercent: 20,\n })\n .to(\n \"#hero-large-arrow-2\",\n {\n right: \"-150%\",\n duration: 4,\n },\n \"<\"\n )\n .to(\n \"#root\",\n {\n backgroundColor: \"#EDFAFB\",\n },\n \"-=3\"\n );\n });\n mm.add(\"(max-width: 1199.98px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#partners\",\n start: \"top bottom\",\n end: \"top 10%\",\n scrub: 1,\n fastScrollEnd: true,\n },\n });\n tl.to(\"#timeline-content\", {\n autoAlpha: 0,\n xPercent: 20,\n })\n .to(\n \"#hero-large-arrow-2\",\n {\n right: \"-250%\",\n duration: 4,\n },\n \"<\"\n )\n .to(\n \"#root\",\n {\n backgroundColor: \"#EDFAFB\",\n },\n \"-=3\"\n );\n });\n mm.add(\"(min-width: 992px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#partners\",\n start: \"top 50%\",\n fastScrollEnd: true,\n },\n });\n tl.from([\".partners_logos_one\"], {\n x: -50,\n autoAlpha: 0,\n stagger: 0.07,\n });\n\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#partners\",\n start: \"top top\",\n pin: window.innerWidth>1024,\n fastScrollEnd: true,\n },\n });\n tl2\n\n .fromTo(\n \".left_text_partner\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"80%\",\n }\n )\n .from([\".partners_logos_two\"], {\n x: -50,\n autoAlpha: 0,\n stagger: 0.07,\n });\n });\n mm.add(\"(min-width: 576px) and (max-width:991.98px)\", () => {\n const tl2 = gsap.timeline({\n scrollTrigger: {\n trigger: \"#partners\",\n start: \"top top\",\n pin: true,\n fastScrollEnd: true,\n },\n });\n tl2.from(\"#partner-img-container2 img\", {\n x: -50,\n autoAlpha: 0,\n stagger: 0.07,\n });\n });\n }, []);\n return (\n \n
\n

{Partners.arrowText}

\n
\n \"partner-small-arrow\"\n
\n
\n
\n
\n
\n \n {Partners.title}\n \n \n \n

\n
\n {!isMobileDevice && (\n <>\n {data.map((d, index) => (\n \n {d.map((item, _i) => (\n handleMouseEnter(item.alt)}\n // onMouseLeave={() => handleMouseLeave()}\n />\n ))}\n
\n ))}\n\n {/* for less than 992 */}\n \n {data.map((d) =>\n d.map((item, _i) => (\n handleMouseEnter(item.alt)}\n // onMouseLeave={() => handleMouseLeave()}\n />\n ))\n )}\n
\n \n )}\n\n {/* for less than 576 */}\n {isMobileDevice && (\n
\n \n {data.map((d) =>\n d.map((item, _i) => (\n \n ))\n )}\n \n
\n )}\n \n \n \n );\n};\n\nexport default Partners;\n","var _path, _g, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSalesforceLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 180,\n height: 126,\n viewBox: \"0 0 180 126\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_8_9705\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 180,\n height: 126\n }, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0.0424805H179.582V125.267H0V0.0424805Z\",\n fill: \"#00A1E0\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_8_9705)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.5629 13.7511C80.3596 7.72719 88.4276 3.99683 97.3407 3.99683C109.225 3.99683 119.524 10.5876 125.07 20.4078C129.993 18.2109 135.325 17.0767 140.718 17.0795C162.109 17.0795 179.473 34.5449 179.473 56.0966C179.473 77.6484 162.109 95.1138 140.718 95.1138C138.103 95.1138 135.555 94.8515 133.059 94.3559C128.206 102.99 118.93 108.856 108.366 108.856C104.066 108.864 99.8199 107.89 95.9542 106.008C91.0355 117.542 79.5806 125.649 66.244 125.649C52.3132 125.649 40.4952 116.883 35.9396 104.558C33.912 104.986 31.8453 105.2 29.7731 105.199C13.2014 105.199 -0.201172 91.622 -0.201172 74.9475C-0.201172 63.7432 5.8333 53.9889 14.786 48.7163C12.8867 44.3486 11.909 39.6372 11.914 34.8758C11.914 15.6308 27.5613 0.0766602 46.84 0.0766602C58.1298 0.0766602 68.2313 5.44811 74.5695 13.7854\",\n fill: \"#46A1DB\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M25.9764 65.1587C25.8635 65.4527 26.0167 65.514 26.053 65.566C26.3903 65.8099 26.733 65.9865 27.0763 66.1849C28.9117 67.1538 30.6415 67.4372 32.4506 67.4372C36.1346 67.4372 38.4256 65.4797 38.4256 62.3293V62.2674C38.4256 59.3543 35.8375 58.2932 33.4211 57.5352L33.1048 57.4331C31.276 56.8412 29.6981 56.3258 29.6981 55.1263V55.065C29.6981 54.0369 30.6224 53.2789 32.0485 53.2789C33.633 53.2789 35.5213 53.8055 36.7295 54.4718C36.7295 54.4718 37.0873 54.7025 37.2174 54.3578C37.288 54.1713 37.904 52.5256 37.9701 52.3411C38.04 52.148 37.9172 52.0023 37.7911 51.9272C36.4047 51.0835 34.49 50.5102 32.5093 50.5102L32.1416 50.5115C28.7678 50.5115 26.4108 52.548 26.4108 55.4611V55.5237C26.4108 58.595 29.0121 59.5968 31.4417 60.2888L31.8326 60.4101C33.602 60.9532 35.1337 61.4251 35.1337 62.6641V62.7261C35.1337 63.8663 34.1368 64.7165 32.539 64.7165C31.9178 64.7165 29.9377 64.7059 27.792 63.3522C27.5325 63.2013 27.3846 63.0925 27.1846 62.9706C27.079 62.9067 26.8149 62.7913 26.7 63.1367L25.9737 65.1535M79.9142 65.1535C79.8013 65.4474 79.9545 65.5087 79.9921 65.5608C80.3282 65.8046 80.6722 65.9813 81.0155 66.1796C82.8509 67.1485 84.5807 67.4319 86.3897 67.4319C90.0738 67.4319 92.3648 65.4744 92.3648 62.3241V62.2621C92.3648 59.349 89.7833 58.2879 87.3603 57.53L87.044 57.4278C85.2152 56.8359 83.6372 56.3206 83.6372 55.121V55.0597C83.6372 54.0316 84.5616 53.2737 85.9876 53.2737C87.5722 53.2737 89.4538 53.8003 90.6686 54.4666C90.6686 54.4666 91.0265 54.6973 91.1572 54.3526C91.2272 54.166 91.8439 52.5203 91.9033 52.3358C91.9739 52.1427 91.8505 51.997 91.725 51.9219C90.3385 51.0783 88.4239 50.5049 86.4432 50.5049L86.0748 50.5062C82.701 50.5062 80.344 52.5427 80.344 55.4558V55.5185C80.344 58.5897 82.9453 59.5915 85.375 60.2836L85.7651 60.4048C87.5412 60.9479 89.0663 61.4198 89.0663 62.6589V62.7208C89.0663 63.861 88.0693 64.7112 86.4716 64.7112C85.849 64.7112 83.8637 64.7007 81.7246 63.3469C81.4651 63.196 81.3132 63.0919 81.1165 62.9653C81.0498 62.9232 80.7388 62.8019 80.6325 63.1314L79.9063 65.1482M116.747 58.9793C116.747 60.7588 116.414 62.1626 115.763 63.1578C115.114 64.1398 114.132 64.6209 112.766 64.6209C111.399 64.6209 110.422 64.1438 109.782 63.1644C109.136 62.1758 108.811 60.7653 108.811 58.9858C108.811 57.2063 109.138 55.8091 109.782 54.8271C110.421 53.8517 111.393 53.3837 112.766 53.3837C114.139 53.3837 115.116 53.8563 115.763 54.8271C116.418 55.8091 116.747 57.2063 116.747 58.9858M119.824 55.6839C119.521 54.6623 119.051 53.766 118.424 53.0146C117.796 52.2633 117.004 51.6569 116.06 51.222C115.123 50.7837 114.014 50.5629 112.759 50.5629C111.505 50.5629 110.402 50.785 109.458 51.222C108.521 51.6596 107.722 52.2633 107.094 53.0146C106.469 53.766 105.998 54.6623 105.695 55.6839C105.394 56.6989 105.242 57.8061 105.242 58.9858C105.242 60.1656 105.394 61.2728 105.695 62.2878C105.996 63.3094 106.467 64.2057 107.094 64.9571C107.722 65.7084 108.521 66.3082 109.458 66.7366C110.402 67.1636 111.511 67.3811 112.759 67.3811C114.007 67.3811 115.116 67.1636 116.054 66.7366C116.991 66.3095 117.79 65.7084 118.417 64.9571C119.044 64.2057 119.513 63.3094 119.817 62.2878C120.117 61.2728 120.269 60.1656 120.269 58.9858C120.269 57.8127 120.117 56.6989 119.817 55.6839M145.104 64.12C145.003 63.8215 144.711 63.9342 144.711 63.9342C144.264 64.1049 143.786 64.263 143.278 64.3421C142.766 64.4225 142.195 64.4628 141.595 64.4628C140.109 64.4628 138.921 64.0205 138.076 63.1446C137.224 62.268 136.748 60.8576 136.755 58.9463C136.76 57.2063 137.181 55.9014 137.937 54.8996C138.683 53.911 139.832 53.3969 141.35 53.3969C142.618 53.3969 143.588 53.5439 144.605 53.8615C144.605 53.8615 144.846 53.9663 144.962 53.6493C145.232 52.9046 145.431 52.3707 145.721 51.5535C145.803 51.3195 145.602 51.2206 145.529 51.1923C145.13 51.0368 144.189 50.7817 143.476 50.6743C142.809 50.5728 142.036 50.52 141.165 50.52C139.871 50.52 138.722 50.7408 137.738 51.1785C136.754 51.6154 135.923 52.2198 135.262 52.9711C134.602 53.7225 134.1 54.6188 133.764 55.6404C133.43 56.6554 133.262 57.7692 133.262 58.9489C133.262 61.493 133.948 63.5559 135.309 65.0651C136.669 66.581 138.715 67.3455 141.383 67.3455C142.961 67.3455 144.578 67.0272 145.74 66.5678C145.74 66.5678 145.962 66.4611 145.866 66.2027L145.106 64.12M150.487 57.2657C150.634 56.2771 150.906 55.4532 151.332 54.8139C151.971 53.8385 152.943 53.3046 154.31 53.3046C155.677 53.3046 156.581 53.8411 157.228 54.8139C157.657 55.4565 157.845 56.31 157.915 57.2657L150.454 57.2643L150.487 57.2657ZM160.853 55.0907C160.591 54.1087 159.942 53.1135 159.519 52.6587C158.846 51.9403 158.192 51.4329 157.538 51.156C156.595 50.7555 155.58 50.5499 154.554 50.5517C153.253 50.5517 152.072 50.7711 151.114 51.2173C150.157 51.6668 149.352 52.2784 148.718 53.043C148.085 53.8075 147.609 54.7104 147.305 55.7452C147.001 56.7667 146.848 57.8872 146.848 59.0603C146.848 60.2598 147.007 61.3737 147.32 62.3821C147.636 63.397 148.145 64.2868 148.832 65.0249C149.519 65.7697 150.397 66.3497 151.453 66.7583C152.503 67.1636 153.777 67.3739 155.236 67.3693C158.247 67.3594 159.831 66.6904 160.478 66.3279C160.594 66.2633 160.703 66.152 160.567 65.831L159.887 63.9263C159.782 63.6422 159.495 63.745 159.495 63.745C158.749 64.0231 157.692 64.5227 155.216 64.5161C153.599 64.5135 152.404 64.037 151.651 63.2903C150.885 62.5257 150.502 61.4119 150.443 59.8301L160.874 59.838C160.874 59.838 161.149 59.8354 161.178 59.5678C161.189 59.4571 161.535 57.4324 160.867 55.0927L160.853 55.0907ZM67.1006 57.2657C67.2478 56.2771 67.5198 55.4532 67.9456 54.8139C68.5847 53.8385 69.5566 53.3046 70.9233 53.3046C72.2899 53.3046 73.1944 53.8411 73.8415 54.8139C74.27 55.4565 74.4575 56.31 74.5281 57.2657L67.0675 57.2643L67.1006 57.2657ZM77.4661 55.0907C77.2047 54.1087 76.555 53.1135 76.1324 52.6587C75.459 51.9403 74.8054 51.4329 74.1518 51.156C73.2081 50.7555 72.193 50.5499 71.1675 50.5517C69.8669 50.5517 68.6851 50.7711 67.7278 51.2173C66.7704 51.6668 65.965 52.2784 65.3312 53.043C64.6993 53.8075 64.222 54.7104 63.9183 55.7452C63.6152 56.7667 63.4627 57.8872 63.4627 59.0603C63.4627 60.2598 63.6205 61.3737 63.9354 62.3821C64.251 63.397 64.7607 64.2868 65.4407 65.0249C66.1274 65.7697 67.0055 66.3497 68.0618 66.7583C69.1116 67.1636 70.3792 67.3739 71.8449 67.3693C74.8556 67.3594 76.4401 66.6904 77.0871 66.3279C77.202 66.2633 77.3116 66.152 77.1749 65.831L76.4949 63.9263C76.3899 63.6422 76.1021 63.745 76.1021 63.745C75.356 64.0231 74.2997 64.5227 71.8238 64.5161C70.2129 64.5135 69.0112 64.037 68.2586 63.2903C67.4927 62.5257 67.1098 61.4119 67.0504 59.8301L77.482 59.838C77.482 59.838 77.7566 59.8354 77.785 59.5678C77.7962 59.4571 78.1422 57.4324 77.4734 55.0927L77.4661 55.0907ZM44.5868 64.0541C44.1782 63.7285 44.1214 63.6488 43.986 63.4372C43.7794 63.1189 43.6737 62.6661 43.6737 62.0861C43.6737 61.1766 43.9774 60.5175 44.6047 60.076C44.5981 60.0773 45.5026 59.2982 47.6285 59.3246C48.5748 59.3415 49.5188 59.4219 50.4543 59.5652V64.2907H50.4556C50.4556 64.2907 49.1351 64.5748 47.643 64.6644C45.5237 64.7916 44.5862 64.0554 44.5928 64.0574L44.5868 64.0541ZM48.7331 56.7384C48.3105 56.7074 47.7625 56.6923 47.1089 56.6923C46.2176 56.6923 45.3527 56.803 44.5472 57.0205C43.7351 57.2393 43.0023 57.5781 42.3751 58.0289C41.7461 58.4768 41.2288 59.0631 40.8632 59.7425C40.4941 60.4279 40.3059 61.232 40.3059 62.1415C40.3059 63.0642 40.4664 63.8617 40.7833 64.5142C41.0938 65.1614 41.5613 65.7209 42.1433 66.1421C42.7224 66.5626 43.4374 66.8736 44.2627 67.0582C45.0813 67.2447 46.0057 67.339 47.0224 67.339C48.092 67.339 49.1549 67.2493 50.1849 67.076C51.0621 66.9249 51.936 66.7553 52.806 66.5672C53.1533 66.4874 53.5388 66.3826 53.5388 66.3826C53.7963 66.3174 53.7765 66.0426 53.7765 66.0426L53.7706 56.5519C53.7706 54.4692 53.2134 52.9204 52.1134 51.9647C51.0174 51.0091 49.4131 50.5279 47.3334 50.5279C46.5543 50.5279 45.2933 50.6334 44.5406 50.7843C44.5406 50.7843 42.2694 51.2246 41.3319 51.9575C41.3319 51.9575 41.1259 52.084 41.2382 52.3707L41.9776 54.3479C42.0694 54.6043 42.3196 54.5167 42.3196 54.5167C42.3196 54.5167 42.3982 54.4857 42.4906 54.431C44.4911 53.3435 47.0264 53.3765 47.0264 53.3765C48.1488 53.3765 49.0203 53.6038 49.6013 54.0487C50.1697 54.4844 50.4596 55.1428 50.4596 56.5268V56.9664C49.5682 56.8373 48.743 56.7628 48.743 56.7628L48.7331 56.7384ZM132.582 51.3801C132.597 51.3454 132.605 51.308 132.605 51.2701C132.605 51.2323 132.598 51.1948 132.583 51.1598C132.568 51.1249 132.547 51.0933 132.52 51.0668C132.493 51.0403 132.461 51.0196 132.425 51.0058C132.248 50.9385 131.362 50.752 130.682 50.7099C129.375 50.6281 128.649 50.8483 127.995 51.1409C127.35 51.4315 126.635 51.8988 126.239 52.4393L126.238 51.1738C126.238 50.9998 126.114 50.8595 125.939 50.8595H123.271C123.098 50.8595 122.973 50.9998 122.973 51.1738V66.6621C122.973 66.7458 123.006 66.826 123.066 66.8851C123.125 66.9443 123.205 66.9776 123.289 66.9778H126.022C126.106 66.9776 126.186 66.9443 126.246 66.8851C126.305 66.8259 126.338 66.7457 126.338 66.6621V58.885C126.338 57.8437 126.453 56.8089 126.682 56.1564C126.908 55.5112 127.215 54.9965 127.593 54.6274C127.954 54.2709 128.396 54.0064 128.881 53.8563C129.336 53.7259 129.807 53.6598 130.28 53.6599C130.825 53.6599 131.422 53.7996 131.422 53.7996C131.623 53.822 131.735 53.6994 131.803 53.5188C131.982 53.0436 132.489 51.6207 132.588 51.3373\",\n fill: \"#FFFFFE\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M107.048 44.2322C106.71 44.1302 106.367 44.0488 106.019 43.9883C105.551 43.9104 105.078 43.8738 104.603 43.8789C102.72 43.8789 101.235 44.4101 100.192 45.4594C99.1572 46.5007 98.4527 48.0871 98.0995 50.1744L97.972 50.8789H95.6078C95.6078 50.8789 95.3193 50.8671 95.2585 51.1814L94.8703 53.3432C94.8432 53.5501 94.9324 53.6793 95.2097 53.678H97.5112L95.176 66.6901C94.9931 67.738 94.7838 68.6001 94.5521 69.2532C94.3236 69.8978 94.1005 70.3809 93.8258 70.7315C93.5597 71.071 93.3075 71.3208 92.8725 71.4664C92.5133 71.587 92.1 71.6424 91.6471 71.6424C91.3949 71.6424 91.0595 71.6002 90.8119 71.5508C90.5643 71.502 90.4356 71.4466 90.25 71.3689C90.25 71.3689 89.98 71.2661 89.8737 71.5363C89.7872 71.7571 89.1739 73.441 89.1012 73.6493C89.0273 73.8549 89.131 74.017 89.2617 74.0638C89.568 74.1732 89.7958 74.2431 90.2131 74.3413C90.7927 74.4777 91.2813 74.4863 91.7388 74.4863C92.6975 74.4863 93.571 74.3518 94.2952 74.0908C95.0241 73.8279 95.6586 73.3698 96.2198 72.7496C96.8266 72.0807 97.2082 71.3801 97.5733 70.4244C97.9344 69.4773 98.2421 68.3015 98.4883 66.9313L100.835 53.678H104.265C104.265 53.678 104.555 53.6885 104.615 53.3755L105.003 51.2137C105.03 51.0068 104.941 50.8776 104.663 50.8789H101.333C101.35 50.8038 101.501 49.6346 101.883 48.5339C102.046 48.064 102.353 47.685 102.613 47.4247C102.856 47.1768 103.155 46.9909 103.486 46.883C103.847 46.7713 104.225 46.717 104.603 46.7221C104.917 46.7221 105.225 46.7597 105.459 46.8085C105.782 46.877 105.907 46.9133 105.992 46.9383C106.331 47.0418 106.377 46.9416 106.443 46.7775L107.24 44.5946C107.322 44.36 107.122 44.2612 107.048 44.2322ZM60.5194 66.7178C60.5194 66.8918 60.3953 67.0335 60.221 67.0335H57.4592C57.2843 67.0335 57.1602 66.8918 57.1602 66.7178V44.5281C57.1602 44.3547 57.2843 44.2144 57.4592 44.2144H60.221C60.3953 44.2144 60.5194 44.3547 60.5194 44.5281V66.7178Z\",\n fill: \"#FFFFFE\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSalesforceLogo);\nexport default __webpack_public_path__ + \"static/media/salesforce-logo.5cf200c66cc57899071880b62604904c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHubsportLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 152,\n height: 44,\n viewBox: \"0 0 152 44\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4337 7.58398V19.7074H5.29595V7.58398H0.0117188V36.5242H5.29738V24.7942H16.4323V36.5242H21.7194V7.58398H16.4337ZM38.6378 27.1703C38.6378 28.3302 38.177 29.4427 37.3568 30.2629C36.5366 31.0832 35.4241 31.544 34.2641 31.544C33.1041 31.544 31.9916 31.0832 31.1714 30.2629C30.3512 29.4427 29.8904 28.3302 29.8904 27.1703V14.7736H24.8765V27.1703C24.8765 29.6575 25.8646 32.0429 27.6233 33.8017C29.3821 35.5605 31.7675 36.5486 34.2548 36.5486C36.7421 36.5486 39.1275 35.5605 40.8862 33.8017C42.645 32.0429 43.6331 29.6575 43.6331 27.1703V14.7736H38.6378V27.1703ZM75.7891 16.0511C75.7891 13.5091 77.4699 12.7037 79.311 12.7037C80.7958 12.7037 82.7556 13.8338 84.0387 15.2042L87.3217 11.3333C85.6824 9.11604 82.3579 7.58398 79.6357 7.58398C74.1955 7.58398 70.2617 10.7697 70.2617 16.0511C70.2617 25.8499 82.2377 22.74 82.2377 28.2245C82.2377 29.9154 80.5955 31.4088 78.7159 31.4088C75.7505 31.4088 74.7892 29.9597 73.4273 28.4262L69.7824 32.2156C72.1141 35.0766 74.9894 36.53 78.4326 36.53C83.601 36.53 87.758 33.3056 87.758 28.2646C87.758 17.3871 75.7805 20.7674 75.7805 16.0511M149.88 31.9009C146.917 31.9009 146.075 30.6192 146.075 28.6565V19.9663H150.681V15.5633H146.075V9.75404L140.991 12.0357V29.7366C140.991 34.2641 144.115 36.5457 148.398 36.5457C149.07 36.5571 149.743 36.5028 150.403 36.3855L151.644 31.8194C151.084 31.858 150.442 31.8966 149.88 31.8966M57.7234 14.9181C55.2401 14.9181 53.5063 15.6391 51.8298 17.2827V7.75707H46.8088V25.4136C46.8088 32.0225 51.5866 36.5514 56.9567 36.5514C62.9132 36.5514 68.1531 31.9424 68.1531 25.7369C68.1531 19.6087 63.3309 14.9224 57.7234 14.9224M57.6919 31.4975C56.9436 31.4975 56.2026 31.3501 55.5113 31.0637C54.8199 30.7774 54.1917 30.3576 53.6626 29.8285C53.1335 29.2993 52.7137 28.6712 52.4274 27.9798C52.141 27.2884 51.9936 26.5475 51.9936 25.7991C51.9936 25.0508 52.141 24.3098 52.4274 23.6185C52.7137 22.9271 53.1335 22.2989 53.6626 21.7698C54.1917 21.2406 54.8199 20.8209 55.5113 20.5345C56.2026 20.2482 56.9436 20.1008 57.6919 20.1008C59.2032 20.1008 60.6526 20.7011 61.7213 21.7698C62.7899 22.8384 63.3903 24.2878 63.3903 25.7991C63.3903 27.3104 62.7899 28.7598 61.7213 29.8285C60.6526 30.8971 59.2032 31.4975 57.6919 31.4975ZM112.254 25.4737C112.254 19.2568 107.025 14.6592 101.057 14.6592C95.6886 14.6592 90.9094 19.1867 90.9094 25.797V43.4635H95.9304V33.925C97.6041 35.5658 99.3407 36.2896 101.821 36.2896C107.429 36.2896 112.254 31.6033 112.254 25.4737ZM107.499 25.4108C107.499 26.9221 106.898 28.3715 105.83 29.4401C104.761 30.5088 103.312 31.1091 101.8 31.1091C100.289 31.1091 98.8397 30.5088 97.771 29.4401C96.7024 28.3715 96.102 26.9221 96.102 25.4108C96.102 23.8995 96.7024 22.4501 97.771 21.3814C98.8397 20.3128 100.289 19.7124 101.8 19.7124C103.312 19.7124 104.761 20.3128 105.83 21.3814C106.898 22.4501 107.499 23.8995 107.499 25.4108Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.487 14.4169V9.3716C129.154 9.05999 129.718 8.56543 130.115 7.94548C130.512 7.32553 130.724 6.6057 130.727 5.86976V5.75389C130.727 3.60815 128.988 1.86868 126.842 1.86868H126.726C125.696 1.86868 124.708 2.27801 123.979 3.00663C123.25 3.73525 122.841 4.72346 122.841 5.75389V5.86976C122.844 6.6057 123.057 7.32553 123.453 7.94548C123.85 8.56543 124.414 9.05999 125.081 9.3716V14.4169C123.165 14.7103 121.36 15.5049 119.85 16.72L106.013 5.94271C106.111 5.58652 106.163 5.22031 106.169 4.85268C106.17 3.98681 105.915 3.13989 105.436 2.41904C104.956 1.6982 104.273 1.13581 103.474 0.803018C102.674 0.470227 101.794 0.381983 100.945 0.549449C100.095 0.716914 99.3145 1.13256 98.7012 1.74383C98.0879 2.35509 97.6697 3.13449 97.4995 3.98346C97.3293 4.83243 97.4146 5.71282 97.7448 6.51327C98.075 7.31371 98.6351 7.99825 99.3544 8.48031C100.074 8.96236 100.92 9.22026 101.786 9.2214C102.543 9.21783 103.286 9.0156 103.941 8.6349L117.567 19.2377C116.343 21.0868 115.704 23.2618 115.734 25.4792C115.764 27.6966 116.462 29.8534 117.736 31.6686L113.591 35.8142C113.256 35.7071 112.907 35.6502 112.556 35.6454C111.845 35.646 111.15 35.8572 110.56 36.2524C109.969 36.6477 109.509 37.2091 109.237 37.8659C108.965 38.5226 108.894 39.2452 109.033 39.9422C109.172 40.6393 109.514 41.2796 110.017 41.7822C110.519 42.2847 111.16 42.627 111.857 42.7658C112.554 42.9046 113.276 42.8337 113.933 42.562C114.59 42.2902 115.151 41.8299 115.546 41.2392C115.942 40.6485 116.153 39.9538 116.153 39.2431C116.149 38.8914 116.092 38.5424 115.985 38.2074L120.084 34.1062C121.421 35.1354 122.976 35.845 124.63 36.1806C126.283 36.5161 127.992 36.4688 129.624 36.0421C131.256 35.6154 132.769 34.8207 134.047 33.719C135.325 32.6172 136.334 31.2376 136.996 29.6858C137.658 28.134 137.956 26.4512 137.868 24.7663C137.779 23.0814 137.306 21.4391 136.485 19.9653C135.664 18.4915 134.516 17.2252 133.13 16.2635C131.743 15.3018 130.155 14.6701 128.487 14.4169ZM126.788 31.0106C126.03 31.0315 125.276 30.9002 124.57 30.6247C123.864 30.3491 123.22 29.9348 122.677 29.4063C122.133 28.8777 121.702 28.2457 121.407 27.5474C121.112 26.8491 120.96 26.0988 120.96 25.3409C120.96 24.5829 121.112 23.8326 121.407 23.1343C121.702 22.4361 122.133 21.804 122.677 21.2755C123.22 20.7469 123.864 20.3326 124.57 20.0571C125.276 19.7815 126.03 19.6503 126.788 19.6711C128.256 19.7226 129.648 20.3419 130.668 21.3987C131.689 22.4555 132.26 23.8673 132.261 25.3367C132.262 26.8061 131.692 28.2185 130.672 29.2763C129.653 30.3341 128.262 30.9549 126.793 31.0078\",\n fill: \"#E77B3A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHubsportLogo);\nexport default __webpack_public_path__ + \"static/media/hubsport-logo.a09e74e59e30f76eecde32679da3e280.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g, _path2, _g2, _path3, _g3, _path4, _g4, _path5, _g5, _path6, _g6, _path7, _g7, _path8, _g8, _path9, _g9, _path10, _g10, _path11, _g11, _path12, _g12, _path13, _g13, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPipedriveLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 197,\n height: 53,\n viewBox: \"0 0 197 53\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.5021 15.0913C18.9479 15.0913 16.887 16.7104 15.9014 17.7898C15.7819 16.8303 15.1547 15.601 12.7056 15.601H7.35938V21.1779H9.53969C9.89809 21.1779 10.0176 21.2978 10.0176 21.6576V47.1734H16.3494V37.6387V36.9191C17.335 37.8186 19.2167 39.0779 22.1735 39.0779C28.3561 39.0779 32.6868 34.1607 32.6868 27.0846C32.7167 19.9186 28.595 15.0913 22.5021 15.0913ZM21.2178 33.531C17.8129 33.531 16.2598 30.2628 16.2598 27.2045C16.2598 22.4072 18.8583 20.6982 21.3074 20.6982C24.2941 20.6982 26.3251 23.2767 26.3251 27.1446C26.2952 31.5821 23.7266 33.531 21.2178 33.531Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask1_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask1_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.223 32.5419V19.0195C41.223 16.7407 40.118 15.6313 37.8779 15.6313H32.2031V21.2082H34.3834C34.7418 21.2082 34.8613 21.3282 34.8613 21.688V35.1505C34.8613 37.4592 35.9365 38.5386 38.2064 38.5386H43.8812V32.9917H41.7009C41.3724 33.0216 41.223 32.8717 41.223 32.5419Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask2_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask2_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.7716 15.0913C54.2174 15.0913 52.1566 16.7104 51.1411 17.7898C51.0216 16.8303 50.3944 15.601 47.9453 15.601H42.6289V21.1779H44.8092C45.1676 21.1779 45.2871 21.2978 45.2871 21.6576V47.1734H51.6787V37.6387V36.9191C52.6643 37.8186 54.5758 39.0779 57.5028 39.0779C63.6853 39.0779 68.0161 34.1607 68.0161 27.0846C68.0161 19.9186 63.8944 15.0913 57.7716 15.0913ZM56.4873 33.531C53.0825 33.531 51.5294 30.2628 51.5294 27.2045C51.5294 22.4072 54.1278 20.6982 56.5769 20.6982C59.5637 20.6982 61.5946 23.2767 61.5946 27.1446C61.5946 31.5821 59.026 33.531 56.4873 33.531Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask3_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask3_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.9362 15.0913C73.0966 15.0913 68.3477 20.0385 68.3477 27.0846C68.3477 34.0407 73.4848 39.0779 80.5932 39.0779C86.1784 39.0779 89.5833 35.7498 89.7326 35.6298L90.0014 35.39L87.2536 30.8025L86.8355 31.1923C86.8056 31.2223 84.2968 33.531 80.9815 33.531C77.8156 33.531 75.4859 31.5821 74.9185 28.5238H89.9417L89.9716 28.104C89.9716 28.0441 90.1209 26.6948 90.1209 26.0352C90.1209 19.4988 86.0291 15.0913 79.9362 15.0913ZM75.1574 23.7865C75.8443 21.5377 77.5767 20.2484 79.9362 20.2484C81.8477 20.2484 83.3112 21.7176 83.58 23.7865H75.1574Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask4_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask4_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.173 32.5418V10.3842C113.173 8.10547 112.068 6.99609 109.798 6.99609H104.123V12.573H106.303C106.662 12.573 106.781 12.6929 106.781 13.0527V17.0705C105.855 16.2309 104.034 15.1216 100.868 15.1216C94.715 15.1216 90.4141 20.0688 90.4141 27.1149C90.4141 34.2809 94.5357 39.1082 100.629 39.1082C104.123 39.1082 106.154 37.4891 107.14 36.3497C107.259 37.3392 107.916 38.5985 110.276 38.5985H115.771V33.0516H113.651C113.292 33.0216 113.173 32.8717 113.173 32.5418ZM101.853 33.5313C98.8366 33.5313 96.8953 31.0127 96.8953 27.0849C96.8953 23.277 98.9262 20.7284 101.943 20.7284C105.378 20.7284 106.901 23.9067 106.901 27.0549C106.901 31.8522 104.302 33.5313 101.853 33.5313Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask5_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask5_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.9 15.3013C127.272 15.3013 124.823 16.8304 123.389 19.2591V18.7493C123.389 16.6805 122.254 15.6011 120.014 15.6011H114.578V21.178H116.758C117.117 21.178 117.236 21.2979 117.236 21.6577V38.5383H123.568V29.3634C123.568 28.1641 123.718 26.9947 124.016 25.9153C124.972 22.7371 127.511 21.6277 129.542 21.6277C130.258 21.6277 130.796 21.7177 130.796 21.7177L131.334 21.8076V15.4812L130.945 15.4212C130.945 15.3912 130.408 15.3013 129.9 15.3013Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask6_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask6_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.353 32.5419V19.0195C140.353 16.7407 139.248 15.6313 137.008 15.6313H131.871V21.2082H133.514C133.872 21.2082 133.992 21.3282 133.992 21.688V35.1505C133.992 37.4592 135.067 38.5386 137.337 38.5386H143.012V32.9917H140.831C140.503 33.0216 140.353 32.8717 140.353 32.5419Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask7_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask7_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.278 15.6313H160.903C158.932 15.6313 157.857 16.321 157.229 18L153.108 29.5736C152.958 29.9933 152.839 30.4731 152.719 30.9528C152.6 30.503 152.451 29.9933 152.301 29.5736L148.18 18C147.552 16.291 146.537 15.6313 144.506 15.6313H140.922V21.2082H141.848C142.356 21.2082 142.505 21.3881 142.624 21.688L149.016 38.5686H156.154L162.546 21.688C162.665 21.3881 162.815 21.2082 163.322 21.2082H164.308V15.6313H164.278Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask8_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask8_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M175.214 15.0913C168.374 15.0913 163.625 20.0385 163.625 27.0846C163.625 34.0407 168.762 39.0779 175.871 39.0779C181.456 39.0779 184.861 35.7498 185.01 35.6298L185.279 35.39L182.531 30.8025L182.113 31.1923C182.083 31.2223 179.574 33.531 176.289 33.531C173.123 33.531 170.793 31.5821 170.226 28.5238H185.249L185.279 28.104C185.279 28.0441 185.398 26.6948 185.398 26.0352C185.398 19.4988 181.306 15.0913 175.214 15.0913ZM170.435 23.7865C171.122 21.5377 172.854 20.2484 175.214 20.2484C177.125 20.2484 178.589 21.7176 178.857 23.7865H170.435Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask9_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask9_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.7777 6.96582H35.1328V12.9325H40.7777V6.96582Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask10_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask10_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.934 6.96582H134.289V12.9325H139.934V6.96582Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask11_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask11_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.273 15.631H186.11V17.9097H186.737V15.631H187.573V15.0913H185.273V15.631Z\",\n fill: \"#1C2434\"\n }))), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask12_8_9610\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: -16,\n y: -12,\n width: 226,\n height: 77\n }, _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.917 -11.2339H-15.8203V64.6837H209.917V-11.2339Z\",\n fill: \"white\"\n }))), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask12_8_9610)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M190.057 15.0913L189.429 17.0402L188.772 15.0913H187.906V17.9097H188.474V15.9308H188.504L189.191 17.9097H189.668L190.355 15.9308V17.9097H190.923V15.0913H190.057Z\",\n fill: \"#1C2434\"\n })))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_8_9610\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 196.454,\n height: 52.4513,\n fill: \"white\",\n transform: \"translate(0.40625 0.466797)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPipedriveLogo);\nexport default __webpack_public_path__ + \"static/media/pipedrive-logo.638c9e1ba90634ab26fa50d73ad449d2.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgZendeskSuiteLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 281,\n height: 87,\n viewBox: \"0 0 281 87\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_8_9684)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.01 0.294257L142.712 27.282V25.7382C142.712 17.7519 142.738 9.76885 142.676 1.78578C142.676 0.545567 143.001 0.255094 144.207 0.264885C151.009 0.323632 157.815 0.294257 165.01 0.294257Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.844 36.8185L138.642 10.3823C139.061 10.9992 138.928 11.492 138.928 11.9489C138.928 19.821 138.908 27.6899 138.964 35.562C138.964 36.7434 138.73 37.1188 137.475 37.1057C131.04 37.0339 124.605 37.0731 118.173 37.0633C117.77 37.06 117.325 37.2232 116.844 36.8185Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.19 83.6494C134.205 86.7271 129.922 86.6129 126.798 83.4569C123.74 80.3726 123.402 74.9124 126.054 71.4986C128.979 67.7192 133.204 67.2557 138.333 70.2877C138.333 67.4907 138.447 64.7949 138.291 62.1284C138.193 60.415 139.178 60.663 140.205 60.6467C141.232 60.6304 142.116 60.4737 142.09 62.1545C141.979 69.2694 142.067 76.3844 142.005 83.4993C142.005 84.2402 142.815 85.5783 140.972 85.6076C138.456 85.6403 138.456 85.7023 138.19 83.6494ZM138.642 76.9555C138.612 73.9105 136.305 71.5541 133.341 71.5508C132.624 71.5401 131.912 71.6761 131.249 71.9503C130.586 72.2246 129.985 72.6315 129.483 73.1462C128.982 73.661 128.59 74.2728 128.331 74.9445C128.072 75.6162 127.952 76.3337 127.978 77.0534C128.017 80.1997 130.38 82.6442 133.357 82.6018C136.334 82.5593 138.668 80.0756 138.642 76.9555Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.805 0.294046C131 0.294046 134.198 0.37238 137.386 0.25815C138.797 0.209194 138.986 0.737918 138.839 1.94223C137.994 9.01799 129.895 13.6003 123.395 10.6596C119.466 8.88091 117.278 5.82932 116.703 1.56037C116.567 0.548618 116.862 0.254883 117.896 0.254883C121.198 0.336476 124.503 0.294046 127.805 0.294046Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.5269 82.0275C75.2678 82.0275 78.7193 82.096 82.1676 81.9916C83.4449 81.9524 83.6887 82.3637 83.6367 83.5321C83.5489 85.6241 83.6367 85.6274 81.4559 85.6274C77.1788 85.6274 72.9017 85.5686 68.6246 85.6633C67.3506 85.6894 67.1134 85.2749 67.1264 84.1065C67.1002 82.9188 67.4495 81.7534 68.1241 80.7775C71.5204 75.8134 74.8485 70.8036 78.1993 65.8035C78.4886 65.3695 78.8981 64.9909 78.9631 64.2696C75.6903 64.2696 72.463 64.1913 69.2292 64.3022C67.8349 64.3512 67.4514 63.9008 67.5846 62.579C67.6919 61.5248 67.3116 60.5163 69.1414 60.5848C73.5192 60.7513 77.9166 60.6664 82.2944 60.6207C83.3182 60.6207 83.6724 60.8427 83.6919 61.9589C83.7342 63.3031 83.3332 64.6237 82.5511 65.7154C78.8916 71.0288 75.3198 76.3943 71.5269 82.0275Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214.014 86.0223C211.134 86.006 208.313 84.769 206.025 82.2625C205.447 81.6293 205.408 81.2116 206.168 80.784C206.306 80.6967 206.436 80.5985 206.558 80.4903C208.388 79.0608 208.385 79.064 210.081 80.6763C210.817 81.4043 211.721 81.9388 212.712 82.2325C213.703 82.5263 214.75 82.5702 215.762 82.3604C216.565 82.2264 217.308 81.8476 217.889 81.2754C218.471 80.7033 218.863 79.9654 219.012 79.1619C219.285 77.6704 218.626 76.3486 216.871 75.5718C214.859 74.6645 212.704 74.0803 210.695 73.1795C207.241 71.639 205.869 68.9041 206.75 65.5979C207.312 63.4993 208.758 62.1514 210.634 61.2604C214.095 59.6286 219.1 60.6077 221.791 63.3329C222.405 63.953 222.483 64.3577 221.677 64.8048C221.345 64.99 221.036 65.2146 220.758 65.4739C219.994 66.1854 219.484 66.3649 218.593 65.3825C217.053 63.6756 214.963 63.372 212.772 64.0411C212.137 64.2017 211.566 64.5562 211.139 65.056C210.713 65.5558 210.451 66.1761 210.39 66.8316C210.208 68.2676 210.985 69.2924 212.178 69.8375C214.336 70.8166 216.611 71.5444 218.759 72.5398C222.152 74.113 223.559 76.9034 222.763 80.1509C221.853 83.8552 218.691 86.1104 214.014 86.0223Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153.839 37.0694C150.589 37.0694 147.339 36.9911 144.112 37.1086C142.753 37.1576 142.613 36.6386 142.769 35.5224C143.173 32.8047 144.549 30.3277 146.639 28.5548C148.73 26.7818 151.392 25.8343 154.127 25.8895C156.863 25.9447 159.485 26.9988 161.503 28.8547C163.521 30.7105 164.796 33.241 165.091 35.9728C165.201 37.0629 164.691 37.0858 163.892 37.0825C160.541 37.0433 157.19 37.0694 153.839 37.0694Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.7537 78.3003C93.7517 78.3003 91.7464 78.3264 89.7444 78.3003C88.7694 78.2807 88.6719 78.6267 89.0196 79.4655C90.5049 83.0556 95.783 83.7932 98.3765 80.7481C98.6853 80.3826 98.773 79.5307 99.5011 79.8506C100.353 80.1911 101.142 80.6733 101.835 81.2769C102.218 81.6424 101.601 82.1515 101.321 82.504C98.8738 85.6111 95.6172 86.4727 91.8959 85.6861C88.2331 84.9126 86.0718 82.5171 85.3308 78.8813C84.8881 76.6741 85.2948 74.3805 86.469 72.4625C87.6432 70.5445 89.4976 69.1447 91.6587 68.5451C96.1177 67.2853 100.678 69.5535 102.221 73.7931C102.241 73.8453 102.267 73.8943 102.283 73.9433C103.551 77.6606 103.112 78.3101 99.3288 78.3101L95.7537 78.3003ZM93.9825 75.2292C95.3345 75.2292 96.6865 75.1998 98.0385 75.2292C98.968 75.2553 99.0135 74.9028 98.6885 74.1554C97.9475 72.4485 96.251 71.4171 94.0962 71.4367C91.9967 71.4563 89.8419 72.7422 89.1984 74.3447C88.9579 74.9485 89.0359 75.2422 89.7736 75.2259C91.1744 75.2096 92.5817 75.2292 93.9825 75.2292Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.784 78.3004C271.782 78.3004 269.784 78.3232 267.785 78.3004C266.917 78.3004 266.761 78.5484 267.099 79.348C267.432 80.2128 267.993 80.97 268.723 81.5382C269.453 82.1064 270.323 82.464 271.24 82.5726C273.362 82.8989 275.26 82.3441 276.566 80.5686C277.873 78.7932 278.669 80.6568 279.563 81.006C280.824 81.5021 279.615 82.1842 279.332 82.5758C277.057 85.7286 272.335 86.8611 268.503 85.2651C266.751 84.5101 265.297 83.1956 264.365 81.5254C263.434 79.8553 263.078 77.9231 263.352 76.0288C263.907 71.9557 267.001 68.7474 270.788 68.3264C275.263 67.8271 278.861 69.8636 280.288 73.6952C280.346 73.8486 280.424 73.9922 280.473 74.1489C281.558 77.739 281.152 78.3102 277.515 78.3102L273.784 78.3004ZM277.099 75.1639C276.449 72.6149 274.886 71.427 272.309 71.4498C269.732 71.4727 267.837 72.8663 267.268 75.1639H277.099Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.5827 78.3002C48.6327 78.3002 46.6827 78.3459 44.7326 78.3002C43.5463 78.261 43.4846 78.6755 43.9201 79.6253C45.5451 83.1762 50.6542 83.7408 53.29 80.637C54.0635 79.7297 55.1556 79.8472 56.4231 81.0254C57.2713 81.812 56.3158 82.2885 55.9811 82.7193C53.6865 85.6958 49.3542 86.763 45.5614 85.3466C41.9571 84.0052 39.916 80.8035 40.0363 76.6847C40.0978 74.8274 40.7487 73.0384 41.8941 71.5788C43.0394 70.1192 44.6193 69.0654 46.4031 68.571C50.027 67.4973 53.9498 68.8028 56.0526 71.7956C57.2161 73.4536 57.6289 75.3204 57.6321 77.3276C57.6321 78.1533 57.3071 78.3263 56.5823 78.3067C54.5835 78.2741 52.5815 78.3002 50.5827 78.3002ZM48.7854 75.229C50.0855 75.229 51.3855 75.1768 52.6855 75.229C53.9855 75.2812 53.8913 74.7917 53.4135 73.9235C52.419 72.0893 50.8135 71.4039 48.8439 71.4496C47.8636 71.4342 46.8985 71.694 46.0573 72.1997C45.2161 72.7054 44.5322 73.437 44.0826 74.3119C43.6893 75.0202 43.9851 75.2584 44.7326 75.2388C46.0814 75.2062 47.4334 75.229 48.7854 75.229Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.544 78.3001C153.542 78.3001 151.537 78.3262 149.535 78.3001C148.56 78.3001 148.459 78.5971 148.807 79.462C150.246 83.0521 155.56 83.7864 158.16 80.7511C158.466 80.3954 158.527 79.524 159.272 79.8504C160.113 80.2153 160.903 80.6893 161.622 81.2603C161.947 81.5214 161.488 81.9359 161.297 82.2394C159.444 85.1082 155.528 86.5573 151.842 85.7512C148.157 84.945 145.576 82.2427 145.059 78.571C144.481 74.4783 146.606 70.5194 150.214 68.9626C153.925 67.3634 158.407 68.4567 160.773 71.5344C162.073 73.2413 162.538 75.2093 162.584 77.3242C162.603 78.1271 162.324 78.3491 161.56 78.3327C159.554 78.2707 157.549 78.3001 155.544 78.3001ZM153.763 75.2322C155.063 75.2322 156.363 75.1832 157.663 75.2322C158.755 75.2877 158.862 74.9058 158.404 74.0246C157.409 72.1088 155.778 71.3908 153.727 71.4398C151.602 71.492 150.025 72.4907 148.992 74.3412C148.686 74.8895 148.8 75.242 149.548 75.2257C150.948 75.2093 152.356 75.2289 153.763 75.2289V75.2322Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.544 76.6259C187.348 74.635 189.347 72.7877 190.894 70.6141C192.519 68.3295 194.583 68.3948 197.069 68.7309C195.135 70.8915 193.312 73.0032 191.394 75.0234C190.728 75.7251 190.744 76.1559 191.29 76.9164C193.322 79.7068 195.268 82.5561 197.417 85.624C196.117 85.624 195.067 85.575 194.02 85.624C193.328 85.6664 193.078 85.216 192.772 84.7787L188.115 78.1664C185.989 79.7232 184.68 81.6227 185.19 84.3674C185.385 85.389 184.917 85.637 183.935 85.6272C181.586 85.6011 181.582 85.6533 181.582 83.3622C181.582 76.355 181.631 69.3478 181.543 62.3438C181.527 60.9078 181.982 60.5945 183.269 60.712C184.322 60.8131 185.307 60.4607 185.245 62.2786C185.089 66.9914 185.193 71.7107 185.193 76.4268L185.544 76.6259Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.0498 70.5099C26.3986 69.3415 27.5621 68.5777 28.9921 68.3558C33.5422 67.6541 36.9158 70.314 37.1173 74.9583C37.2505 78.1568 37.1173 81.3683 37.1953 84.5733C37.1953 85.4577 36.906 85.7449 36.087 85.6242C35.9788 85.6175 35.8702 85.6175 35.762 85.6242C33.5227 85.6242 33.5259 85.6242 33.5227 83.4505C33.5227 80.9505 33.5714 78.4505 33.4934 75.944C33.4057 73.271 32.3104 71.8545 30.2759 71.5379C27.3508 71.0843 25.196 72.8761 25.1278 75.9113C25.0628 78.7345 25.0595 81.5608 25.1278 84.397C25.1538 85.4186 24.8678 85.7874 23.87 85.634C23.4942 85.5752 23.1116 85.5752 22.7357 85.634C21.6632 85.8037 21.3902 85.3631 21.4 84.3056C21.452 78.8715 21.426 73.4407 21.426 68.0066C21.426 66.1038 21.5202 64.1978 21.3935 62.3049C21.2992 60.9472 21.829 60.7677 23.0185 60.7154C24.572 60.6502 25.2155 60.9602 25.0855 62.7161C24.9133 65.19 25.0498 67.6868 25.0498 70.5099Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M238.057 83.4537C236.052 85.3695 234.268 86.0647 232.145 85.9635C228.84 85.8068 226.344 83.7148 225.934 80.4511C225.476 76.7794 225.837 73.0751 225.733 69.3871C225.713 68.6984 226.058 68.6299 226.627 68.5842C229.448 68.3655 229.438 68.3492 229.448 71.1952C229.448 73.6919 229.425 76.1887 229.503 78.6854C229.581 81.1822 230.904 82.5692 233.078 82.7357C235.525 82.925 237.28 81.6456 237.68 79.1684C238.164 76.1528 237.914 73.0979 237.83 70.0692C237.781 68.3981 238.642 68.5581 239.682 68.5972C240.657 68.6364 241.632 68.2709 241.574 70.03C241.424 74.7493 241.463 79.4785 241.574 84.2011C241.6 85.5066 241.154 85.8036 240.027 85.6371C238.974 85.4772 237.277 86.3258 238.057 83.4537Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.332 70.5362C110.703 69.2568 112.143 68.4605 113.882 68.3365C118.302 68.0101 121.282 70.6211 121.451 75.0924C121.575 78.2941 121.451 81.5056 121.493 84.7106C121.493 85.5755 121.204 85.8039 120.372 85.8268C117.863 85.892 117.876 85.9312 117.86 83.3431C117.843 80.6831 117.86 78.0199 117.743 75.3633C117.629 72.9873 116.335 71.6981 114.168 71.5219C111.847 71.3358 110.076 72.501 109.618 74.7464C109.016 77.6413 109.491 80.595 109.351 83.5193C109.315 84.1982 109.676 85.2785 109.127 85.4776C108.207 85.8039 107.102 85.644 106.082 85.595C105.519 85.5657 105.718 85.0141 105.718 84.6812C105.718 79.629 105.718 74.5636 105.695 69.5245C105.695 68.8423 105.844 68.4899 106.585 68.5878C106.854 68.6254 107.126 68.6254 107.395 68.5878C108.834 68.3495 109.705 68.7183 109.332 70.5362Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.592 68.2705C173.997 68.2705 176.012 68.8286 177.696 70.4083C178.505 71.1622 178.703 71.5995 177.511 72.2294C176.318 72.8593 175.577 73.2607 174.374 72.1087C173.24 71.0251 171.573 71.0773 170.071 71.6354C169.317 71.9161 168.771 72.4807 168.771 73.3325C168.771 74.1844 169.46 74.5205 170.13 74.7555C172.06 75.4409 174.15 75.5813 176.019 76.4722C179.149 77.9605 179.789 81.4592 177.41 83.9951C176.068 85.4246 174.365 86.0088 172.467 86.0741C169.61 86.1688 166.997 85.5519 164.991 83.2934C164.341 82.5656 164.088 81.9553 165.284 81.5408C165.639 81.4081 165.974 81.2281 166.282 81.0056C167.032 80.4703 167.533 80.4018 168.254 81.2634C169.554 82.8169 171.404 83.0748 173.302 82.6407C174.277 82.4155 175.167 81.8411 175.193 80.6825C175.219 79.625 174.368 79.2529 173.484 79.031C172.281 78.7308 171.072 78.4533 169.873 78.1498C166.392 77.2653 164.913 75.6367 165.154 72.9605C165.378 70.4572 167.822 68.4957 170.962 68.2999L171.592 68.2705Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.78791 74.789C7.78791 71.6362 7.75541 68.4834 7.78791 65.3241C7.78791 64.4005 7.52465 64.0872 6.59514 64.1264C4.97011 64.1916 3.34507 64.0644 1.72004 64.1655C0.264018 64.2569 0.647526 63.2484 0.706027 62.5532C0.764528 61.8581 0.0560156 60.7256 1.68105 60.7419C6.93314 60.7908 12.182 60.768 17.4341 60.7419C18.0841 60.7419 18.3668 60.879 18.4091 61.6296C18.5684 64.1394 18.6074 64.1231 16.1341 64.1427C14.626 64.1427 12.6207 63.6368 11.7465 64.4005C10.7325 65.2915 11.4475 67.3607 11.4215 68.911C11.3792 74.0187 11.324 79.1297 11.4475 84.2505C11.493 86.0521 10.4237 85.5821 9.49744 85.6213C8.57117 85.6604 7.6319 85.8823 7.71315 84.2407C7.89841 81.1042 7.78791 77.9384 7.78791 74.789Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M257.952 62.8467C257.952 64.1228 258.062 65.3663 257.922 66.5804C257.731 68.2514 258.273 68.9694 259.983 68.6528C261.208 68.4277 261.608 68.8846 261.631 70.1998C261.666 71.6718 261.224 72.1907 259.827 71.9231C258.257 71.6196 257.786 72.2495 257.916 73.8226C258.075 75.7645 257.987 77.7391 257.997 79.681C257.997 81.2312 258.647 82.1516 260.314 82.1451C262.511 82.1451 261.367 83.8194 261.54 84.7561C261.787 86.1072 260.662 85.6732 260.025 85.6569C256.008 85.5557 254.464 84.0837 254.263 80.0367C254.152 77.8174 254.172 75.585 254.263 73.3624C254.299 72.2886 254.1 71.6946 252.895 71.9198C251.617 72.1613 251.25 71.6228 251.292 70.3467C251.335 69.1783 251.331 68.3004 252.875 68.5745C253.808 68.741 254.308 68.519 254.295 67.3278C254.25 64.162 254.438 64.0118 257.952 62.8467Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M244.953 77.0474V70.8464C244.953 68.4965 244.953 68.503 247.468 68.5846C248.066 68.6042 248.641 68.4834 248.635 69.4462C248.606 74.5507 248.615 79.6552 248.635 84.7629C248.635 85.3765 248.459 85.6669 247.813 85.6245C247.272 85.5688 246.728 85.5688 246.188 85.6245C245.17 85.7648 244.888 85.3634 244.93 84.3647C245.001 81.9365 244.953 79.492 244.953 77.0474Z\",\n fill: \"#123239\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M246.798 65.9768C246.475 65.9827 246.154 65.9227 245.856 65.8003C245.557 65.6779 245.286 65.4958 245.06 65.265C244.833 65.0342 244.656 64.7595 244.538 64.4577C244.421 64.1559 244.366 63.8333 244.376 63.5094C244.376 61.9657 245.351 60.9865 246.892 61.0224C247.213 61.0271 247.531 61.0955 247.826 61.2236C248.121 61.3517 248.387 61.5371 248.611 61.7691C248.834 62.0011 249.01 62.2751 249.128 62.5754C249.245 62.8758 249.303 63.1965 249.297 63.5192C249.264 64.1694 248.989 64.7835 248.526 65.239C248.063 65.6944 247.446 65.9579 246.798 65.9768Z\",\n fill: \"#123239\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_8_9684\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 280.376,\n height: 85.8294,\n fill: \"white\",\n transform: \"translate(0.625 0.254883)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgZendeskSuiteLogo);\nexport default __webpack_public_path__ + \"static/media/zendesk-suite-logo.e2056e85f9b1ae70f3e127adbf11f0d5.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useState } from \"react\";\nimport salesfortlogo from \"../assets/images/svg/salesforce-logo.svg\";\nimport dynamics365logo from \"../assets/images/png/dynamics-365-logo.png\";\nimport hubsportlogo from \"../assets/images/svg/hubsport-logo.svg\";\nimport pipedrivelogo from \"../assets/images/svg/pipedrive-logo.svg\";\nimport zendexlogo from \"../assets/images/svg/zendesk-suite-logo.svg\";\nimport businessLeftTextIcon2 from \"../assets/images/svg/small-arrow-icon-2.svg\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\n\ngsap.registerPlugin(ScrollTrigger);\n\nconst Crm = ({locale: {Crm}}) => {\n const [isMobileDevice, setIsMobileDevice] = useState(false);\n\n var settings = {\n dots: false,\n infinite: true,\n arrows: false,\n autoplay: true,\n centerMode: true,\n speed: 500,\n slidesToShow: window.innerWidth>0 && window.innerWidth<=1024 ? 1 : 1.9 ,\n slidesToScroll: 1,\n };\n\n\n useEffect(() => {\n window.innerWidth < 1025 && setIsMobileDevice(true);\n window.innerWidth > 1024 && setIsMobileDevice(false);\n window.addEventListener(\"resize\", () => {\n window.innerWidth < 1025 && setIsMobileDevice(true);\n window.innerWidth > 1024 && setIsMobileDevice(false);\n });\n let mm = gsap.matchMedia();\n mm.add(\"(min-width: 576px)\", () => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#CRM\",\n start: \"top top\",\n pin: window.innerWidth>1024,\n fastScrollEnd: true,\n },\n });\n\n tl.fromTo(\n \".left_text_crm\",\n {\n bottom: \"0%\",\n },\n {\n bottom: \"80%\",\n }\n )\n if(window.innerWidth>1024){\n tl.from(\"#CRM-img-container img\", {\n x: -50,\n autoAlpha: 0,\n stagger: 0.07,\n });\n }\n });\n\n }, []);\n return (\n <>\n \n
\n

{Crm.arrowText}

\n
\n \"crm-small-arrow\"\n
\n
\n
\n \n {Crm.title}\n \n \n \n

\n {!isMobileDevice && (\n
\n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n \n \n \n \n )}\n {isMobileDevice && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default Crm;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFooterLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 102,\n height: 42,\n viewBox: \"0 0 102 42\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.2845 0V7.92964C15.2933 6.70243 13.83 5.85283 11.6116 5.85283C10.6676 5.85283 9.81803 5.99443 9.01562 6.32483L9.34603 6.65523L10.9508 8.26004L11.0452 8.35444C11.3284 8.30724 11.6116 8.26004 11.8948 8.26004C14.4437 8.26004 16.2373 10.1953 16.2373 12.6025C16.2373 15.0569 14.4437 17.0865 11.8948 17.0865C11.6116 17.0865 11.3284 17.0393 11.0452 16.9921L9.01562 19.0217C9.81803 19.3521 10.6676 19.4937 11.5644 19.4937C13.7828 19.4937 15.2933 18.6441 16.2373 17.4169V19.3521H18.9749V0H16.2845Z\",\n fill: \"#EDFAFB\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.4231 11.4228C28.9807 11.4228 30.1608 11.7532 30.7272 12.0364V11.3284C30.7272 9.67641 29.4056 8.4492 27.3287 8.4492C25.6767 8.4492 24.3551 9.39321 23.5527 10.29L21.8535 8.5908C22.8919 7.3164 24.9687 5.90039 27.3759 5.90039C31.1048 5.90039 33.4176 7.8828 33.4176 11.0924V19.3525H30.7744V17.6533C29.972 18.8805 28.4615 19.6357 26.6679 19.6357C23.7887 19.6357 21.5703 18.1725 21.5703 15.6236C21.6175 13.122 23.9775 11.4228 27.4231 11.4228ZM27.0927 17.37C29.2168 17.37 30.7272 15.9068 30.7272 14.1132C30.1608 13.83 28.8864 13.4996 27.4703 13.4996C25.7711 13.4996 24.3079 14.066 24.3079 15.482C24.3551 16.7092 25.5351 17.37 27.0927 17.37Z\",\n fill: \"#EDFAFB\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.1367 0.046875C39.1279 0.046875 39.8359 0.754879 39.8359 1.74608C39.8359 2.73729 39.1279 3.44529 38.1367 3.44529C37.1455 3.44529 36.4375 2.73729 36.4375 1.74608C36.4375 0.754879 37.1455 0.046875 38.1367 0.046875ZM36.7679 19.3518V6.13571H39.5055V19.3518H36.7679Z\",\n fill: \"#EDFAFB\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.9609 12.7444C41.9609 8.87401 45.0762 5.90039 49.041 5.90039C51.637 5.90039 53.8082 7.2692 55.0354 9.53481L52.9114 10.9508C52.109 9.44041 50.5986 8.4492 48.9466 8.4492C46.3978 8.4492 44.6513 10.3372 44.6513 12.7444C44.6513 15.1988 46.445 17.0868 48.8994 17.0868C50.5986 17.0868 52.0618 16.19 52.9586 14.6324L54.9882 16.0956C53.761 18.2669 51.5426 19.6829 48.8994 19.6829C44.9818 19.6357 41.9609 16.5676 41.9609 12.7444Z\",\n fill: \"#EDFAFB\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.2591 11.4228C63.8167 11.4228 64.9967 11.7532 65.5631 12.0364V11.3284C65.5631 9.67641 64.2415 8.4492 62.1647 8.4492C60.5127 8.4492 59.1911 9.39321 58.3887 10.29L56.6895 8.5908C57.7279 7.3164 59.8047 5.90039 62.2119 5.90039C65.9407 5.90039 68.2535 7.8828 68.2535 11.0924V19.3525H65.6103V17.6533C64.8079 18.8805 63.2975 19.6357 61.5039 19.6357C58.6247 19.6357 56.4062 18.1725 56.4062 15.6236C56.4535 13.122 58.8135 11.4228 62.2591 11.4228ZM61.9287 17.37C64.0527 17.37 65.5631 15.9068 65.5631 14.1132C64.9967 13.83 63.7223 13.4996 62.3063 13.4996C60.6071 13.4996 59.1439 14.066 59.1439 15.482C59.1911 16.7092 60.3711 17.37 61.9287 17.37Z\",\n fill: \"#EDFAFB\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.6016 19.3518V6.13574H74.3392V7.92935C75.0944 6.46614 76.3216 5.85254 77.7848 5.85254C78.8232 5.85254 79.5784 6.18294 79.5784 6.18294L79.2952 8.68455C79.1536 8.63735 78.54 8.40135 77.6904 8.40135C76.2272 8.40135 74.3392 9.15656 74.3392 12.1302V19.3518H71.6016Z\",\n fill: \"#EDFAFB\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.3906 29.3584C25.3906 25.5351 28.2226 22.5615 31.9987 22.5615C34.4531 22.5615 36.4355 23.7415 37.4267 25.2991V22.7975H39.0787V34.928C39.0787 38.9872 36.2939 41.6304 31.8099 41.6304C29.497 41.6304 27.4202 40.7808 26.0042 39.2704L27.0898 38.1848C28.3642 39.5064 30.0162 40.12 31.8571 40.12C35.2555 40.12 37.4739 38.232 37.4739 35.2584V33.3704C36.4827 34.928 34.5475 36.1552 32.0459 36.1552C28.2698 36.1552 25.3906 33.1816 25.3906 29.3584ZM26.9954 29.3584C26.9954 32.3792 29.1666 34.692 32.1403 34.692C35.2083 34.692 37.5211 32.3792 37.5211 29.3584C37.5211 26.3847 35.2083 24.0719 32.1403 24.0719C29.2138 24.0247 26.9954 26.3375 26.9954 29.3584Z\",\n fill: \"#EDFAFB\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.9062 22.7978H44.5583V24.8747C45.3135 23.2699 46.6351 22.5146 48.1927 22.5146C49.0423 22.5146 49.6087 22.6562 50.1279 22.8451L49.9863 24.3555C49.4199 24.1195 48.9951 23.9779 48.1455 23.9779C46.1159 23.9779 44.6055 25.4883 44.6055 28.4147V35.8251H42.9534V22.7978H42.9062Z\",\n fill: \"#EDFAFB\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.9219 29.3584C50.9219 25.5351 53.8955 22.5615 57.8603 22.5615C61.8251 22.5615 64.7987 25.5351 64.7987 29.3584C64.7987 33.1816 61.8251 36.1552 57.8603 36.1552C53.8955 36.1552 50.9219 33.1816 50.9219 29.3584ZM57.8603 34.692C60.8811 34.692 63.1939 32.3792 63.1939 29.3584C63.1939 26.3375 60.9283 24.0247 57.8603 24.0247C54.7923 24.0247 52.5267 26.3375 52.5267 29.3584C52.5267 32.3792 54.8395 34.692 57.8603 34.692Z\",\n fill: \"#EDFAFB\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.5469 30.8219V22.7979H69.1989V30.3027C69.1989 33.2291 70.6621 34.6451 73.3525 34.6451C75.8069 34.6451 77.7893 32.8515 77.7893 30.2083V22.7979H79.4413V35.8723H77.7893V33.6067C76.7509 35.4003 74.9101 36.1555 73.1165 36.1555C69.8125 36.1555 67.5469 34.3619 67.5469 30.8219Z\",\n fill: \"#EDFAFB\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.707 34.456C91.235 34.5976 90.7158 34.692 90.1966 34.692C87.1286 34.692 84.9573 32.2846 84.9573 29.2638C84.9573 26.2902 87.1286 24.0719 90.1966 24.0719C90.763 24.0719 91.2822 24.1663 91.8014 24.3079L92.9814 23.1279C92.179 22.7503 91.2822 22.5615 90.291 22.5615C87.8366 22.5615 85.8542 23.7415 84.8629 25.2991V22.7975H83.2109V41.3472H84.8629V33.3704C85.8542 34.928 87.7894 36.1552 90.291 36.1552C91.235 36.1552 92.1318 35.9664 92.887 35.636L91.707 34.456Z\",\n fill: \"#EDFAFB\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M94.2122 29.0286L91.8994 26.7158C91.7106 26.527 91.7106 26.2438 91.8994 26.055L93.7874 24.167C93.9762 23.9782 94.2594 23.9782 94.4482 24.167L99.3571 29.0758C99.5459 29.2646 99.5459 29.5478 99.3571 29.7366L94.4482 34.6454C94.2594 34.8342 93.9762 34.8342 93.7874 34.6454L91.8994 32.7574C91.7106 32.5686 91.7106 32.2854 91.8994 32.0966L94.2594 29.7838C94.401 29.5006 94.401 29.2174 94.2122 29.0286Z\",\n fill: \"#7EE49C\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M7.73955 13.0745L10.0524 15.3873C10.2412 15.5761 10.2412 15.8593 10.0524 16.0481L8.16435 17.9361C7.97555 18.1249 7.69235 18.1249 7.50355 17.9361L2.59473 13.0745C2.40592 12.8857 2.40592 12.6025 2.59473 12.4137L7.50355 7.50488C7.69235 7.31608 7.97555 7.31608 8.16435 7.50488L10.0524 9.39289C10.2412 9.58169 10.2412 9.86489 10.0524 10.0537L7.69235 12.3665C7.55075 12.6025 7.55075 12.8857 7.73955 13.0745Z\",\n fill: \"#7EE49C\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.23923 13.0745L7.55204 15.3873C7.74084 15.5761 7.74084 15.8593 7.55204 16.0481L5.66403 17.9361C5.47523 18.1249 5.19203 18.1249 5.00323 17.9361L0.141601 13.0745C-0.0472002 12.8857 -0.0472002 12.6025 0.141601 12.4137L5.05043 7.50488C5.23923 7.31608 5.52243 7.31608 5.71123 7.50488L7.59924 9.39289C7.78804 9.58169 7.78804 9.86489 7.59924 10.0537L5.23923 12.3665C5.09763 12.6025 5.09763 12.8857 5.23923 13.0745Z\",\n fill: \"#7EE49C\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.7122 29.0286L94.3994 26.7158C94.2106 26.527 94.2106 26.2438 94.3994 26.055L96.2874 24.167C96.4762 23.9782 96.7594 23.9782 96.9482 24.167L101.857 29.0758C102.046 29.2646 102.046 29.5478 101.857 29.7366L96.9482 34.6454C96.7594 34.8342 96.4762 34.8342 96.2874 34.6454L94.3994 32.7574C94.2106 32.5686 94.2106 32.2854 94.3994 32.0966L96.7594 29.7838C96.8538 29.5006 96.8538 29.2174 96.7122 29.0286Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFooterLogo);\nexport default __webpack_public_path__ + \"static/media/footer_logo.932c43f410e94a42a34c69fa41357894.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSmsImg(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 43,\n height: 40,\n viewBox: \"0 0 43 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M27.8593 25.8596C28.0944 25.1544 28.2119 24.5667 28.2119 23.7439V11.4018C28.2119 7.64035 25.0382 4.5842 21.1593 4.5842H20.5715C17.0452 4.5842 14.1066 7.28773 14.1066 10.6965H16.6926C16.6926 8.69825 18.4558 7.05263 20.5715 7.05263H21.1593C23.6277 7.05263 25.6259 8.93333 25.6259 11.4018V23.7439C25.6259 24.4491 25.3908 25.1544 25.0382 25.8596H17.1628C16.8101 25.2719 16.5751 24.5667 16.5751 23.7439V17.6316C16.5751 16.5737 17.3979 15.7509 18.4558 15.7509C19.5137 15.7509 20.3365 16.5737 20.3365 17.6316V21.9807H22.9224V17.6316C22.9224 15.2807 20.9242 13.2825 18.4558 13.2825C15.9873 13.2825 13.9891 15.1632 13.9891 17.6316V23.7439C13.9891 24.4491 14.1066 25.1544 14.3417 25.8596H7.054C5.76102 25.8596 4.70312 24.8018 4.70312 23.5088V2.35088C4.70312 1.05789 5.76102 0 7.054 0H35.2645C36.5575 0 37.6154 1.05789 37.6154 2.35088V23.5088C37.6154 24.8018 36.5575 25.8596 35.2645 25.8596H27.8593Z\",\n fill: \"#7EE49C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.1053 19.63V23.8616C14.1053 27.623 17.2789 30.6791 21.1579 30.6791C25.0368 30.6791 28.2105 27.623 28.2105 23.8616V19.63L40.4351 10.8142C40.9053 10.4616 41.7281 10.5791 42.0807 11.0493C42.1982 11.2844 42.3158 11.5195 42.3158 11.7545V35.2633C42.3158 37.8493 40.2 39.9651 37.614 39.9651H4.70175C2.11579 39.9651 0 37.8493 0 35.2633V11.7545C0 11.0493 0.470175 10.5791 1.17544 10.5791C1.41053 10.5791 1.64561 10.6966 1.8807 10.8142L14.1053 19.63ZM16.6912 21.3931L21.1579 24.6844L25.6246 21.3931V23.744C25.6246 26.0949 23.6263 28.0931 21.1579 28.0931C18.6895 28.0931 16.6912 26.2124 16.6912 23.744V21.3931Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmsImg);\nexport default __webpack_public_path__ + \"static/media/sms_img.d45829dd690499ecea16c4a12d30461f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 35,\n height: 41,\n viewBox: \"0 0 35 41\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.214 17.1187C33.214 29.2096 17.107 39.5732 17.107 39.5732C17.107 39.5732 1 29.2096 1 17.1187C1 12.9958 2.69698 9.04174 5.71763 6.1264C8.73828 3.21106 12.8352 1.57324 17.107 1.57324C21.3788 1.57324 25.4757 3.21106 28.4964 6.1264C31.517 9.04174 33.214 12.9958 33.214 17.1187Z\",\n fill: \"#7EE49C\",\n stroke: \"#7EE49C\",\n strokeOpacity: 0.49,\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1026 20C20.4385 20 23.1428 17.5376 23.1428 14.5C23.1428 11.4624 20.4385 9 17.1026 9C13.7668 9 11.0625 11.4624 11.0625 14.5C11.0625 17.5376 13.7668 20 17.1026 20Z\",\n fill: \"#29424D\",\n stroke: \"#29424D\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon);\nexport default __webpack_public_path__ + \"static/media/icon.367e237d7060b65b68427df2f16afdef.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrows(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 45,\n height: 44,\n viewBox: \"0 0 45 44\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3031 33.9811L11.6818 43.4328C11.4997 43.6118 11.2835 43.7539 11.0455 43.8508C10.8076 43.9476 10.5525 43.9975 10.2949 43.9975C10.0373 43.9975 9.78227 43.9476 9.54431 43.8508C9.30635 43.7539 9.09016 43.6118 8.9081 43.4328L0.957305 35.6389C0.773605 35.4608 0.627742 35.2487 0.528182 35.0149C0.428626 34.781 0.377357 34.53 0.377357 34.2765C0.377357 34.023 0.428626 33.772 0.528182 33.5381C0.627742 33.3043 0.773604 33.0922 0.957305 32.9141L21.3031 12.9269C21.4843 12.7468 21.7 12.6038 21.9379 12.5062C22.1757 12.4087 22.4309 12.3584 22.6887 12.3584C22.9464 12.3584 23.2016 12.4087 23.4395 12.5062C23.6773 12.6038 23.8931 12.7468 24.0743 12.9269L44.4201 32.9141C44.6038 33.0921 44.7496 33.3043 44.8492 33.5381C44.9487 33.772 45 34.023 45 34.2765C45 34.53 44.9487 34.781 44.8492 35.0148C44.7496 35.2487 44.6038 35.4608 44.4201 35.6389L36.4717 43.4352C36.2896 43.6142 36.0734 43.7562 35.8355 43.8531C35.5975 43.95 35.3425 43.9999 35.0849 43.9999C34.8273 43.9999 34.5722 43.95 34.3342 43.8531C34.0963 43.7562 33.8801 43.6142 33.698 43.4352L24.0743 33.9811C23.7067 33.6202 23.2083 33.4175 22.6887 33.4175C22.169 33.4175 21.6707 33.6202 21.3031 33.9811Z\",\n fill: \"#7EE49C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3031 33.9811L11.6818 43.4328C11.4997 43.6118 11.2835 43.7539 11.0455 43.8508C10.8076 43.9476 10.5525 43.9975 10.2949 43.9975C10.0373 43.9975 9.78227 43.9476 9.54431 43.8508C9.30635 43.7539 9.09016 43.6118 8.9081 43.4328L0.957305 35.6389C0.773605 35.4608 0.627742 35.2487 0.528182 35.0149C0.428626 34.781 0.377357 34.53 0.377357 34.2765C0.377357 34.023 0.428626 33.772 0.528182 33.5381C0.627742 33.3043 0.773604 33.0922 0.957305 32.9141L21.3031 12.9269C21.4843 12.7468 21.7 12.6038 21.9379 12.5062C22.1757 12.4087 22.4309 12.3584 22.6887 12.3584C22.9464 12.3584 23.2016 12.4087 23.4395 12.5062C23.6773 12.6038 23.8931 12.7468 24.0743 12.9269L44.4201 32.9141C44.6038 33.0921 44.7496 33.3043 44.8492 33.5381C44.9487 33.772 45 34.023 45 34.2765C45 34.53 44.9487 34.781 44.8492 35.0148C44.7496 35.2487 44.6038 35.4608 44.4201 35.6389L36.4717 43.4352C36.2896 43.6142 36.0734 43.7562 35.8355 43.8531C35.5975 43.95 35.3425 43.9999 35.0849 43.9999C34.8273 43.9999 34.5722 43.95 34.3342 43.8531C34.0963 43.7562 33.8801 43.6142 33.698 43.4352L24.0743 33.9811C23.7067 33.6202 23.2083 33.4175 22.6887 33.4175C22.169 33.4175 21.6707 33.6202 21.3031 33.9811Z\",\n fill: \"#7EE49C\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3031 23.1756L11.6818 32.8697C11.4997 33.0533 11.2835 33.199 11.0455 33.2984C10.8076 33.3978 10.5525 33.4489 10.2949 33.4489C10.0373 33.4489 9.78227 33.3978 9.54431 33.2984C9.30635 33.199 9.09016 33.0533 8.9081 32.8697L0.957305 24.876C0.773605 24.6934 0.627742 24.4758 0.528182 24.2359C0.428626 23.9961 0.377357 23.7386 0.377357 23.4786C0.377357 23.2186 0.428626 22.9612 0.528182 22.7214C0.627742 22.4815 0.773604 22.2639 0.957305 22.0813L21.3031 1.58163C21.4843 1.39691 21.7 1.25026 21.9379 1.15017C22.1757 1.05008 22.4309 0.998538 22.6887 0.998538C22.9464 0.998538 23.2016 1.05008 23.4395 1.15017C23.6773 1.25026 23.8931 1.39691 24.0743 1.58163L44.4201 22.0813C44.6038 22.2639 44.7496 22.4815 44.8492 22.7213C44.9487 22.9612 45 23.2186 45 23.4786C45 23.7386 44.9487 23.996 44.8492 24.2359C44.7496 24.4758 44.6038 24.6933 44.4201 24.876L36.4717 32.8722C36.2896 33.0558 36.0734 33.2015 35.8355 33.3008C35.5975 33.4002 35.3425 33.4514 35.0849 33.4514C34.8273 33.4514 34.5722 33.4002 34.3342 33.3008C34.0963 33.2015 33.8801 33.0558 33.698 32.8722L24.0743 23.1756C23.7067 22.8055 23.2083 22.5977 22.6887 22.5977C22.169 22.5977 21.6707 22.8055 21.3031 23.1756Z\",\n fill: \"#7EE49C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3031 23.1756L11.6818 32.8697C11.4997 33.0533 11.2835 33.199 11.0455 33.2984C10.8076 33.3978 10.5525 33.4489 10.2949 33.4489C10.0373 33.4489 9.78227 33.3978 9.54431 33.2984C9.30635 33.199 9.09016 33.0533 8.9081 32.8697L0.957305 24.876C0.773605 24.6934 0.627742 24.4758 0.528182 24.2359C0.428626 23.9961 0.377357 23.7386 0.377357 23.4786C0.377357 23.2186 0.428626 22.9612 0.528182 22.7214C0.627742 22.4815 0.773604 22.2639 0.957305 22.0813L21.3031 1.58163C21.4843 1.39691 21.7 1.25026 21.9379 1.15017C22.1757 1.05008 22.4309 0.998538 22.6887 0.998538C22.9464 0.998538 23.2016 1.05008 23.4395 1.15017C23.6773 1.25026 23.8931 1.39691 24.0743 1.58163L44.4201 22.0813C44.6038 22.2639 44.7496 22.4815 44.8492 22.7213C44.9487 22.9612 45 23.2186 45 23.4786C45 23.7386 44.9487 23.996 44.8492 24.2359C44.7496 24.4758 44.6038 24.6933 44.4201 24.876L36.4717 32.8722C36.2896 33.0558 36.0734 33.2015 35.8355 33.3008C35.5975 33.4002 35.3425 33.4514 35.0849 33.4514C34.8273 33.4514 34.5722 33.4002 34.3342 33.3008C34.0963 33.2015 33.8801 33.0558 33.698 32.8722L24.0743 23.1756C23.7067 22.8055 23.2083 22.5977 22.6887 22.5977C22.169 22.5977 21.6707 22.8055 21.3031 23.1756Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrows);\nexport default __webpack_public_path__ + \"static/media/Arrows.3d60eb40ebd4d80835dfa4c275233058.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect } from \"react\";\nimport backToTopIcon from \"../assets/images/svg/Arrows.svg\";\n\nconst BackToTop = () => {\n const [showButton, setShowButton] = useState(false);\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n }\n useEffect(() => {\n window.addEventListener(\"scroll\", () => {\n if (window.pageYOffset > 300) {\n setShowButton(true);\n } else {\n setShowButton(false);\n }\n });\n }, []);\n return (\n
\n {showButton && (\n scrollToTop()}\n >\n \"backToTopIcon\"\n
\n )}\n \n );\n};\nexport default BackToTop;\n","import React from \"react\";\nimport footer_logo from \"../assets/images/svg/footer_logo.svg\";\nimport smsImg from \"../assets/images/svg/sms_img.svg\";\nimport iconImg from \"../assets/images/svg/icon.svg\";\nimport footerbg from \"../assets/images/png/footer_bg.png\";\nimport footerMobilebg from \"../assets/images/png/footer-bg-mobile-sc.png\";\nimport BackToTop from \"./BackToTopButton\";\nimport LogoCarplanner from \"../assets/images/png/carplanner-logo.png\";\nimport LogoIdeal from \"../assets/images/png/ideal-rent-logo-inverted.png\";\n\nfunction Footer({locale: {Footer}}) {\n return (\n <>\n
\n
\n

\n {Footer.mobile.phrase1}
\n {Footer.mobile.phrase2}
\n {Footer.mobile.phrase3}\n

\n

\n {Footer.desktop.phrase1}
\n {Footer.desktop.phrase2}\n

\n
\n \n {Footer.phrase1}\n \n
\n
\n\n
\n
\n

\n \n {Footer.phrase2}\n \n

\n

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

\n
\n
\n\n \n {/* BACKTOTOP ICON */}\n \n \n \n
\n
\n
\n \n \n \n
\n

\n {Footer.phrase3}
\n {Footer.phrase4}\n

\n

\n Daicar Srl P.IVA 14570951005\n

\n

\n Designed & developed

\n \n alfatauristudio.com\n \n

\n
\n
\n\n
\n
    \n
  • \n \n Cookie Policy\n \n
  • \n
  • \n \n Privacy Policy\n \n
  • \n
\n
\n\n
\n
\n \"smsImg\"\n
\n \n hello@daicargroup.com\n \n
\n
\n\n
\n
\n \"iconImg\"\n
\n
\n \n Via Del Porto Fluviale, 1/C{\" \"}\n
\n 00154 ROMA\n \n
\n
\n
\n\n
\n
\n
\n \n \n );\n}\n\nexport default Footer;\n","import React, { useEffect } from \"react\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport Footer from \"./Footer\";\ngsap.registerPlugin(ScrollTrigger);\n\nfunction Meeting({locale}) {\n useEffect(() => {\n const tl = gsap.timeline({\n scrollTrigger: {\n trigger: \"#contatti\",\n start: \"top 70%\",\n end: \"bottom 80%\",\n scrub: true,\n fastScrollEnd: true,\n },\n });\n tl.from([\".meeting_first_line\"], {\n x: -100,\n autoAlpha: 0,\n stagger: 1,\n })\n .from([\".meeting_second_line\"], {\n x: 100,\n autoAlpha: 0,\n stagger: 1,\n })\n .from([\".meeting_third_line\"], {\n x: -100,\n autoAlpha: 0,\n stagger: 1,\n })\n .from([\".meeting_fourth_line\"], {\n x: 100,\n autoAlpha: 0,\n stagger: 1,\n })\n .from([\".meeting_fifth_line\"], {\n x: -100,\n autoAlpha: 0,\n stagger: 1,\n });\n }, []);\n\n return (\n <>\n
\n
\n
\n
\n
\n \n );\n}\n\nexport default Meeting;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLargeArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 1731,\n height: 1258,\n viewBox: \"0 0 1731 1258\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M811.783 859.843L438.784 1235.45C431.726 1242.57 423.345 1248.21 414.119 1252.06C404.894 1255.91 395.006 1257.9 385.02 1257.9C375.033 1257.9 365.145 1255.91 355.92 1252.06C346.694 1248.21 338.313 1242.57 331.255 1235.45L23.0191 925.725C15.8974 918.649 10.2426 910.22 6.38291 900.926C2.52327 891.631 0.5356 881.658 0.535601 871.584C0.535601 861.509 2.52327 851.536 6.38292 842.241C10.2426 832.947 15.8974 824.518 23.0191 817.443L811.783 23.1532C818.807 15.996 827.172 10.3138 836.393 6.4356C845.614 2.55744 855.507 0.560509 865.5 0.560509C875.493 0.56051 885.386 2.55744 894.607 6.4356C903.828 10.3138 912.193 15.996 919.217 23.1532L1707.98 817.443C1715.1 824.518 1720.76 832.947 1724.62 842.241C1728.48 851.536 1730.46 861.51 1730.46 871.584C1730.46 881.658 1728.48 891.632 1724.62 900.926C1720.76 910.22 1715.1 918.649 1707.98 925.725L1399.84 1235.55C1392.78 1242.66 1384.4 1248.31 1375.17 1252.16C1365.95 1256.01 1356.06 1257.99 1346.07 1257.99C1336.09 1257.99 1326.2 1256.01 1316.97 1252.16C1307.75 1248.31 1299.37 1242.66 1292.31 1235.55L919.217 859.843C904.966 845.504 885.645 837.449 865.5 837.449C845.354 837.449 826.033 845.504 811.783 859.843Z\",\n fill: \"#7EE49C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLargeArrow);\nexport default __webpack_public_path__ + \"static/media/largeArrow.73214f70fd9f32aba971f30e7ca3f1c2.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport Lottie from \"react-lottie-player\";\nimport preloaderJson from \"../assets/lotties/preloader.json\";\n\nconst PreLoader = ({ loading }) => {\n return (\n <>\n {loading ? (\n \n \n \n ) : (\n \"\"\n )}\n \n );\n};\n\nexport default PreLoader;\n","import React from \"react\";\nimport Hero from \"./components/Hero\";\nimport Business from \"./components/Business\";\nimport AboutUs from \"./components/AboutUs\";\nimport Timeline from \"./components/Timeline\";\nimport Partners from \"./components/partners/Partners\";\nimport Crm from \"./components/Crm\";\nimport Meeting from \"./components/Meeting\";\nimport largeArrow from \"./assets/images/svg/largeArrow.svg\";\nimport PreLoader from \"./components/PreLoader\";\nimport { useEffect, useState } from \"react\";\n\nconst localeLang = process.env.LOCALE || 'it';\nvar locale = {};\nimport(`./locales/${localeLang}.json`).then(localeData => {\n console.log('localeData', localeData)\n locale = localeData\n})\n\nconst Main = () => {\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n document.body.classList.add(\"not-scroll-before-loading\");\n setTimeout(() => {\n setLoading(false);\n document.body.classList.remove(\"not-scroll-before-loading\");\n }, 3100);\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n const isIpadPro = (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0) || navigator.platform === 'iPad'\n if (window.innerWidth >= 576 && !isIpadPro) {\n window.location.reload();\n }\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n if (Object.keys(locale).length === 0) {\n return ;\n }\n\n return (\n <>\n {}\n \n \n \n \n \n
\n \n \n
\n
\n \n
\n \n );\n};\n\nexport default Main;\n","import \"bootstrap/dist/css/bootstrap.min.css\";\nimport Main from \"./Main\";\n\nfunction App() {\n return (\n <>\n
\n \n );\n}\n\nexport default App;\n","import \"bootstrap/dist/css/bootstrap.min.css\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport \"./assets/scss/index.scss\";\nimport \"./assets/scss/app.scss\";\nimport \"./assets/scss/media.scss\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","key","call","join","module","exports","default","QueryHandler","require","each","MediaQuery","query","isUnconditional","this","handlers","mql","window","matchMedia","self","listener","currentTarget","assess","addListener","constuctor","addHandler","handler","qh","matches","on","removeHandler","h","equals","destroy","splice","clear","removeListener","action","Util","isFunction","MediaQueryDispatch","Error","queries","browserIsIncapable","constructor","register","q","options","shouldDegrade","match","unregister","deferSetup","setup","initialised","off","unmatch","target","collection","fn","equal","a","b","keys","Map","size","entries","has","get","Set","ArrayBuffer","isView","RegExp","source","flags","valueOf","$$typeof","camel2hyphen","obj2mq","obj","mq","features","forEach","feature","index","value","test","isDimension","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","type","toNumber","isObjectLike","isSymbol","other","replace","isBinary","slice","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","leadingEdge","cancel","clearTimeout","flush","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","document","createElement","extendPrototype","sources","destination","sourcePrototype","len","attr","getDescriptor","object","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","Symbol","iterator","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","random","abs","val","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","element","style","position","top","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","s","v","r","g","f","p","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","Worker","Blob","blob","url","URL","createObjectURL","createWorker","e","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","indexOf","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","error","send","completeData","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","width","height","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","addEventListener","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","markerParser","parsePayloadLines","line","lines","keysCount","trim","_markers","markers","_marker","markerData","tm","duration","dr","cm","_","__","name","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","isNaN","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","hide","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","y","n","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","props","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","ceil","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","filter","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","charCodeAt","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","mode","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","String","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","set","popTransform","popped","popOpacity","opacity","getTransform","getOpacity","setOpacity","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","CVEffects","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","exitLayer","buffer","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","cProps","trProps","currentOpacity","globalAlpha","actionFlag","containerStyle","mozTransformOrigin","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","defineProperty","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","fromComp","sampleImage","transformInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","anchor_point","active","startTime","inPoint","outPoint","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof$2","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","_typeof$1","seedRandom","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof","ExpressionManager","fetch","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","map","test3","letter","shouldUseNative","from","symbols","toObject","aa","encodeURIComponent","ba","ca","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","D","oa","pa","toUpperCase","qa","ma","na","la","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","for","E","Ma","Ka","La","Na","stack","Oa","Pa","prepareStackTrace","Reflect","construct","displayName","Qa","tag","Ra","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","Children","db","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","setProperty","ub","menuitem","area","base","br","embed","hr","input","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","gc","hc","ic","jc","kc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","uc","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","number","password","range","search","tel","week","oe","listeners","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","instance","G","$e","af","bf","cf","df","capture","passive","Nb","ff","parentWindow","hf","J","K","Q","L","je","char","ke","jf","lf","mf","autoFocus","nf","__html","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","O","eg","fg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","defaultProps","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","dependencies","firstContext","lanes","ug","vg","observedBits","next","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","contextType","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","ref","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","done","Yg","Zg","$g","ah","bh","dh","eh","documentElement","tagName","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","mh","nh","oh","pendingProps","ph","rh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","create","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","compare","ki","li","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","then","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","uk","kk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","PrevArrow","NextArrow","_react","_interopRequireDefault","_classnames","_innerSliderUtils","__esModule","_extends","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","writable","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getPrototypeOf","_React$PureComponent","_super","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","cloneElement","PureComponent","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","_default","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","rtl","slide","slidesPerRow","slidesToScroll","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","Dots","spec","_this$props","onMouseEnter","onMouseOver","onMouseLeave","dotCount","mouseEvents","_rightBound","rightBound","_leftBound","leftBound","dotOptions","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_React$Component","_this","querySelector","getHeight","slidesToLoad","getOnDemandLazySlides","setState","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","observe","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","timer","autoplayTimer","disconnect","prevProps","checkImagesLoad","setTrackStyle","didPropsChange","changeSlide","debouncedResize","resizeWindow","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_i2","_trackStyle","currentWidth","childrenCount","trackLeft","imagesCount","image","prevClickHandler","onload","onerror","_index","dontAnimate","asNavFor","_slideHandler","slideHandler","nextState","asNavForIndex","innerSlider","firstBatch","clickable","keyHandler","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","playType","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","padding","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","canUseDOM","Slider","slickPrev","slickNext","slickGoTo","breakpoint","_responsiveMediaHandlers","_this2","breakpoints","breakpt","sort","bQuery","minWidth","maxWidth","media","settings","newProps","_this3","resp","toArray","newChildren","newSlide","row","tabIndex","innerSliderRefHandler","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","startIndex","lazyStartIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","_len","_key","handleRef","checkSpecKeys","checkNavigable","slidesOnRight","slidesOnLeft","siblingDirection","safePreventDefault","lazySlidesOnRight","lazySlidesOnLeft","getWidth","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getNavigableIndexes","lowerBound","upperBound","onDemandSlides","requiredSlides","xDist","yDist","swipeAngle","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","counter","navigables","prevNavigable","swipedSlide","slickList","every","offsetTop","offsetLeft","dataset","keysArray","reduce","trackHeight","trackChildren","WebkitTransition","WebkitTransform","msTransform","marginTop","marginLeft","slidesToOffset","targetSlideIndex","trackElem","_ref","_ref2","Fragment","__self","__source","jsx","jsxs","StrictMode","Profiler","Suspense","forceUpdate","escape","_status","_result","IsSomeRendererActing","only","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","isValidElement","lazy","memo","MapShim","getIndex","some","entry","class_1","__entries__","_a","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","method","copyBuffer","Buffer","byteOffset","opts","circles","refsNew","proto","cloneProto","cloneArray","rfdcCircles","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","webpackAsyncContext","req","__webpack_require__","Promise","resolve","ids","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","amdO","getter","leafPrototypes","getProto","ns","definition","chunkId","all","promises","miniCssF","globalThis","inProgress","dataWebpackPrefix","script","needAttach","getAttribute","charset","timeout","onScriptComplete","prev","doneFns","head","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","ToggleIcon","_jsxs","viewBox","xmlns","_jsx","Icon4","UpArrowNoiIcon","DownArrowNoiIcon","TabRightIcon","CloseIcon","strokeLinecap","strokeLinejoin","_inheritsLoose","_suppressOverwrites","_reverting","_globalTimeline","_win","_coreInitted","_doc","_coreReady","_lastRenderedFrame","_quickTween","_tickerActive","_config","autoSleep","force3D","nullTargetWarn","_defaults","overwrite","_bigNum","_tinyNum","_2PI","_HALF_PI","_gsID","_sqrt","_isString","_isFunction","_isNumber","_isUndefined","_isObject","_isNotFalse","_windowExists","_isFuncOrString","_isTypedArray","_isArray","_strictNumExp","_numExp","_numWithUnitExp","_complexStringNumExp","_relExp","_delimitedValueExp","_unitExp","_globals","_installScope","_install","scope","_merge","gsap","_missingPlugin","_warn","suppress","_addGlobal","_emptyFunc","_startAtRevertConfig","suppressEvents","isStart","kill","_revertConfigNoKill","_revertConfig","_reservedProps","_lazyTweens","_lazyLookup","_plugins","_effects","_nextGCFrame","_harnessPlugins","_callbackNames","_harness","targets","harnessPlugin","_gsap","harness","targetTest","GSCache","_getCache","_getProperty","_forEachName","names","_round","_roundPrecise","_parseRelative","operator","_arrayContainsAny","toSearch","toFind","_lazyRender","tween","_lazy","_lazySafeRender","force","_initted","_startAt","_numericIfPossible","_passThrough","_setDefaults","defaults","toMerge","_mergeDeep","_copyExcluding","excluding","_inheritDefaults","excludeDuration","inherit","_dp","_addLinkedListItem","firstProp","lastProp","sortBy","_prev","_next","_removeLinkedListItem","_removeFromParent","onlyIfParentHasAutoRemove","autoRemoveChildren","remove","_act","_uncache","_end","_dur","_start","_dirty","_rewindStartAt","revert","immediateRender","autoRevert","_hasNoPausedAncestors","_ts","_elapsedCycleDuration","_repeat","_animationCycle","_tTime","_rDelay","tTime","whole","_parentToChildTotalTime","parentTime","totalDuration","_tDur","_setEnd","_rts","_alignPlayhead","smoothChildTiming","_time","_postAddChecks","timeline","rawTime","_clamp","_zTime","_addToTimeline","skipChecks","_parsePosition","_delay","timeScale","_sort","_isFromOrFromStart","_recent","_scrollTrigger","ScrollTrigger","_attemptInitTween","_initTween","_pt","_ticker","frame","_parentPlayheadIsBeforeStart","_lock","_setDuration","skipUncache","leavePlayhead","dur","totalProgress","_onUpdateTotalDuration","Timeline","_zeroPosition","percentAnimation","isPercent","labels","recent","clippedDuration","_createTweenType","irVars","isLegacy","varsIndex","runBackwards","startAt","Tween","_conditionalReturn","getUnit","exec","_slice","_isArrayLike","nonEmpty","leaveStrings","selector","_wake","ar","accumulator","_accumulator","_flatten","el","nativeElement","shuffle","distribute","_parseEase","isDecimal","ratios","axis","ratioX","ratioY","originX","originY","wrapAt","distances","grid","getBoundingClientRect","_invertEase","_roundModifier","raw","snap","snapTo","is2D","increment","dx","dy","closest","roundingIncrement","returnFunction","_wrapArray","_replaceRandom","nums","mapRange","inMin","inMax","outMin","outMax","inRange","outRange","_getLabelInDirection","fromTime","backward","label","_callback","executeLazyFirst","prevContext","_ctx","callbackScope","_interrupt","scrollTrigger","progress","_registerPluginQueue","_createPlugin","isFunc","Plugin","_props","instanceDefaults","_renderPropTweens","_addPropTween","_killPropTweensOf","_addPluginModifier","rawVars","statics","getSetter","_getSetter","aliases","PropTween","_255","_colorLookup","aqua","lime","silver","black","maroon","teal","blue","navy","white","olive","yellow","orange","gray","purple","green","red","pink","cyan","transparent","_hue","splitColor","toHSL","forceAlpha","wasHSL","_colorOrderData","_colorExp","_formatColors","orderMatchData","shell","colors","_hslExp","_colorStringFilter","combined","_id","_req","_raf","_self","_delta","_getTime","_lagThreshold","_adjustedLag","_startTime","_lastUpdate","_gap","_nextTime","_listeners","_tick","overlap","elapsed","manual","tick","deltaRatio","wake","gsapVersions","GreenSockGlobals","sleep","lagSmoothing","adjustedLag","_fps","once","prioritize","_easeMap","_customEaseExp","_quotesExp","_parseObjectInString","parsedVal","_propagateYoyoEase","isYoyo","_first","yoyoEase","_yoyo","_ease","_yEase","defaultEase","close","nested","_valueInParentheses","_CE","_configEaseFromString","_insertEase","easeInOut","lowercaseName","_easeInOutFromOut","_configElastic","period","_configBack","overshoot","power","Linear","easeNone","none","n3","SteppedEase","steps","immediateStart","Animation","repeatDelay","yoyo","_proto","_totalTime","_ptLookup","_pTime","ratio","_ps","_recacheAncestors","paused","includeRepeats","wrapRepeats","prevIsReverting","globalTime","_sat","restart","includeDelay","reversed","atTime","invalidate","eventCallback","_onUpdate","onFulfilled","_resolve","_then","_prom","_Animation","sortChildren","_proto2","fromTo","fromVars","toVars","delayedCall","staggerTo","stagger","onCompleteAll","onCompleteAllParams","onCompleteParams","staggerFrom","staggerFromTo","prevPaused","pauseTween","prevStart","prevIteration","prevTime","tDur","crossingStart","rewinding","doesWrap","repeatRefresh","onRepeat","_hasPause","_forcing","_last","_findNextPauseTween","onUpdate","adjustedTime","addLabel","getChildren","tweens","timelines","ignoreBeforeTime","getById","removeLabel","killTweensOf","_totalTime2","addPause","removePause","onlyActive","getTweensOf","_overwritingTween","parsedTargets","isGlobalTime","_targets","tweenTo","initted","tl","_vars","_onStart","onStart","onStartParams","tweenFromTo","fromPosition","toPosition","nextLabel","afterTime","previousLabel","beforeTime","currentLabel","shiftChildren","adjustLabels","soft","includeLabels","updateRoot","_forceAllPropTweens","_addComplexStringPropTween","setter","stringFilter","funcParam","startNums","endNum","chunk","startNum","hasRandom","_renderComplexString","matchIndex","fp","optional","parsedStart","_setterFuncWithParam","_setterFunc","_setterPlain","_renderBoolean","_renderPlain","_checkPlugin","ptLookup","_parseFuncOrString","_processVars","cleanVars","hasPriority","gsData","harnessVars","overwritten","onUpdateParams","prevStartAt","fullTargets","autoOverwrite","_overwrite","_from","_ptCache","_op","_sortPropTweensByPriority","_onInit","_parseKeyframe","allProps","easeEach","_staggerTweenProps","_staggerPropsToSkip","_Animation2","skipInherit","curTarget","staggerFunc","staggerVarsToMerge","_this3$vars","_proto3","isNegative","prevRatio","_renderZeroDurationTween","resetTo","startIsRelative","rootPT","lookup","ptCache","_updatePropTweens","overwrittenProps","curLookup","curOverwriteProps","killingTargets","propTweenLookup","firstPT","_arraysMatch","propertyAliases","_addAliasesToVars","onReverseComplete","onReverseCompleteParams","_setterAttribute","hasNonDependentRemaining","dep","_setterWithModifier","mSet","mt","change","TweenMax","TweenLite","TimelineLite","TimelineMax","_media","_emptyArray","_lastMediaTime","_dispatch","_onMediaChange","anyMatch","toggled","conditions","onMatch","Context","_r","isReverted","_proto5","prevSelector","ignore","getTweens","_this4","MatchMedia","contexts","_proto6","cond","registerPlugin","_len2","_key2","getProperty","unit","uncache","format","quickSetter","setters","quickTo","_merge2","isTweening","_ref3","extendTimeline","pluginName","registerEase","parseEase","exportRoot","includeDelayedCalls","matchMediaRefresh","utils","wrap","wrapYoyo","total","pipe","functions","unitize","interpolate","mutate","interpolators","il","isString","master","install","ticker","globalTimeline","core","globals","getCache","reverting","toAdd","suppressOverwrites","_getPluginPropTween","_buildModifierPlugin","temp","_addModifiers","Power0","Power1","Power2","Power3","Power4","Quad","Cubic","Quart","Quint","Strong","Elastic","Back","Bounce","Sine","Expo","Circ","_docElement","_pluginInitted","_tempDiv","_recentSetterPlugin","_supports3D","_transformProps","_RAD2DEG","_DEG2RAD","_atan2","_capsExp","_horizontalExp","_complexExp","_propertyAliases","autoAlpha","alpha","_renderCSSProp","_renderPropWithEnd","_renderCSSPropWithBeginning","_renderRoundedCSSProp","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","_setterCSSProp","_setterTransform","_setterScale","_setterScaleWithRender","_setterTransformWithRender","_transformProp","_transformOriginProp","_saveStyle","isNotCSS","tfm","_get","svgo","_removeIndependentTransforms","removeProperty","_revertStyle","_getStyleSaver","saver","_createElement","_getComputedProperty","skipPrefixFallback","cs","getPropertyValue","_checkPropPrefix","_prefixes","preferPrefix","_initCore","cssText","_getBBoxHack","swapIfPossible","ownerSVGElement","oldParent","oldSibling","oldCSS","_gsapBBox","_getAttributeFallbacks","attributesArray","_getBBox","_isSVG","getCTM","_removeProperty","_addNonTweeningPT","beginning","onlySetAtEnd","_nonConvertibleUnits","deg","turn","_nonStandardLayouts","_convertToUnit","isSVG","curValue","curUnit","horizontal","isRootSVG","measureProperty","toPixels","toPercent","_parseTransform","_firstTwoOnly","zOrigin","_specialProps","_tweenComplexCSSString","startValues","startValue","endUnit","startUnit","_keywordToPercent","_convertKeywordsToPercentages","_renderClearProps","clearTransforms","clearProps","_identity2DMatrix","_rotationalProperties","_isNullTransform","_getComputedTransformMatrixAsArray","matrixString","_getMatrix","force2D","addedToDOM","baseVal","consolidate","offsetParent","nextElementSibling","_applySVGOrigin","originIsAbsolute","matrixArray","pluginToAddPropTweensTo","xOriginOld","xOrigin","yOriginOld","yOrigin","xOffsetOld","xOffset","yOffsetOld","originSplit","skewX","skewY","a12","a22","t3","a13","a23","a33","a42","a43","a32","invertedScaleX","forceCSS","xPercent","yPercent","transformPerspective","_renderSVGTransforms","_renderCSSTransforms","_renderNon3DTransforms","_addPxTranslate","_zeroDeg","_zeroPx","_endParenthesis","use3D","a11","a21","_addRotationalPropTween","cap","_assign","_addRawTransformPTs","endCache","startCache","side","CSSPlugin","specialProp","relative","isTransformRelated","transformPropTween","inlineProps","visibility","parseTransform","smoothOrigin","autoRound","checkPrefix","getStyleSaver","positionAndScale","gsapWithCSS","_docEl","_body","_isTouch","_pointerType","_root","_normalizer","_eventTypes","_getGSAP","_startup","_observers","_scrollers","_proxies","_bridge","_getProxyProp","_isViewport","_addListener","nonPassive","_removeListener","_scrollLeft","_scrollTop","_onScroll","isPressed","_scrollCacheFunc","doNotCache","cachingFunc","history","scrollRestoration","isNormalizing","iOS","cacheID","_horizontal","os2","scrollTo","_vertical","pageXOffset","pageYOffset","_getTarget","_getScrollFunc","scrollingElement","_getVelocityProp","minTimeRefresh","useDelta","dropToZeroTime","getVelocity","latestValue","tOld","vOld","_getEvent","_gsapAllow","_getAbsoluteMax","_setScrollTrigger","bridge","scrollers","proxies","_integrate","Observer","isTouch","maxTouchPoints","msMaxTouchPoints","eventTypes","dragMinimum","debounce","onStop","onStopDelay","wheelSpeed","onDragStart","onDragEnd","onDrag","onPress","onRelease","onRight","onLeft","onUp","onDown","onChangeX","onChangeY","onChange","onToggleX","onToggleY","onHover","onHoverEnd","onMove","ignoreCheck","isNormalizer","onGestureStart","onGestureEnd","onWheel","onEnable","onDisable","scrollSpeed","allowClicks","lockAxis","onLockAxis","onStopDelayedCall","dragged","moved","wheeled","locked","prevDeltaX","prevDeltaY","scrollFuncX","scrollFuncY","scrollX","scrollY","limitToTouch","isViewport","ownerDoc","onClickTime","clickCapture","_ignoreCheck","isPointerOrTouch","changedX","changedY","onDelta","_vx","_vy","onTouchOrPointerDelta","_onDrag","isDragging","_onPress","_onRelease","isTrackingDrag","wasDragging","eventData","click","createEvent","syntheticEvent","initMouseEvent","dispatchEvent","isGesturing","_onGestureStart","_onGestureEnd","onScroll","_onWheel","multiplier","innerHeight","_onMove","_onHover","_onHoverEnd","_onClick","_dc","enable","isEnabled","disable","getAll","_resizeDelay","_toArray","_time2","_syncInterval","_refreshing","_pointerIsDown","_prevWidth","_prevHeight","_autoRefresh","_ignoreResize","_ignoreMobileResize","_baseScreenHeight","_baseScreenWidth","_fixIOSBug","_scrollRestoration","_limitCallbacks","_rafID","_refreshingAll","_queueRefreshID","_primary","_time1","_lastScrollTime","_enabled","_rafBugFix","_pointerDownHandler","_pointerUpHandler","_getBoundsFunc","_winOffsets","innerWidth","_getBounds","_maxScroll","_iterateAutoRefresh","events","_endAnimation","callbackAnimation","_abs","_left","_right","_bottom","_Right","_Left","_Top","_Bottom","_padding","_margin","_Width","_Height","_getComputedStyle","withoutTransforms","_getSize","_getLabelRatioArray","_snapDirectional","snapIncrementOrArray","snapped","_multiListener","types","_wheelListener","scrollFunc","wheelHandler","_markerDefaults","startColor","endColor","indent","toggleActions","anticipatePin","_keywords","_offsetToPx","eqIndex","_createMarker","_ref4","matchWidthEl","containerAnimation","useFixedPosition","isScroller","css","_isStart","_offset","_positionMarker","flipped","oppositeSide","_isFlipped","_triggers","_ids","_sync","_updateAll","_setBaseDimensions","_onResize","fullscreenElement","webkitFullscreenElement","_softRefresh","_refreshAll","_savedStyles","_revertRecorded","_revertAll","_clearScrollMemory","rec","_refreshID","skipRevert","isRefreshing","refreshInits","scrollBehavior","_subPinOffset","pin","original","adjustPinSpacing","setPositions","scroller","_dir","onRefresh","_lastScroll","_direction","isUpdating","recordVelocity","scroll","_propNamesToCopy","_stateProps","_swapPinIn","spacer","spacerState","swappedIn","spacerStyle","pinStyle","flexBasis","_setState","_getState","scrollerSize","markerScroller","scrollerBounds","borderWidth","scrollerMax","localOffset","globalOffset","offsets","_caScrollDist","_prefixExp","_reparent","_stOrig","_interruptionTracker","getValueFunc","onInterrupt","last1","last2","_getTweenCreator","getScroll","getTween","change1","change2","checkForInterruption","pinCache","snapFunc","scroll1","scroll2","markerStart","markerEnd","markerStartTrigger","markerEndTrigger","markerVars","pinOriginalState","pinActiveState","pinState","pinGetter","pinSetter","pinStart","pinChange","spacingStart","markerStartSetter","pinMoves","markerEndSetter","snap1","snap2","scrubTween","scrubSmooth","snapDurClamp","snapDelayedCall","prevProgress","prevScroll","prevAnimProgress","caMarkerSetter","customRevertReturn","toggleClass","onToggle","scrub","pinSpacing","invalidateOnRefresh","onScrubComplete","onSnapComplete","pinReparent","pinSpacer","fastScrollEnd","preventOverlaps","isToggle","scrollerCache","pinType","onEnter","onLeave","onEnterBack","onLeaveBack","onRefreshInit","getScrollerSize","_getSizeFunc","getScrollerOffsets","_getOffsetsFunc","lastSnap","lastRefresh","refreshPriority","tweenScroll","scrubDuration","_getClosestLabel","directional","refreshedRecently","naturalEnd","inertia","endScroll","_snap","_onInterrupt","_onComplete","stRevert","spacerIsNative","classList","_makePositionable","oldOnUpdate","oldParams","previous","prevRefreshing","_swapPinOut","isVertical","override","curTrigger","curPin","oppositeScroll","revertedPins","forcedOverflow","isFirstRefresh","otherPinOffset","parsedEnd","parsedEndTrigger","endTrigger","pinnedContainer","triggerIndex","_pinPush","omitOffsets","_copyState","_pinOffset","endAnimation","labelToScroll","getTrailing","forceFake","toggleState","stateChanged","isAtMax","isTakingAction","clipped","newStart","newEnd","allowAnimation","onKill","_queueRefreshAll","bodyStyle","border","borderTopStyle","AnimationProto","limitCallbacks","syncInterval","ignoreMobileResize","autoRefreshEvents","scrollerProxy","clearMatchMedia","isInViewport","positionInViewport","referencePoint","killAll","allowListeners","saveStyles","safe","clearScrollMemory","maxScroll","getScrollFunc","isScrolling","snapDirectional","batch","varsCopy","interval","batchMax","proxyCallback","triggers","_inputIsFocused","_clampScrollAndGetDurationMultiplier","_allowNativePanning","touchAction","_overflow","auto","_nestedScroll","_ref5","_isScrollT","scrollHeight","scrollWidth","overflowY","overflowX","_isScroll","_inputObserver","inputs","_captureInputs","_inputExp","isInput","_getScrollNormalizer","maxY","lastRefreshID","skipTouchMove","startScrollX","startScrollY","_vars2","normalizeScrollX","momentum","allowNestedScroll","smoother","ScrollSmoother","smootherInstance","initialScale","visualViewport","outerWidth","wheelRefresh","resolveMomentumDuration","inputObserver","resumeTouchMove","scrollClampX","scrollClampY","updateClamps","removeContentOffset","onResize","ignoreDrag","prevScale","currentScroll","velocityX","velocityY","xArray","yArray","yClamped","normalizeScroll","normalizer","ss","_window","_max","dim","client","_buildGetter","_getOffset","isRoot","cRect","clientTop","clientLeft","_parseVal","currentVal","autoKillThreshold","ScrollToPlugin","snapType","isWin","_clean","autoKill","getX","getY","xPrev","yPrev","snapInline","scrollSnapType","offsetX","skipX","offsetY","skipY","yDif","xDif","onAutoKill","onAutoKillParams","both","getOffset","buildGetter","navShow","setNavShow","mainAssetsBtn","contactBtn","isChat","daicarBtn","Servizi","pagelogo","alt","menuFeatures","menuHowWorks","menuAboutUsHref","menuAboutUs","menuDemo","menuContact","reactIs_production_min","ReactPropTypesSecret_1","checkPropTypes","typeSpecs","componentName","getStack","resetWarningCache","emptyFunction","emptyFunctionWithReset","shim","propName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","string","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","exact","PropTypes","factoryWithThrowingShims","propTypes$1","goTo","useSubframes","onLoad","Lottie","forwardedRef","segmentsIn","rendererSettingsIn","animElementRef","animRef","_useState","ready","setReady","_useState2","setSegments","_useState3","setRendererSettings","setLottieRefs","newRef","onDomLoaded","wasPlayingSegmentsRef","playReverse","React","makeLottiePlayer","LottieHero","lottieicon","setlottieicon","_Fragment","lottieurl","Hero","background","marginRight","buttonData","buttonDataLocale","buttonDataMobile","buttonDataMobileLocale","Header","headerLocale","buttonText","buttonId","card_img","comeLottie","para","marketingLottie","techDrivenLottie","realTimeLottie","crmLottie","after","moveToIt","phrase1","phrase2","phrase3","phrase3b","phrase4","phrase5","phrase6","phrase7","phrase8","phrase9","phrase10","phrase11","phrase12","phrase13","phrase14","arrow","discoverMattia","muted","playsInline","videoWebmV","ipad","Business","marginBottom","businessLeftTextIcon","businessOne","businessTwo","businessThree","businessFour","businessIconSmall","section1","section2","section3","section4","outlineArrow","About","aboutArrowSrc","setAboutArrowSrc","aboutArrow","aboutArrowTwo","aboutArrowThree","arrowText","titleButton","titleWithoutLink","largeArrow2","timelineImg1","cta","timelineImg2","timelineImg3","timelineImg4","Partners","isMobileDevice","setIsMobileDevice","businessLeftTextIcon2","Crm","salesfortlogo","dynamics365logo","hubsportlogo","pipedrivelogo","zendexlogo","BackToTop","showButton","setShowButton","behavior","backToTopIcon","Footer","mobile","desktop","LogoCarplanner","LogoIdeal","footerbg","footer_logo","smsImg","iconImg","loading","preloaderJson","localeLang","LOCALE","localeData","Main","setLoading","handleResize","isIpadPro","platform","reload","PreLoader","AboutUs","Meeting","largeArrow","ReactDOM","App"],"sourceRoot":""}