{"id":11,"date":"2023-08-18T06:10:10","date_gmt":"2023-08-18T06:10:10","guid":{"rendered":"https:\/\/projectsofar.info\/aisuperior\/?page_id=11"},"modified":"2024-05-16T10:37:47","modified_gmt":"2024-05-16T10:37:47","slug":"home","status":"publish","type":"page","link":"https:\/\/staging.aisuperior.com\/de\/","title":{"rendered":"Heim"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"11\" class=\"elementor elementor-11\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-52514c6 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"52514c6\" data-element_type=\"section\" id=\"hero\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c749a13\" data-id=\"c749a13\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d393a7a elementor-widget elementor-widget-heading\" data-id=\"d393a7a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 29-01-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h1 class=\"elementor-heading-title elementor-size-default\">KI-Dienstleistungs- und Entwicklungsunternehmen<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1dd3e55 elementor-widget elementor-widget-heading\" data-id=\"1dd3e55\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Beschleunigen Sie Ihr Gesch\u00e4ft mit hochmodernen KI-L\u00f6sungen<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69d8173 elementor-mobile-align-center elementor-tablet-align-center elementor-widget elementor-widget-button\" data-id=\"69d8173\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Kontaktiere uns<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-83ea3f0\" data-id=\"83ea3f0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-de4e2f4 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"de4e2f4\" data-element_type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/staging.aisuperior.com\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/data.json&quot;,&quot;id&quot;:1678,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor-pro - v3.19.0 - 29-01-2024 *\/\n.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}<\/style><div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-484daff elementor-section-full_width banner_bg elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-section-height-default elementor-section-height-default\" data-id=\"484daff\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a748f57\" data-id=\"a748f57\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-29dc392 elementor-widget elementor-widget-shortcode\" data-id=\"29dc392\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-shortcode\"><section id=\"hero\"><\/section>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\" defer><\/script>\r\n<script>\r\n      \"undefined\" != typeof navigator &&\r\n        (function (t, e) {\r\n          \"object\" == typeof exports && \"undefined\" != typeof module\r\n            ? (module.exports = e())\r\n            : \"function\" == typeof define && define.amd\r\n            ? define(e)\r\n            : ((t =\r\n                \"undefined\" != typeof globalThis\r\n                  ? globalThis\r\n                  : t || self).lottie = e());\r\n        })(this, function () {\r\n          \"use strict\";\r\n          var svgNS = \"http:\/\/www.w3.org\/2000\/svg\",\r\n            locationHref = \"\",\r\n            _useWebWorker = !1,\r\n            initialDefaultFrame = -999999,\r\n            setWebWorker = function (t) {\r\n              _useWebWorker = !!t;\r\n            },\r\n            getWebWorker = function () {\r\n              return _useWebWorker;\r\n            },\r\n            setLocationHref = function (t) {\r\n              locationHref = t;\r\n            },\r\n            getLocationHref = function () {\r\n              return locationHref;\r\n            };\r\n          function createTag(t) {\r\n            return document.createElement(t);\r\n          }\r\n          function extendPrototype(t, e) {\r\n            var i,\r\n              r,\r\n              s = t.length;\r\n            for (i = 0; i < s; i += 1)\r\n              for (var a in (r = t[i].prototype))\r\n                Object.prototype.hasOwnProperty.call(r, a) &&\r\n                  (e.prototype[a] = r[a]);\r\n          }\r\n          function getDescriptor(t, e) {\r\n            return Object.getOwnPropertyDescriptor(t, e);\r\n          }\r\n          function createProxyFunction(t) {\r\n            function e() {}\r\n            return (e.prototype = t), e;\r\n          }\r\n          var audioControllerFactory = (function () {\r\n              function t(t) {\r\n                (this.audios = []),\r\n                  (this.audioFactory = t),\r\n                  (this._volume = 1),\r\n                  (this._isMuted = !1);\r\n              }\r\n              return (\r\n                (t.prototype = {\r\n                  addAudio: function (t) {\r\n                    this.audios.push(t);\r\n                  },\r\n                  pause: function () {\r\n                    var t,\r\n                      e = this.audios.length;\r\n                    for (t = 0; t < e; t += 1) this.audios[t].pause();\r\n                  },\r\n                  resume: function () {\r\n                    var t,\r\n                      e = this.audios.length;\r\n                    for (t = 0; t < e; t += 1) this.audios[t].resume();\r\n                  },\r\n                  setRate: function (t) {\r\n                    var e,\r\n                      i = this.audios.length;\r\n                    for (e = 0; e < i; e += 1) this.audios[e].setRate(t);\r\n                  },\r\n                  createAudio: function (t) {\r\n                    return this.audioFactory\r\n                      ? this.audioFactory(t)\r\n                      : window.Howl\r\n                      ? new window.Howl({ src: [t] })\r\n                      : {\r\n                          isPlaying: !1,\r\n                          play: function () {\r\n                            this.isPlaying = !0;\r\n                          },\r\n                          seek: function () {\r\n                            this.isPlaying = !1;\r\n                          },\r\n                          playing: function () {},\r\n                          rate: function () {},\r\n                          setVolume: function () {},\r\n                        };\r\n                  },\r\n                  setAudioFactory: function (t) {\r\n                    this.audioFactory = t;\r\n                  },\r\n                  setVolume: function (t) {\r\n                    (this._volume = t), this._updateVolume();\r\n                  },\r\n                  mute: function () {\r\n                    (this._isMuted = !0), this._updateVolume();\r\n                  },\r\n                  unmute: function () {\r\n                    (this._isMuted = !1), this._updateVolume();\r\n                  },\r\n                  getVolume: function () {\r\n                    return this._volume;\r\n                  },\r\n                  _updateVolume: function () {\r\n                    var t,\r\n                      e = this.audios.length;\r\n                    for (t = 0; t < e; t += 1)\r\n                      this.audios[t].volume(\r\n                        this._volume * (this._isMuted ? 0 : 1)\r\n                      );\r\n                  },\r\n                }),\r\n                function () {\r\n                  return new t();\r\n                }\r\n              );\r\n            })(),\r\n            createTypedArray = (function () {\r\n              function t(t, e) {\r\n                var i,\r\n                  r = 0,\r\n                  s = [];\r\n                switch (t) {\r\n                  case \"int16\":\r\n                  case \"uint8c\":\r\n                    i = 1;\r\n                    break;\r\n                  default:\r\n                    i = 1.1;\r\n                }\r\n                for (r = 0; r < e; r += 1) s.push(i);\r\n                return s;\r\n              }\r\n              return \"function\" == typeof Uint8ClampedArray &&\r\n                \"function\" == typeof Float32Array\r\n                ? function (e, i) {\r\n                    return \"float32\" === e\r\n                      ? new Float32Array(i)\r\n                      : \"int16\" === e\r\n                      ? new Int16Array(i)\r\n                      : \"uint8c\" === e\r\n                      ? new Uint8ClampedArray(i)\r\n                      : t(e, i);\r\n                  }\r\n                : t;\r\n            })();\r\n          function createSizedArray(t) {\r\n            return Array.apply(null, { length: t });\r\n          }\r\n          function _typeof$6(t) {\r\n            return (\r\n              (_typeof$6 =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof$6(t)\r\n            );\r\n          }\r\n          var subframeEnabled = !0,\r\n            expressionsPlugin = null,\r\n            expressionsInterfaces = null,\r\n            idPrefix$1 = \"\",\r\n            isSafari = \/^((?!chrome|android).)*safari\/i.test(\r\n              navigator.userAgent\r\n            ),\r\n            _shouldRoundValues = !1,\r\n            bmPow = Math.pow,\r\n            bmSqrt = Math.sqrt,\r\n            bmFloor = Math.floor,\r\n            bmMax = Math.max,\r\n            bmMin = Math.min,\r\n            BMMath = {};\r\n          function ProjectInterface$1() {\r\n            return {};\r\n          }\r\n          !(function () {\r\n            var t,\r\n              e = [\r\n                \"abs\",\r\n                \"acos\",\r\n                \"acosh\",\r\n                \"asin\",\r\n                \"asinh\",\r\n                \"atan\",\r\n                \"atanh\",\r\n                \"atan2\",\r\n                \"ceil\",\r\n                \"cbrt\",\r\n                \"expm1\",\r\n                \"clz32\",\r\n                \"cos\",\r\n                \"cosh\",\r\n                \"exp\",\r\n                \"floor\",\r\n                \"fround\",\r\n                \"hypot\",\r\n                \"imul\",\r\n                \"log\",\r\n                \"log1p\",\r\n                \"log2\",\r\n                \"log10\",\r\n                \"max\",\r\n                \"min\",\r\n                \"pow\",\r\n                \"random\",\r\n                \"round\",\r\n                \"sign\",\r\n                \"sin\",\r\n                \"sinh\",\r\n                \"sqrt\",\r\n                \"tan\",\r\n                \"tanh\",\r\n                \"trunc\",\r\n                \"E\",\r\n                \"LN10\",\r\n                \"LN2\",\r\n                \"LOG10E\",\r\n                \"LOG2E\",\r\n                \"PI\",\r\n                \"SQRT1_2\",\r\n                \"SQRT2\",\r\n              ],\r\n              i = e.length;\r\n            for (t = 0; t < i; t += 1) BMMath[e[t]] = Math[e[t]];\r\n          })(),\r\n            (BMMath.random = Math.random),\r\n            (BMMath.abs = function (t) {\r\n              if (\"object\" === _typeof$6(t) && t.length) {\r\n                var e,\r\n                  i = createSizedArray(t.length),\r\n                  r = t.length;\r\n                for (e = 0; e < r; e += 1) i[e] = Math.abs(t[e]);\r\n                return i;\r\n              }\r\n              return Math.abs(t);\r\n            });\r\n          var defaultCurveSegments = 150,\r\n            degToRads = Math.PI \/ 180,\r\n            roundCorner = 0.5519;\r\n          function roundValues(t) {\r\n            _shouldRoundValues = !!t;\r\n          }\r\n          function bmRnd(t) {\r\n            return _shouldRoundValues ? Math.round(t) : t;\r\n          }\r\n          function styleDiv(t) {\r\n            (t.style.position = \"absolute\"),\r\n              (t.style.top = 0),\r\n              (t.style.left = 0),\r\n              (t.style.display = \"block\"),\r\n              (t.style.transformOrigin = \"0 0\"),\r\n              (t.style.webkitTransformOrigin = \"0 0\"),\r\n              (t.style.backfaceVisibility = \"visible\"),\r\n              (t.style.webkitBackfaceVisibility = \"visible\"),\r\n              (t.style.transformStyle = \"preserve-3d\"),\r\n              (t.style.webkitTransformStyle = \"preserve-3d\"),\r\n              (t.style.mozTransformStyle = \"preserve-3d\");\r\n          }\r\n          function BMEnterFrameEvent(t, e, i, r) {\r\n            (this.type = t),\r\n              (this.currentTime = e),\r\n              (this.totalTime = i),\r\n              (this.direction = r < 0 ? -1 : 1);\r\n          }\r\n          function BMCompleteEvent(t, e) {\r\n            (this.type = t), (this.direction = e < 0 ? -1 : 1);\r\n          }\r\n          function BMCompleteLoopEvent(t, e, i, r) {\r\n            (this.type = t),\r\n              (this.currentLoop = i),\r\n              (this.totalLoops = e),\r\n              (this.direction = r < 0 ? -1 : 1);\r\n          }\r\n          function BMSegmentStartEvent(t, e, i) {\r\n            (this.type = t), (this.firstFrame = e), (this.totalFrames = i);\r\n          }\r\n          function BMDestroyEvent(t, e) {\r\n            (this.type = t), (this.target = e);\r\n          }\r\n          function BMRenderFrameErrorEvent(t, e) {\r\n            (this.type = \"renderFrameError\"),\r\n              (this.nativeError = t),\r\n              (this.currentTime = e);\r\n          }\r\n          function BMConfigErrorEvent(t) {\r\n            (this.type = \"configError\"), (this.nativeError = t);\r\n          }\r\n          function BMAnimationConfigErrorEvent(t, e) {\r\n            (this.type = t), (this.nativeError = e);\r\n          }\r\n          var createElementID =\r\n              ((_count = 0),\r\n              function () {\r\n                return idPrefix$1 + \"__lottie_element_\" + (_count += 1);\r\n              }),\r\n            _count;\r\n          function HSVtoRGB(t, e, i) {\r\n            var r, s, a, n, o, h, l, p;\r\n            switch (\r\n              ((h = i * (1 - e)),\r\n              (l = i * (1 - (o = 6 * t - (n = Math.floor(6 * t))) * e)),\r\n              (p = i * (1 - (1 - o) * e)),\r\n              n % 6)\r\n            ) {\r\n              case 0:\r\n                (r = i), (s = p), (a = h);\r\n                break;\r\n              case 1:\r\n                (r = l), (s = i), (a = h);\r\n                break;\r\n              case 2:\r\n                (r = h), (s = i), (a = p);\r\n                break;\r\n              case 3:\r\n                (r = h), (s = l), (a = i);\r\n                break;\r\n              case 4:\r\n                (r = p), (s = h), (a = i);\r\n                break;\r\n              case 5:\r\n                (r = i), (s = h), (a = l);\r\n            }\r\n            return [r, s, a];\r\n          }\r\n          function RGBtoHSV(t, e, i) {\r\n            var r,\r\n              s = Math.max(t, e, i),\r\n              a = Math.min(t, e, i),\r\n              n = s - a,\r\n              o = 0 === s ? 0 : n \/ s,\r\n              h = s \/ 255;\r\n            switch (s) {\r\n              case a:\r\n                r = 0;\r\n                break;\r\n              case t:\r\n                (r = e - i + n * (e < i ? 6 : 0)), (r \/= 6 * n);\r\n                break;\r\n              case e:\r\n                (r = i - t + 2 * n), (r \/= 6 * n);\r\n                break;\r\n              case i:\r\n                (r = t - e + 4 * n), (r \/= 6 * n);\r\n            }\r\n            return [r, o, h];\r\n          }\r\n          function addSaturationToRGB(t, e) {\r\n            var i = RGBtoHSV(255 * t[0], 255 * t[1], 255 * t[2]);\r\n            return (\r\n              (i[1] += e),\r\n              i[1] > 1 ? (i[1] = 1) : i[1] <= 0 && (i[1] = 0),\r\n              HSVtoRGB(i[0], i[1], i[2])\r\n            );\r\n          }\r\n          function addBrightnessToRGB(t, e) {\r\n            var i = RGBtoHSV(255 * t[0], 255 * t[1], 255 * t[2]);\r\n            return (\r\n              (i[2] += e),\r\n              i[2] > 1 ? (i[2] = 1) : i[2] < 0 && (i[2] = 0),\r\n              HSVtoRGB(i[0], i[1], i[2])\r\n            );\r\n          }\r\n          function addHueToRGB(t, e) {\r\n            var i = RGBtoHSV(255 * t[0], 255 * t[1], 255 * t[2]);\r\n            return (\r\n              (i[0] += e \/ 360),\r\n              i[0] > 1 ? (i[0] -= 1) : i[0] < 0 && (i[0] += 1),\r\n              HSVtoRGB(i[0], i[1], i[2])\r\n            );\r\n          }\r\n          var rgbToHex = (function () {\r\n              var t,\r\n                e,\r\n                i = [];\r\n              for (t = 0; t < 256; t += 1)\r\n                (e = t.toString(16)), (i[t] = 1 === e.length ? \"0\" + e : e);\r\n              return function (t, e, r) {\r\n                return (\r\n                  t < 0 && (t = 0),\r\n                  e < 0 && (e = 0),\r\n                  r < 0 && (r = 0),\r\n                  \"#\" + i[t] + i[e] + i[r]\r\n                );\r\n              };\r\n            })(),\r\n            setSubframeEnabled = function (t) {\r\n              subframeEnabled = !!t;\r\n            },\r\n            getSubframeEnabled = function () {\r\n              return subframeEnabled;\r\n            },\r\n            setExpressionsPlugin = function (t) {\r\n              expressionsPlugin = t;\r\n            },\r\n            getExpressionsPlugin = function () {\r\n              return expressionsPlugin;\r\n            },\r\n            setExpressionInterfaces = function (t) {\r\n              expressionsInterfaces = t;\r\n            },\r\n            getExpressionInterfaces = function () {\r\n              return expressionsInterfaces;\r\n            },\r\n            setDefaultCurveSegments = function (t) {\r\n              defaultCurveSegments = t;\r\n            },\r\n            getDefaultCurveSegments = function () {\r\n              return defaultCurveSegments;\r\n            },\r\n            setIdPrefix = function (t) {\r\n              idPrefix$1 = t;\r\n            },\r\n            getIdPrefix = function () {\r\n              return idPrefix$1;\r\n            };\r\n          function createNS(t) {\r\n            return document.createElementNS(svgNS, t);\r\n          }\r\n          function _typeof$5(t) {\r\n            return (\r\n              (_typeof$5 =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof$5(t)\r\n            );\r\n          }\r\n          var dataManager = (function () {\r\n              var t,\r\n                e,\r\n                i = 1,\r\n                r = [],\r\n                s = {\r\n                  onmessage: function () {},\r\n                  postMessage: function (e) {\r\n                    t({ data: e });\r\n                  },\r\n                },\r\n                a = {\r\n                  postMessage: function (t) {\r\n                    s.onmessage({ data: t });\r\n                  },\r\n                };\r\n              function n() {\r\n                e ||\r\n                  ((e = (function (e) {\r\n                    if (window.Worker && window.Blob && getWebWorker()) {\r\n                      var i = new Blob(\r\n                          [\r\n                            \"var _workerSelf = self; self.onmessage = \",\r\n                            e.toString(),\r\n                          ],\r\n                          { type: \"text\/javascript\" }\r\n                        ),\r\n                        r = URL.createObjectURL(i);\r\n                      return new Worker(r);\r\n                    }\r\n                    return (t = e), s;\r\n                  })(function (t) {\r\n                    if (\r\n                      (a.dataManager ||\r\n                        (a.dataManager = (function () {\r\n                          function t(s, a) {\r\n                            var n,\r\n                              o,\r\n                              h,\r\n                              l,\r\n                              p,\r\n                              m,\r\n                              c = s.length;\r\n                            for (o = 0; o < c; o += 1)\r\n                              if (\"ks\" in (n = s[o]) && !n.completed) {\r\n                                if (((n.completed = !0), n.hasMask)) {\r\n                                  var d = n.masksProperties;\r\n                                  for (l = d.length, h = 0; h < l; h += 1)\r\n                                    if (d[h].pt.k.i) r(d[h].pt.k);\r\n                                    else\r\n                                      for (\r\n                                        m = d[h].pt.k.length, p = 0;\r\n                                        p < m;\r\n                                        p += 1\r\n                                      )\r\n                                        d[h].pt.k[p].s && r(d[h].pt.k[p].s[0]),\r\n                                          d[h].pt.k[p].e &&\r\n                                            r(d[h].pt.k[p].e[0]);\r\n                                }\r\n                                0 === n.ty\r\n                                  ? ((n.layers = e(n.refId, a)), t(n.layers, a))\r\n                                  : 4 === n.ty\r\n                                  ? i(n.shapes)\r\n                                  : 5 === n.ty && f(n);\r\n                              }\r\n                          }\r\n                          function e(t, e) {\r\n                            var i = (function (t, e) {\r\n                              for (var i = 0, r = e.length; i < r; ) {\r\n                                if (e[i].id === t) return e[i];\r\n                                i += 1;\r\n                              }\r\n                              return null;\r\n                            })(t, e);\r\n                            return i\r\n                              ? i.layers.__used\r\n                                ? JSON.parse(JSON.stringify(i.layers))\r\n                                : ((i.layers.__used = !0), i.layers)\r\n                              : null;\r\n                          }\r\n                          function i(t) {\r\n                            var e, s, a;\r\n                            for (e = t.length - 1; e >= 0; e -= 1)\r\n                              if (\"sh\" === t[e].ty)\r\n                                if (t[e].ks.k.i) r(t[e].ks.k);\r\n                                else\r\n                                  for (\r\n                                    a = t[e].ks.k.length, s = 0;\r\n                                    s < a;\r\n                                    s += 1\r\n                                  )\r\n                                    t[e].ks.k[s].s && r(t[e].ks.k[s].s[0]),\r\n                                      t[e].ks.k[s].e && r(t[e].ks.k[s].e[0]);\r\n                              else \"gr\" === t[e].ty && i(t[e].it);\r\n                          }\r\n                          function r(t) {\r\n                            var e,\r\n                              i = t.i.length;\r\n                            for (e = 0; e < i; e += 1)\r\n                              (t.i[e][0] += t.v[e][0]),\r\n                                (t.i[e][1] += t.v[e][1]),\r\n                                (t.o[e][0] += t.v[e][0]),\r\n                                (t.o[e][1] += t.v[e][1]);\r\n                          }\r\n                          function s(t, e) {\r\n                            var i = e ? e.split(\".\") : [100, 100, 100];\r\n                            return (\r\n                              t[0] > i[0] ||\r\n                              (!(i[0] > t[0]) &&\r\n                                (t[1] > i[1] ||\r\n                                  (!(i[1] > t[1]) &&\r\n                                    (t[2] > i[2] || (!(i[2] > t[2]) && null)))))\r\n                            );\r\n                          }\r\n                          var a,\r\n                            n = (function () {\r\n                              var t = [4, 4, 14];\r\n                              function e(t) {\r\n                                var e,\r\n                                  i,\r\n                                  r,\r\n                                  s = t.length;\r\n                                for (e = 0; e < s; e += 1)\r\n                                  5 === t[e].ty &&\r\n                                    ((r = void 0),\r\n                                    (r = (i = t[e]).t.d),\r\n                                    (i.t.d = { k: [{ s: r, t: 0 }] }));\r\n                              }\r\n                              return function (i) {\r\n                                if (s(t, i.v) && (e(i.layers), i.assets)) {\r\n                                  var r,\r\n                                    a = i.assets.length;\r\n                                  for (r = 0; r < a; r += 1)\r\n                                    i.assets[r].layers && e(i.assets[r].layers);\r\n                                }\r\n                              };\r\n                            })(),\r\n                            o =\r\n                              ((a = [4, 7, 99]),\r\n                              function (t) {\r\n                                if (t.chars && !s(a, t.v)) {\r\n                                  var e,\r\n                                    r = t.chars.length;\r\n                                  for (e = 0; e < r; e += 1) {\r\n                                    var n = t.chars[e];\r\n                                    n.data &&\r\n                                      n.data.shapes &&\r\n                                      (i(n.data.shapes),\r\n                                      (n.data.ip = 0),\r\n                                      (n.data.op = 99999),\r\n                                      (n.data.st = 0),\r\n                                      (n.data.sr = 1),\r\n                                      (n.data.ks = {\r\n                                        p: { k: [0, 0], a: 0 },\r\n                                        s: { k: [100, 100], a: 0 },\r\n                                        a: { k: [0, 0], a: 0 },\r\n                                        r: { k: 0, a: 0 },\r\n                                        o: { k: 100, a: 0 },\r\n                                      }),\r\n                                      t.chars[e].t ||\r\n                                        (n.data.shapes.push({ ty: \"no\" }),\r\n                                        n.data.shapes[0].it.push({\r\n                                          p: { k: [0, 0], a: 0 },\r\n                                          s: { k: [100, 100], a: 0 },\r\n                                          a: { k: [0, 0], a: 0 },\r\n                                          r: { k: 0, a: 0 },\r\n                                          o: { k: 100, a: 0 },\r\n                                          sk: { k: 0, a: 0 },\r\n                                          sa: { k: 0, a: 0 },\r\n                                          ty: \"tr\",\r\n                                        })));\r\n                                  }\r\n                                }\r\n                              }),\r\n                            h = (function () {\r\n                              var t = [5, 7, 15];\r\n                              function e(t) {\r\n                                var e,\r\n                                  i,\r\n                                  r = t.length;\r\n                                for (e = 0; e < r; e += 1)\r\n                                  5 === t[e].ty &&\r\n                                    ((i = void 0),\r\n                                    \"number\" == typeof (i = t[e].t.p).a &&\r\n                                      (i.a = { a: 0, k: i.a }),\r\n                                    \"number\" == typeof i.p &&\r\n                                      (i.p = { a: 0, k: i.p }),\r\n                                    \"number\" == typeof i.r &&\r\n                                      (i.r = { a: 0, k: i.r }));\r\n                              }\r\n                              return function (i) {\r\n                                if (s(t, i.v) && (e(i.layers), i.assets)) {\r\n                                  var r,\r\n                                    a = i.assets.length;\r\n                                  for (r = 0; r < a; r += 1)\r\n                                    i.assets[r].layers && e(i.assets[r].layers);\r\n                                }\r\n                              };\r\n                            })(),\r\n                            l = (function () {\r\n                              var t = [4, 1, 9];\r\n                              function e(t) {\r\n                                var i,\r\n                                  r,\r\n                                  s,\r\n                                  a = t.length;\r\n                                for (i = 0; i < a; i += 1)\r\n                                  if (\"gr\" === t[i].ty) e(t[i].it);\r\n                                  else if (\"fl\" === t[i].ty || \"st\" === t[i].ty)\r\n                                    if (t[i].c.k && t[i].c.k[0].i)\r\n                                      for (\r\n                                        s = t[i].c.k.length, r = 0;\r\n                                        r < s;\r\n                                        r += 1\r\n                                      )\r\n                                        t[i].c.k[r].s &&\r\n                                          ((t[i].c.k[r].s[0] \/= 255),\r\n                                          (t[i].c.k[r].s[1] \/= 255),\r\n                                          (t[i].c.k[r].s[2] \/= 255),\r\n                                          (t[i].c.k[r].s[3] \/= 255)),\r\n                                          t[i].c.k[r].e &&\r\n                                            ((t[i].c.k[r].e[0] \/= 255),\r\n                                            (t[i].c.k[r].e[1] \/= 255),\r\n                                            (t[i].c.k[r].e[2] \/= 255),\r\n                                            (t[i].c.k[r].e[3] \/= 255));\r\n                                    else\r\n                                      (t[i].c.k[0] \/= 255),\r\n                                        (t[i].c.k[1] \/= 255),\r\n                                        (t[i].c.k[2] \/= 255),\r\n                                        (t[i].c.k[3] \/= 255);\r\n                              }\r\n                              function i(t) {\r\n                                var i,\r\n                                  r = t.length;\r\n                                for (i = 0; i < r; i += 1)\r\n                                  4 === t[i].ty && e(t[i].shapes);\r\n                              }\r\n                              return function (e) {\r\n                                if (s(t, e.v) && (i(e.layers), e.assets)) {\r\n                                  var r,\r\n                                    a = e.assets.length;\r\n                                  for (r = 0; r < a; r += 1)\r\n                                    e.assets[r].layers && i(e.assets[r].layers);\r\n                                }\r\n                              };\r\n                            })(),\r\n                            p = (function () {\r\n                              var t = [4, 4, 18];\r\n                              function e(t) {\r\n                                var i, r, s;\r\n                                for (i = t.length - 1; i >= 0; i -= 1)\r\n                                  if (\"sh\" === t[i].ty)\r\n                                    if (t[i].ks.k.i) t[i].ks.k.c = t[i].closed;\r\n                                    else\r\n                                      for (\r\n                                        s = t[i].ks.k.length, r = 0;\r\n                                        r < s;\r\n                                        r += 1\r\n                                      )\r\n                                        t[i].ks.k[r].s &&\r\n                                          (t[i].ks.k[r].s[0].c = t[i].closed),\r\n                                          t[i].ks.k[r].e &&\r\n                                            (t[i].ks.k[r].e[0].c = t[i].closed);\r\n                                  else \"gr\" === t[i].ty && e(t[i].it);\r\n                              }\r\n                              function i(t) {\r\n                                var i,\r\n                                  r,\r\n                                  s,\r\n                                  a,\r\n                                  n,\r\n                                  o,\r\n                                  h = t.length;\r\n                                for (r = 0; r < h; r += 1) {\r\n                                  if ((i = t[r]).hasMask) {\r\n                                    var l = i.masksProperties;\r\n                                    for (a = l.length, s = 0; s < a; s += 1)\r\n                                      if (l[s].pt.k.i) l[s].pt.k.c = l[s].cl;\r\n                                      else\r\n                                        for (\r\n                                          o = l[s].pt.k.length, n = 0;\r\n                                          n < o;\r\n                                          n += 1\r\n                                        )\r\n                                          l[s].pt.k[n].s &&\r\n                                            (l[s].pt.k[n].s[0].c = l[s].cl),\r\n                                            l[s].pt.k[n].e &&\r\n                                              (l[s].pt.k[n].e[0].c = l[s].cl);\r\n                                  }\r\n                                  4 === i.ty && e(i.shapes);\r\n                                }\r\n                              }\r\n                              return function (e) {\r\n                                if (s(t, e.v) && (i(e.layers), e.assets)) {\r\n                                  var r,\r\n                                    a = e.assets.length;\r\n                                  for (r = 0; r < a; r += 1)\r\n                                    e.assets[r].layers && i(e.assets[r].layers);\r\n                                }\r\n                              };\r\n                            })();\r\n                          function f(t) {\r\n                            0 === t.t.a.length && t.t.p;\r\n                          }\r\n                          var m = {\r\n                            completeData: function (i) {\r\n                              i.__complete ||\r\n                                (l(i),\r\n                                n(i),\r\n                                o(i),\r\n                                h(i),\r\n                                p(i),\r\n                                t(i.layers, i.assets),\r\n                                (function (i, r) {\r\n                                  if (i) {\r\n                                    var s = 0,\r\n                                      a = i.length;\r\n                                    for (s = 0; s < a; s += 1)\r\n                                      1 === i[s].t &&\r\n                                        ((i[s].data.layers = e(\r\n                                          i[s].data.refId,\r\n                                          r\r\n                                        )),\r\n                                        t(i[s].data.layers, r));\r\n                                  }\r\n                                })(i.chars, i.assets),\r\n                                (i.__complete = !0));\r\n                            },\r\n                          };\r\n                          return (\r\n                            (m.checkColors = l),\r\n                            (m.checkChars = o),\r\n                            (m.checkPathProperties = h),\r\n                            (m.checkShapes = p),\r\n                            (m.completeLayers = t),\r\n                            m\r\n                          );\r\n                        })()),\r\n                      a.assetLoader ||\r\n                        (a.assetLoader = (function () {\r\n                          function t(t) {\r\n                            var e = t.getResponseHeader(\"content-type\");\r\n                            return (e &&\r\n                              \"json\" === t.responseType &&\r\n                              -1 !== e.indexOf(\"json\")) ||\r\n                              (t.response && \"object\" === _typeof$5(t.response))\r\n                              ? t.response\r\n                              : t.response && \"string\" == typeof t.response\r\n                              ? JSON.parse(t.response)\r\n                              : t.responseText\r\n                              ? JSON.parse(t.responseText)\r\n                              : null;\r\n                          }\r\n                          return {\r\n                            load: function (e, i, r, s) {\r\n                              var a,\r\n                                n = new XMLHttpRequest();\r\n                              try {\r\n                                n.responseType = \"json\";\r\n                              } catch (t) {}\r\n                              n.onreadystatechange = function () {\r\n                                if (4 === n.readyState)\r\n                                  if (200 === n.status) (a = t(n)), r(a);\r\n                                  else\r\n                                    try {\r\n                                      (a = t(n)), r(a);\r\n                                    } catch (t) {\r\n                                      s && s(t);\r\n                                    }\r\n                              };\r\n                              try {\r\n                                n.open([\"G\", \"E\", \"T\"].join(\"\"), e, !0);\r\n                              } catch (t) {\r\n                                n.open(\r\n                                  [\"G\", \"E\", \"T\"].join(\"\"),\r\n                                  i + \"\/\" + e,\r\n                                  !0\r\n                                );\r\n                              }\r\n                              n.send();\r\n                            },\r\n                          };\r\n                        })()),\r\n                      \"loadAnimation\" === t.data.type)\r\n                    )\r\n                      a.assetLoader.load(\r\n                        t.data.path,\r\n                        t.data.fullPath,\r\n                        function (e) {\r\n                          a.dataManager.completeData(e),\r\n                            a.postMessage({\r\n                              id: t.data.id,\r\n                              payload: e,\r\n                              status: \"success\",\r\n                            });\r\n                        },\r\n                        function () {\r\n                          a.postMessage({ id: t.data.id, status: \"error\" });\r\n                        }\r\n                      );\r\n                    else if (\"complete\" === t.data.type) {\r\n                      var e = t.data.animation;\r\n                      a.dataManager.completeData(e),\r\n                        a.postMessage({\r\n                          id: t.data.id,\r\n                          payload: e,\r\n                          status: \"success\",\r\n                        });\r\n                    } else\r\n                      \"loadData\" === t.data.type &&\r\n                        a.assetLoader.load(\r\n                          t.data.path,\r\n                          t.data.fullPath,\r\n                          function (e) {\r\n                            a.postMessage({\r\n                              id: t.data.id,\r\n                              payload: e,\r\n                              status: \"success\",\r\n                            });\r\n                          },\r\n                          function () {\r\n                            a.postMessage({ id: t.data.id, status: \"error\" });\r\n                          }\r\n                        );\r\n                  })),\r\n                  (e.onmessage = function (t) {\r\n                    var e = t.data,\r\n                      i = e.id,\r\n                      s = r[i];\r\n                    (r[i] = null),\r\n                      \"success\" === e.status\r\n                        ? s.onComplete(e.payload)\r\n                        : s.onError && s.onError();\r\n                  }));\r\n              }\r\n              function o(t, e) {\r\n                var s = \"processId_\" + (i += 1);\r\n                return (r[s] = { onComplete: t, onError: e }), s;\r\n              }\r\n              return {\r\n                loadAnimation: function (t, i, r) {\r\n                  n();\r\n                  var s = o(i, r);\r\n                  e.postMessage({\r\n                    type: \"loadAnimation\",\r\n                    path: t,\r\n                    fullPath: window.location.origin + window.location.pathname,\r\n                    id: s,\r\n                  });\r\n                },\r\n                loadData: function (t, i, r) {\r\n                  n();\r\n                  var s = o(i, r);\r\n                  e.postMessage({\r\n                    type: \"loadData\",\r\n                    path: t,\r\n                    fullPath: window.location.origin + window.location.pathname,\r\n                    id: s,\r\n                  });\r\n                },\r\n                completeAnimation: function (t, i, r) {\r\n                  n();\r\n                  var s = o(i, r);\r\n                  e.postMessage({ type: \"complete\", animation: t, id: s });\r\n                },\r\n              };\r\n            })(),\r\n            ImagePreloader = (function () {\r\n              var t = (function () {\r\n                var t = createTag(\"canvas\");\r\n                (t.width = 1), (t.height = 1);\r\n                var e = t.getContext(\"2d\");\r\n                return (\r\n                  (e.fillStyle = \"rgba(0,0,0,0)\"), e.fillRect(0, 0, 1, 1), t\r\n                );\r\n              })();\r\n              function e() {\r\n                (this.loadedAssets += 1),\r\n                  this.loadedAssets === this.totalImages &&\r\n                    this.loadedFootagesCount === this.totalFootages &&\r\n                    this.imagesLoadedCb &&\r\n                    this.imagesLoadedCb(null);\r\n              }\r\n              function i() {\r\n                (this.loadedFootagesCount += 1),\r\n                  this.loadedAssets === this.totalImages &&\r\n                    this.loadedFootagesCount === this.totalFootages &&\r\n                    this.imagesLoadedCb &&\r\n                    this.imagesLoadedCb(null);\r\n              }\r\n              function r(t, e, i) {\r\n                var r = \"\";\r\n                if (t.e) r = t.p;\r\n                else if (e) {\r\n                  var s = t.p;\r\n                  -1 !== s.indexOf(\"images\/\") && (s = s.split(\"\/\")[1]),\r\n                    (r = e + s);\r\n                } else (r = i), (r += t.u ? t.u : \"\"), (r += t.p);\r\n                return r;\r\n              }\r\n              function s(t) {\r\n                var e = 0,\r\n                  i = setInterval(\r\n                    function () {\r\n                      (t.getBBox().width || e > 500) &&\r\n                        (this._imageLoaded(), clearInterval(i)),\r\n                        (e += 1);\r\n                    }.bind(this),\r\n                    50\r\n                  );\r\n              }\r\n              function a(t) {\r\n                var e = { assetData: t },\r\n                  i = r(t, this.assetsPath, this.path);\r\n                return (\r\n                  dataManager.loadData(\r\n                    i,\r\n                    function (t) {\r\n                      (e.img = t), this._footageLoaded();\r\n                    }.bind(this),\r\n                    function () {\r\n                      (e.img = {}), this._footageLoaded();\r\n                    }.bind(this)\r\n                  ),\r\n                  e\r\n                );\r\n              }\r\n              function n() {\r\n                (this._imageLoaded = e.bind(this)),\r\n                  (this._footageLoaded = i.bind(this)),\r\n                  (this.testImageLoaded = s.bind(this)),\r\n                  (this.createFootageData = a.bind(this)),\r\n                  (this.assetsPath = \"\"),\r\n                  (this.path = \"\"),\r\n                  (this.totalImages = 0),\r\n                  (this.totalFootages = 0),\r\n                  (this.loadedAssets = 0),\r\n                  (this.loadedFootagesCount = 0),\r\n                  (this.imagesLoadedCb = null),\r\n                  (this.images = []);\r\n              }\r\n              return (\r\n                (n.prototype = {\r\n                  loadAssets: function (t, e) {\r\n                    var i;\r\n                    this.imagesLoadedCb = e;\r\n                    var r = t.length;\r\n                    for (i = 0; i < r; i += 1)\r\n                      t[i].layers ||\r\n                        (t[i].t && \"seq\" !== t[i].t\r\n                          ? 3 === t[i].t &&\r\n                            ((this.totalFootages += 1),\r\n                            this.images.push(this.createFootageData(t[i])))\r\n                          : ((this.totalImages += 1),\r\n                            this.images.push(this._createImageData(t[i]))));\r\n                  },\r\n                  setAssetsPath: function (t) {\r\n                    this.assetsPath = t || \"\";\r\n                  },\r\n                  setPath: function (t) {\r\n                    this.path = t || \"\";\r\n                  },\r\n                  loadedImages: function () {\r\n                    return this.totalImages === this.loadedAssets;\r\n                  },\r\n                  loadedFootages: function () {\r\n                    return this.totalFootages === this.loadedFootagesCount;\r\n                  },\r\n                  destroy: function () {\r\n                    (this.imagesLoadedCb = null), (this.images.length = 0);\r\n                  },\r\n                  getAsset: function (t) {\r\n                    for (var e = 0, i = this.images.length; e < i; ) {\r\n                      if (this.images[e].assetData === t)\r\n                        return this.images[e].img;\r\n                      e += 1;\r\n                    }\r\n                    return null;\r\n                  },\r\n                  createImgData: function (e) {\r\n                    var i = r(e, this.assetsPath, this.path),\r\n                      s = createTag(\"img\");\r\n                    (s.crossOrigin = \"anonymous\"),\r\n                      s.addEventListener(\"load\", this._imageLoaded, !1),\r\n                      s.addEventListener(\r\n                        \"error\",\r\n                        function () {\r\n                          (a.img = t), this._imageLoaded();\r\n                        }.bind(this),\r\n                        !1\r\n                      ),\r\n                      (s.src = i);\r\n                    var a = { img: s, assetData: e };\r\n                    return a;\r\n                  },\r\n                  createImageData: function (e) {\r\n                    var i = r(e, this.assetsPath, this.path),\r\n                      s = createNS(\"image\");\r\n                    isSafari\r\n                      ? this.testImageLoaded(s)\r\n                      : s.addEventListener(\"load\", this._imageLoaded, !1),\r\n                      s.addEventListener(\r\n                        \"error\",\r\n                        function () {\r\n                          (a.img = t), this._imageLoaded();\r\n                        }.bind(this),\r\n                        !1\r\n                      ),\r\n                      s.setAttributeNS(\r\n                        \"http:\/\/www.w3.org\/1999\/xlink\",\r\n                        \"href\",\r\n                        i\r\n                      ),\r\n                      this._elementHelper.append\r\n                        ? this._elementHelper.append(s)\r\n                        : this._elementHelper.appendChild(s);\r\n                    var a = { img: s, assetData: e };\r\n                    return a;\r\n                  },\r\n                  imageLoaded: e,\r\n                  footageLoaded: i,\r\n                  setCacheType: function (t, e) {\r\n                    \"svg\" === t\r\n                      ? ((this._elementHelper = e),\r\n                        (this._createImageData =\r\n                          this.createImageData.bind(this)))\r\n                      : (this._createImageData = this.createImgData.bind(this));\r\n                  },\r\n                }),\r\n                n\r\n              );\r\n            })();\r\n          function BaseEvent() {}\r\n          BaseEvent.prototype = {\r\n            triggerEvent: function (t, e) {\r\n              if (this._cbs[t])\r\n                for (var i = this._cbs[t], r = 0; r < i.length; r += 1) i[r](e);\r\n            },\r\n            addEventListener: function (t, e) {\r\n              return (\r\n                this._cbs[t] || (this._cbs[t] = []),\r\n                this._cbs[t].push(e),\r\n                function () {\r\n                  this.removeEventListener(t, e);\r\n                }.bind(this)\r\n              );\r\n            },\r\n            removeEventListener: function (t, e) {\r\n              if (e) {\r\n                if (this._cbs[t]) {\r\n                  for (var i = 0, r = this._cbs[t].length; i < r; )\r\n                    this._cbs[t][i] === e &&\r\n                      (this._cbs[t].splice(i, 1), (i -= 1), (r -= 1)),\r\n                      (i += 1);\r\n                  this._cbs[t].length || (this._cbs[t] = null);\r\n                }\r\n              } else this._cbs[t] = null;\r\n            },\r\n          };\r\n          var markerParser = (function () {\r\n              function t(t) {\r\n                for (\r\n                  var e, i = t.split(\"\\r\\n\"), r = {}, s = 0, a = 0;\r\n                  a < i.length;\r\n                  a += 1\r\n                )\r\n                  2 === (e = i[a].split(\":\")).length &&\r\n                    ((r[e[0]] = e[1].trim()), (s += 1));\r\n                if (0 === s) throw new Error();\r\n                return r;\r\n              }\r\n              return function (e) {\r\n                for (var i = [], r = 0; r < e.length; r += 1) {\r\n                  var s = e[r],\r\n                    a = { time: s.tm, duration: s.dr };\r\n                  try {\r\n                    a.payload = JSON.parse(e[r].cm);\r\n                  } catch (i) {\r\n                    try {\r\n                      a.payload = t(e[r].cm);\r\n                    } catch (t) {\r\n                      a.payload = { name: e[r].cm };\r\n                    }\r\n                  }\r\n                  i.push(a);\r\n                }\r\n                return i;\r\n              };\r\n            })(),\r\n            ProjectInterface = (function () {\r\n              function t(t) {\r\n                this.compositions.push(t);\r\n              }\r\n              return function () {\r\n                function e(t) {\r\n                  for (var e = 0, i = this.compositions.length; e < i; ) {\r\n                    if (\r\n                      this.compositions[e].data &&\r\n                      this.compositions[e].data.nm === t\r\n                    )\r\n                      return (\r\n                        this.compositions[e].prepareFrame &&\r\n                          this.compositions[e].data.xt &&\r\n                          this.compositions[e].prepareFrame(this.currentFrame),\r\n                        this.compositions[e].compInterface\r\n                      );\r\n                    e += 1;\r\n                  }\r\n                  return null;\r\n                }\r\n                return (\r\n                  (e.compositions = []),\r\n                  (e.currentFrame = 0),\r\n                  (e.registerComposition = t),\r\n                  e\r\n                );\r\n              };\r\n            })(),\r\n            renderers = {},\r\n            registerRenderer = function (t, e) {\r\n              renderers[t] = e;\r\n            };\r\n          function getRenderer(t) {\r\n            return renderers[t];\r\n          }\r\n          function getRegisteredRenderer() {\r\n            if (renderers.canvas) return \"canvas\";\r\n            for (var t in renderers) if (renderers[t]) return t;\r\n            return \"\";\r\n          }\r\n          function _typeof$4(t) {\r\n            return (\r\n              (_typeof$4 =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof$4(t)\r\n            );\r\n          }\r\n          var AnimationItem = function () {\r\n            (this._cbs = []),\r\n              (this.name = \"\"),\r\n              (this.path = \"\"),\r\n              (this.isLoaded = !1),\r\n              (this.currentFrame = 0),\r\n              (this.currentRawFrame = 0),\r\n              (this.firstFrame = 0),\r\n              (this.totalFrames = 0),\r\n              (this.frameRate = 0),\r\n              (this.frameMult = 0),\r\n              (this.playSpeed = 1),\r\n              (this.playDirection = 1),\r\n              (this.playCount = 0),\r\n              (this.animationData = {}),\r\n              (this.assets = []),\r\n              (this.isPaused = !0),\r\n              (this.autoplay = !1),\r\n              (this.loop = !0),\r\n              (this.renderer = null),\r\n              (this.animationID = createElementID()),\r\n              (this.assetsPath = \"\"),\r\n              (this.timeCompleted = 0),\r\n              (this.segmentPos = 0),\r\n              (this.isSubframeEnabled = getSubframeEnabled()),\r\n              (this.segments = []),\r\n              (this._idle = !0),\r\n              (this._completedLoop = !1),\r\n              (this.projectInterface = ProjectInterface()),\r\n              (this.imagePreloader = new ImagePreloader()),\r\n              (this.audioController = audioControllerFactory()),\r\n              (this.markers = []),\r\n              (this.configAnimation = this.configAnimation.bind(this)),\r\n              (this.onSetupError = this.onSetupError.bind(this)),\r\n              (this.onSegmentComplete = this.onSegmentComplete.bind(this)),\r\n              (this.drawnFrameEvent = new BMEnterFrameEvent(\r\n                \"drawnFrame\",\r\n                0,\r\n                0,\r\n                0\r\n              )),\r\n              (this.expressionsPlugin = getExpressionsPlugin());\r\n          };\r\n          extendPrototype([BaseEvent], AnimationItem),\r\n            (AnimationItem.prototype.setParams = function (t) {\r\n              (t.wrapper || t.container) &&\r\n                (this.wrapper = t.wrapper || t.container);\r\n              var e = \"svg\";\r\n              t.animType ? (e = t.animType) : t.renderer && (e = t.renderer);\r\n              var i = getRenderer(e);\r\n              (this.renderer = new i(this, t.rendererSettings)),\r\n                this.imagePreloader.setCacheType(\r\n                  e,\r\n                  this.renderer.globalData.defs\r\n                ),\r\n                this.renderer.setProjectInterface(this.projectInterface),\r\n                (this.animType = e),\r\n                \"\" === t.loop ||\r\n                null === t.loop ||\r\n                void 0 === t.loop ||\r\n                !0 === t.loop\r\n                  ? (this.loop = !0)\r\n                  : !1 === t.loop\r\n                  ? (this.loop = !1)\r\n                  : (this.loop = parseInt(t.loop, 10)),\r\n                (this.autoplay = !(\"autoplay\" in t) || t.autoplay),\r\n                (this.name = t.name ? t.name : \"\"),\r\n                (this.autoloadSegments =\r\n                  !Object.prototype.hasOwnProperty.call(\r\n                    t,\r\n                    \"autoloadSegments\"\r\n                  ) || t.autoloadSegments),\r\n                (this.assetsPath = t.assetsPath),\r\n                (this.initialSegment = t.initialSegment),\r\n                t.audioFactory &&\r\n                  this.audioController.setAudioFactory(t.audioFactory),\r\n                t.animationData\r\n                  ? this.setupAnimation(t.animationData)\r\n                  : t.path &&\r\n                    (-1 !== t.path.lastIndexOf(\"\\\\\")\r\n                      ? (this.path = t.path.substr(\r\n                          0,\r\n                          t.path.lastIndexOf(\"\\\\\") + 1\r\n                        ))\r\n                      : (this.path = t.path.substr(\r\n                          0,\r\n                          t.path.lastIndexOf(\"\/\") + 1\r\n                        )),\r\n                    (this.fileName = t.path.substr(\r\n                      t.path.lastIndexOf(\"\/\") + 1\r\n                    )),\r\n                    (this.fileName = this.fileName.substr(\r\n                      0,\r\n                      this.fileName.lastIndexOf(\".json\")\r\n                    )),\r\n                    dataManager.loadAnimation(\r\n                      t.path,\r\n                      this.configAnimation,\r\n                      this.onSetupError\r\n                    ));\r\n            }),\r\n            (AnimationItem.prototype.onSetupError = function () {\r\n              this.trigger(\"data_failed\");\r\n            }),\r\n            (AnimationItem.prototype.setupAnimation = function (t) {\r\n              dataManager.completeAnimation(t, this.configAnimation);\r\n            }),\r\n            (AnimationItem.prototype.setData = function (t, e) {\r\n              e && \"object\" !== _typeof$4(e) && (e = JSON.parse(e));\r\n              var i = { wrapper: t, animationData: e },\r\n                r = t.attributes;\r\n              (i.path = r.getNamedItem(\"data-animation-path\")\r\n                ? r.getNamedItem(\"data-animation-path\").value\r\n                : r.getNamedItem(\"data-bm-path\")\r\n                ? r.getNamedItem(\"data-bm-path\").value\r\n                : r.getNamedItem(\"bm-path\")\r\n                ? r.getNamedItem(\"bm-path\").value\r\n                : \"\"),\r\n                (i.animType = r.getNamedItem(\"data-anim-type\")\r\n                  ? r.getNamedItem(\"data-anim-type\").value\r\n                  : r.getNamedItem(\"data-bm-type\")\r\n                  ? r.getNamedItem(\"data-bm-type\").value\r\n                  : r.getNamedItem(\"bm-type\")\r\n                  ? r.getNamedItem(\"bm-type\").value\r\n                  : r.getNamedItem(\"data-bm-renderer\")\r\n                  ? r.getNamedItem(\"data-bm-renderer\").value\r\n                  : r.getNamedItem(\"bm-renderer\")\r\n                  ? r.getNamedItem(\"bm-renderer\").value\r\n                  : getRegisteredRenderer() || \"canvas\");\r\n              var s = r.getNamedItem(\"data-anim-loop\")\r\n                ? r.getNamedItem(\"data-anim-loop\").value\r\n                : r.getNamedItem(\"data-bm-loop\")\r\n                ? r.getNamedItem(\"data-bm-loop\").value\r\n                : r.getNamedItem(\"bm-loop\")\r\n                ? r.getNamedItem(\"bm-loop\").value\r\n                : \"\";\r\n              \"false\" === s\r\n                ? (i.loop = !1)\r\n                : \"true\" === s\r\n                ? (i.loop = !0)\r\n                : \"\" !== s && (i.loop = parseInt(s, 10));\r\n              var a = r.getNamedItem(\"data-anim-autoplay\")\r\n                ? r.getNamedItem(\"data-anim-autoplay\").value\r\n                : r.getNamedItem(\"data-bm-autoplay\")\r\n                ? r.getNamedItem(\"data-bm-autoplay\").value\r\n                : !r.getNamedItem(\"bm-autoplay\") ||\r\n                  r.getNamedItem(\"bm-autoplay\").value;\r\n              (i.autoplay = \"false\" !== a),\r\n                (i.name = r.getNamedItem(\"data-name\")\r\n                  ? r.getNamedItem(\"data-name\").value\r\n                  : r.getNamedItem(\"data-bm-name\")\r\n                  ? r.getNamedItem(\"data-bm-name\").value\r\n                  : r.getNamedItem(\"bm-name\")\r\n                  ? r.getNamedItem(\"bm-name\").value\r\n                  : \"\"),\r\n                \"false\" ===\r\n                  (r.getNamedItem(\"data-anim-prerender\")\r\n                    ? r.getNamedItem(\"data-anim-prerender\").value\r\n                    : r.getNamedItem(\"data-bm-prerender\")\r\n                    ? r.getNamedItem(\"data-bm-prerender\").value\r\n                    : r.getNamedItem(\"bm-prerender\")\r\n                    ? r.getNamedItem(\"bm-prerender\").value\r\n                    : \"\") && (i.prerender = !1),\r\n                i.path ? this.setParams(i) : this.trigger(\"destroy\");\r\n            }),\r\n            (AnimationItem.prototype.includeLayers = function (t) {\r\n              t.op > this.animationData.op &&\r\n                ((this.animationData.op = t.op),\r\n                (this.totalFrames = Math.floor(t.op - this.animationData.ip)));\r\n              var e,\r\n                i,\r\n                r = this.animationData.layers,\r\n                s = r.length,\r\n                a = t.layers,\r\n                n = a.length;\r\n              for (i = 0; i < n; i += 1)\r\n                for (e = 0; e < s; ) {\r\n                  if (r[e].id === a[i].id) {\r\n                    r[e] = a[i];\r\n                    break;\r\n                  }\r\n                  e += 1;\r\n                }\r\n              if (\r\n                ((t.chars || t.fonts) &&\r\n                  (this.renderer.globalData.fontManager.addChars(t.chars),\r\n                  this.renderer.globalData.fontManager.addFonts(\r\n                    t.fonts,\r\n                    this.renderer.globalData.defs\r\n                  )),\r\n                t.assets)\r\n              )\r\n                for (s = t.assets.length, e = 0; e < s; e += 1)\r\n                  this.animationData.assets.push(t.assets[e]);\r\n              (this.animationData.__complete = !1),\r\n                dataManager.completeAnimation(\r\n                  this.animationData,\r\n                  this.onSegmentComplete\r\n                );\r\n            }),\r\n            (AnimationItem.prototype.onSegmentComplete = function (t) {\r\n              this.animationData = t;\r\n              var e = getExpressionsPlugin();\r\n              e && e.initExpressions(this), this.loadNextSegment();\r\n            }),\r\n            (AnimationItem.prototype.loadNextSegment = function () {\r\n              var t = this.animationData.segments;\r\n              if (!t || 0 === t.length || !this.autoloadSegments)\r\n                return (\r\n                  this.trigger(\"data_ready\"),\r\n                  void (this.timeCompleted = this.totalFrames)\r\n                );\r\n              var e = t.shift();\r\n              this.timeCompleted = e.time * this.frameRate;\r\n              var i =\r\n                this.path + this.fileName + \"_\" + this.segmentPos + \".json\";\r\n              (this.segmentPos += 1),\r\n                dataManager.loadData(\r\n                  i,\r\n                  this.includeLayers.bind(this),\r\n                  function () {\r\n                    this.trigger(\"data_failed\");\r\n                  }.bind(this)\r\n                );\r\n            }),\r\n            (AnimationItem.prototype.loadSegments = function () {\r\n              this.animationData.segments ||\r\n                (this.timeCompleted = this.totalFrames),\r\n                this.loadNextSegment();\r\n            }),\r\n            (AnimationItem.prototype.imagesLoaded = function () {\r\n              this.trigger(\"loaded_images\"), this.checkLoaded();\r\n            }),\r\n            (AnimationItem.prototype.preloadImages = function () {\r\n              this.imagePreloader.setAssetsPath(this.assetsPath),\r\n                this.imagePreloader.setPath(this.path),\r\n                this.imagePreloader.loadAssets(\r\n                  this.animationData.assets,\r\n                  this.imagesLoaded.bind(this)\r\n                );\r\n            }),\r\n            (AnimationItem.prototype.configAnimation = function (t) {\r\n              if (this.renderer)\r\n                try {\r\n                  (this.animationData = t),\r\n                    this.initialSegment\r\n                      ? ((this.totalFrames = Math.floor(\r\n                          this.initialSegment[1] - this.initialSegment[0]\r\n                        )),\r\n                        (this.firstFrame = Math.round(this.initialSegment[0])))\r\n                      : ((this.totalFrames = Math.floor(\r\n                          this.animationData.op - this.animationData.ip\r\n                        )),\r\n                        (this.firstFrame = Math.round(this.animationData.ip))),\r\n                    this.renderer.configAnimation(t),\r\n                    t.assets || (t.assets = []),\r\n                    (this.assets = this.animationData.assets),\r\n                    (this.frameRate = this.animationData.fr),\r\n                    (this.frameMult = this.animationData.fr \/ 1e3),\r\n                    this.renderer.searchExtraCompositions(t.assets),\r\n                    (this.markers = markerParser(t.markers || [])),\r\n                    this.trigger(\"config_ready\"),\r\n                    this.preloadImages(),\r\n                    this.loadSegments(),\r\n                    this.updaFrameModifier(),\r\n                    this.waitForFontsLoaded(),\r\n                    this.isPaused && this.audioController.pause();\r\n                } catch (t) {\r\n                  this.triggerConfigError(t);\r\n                }\r\n            }),\r\n            (AnimationItem.prototype.waitForFontsLoaded = function () {\r\n              this.renderer &&\r\n                (this.renderer.globalData.fontManager.isLoaded\r\n                  ? this.checkLoaded()\r\n                  : setTimeout(this.waitForFontsLoaded.bind(this), 20));\r\n            }),\r\n            (AnimationItem.prototype.checkLoaded = function () {\r\n              if (\r\n                !this.isLoaded &&\r\n                this.renderer.globalData.fontManager.isLoaded &&\r\n                (this.imagePreloader.loadedImages() ||\r\n                  \"canvas\" !== this.renderer.rendererType) &&\r\n                this.imagePreloader.loadedFootages()\r\n              ) {\r\n                this.isLoaded = !0;\r\n                var t = getExpressionsPlugin();\r\n                t && t.initExpressions(this),\r\n                  this.renderer.initItems(),\r\n                  setTimeout(\r\n                    function () {\r\n                      this.trigger(\"DOMLoaded\");\r\n                    }.bind(this),\r\n                    0\r\n                  ),\r\n                  this.gotoFrame(),\r\n                  this.autoplay && this.play();\r\n              }\r\n            }),\r\n            (AnimationItem.prototype.resize = function (t, e) {\r\n              var i = \"number\" == typeof t ? t : void 0,\r\n                r = \"number\" == typeof e ? e : void 0;\r\n              this.renderer.updateContainerSize(i, r);\r\n            }),\r\n            (AnimationItem.prototype.setSubframe = function (t) {\r\n              this.isSubframeEnabled = !!t;\r\n            }),\r\n            (AnimationItem.prototype.gotoFrame = function () {\r\n              (this.currentFrame = this.isSubframeEnabled\r\n                ? this.currentRawFrame\r\n                : ~~this.currentRawFrame),\r\n                this.timeCompleted !== this.totalFrames &&\r\n                  this.currentFrame > this.timeCompleted &&\r\n                  (this.currentFrame = this.timeCompleted),\r\n                this.trigger(\"enterFrame\"),\r\n                this.renderFrame(),\r\n                this.trigger(\"drawnFrame\");\r\n            }),\r\n            (AnimationItem.prototype.renderFrame = function () {\r\n              if (!1 !== this.isLoaded && this.renderer)\r\n                try {\r\n                  this.expressionsPlugin && this.expressionsPlugin.resetFrame(),\r\n                    this.renderer.renderFrame(\r\n                      this.currentFrame + this.firstFrame\r\n                    );\r\n                } catch (t) {\r\n                  this.triggerRenderFrameError(t);\r\n                }\r\n            }),\r\n            (AnimationItem.prototype.play = function (t) {\r\n              (t && this.name !== t) ||\r\n                (!0 === this.isPaused &&\r\n                  ((this.isPaused = !1),\r\n                  this.trigger(\"_play\"),\r\n                  this.audioController.resume(),\r\n                  this._idle && ((this._idle = !1), this.trigger(\"_active\"))));\r\n            }),\r\n            (AnimationItem.prototype.pause = function (t) {\r\n              (t && this.name !== t) ||\r\n                (!1 === this.isPaused &&\r\n                  ((this.isPaused = !0),\r\n                  this.trigger(\"_pause\"),\r\n                  (this._idle = !0),\r\n                  this.trigger(\"_idle\"),\r\n                  this.audioController.pause()));\r\n            }),\r\n            (AnimationItem.prototype.togglePause = function (t) {\r\n              (t && this.name !== t) ||\r\n                (!0 === this.isPaused ? this.play() : this.pause());\r\n            }),\r\n            (AnimationItem.prototype.stop = function (t) {\r\n              (t && this.name !== t) ||\r\n                (this.pause(),\r\n                (this.playCount = 0),\r\n                (this._completedLoop = !1),\r\n                this.setCurrentRawFrameValue(0));\r\n            }),\r\n            (AnimationItem.prototype.getMarkerData = function (t) {\r\n              for (var e, i = 0; i < this.markers.length; i += 1)\r\n                if ((e = this.markers[i]).payload && e.payload.name === t)\r\n                  return e;\r\n              return null;\r\n            }),\r\n            (AnimationItem.prototype.goToAndStop = function (t, e, i) {\r\n              if (!i || this.name === i) {\r\n                var r = Number(t);\r\n                if (isNaN(r)) {\r\n                  var s = this.getMarkerData(t);\r\n                  s && this.goToAndStop(s.time, !0);\r\n                } else\r\n                  e\r\n                    ? this.setCurrentRawFrameValue(t)\r\n                    : this.setCurrentRawFrameValue(t * this.frameModifier);\r\n                this.pause();\r\n              }\r\n            }),\r\n            (AnimationItem.prototype.goToAndPlay = function (t, e, i) {\r\n              if (!i || this.name === i) {\r\n                var r = Number(t);\r\n                if (isNaN(r)) {\r\n                  var s = this.getMarkerData(t);\r\n                  s &&\r\n                    (s.duration\r\n                      ? this.playSegments([s.time, s.time + s.duration], !0)\r\n                      : this.goToAndStop(s.time, !0));\r\n                } else this.goToAndStop(r, e, i);\r\n                this.play();\r\n              }\r\n            }),\r\n            (AnimationItem.prototype.advanceTime = function (t) {\r\n              if (!0 !== this.isPaused && !1 !== this.isLoaded) {\r\n                var e = this.currentRawFrame + t * this.frameModifier,\r\n                  i = !1;\r\n                e >= this.totalFrames - 1 && this.frameModifier > 0\r\n                  ? this.loop && this.playCount !== this.loop\r\n                    ? e >= this.totalFrames\r\n                      ? ((this.playCount += 1),\r\n                        this.checkSegments(e % this.totalFrames) ||\r\n                          (this.setCurrentRawFrameValue(e % this.totalFrames),\r\n                          (this._completedLoop = !0),\r\n                          this.trigger(\"loopComplete\")))\r\n                      : this.setCurrentRawFrameValue(e)\r\n                    : this.checkSegments(\r\n                        e > this.totalFrames ? e % this.totalFrames : 0\r\n                      ) || ((i = !0), (e = this.totalFrames - 1))\r\n                  : e < 0\r\n                  ? this.checkSegments(e % this.totalFrames) ||\r\n                    (!this.loop || (this.playCount-- <= 0 && !0 !== this.loop)\r\n                      ? ((i = !0), (e = 0))\r\n                      : (this.setCurrentRawFrameValue(\r\n                          this.totalFrames + (e % this.totalFrames)\r\n                        ),\r\n                        this._completedLoop\r\n                          ? this.trigger(\"loopComplete\")\r\n                          : (this._completedLoop = !0)))\r\n                  : this.setCurrentRawFrameValue(e),\r\n                  i &&\r\n                    (this.setCurrentRawFrameValue(e),\r\n                    this.pause(),\r\n                    this.trigger(\"complete\"));\r\n              }\r\n            }),\r\n            (AnimationItem.prototype.adjustSegment = function (t, e) {\r\n              (this.playCount = 0),\r\n                t[1] < t[0]\r\n                  ? (this.frameModifier > 0 &&\r\n                      (this.playSpeed < 0\r\n                        ? this.setSpeed(-this.playSpeed)\r\n                        : this.setDirection(-1)),\r\n                    (this.totalFrames = t[0] - t[1]),\r\n                    (this.timeCompleted = this.totalFrames),\r\n                    (this.firstFrame = t[1]),\r\n                    this.setCurrentRawFrameValue(this.totalFrames - 0.001 - e))\r\n                  : t[1] > t[0] &&\r\n                    (this.frameModifier < 0 &&\r\n                      (this.playSpeed < 0\r\n                        ? this.setSpeed(-this.playSpeed)\r\n                        : this.setDirection(1)),\r\n                    (this.totalFrames = t[1] - t[0]),\r\n                    (this.timeCompleted = this.totalFrames),\r\n                    (this.firstFrame = t[0]),\r\n                    this.setCurrentRawFrameValue(0.001 + e)),\r\n                this.trigger(\"segmentStart\");\r\n            }),\r\n            (AnimationItem.prototype.setSegment = function (t, e) {\r\n              var i = -1;\r\n              this.isPaused &&\r\n                (this.currentRawFrame + this.firstFrame < t\r\n                  ? (i = t)\r\n                  : this.currentRawFrame + this.firstFrame > e && (i = e - t)),\r\n                (this.firstFrame = t),\r\n                (this.totalFrames = e - t),\r\n                (this.timeCompleted = this.totalFrames),\r\n                -1 !== i && this.goToAndStop(i, !0);\r\n            }),\r\n            (AnimationItem.prototype.playSegments = function (t, e) {\r\n              if (\r\n                (e && (this.segments.length = 0), \"object\" === _typeof$4(t[0]))\r\n              ) {\r\n                var i,\r\n                  r = t.length;\r\n                for (i = 0; i < r; i += 1) this.segments.push(t[i]);\r\n              } else this.segments.push(t);\r\n              this.segments.length &&\r\n                e &&\r\n                this.adjustSegment(this.segments.shift(), 0),\r\n                this.isPaused && this.play();\r\n            }),\r\n            (AnimationItem.prototype.resetSegments = function (t) {\r\n              (this.segments.length = 0),\r\n                this.segments.push([\r\n                  this.animationData.ip,\r\n                  this.animationData.op,\r\n                ]),\r\n                t && this.checkSegments(0);\r\n            }),\r\n            (AnimationItem.prototype.checkSegments = function (t) {\r\n              return (\r\n                !!this.segments.length &&\r\n                (this.adjustSegment(this.segments.shift(), t), !0)\r\n              );\r\n            }),\r\n            (AnimationItem.prototype.destroy = function (t) {\r\n              (t && this.name !== t) ||\r\n                !this.renderer ||\r\n                (this.renderer.destroy(),\r\n                this.imagePreloader.destroy(),\r\n                this.trigger(\"destroy\"),\r\n                (this._cbs = null),\r\n                (this.onEnterFrame = null),\r\n                (this.onLoopComplete = null),\r\n                (this.onComplete = null),\r\n                (this.onSegmentStart = null),\r\n                (this.onDestroy = null),\r\n                (this.renderer = null),\r\n                (this.expressionsPlugin = null),\r\n                (this.imagePreloader = null),\r\n                (this.projectInterface = null));\r\n            }),\r\n            (AnimationItem.prototype.setCurrentRawFrameValue = function (t) {\r\n              (this.currentRawFrame = t), this.gotoFrame();\r\n            }),\r\n            (AnimationItem.prototype.setSpeed = function (t) {\r\n              (this.playSpeed = t), this.updaFrameModifier();\r\n            }),\r\n            (AnimationItem.prototype.setDirection = function (t) {\r\n              (this.playDirection = t < 0 ? -1 : 1), this.updaFrameModifier();\r\n            }),\r\n            (AnimationItem.prototype.setLoop = function (t) {\r\n              this.loop = t;\r\n            }),\r\n            (AnimationItem.prototype.setVolume = function (t, e) {\r\n              (e && this.name !== e) || this.audioController.setVolume(t);\r\n            }),\r\n            (AnimationItem.prototype.getVolume = function () {\r\n              return this.audioController.getVolume();\r\n            }),\r\n            (AnimationItem.prototype.mute = function (t) {\r\n              (t && this.name !== t) || this.audioController.mute();\r\n            }),\r\n            (AnimationItem.prototype.unmute = function (t) {\r\n              (t && this.name !== t) || this.audioController.unmute();\r\n            }),\r\n            (AnimationItem.prototype.updaFrameModifier = function () {\r\n              (this.frameModifier =\r\n                this.frameMult * this.playSpeed * this.playDirection),\r\n                this.audioController.setRate(\r\n                  this.playSpeed * this.playDirection\r\n                );\r\n            }),\r\n            (AnimationItem.prototype.getPath = function () {\r\n              return this.path;\r\n            }),\r\n            (AnimationItem.prototype.getAssetsPath = function (t) {\r\n              var e = \"\";\r\n              if (t.e) e = t.p;\r\n              else if (this.assetsPath) {\r\n                var i = t.p;\r\n                -1 !== i.indexOf(\"images\/\") && (i = i.split(\"\/\")[1]),\r\n                  (e = this.assetsPath + i);\r\n              } else (e = this.path), (e += t.u ? t.u : \"\"), (e += t.p);\r\n              return e;\r\n            }),\r\n            (AnimationItem.prototype.getAssetData = function (t) {\r\n              for (var e = 0, i = this.assets.length; e < i; ) {\r\n                if (t === this.assets[e].id) return this.assets[e];\r\n                e += 1;\r\n              }\r\n              return null;\r\n            }),\r\n            (AnimationItem.prototype.hide = function () {\r\n              this.renderer.hide();\r\n            }),\r\n            (AnimationItem.prototype.show = function () {\r\n              this.renderer.show();\r\n            }),\r\n            (AnimationItem.prototype.getDuration = function (t) {\r\n              return t ? this.totalFrames : this.totalFrames \/ this.frameRate;\r\n            }),\r\n            (AnimationItem.prototype.updateDocumentData = function (t, e, i) {\r\n              try {\r\n                this.renderer.getElementByPath(t).updateDocumentData(e, i);\r\n              } catch (t) {}\r\n            }),\r\n            (AnimationItem.prototype.trigger = function (t) {\r\n              if (this._cbs && this._cbs[t])\r\n                switch (t) {\r\n                  case \"enterFrame\":\r\n                    this.triggerEvent(\r\n                      t,\r\n                      new BMEnterFrameEvent(\r\n                        t,\r\n                        this.currentFrame,\r\n                        this.totalFrames,\r\n                        this.frameModifier\r\n                      )\r\n                    );\r\n                    break;\r\n                  case \"drawnFrame\":\r\n                    (this.drawnFrameEvent.currentTime = this.currentFrame),\r\n                      (this.drawnFrameEvent.totalTime = this.totalFrames),\r\n                      (this.drawnFrameEvent.direction = this.frameModifier),\r\n                      this.triggerEvent(t, this.drawnFrameEvent);\r\n                    break;\r\n                  case \"loopComplete\":\r\n                    this.triggerEvent(\r\n                      t,\r\n                      new BMCompleteLoopEvent(\r\n                        t,\r\n                        this.loop,\r\n                        this.playCount,\r\n                        this.frameMult\r\n                      )\r\n                    );\r\n                    break;\r\n                  case \"complete\":\r\n                    this.triggerEvent(\r\n                      t,\r\n                      new BMCompleteEvent(t, this.frameMult)\r\n                    );\r\n                    break;\r\n                  case \"segmentStart\":\r\n                    this.triggerEvent(\r\n                      t,\r\n                      new BMSegmentStartEvent(\r\n                        t,\r\n                        this.firstFrame,\r\n                        this.totalFrames\r\n                      )\r\n                    );\r\n                    break;\r\n                  case \"destroy\":\r\n                    this.triggerEvent(t, new BMDestroyEvent(t, this));\r\n                    break;\r\n                  default:\r\n                    this.triggerEvent(t);\r\n                }\r\n              \"enterFrame\" === t &&\r\n                this.onEnterFrame &&\r\n                this.onEnterFrame.call(\r\n                  this,\r\n                  new BMEnterFrameEvent(\r\n                    t,\r\n                    this.currentFrame,\r\n                    this.totalFrames,\r\n                    this.frameMult\r\n                  )\r\n                ),\r\n                \"loopComplete\" === t &&\r\n                  this.onLoopComplete &&\r\n                  this.onLoopComplete.call(\r\n                    this,\r\n                    new BMCompleteLoopEvent(\r\n                      t,\r\n                      this.loop,\r\n                      this.playCount,\r\n                      this.frameMult\r\n                    )\r\n                  ),\r\n                \"complete\" === t &&\r\n                  this.onComplete &&\r\n                  this.onComplete.call(\r\n                    this,\r\n                    new BMCompleteEvent(t, this.frameMult)\r\n                  ),\r\n                \"segmentStart\" === t &&\r\n                  this.onSegmentStart &&\r\n                  this.onSegmentStart.call(\r\n                    this,\r\n                    new BMSegmentStartEvent(\r\n                      t,\r\n                      this.firstFrame,\r\n                      this.totalFrames\r\n                    )\r\n                  ),\r\n                \"destroy\" === t &&\r\n                  this.onDestroy &&\r\n                  this.onDestroy.call(this, new BMDestroyEvent(t, this));\r\n            }),\r\n            (AnimationItem.prototype.triggerRenderFrameError = function (t) {\r\n              var e = new BMRenderFrameErrorEvent(t, this.currentFrame);\r\n              this.triggerEvent(\"error\", e),\r\n                this.onError && this.onError.call(this, e);\r\n            }),\r\n            (AnimationItem.prototype.triggerConfigError = function (t) {\r\n              var e = new BMConfigErrorEvent(t, this.currentFrame);\r\n              this.triggerEvent(\"error\", e),\r\n                this.onError && this.onError.call(this, e);\r\n            });\r\n          var animationManager = (function () {\r\n              var t = {},\r\n                e = [],\r\n                i = 0,\r\n                r = 0,\r\n                s = 0,\r\n                a = !0,\r\n                n = !1;\r\n              function o(t) {\r\n                for (var i = 0, s = t.target; i < r; )\r\n                  e[i].animation === s &&\r\n                    (e.splice(i, 1), (i -= 1), (r -= 1), s.isPaused || p()),\r\n                    (i += 1);\r\n              }\r\n              function h(t, i) {\r\n                if (!t) return null;\r\n                for (var s = 0; s < r; ) {\r\n                  if (e[s].elem === t && null !== e[s].elem)\r\n                    return e[s].animation;\r\n                  s += 1;\r\n                }\r\n                var a = new AnimationItem();\r\n                return f(a, t), a.setData(t, i), a;\r\n              }\r\n              function l() {\r\n                (s += 1), d();\r\n              }\r\n              function p() {\r\n                s -= 1;\r\n              }\r\n              function f(t, i) {\r\n                t.addEventListener(\"destroy\", o),\r\n                  t.addEventListener(\"_active\", l),\r\n                  t.addEventListener(\"_idle\", p),\r\n                  e.push({ elem: i, animation: t }),\r\n                  (r += 1);\r\n              }\r\n              function m(t) {\r\n                var o,\r\n                  h = t - i;\r\n                for (o = 0; o < r; o += 1) e[o].animation.advanceTime(h);\r\n                (i = t), s && !n ? window.requestAnimationFrame(m) : (a = !0);\r\n              }\r\n              function c(t) {\r\n                (i = t), window.requestAnimationFrame(m);\r\n              }\r\n              function d() {\r\n                !n && s && a && (window.requestAnimationFrame(c), (a = !1));\r\n              }\r\n              return (\r\n                (t.registerAnimation = h),\r\n                (t.loadAnimation = function (t) {\r\n                  var e = new AnimationItem();\r\n                  return f(e, null), e.setParams(t), e;\r\n                }),\r\n                (t.setSpeed = function (t, i) {\r\n                  var s;\r\n                  for (s = 0; s < r; s += 1) e[s].animation.setSpeed(t, i);\r\n                }),\r\n                (t.setDirection = function (t, i) {\r\n                  var s;\r\n                  for (s = 0; s < r; s += 1) e[s].animation.setDirection(t, i);\r\n                }),\r\n                (t.play = function (t) {\r\n                  var i;\r\n                  for (i = 0; i < r; i += 1) e[i].animation.play(t);\r\n                }),\r\n                (t.pause = function (t) {\r\n                  var i;\r\n                  for (i = 0; i < r; i += 1) e[i].animation.pause(t);\r\n                }),\r\n                (t.stop = function (t) {\r\n                  var i;\r\n                  for (i = 0; i < r; i += 1) e[i].animation.stop(t);\r\n                }),\r\n                (t.togglePause = function (t) {\r\n                  var i;\r\n                  for (i = 0; i < r; i += 1) e[i].animation.togglePause(t);\r\n                }),\r\n                (t.searchAnimations = function (t, e, i) {\r\n                  var r,\r\n                    s = [].concat(\r\n                      [].slice.call(document.getElementsByClassName(\"lottie\")),\r\n                      [].slice.call(\r\n                        document.getElementsByClassName(\"bodymovin\")\r\n                      )\r\n                    ),\r\n                    a = s.length;\r\n                  for (r = 0; r < a; r += 1)\r\n                    i && s[r].setAttribute(\"data-bm-type\", i), h(s[r], t);\r\n                  if (e && 0 === a) {\r\n                    i || (i = \"svg\");\r\n                    var n = document.getElementsByTagName(\"body\")[0];\r\n                    n.innerText = \"\";\r\n                    var o = createTag(\"div\");\r\n                    (o.style.width = \"100%\"),\r\n                      (o.style.height = \"100%\"),\r\n                      o.setAttribute(\"data-bm-type\", i),\r\n                      n.appendChild(o),\r\n                      h(o, t);\r\n                  }\r\n                }),\r\n                (t.resize = function () {\r\n                  var t;\r\n                  for (t = 0; t < r; t += 1) e[t].animation.resize();\r\n                }),\r\n                (t.goToAndStop = function (t, i, s) {\r\n                  var a;\r\n                  for (a = 0; a < r; a += 1)\r\n                    e[a].animation.goToAndStop(t, i, s);\r\n                }),\r\n                (t.destroy = function (t) {\r\n                  var i;\r\n                  for (i = r - 1; i >= 0; i -= 1) e[i].animation.destroy(t);\r\n                }),\r\n                (t.freeze = function () {\r\n                  n = !0;\r\n                }),\r\n                (t.unfreeze = function () {\r\n                  (n = !1), d();\r\n                }),\r\n                (t.setVolume = function (t, i) {\r\n                  var s;\r\n                  for (s = 0; s < r; s += 1) e[s].animation.setVolume(t, i);\r\n                }),\r\n                (t.mute = function (t) {\r\n                  var i;\r\n                  for (i = 0; i < r; i += 1) e[i].animation.mute(t);\r\n                }),\r\n                (t.unmute = function (t) {\r\n                  var i;\r\n                  for (i = 0; i < r; i += 1) e[i].animation.unmute(t);\r\n                }),\r\n                (t.getRegisteredAnimations = function () {\r\n                  var t,\r\n                    i = e.length,\r\n                    r = [];\r\n                  for (t = 0; t < i; t += 1) r.push(e[t].animation);\r\n                  return r;\r\n                }),\r\n                t\r\n              );\r\n            })(),\r\n            BezierFactory = (function () {\r\n              var t = {\r\n                  getBezierEasing: function (t, i, r, s, a) {\r\n                    var n =\r\n                      a ||\r\n                      (\"bez_\" + t + \"_\" + i + \"_\" + r + \"_\" + s).replace(\r\n                        \/\\.\/g,\r\n                        \"p\"\r\n                      );\r\n                    if (e[n]) return e[n];\r\n                    var o = new l([t, i, r, s]);\r\n                    return (e[n] = o), o;\r\n                  },\r\n                },\r\n                e = {};\r\n              var i = 0.1,\r\n                r = \"function\" == typeof Float32Array;\r\n              function s(t, e) {\r\n                return 1 - 3 * e + 3 * t;\r\n              }\r\n              function a(t, e) {\r\n                return 3 * e - 6 * t;\r\n              }\r\n              function n(t) {\r\n                return 3 * t;\r\n              }\r\n              function o(t, e, i) {\r\n                return ((s(e, i) * t + a(e, i)) * t + n(e)) * t;\r\n              }\r\n              function h(t, e, i) {\r\n                return 3 * s(e, i) * t * t + 2 * a(e, i) * t + n(e);\r\n              }\r\n              function l(t) {\r\n                (this._p = t),\r\n                  (this._mSampleValues = r\r\n                    ? new Float32Array(11)\r\n                    : new Array(11)),\r\n                  (this._precomputed = !1),\r\n                  (this.get = this.get.bind(this));\r\n              }\r\n              return (\r\n                (l.prototype = {\r\n                  get: function (t) {\r\n                    var e = this._p[0],\r\n                      i = this._p[1],\r\n                      r = this._p[2],\r\n                      s = this._p[3];\r\n                    return (\r\n                      this._precomputed || this._precompute(),\r\n                      e === i && r === s\r\n                        ? t\r\n                        : 0 === t\r\n                        ? 0\r\n                        : 1 === t\r\n                        ? 1\r\n                        : o(this._getTForX(t), i, s)\r\n                    );\r\n                  },\r\n                  _precompute: function () {\r\n                    var t = this._p[0],\r\n                      e = this._p[1],\r\n                      i = this._p[2],\r\n                      r = this._p[3];\r\n                    (this._precomputed = !0),\r\n                      (t === e && i === r) || this._calcSampleValues();\r\n                  },\r\n                  _calcSampleValues: function () {\r\n                    for (var t = this._p[0], e = this._p[2], r = 0; r < 11; ++r)\r\n                      this._mSampleValues[r] = o(r * i, t, e);\r\n                  },\r\n                  _getTForX: function (t) {\r\n                    for (\r\n                      var e = this._p[0],\r\n                        r = this._p[2],\r\n                        s = this._mSampleValues,\r\n                        a = 0,\r\n                        n = 1;\r\n                      10 !== n && s[n] <= t;\r\n                      ++n\r\n                    )\r\n                      a += i;\r\n                    var l = a + ((t - s[--n]) \/ (s[n + 1] - s[n])) * i,\r\n                      p = h(l, e, r);\r\n                    return p >= 0.001\r\n                      ? (function (t, e, i, r) {\r\n                          for (var s = 0; s < 4; ++s) {\r\n                            var a = h(e, i, r);\r\n                            if (0 === a) return e;\r\n                            e -= (o(e, i, r) - t) \/ a;\r\n                          }\r\n                          return e;\r\n                        })(t, l, e, r)\r\n                      : 0 === p\r\n                      ? l\r\n                      : (function (t, e, i, r, s) {\r\n                          var a,\r\n                            n,\r\n                            h = 0;\r\n                          do {\r\n                            (a = o((n = e + (i - e) \/ 2), r, s) - t) > 0\r\n                              ? (i = n)\r\n                              : (e = n);\r\n                          } while (Math.abs(a) > 1e-7 && ++h < 10);\r\n                          return n;\r\n                        })(t, a, a + i, e, r);\r\n                  },\r\n                }),\r\n                t\r\n              );\r\n            })(),\r\n            pooling = {\r\n              double: function (t) {\r\n                return t.concat(createSizedArray(t.length));\r\n              },\r\n            },\r\n            poolFactory = function (t, e, i) {\r\n              var r = 0,\r\n                s = t,\r\n                a = createSizedArray(s);\r\n              return {\r\n                newElement: function () {\r\n                  return r ? a[(r -= 1)] : e();\r\n                },\r\n                release: function (t) {\r\n                  r === s && ((a = pooling.double(a)), (s *= 2)),\r\n                    i && i(t),\r\n                    (a[r] = t),\r\n                    (r += 1);\r\n                },\r\n              };\r\n            },\r\n            bezierLengthPool = poolFactory(8, function () {\r\n              return {\r\n                addedLength: 0,\r\n                percents: createTypedArray(\r\n                  \"float32\",\r\n                  getDefaultCurveSegments()\r\n                ),\r\n                lengths: createTypedArray(\"float32\", getDefaultCurveSegments()),\r\n              };\r\n            }),\r\n            segmentsLengthPool = poolFactory(\r\n              8,\r\n              function () {\r\n                return { lengths: [], totalLength: 0 };\r\n              },\r\n              function (t) {\r\n                var e,\r\n                  i = t.lengths.length;\r\n                for (e = 0; e < i; e += 1)\r\n                  bezierLengthPool.release(t.lengths[e]);\r\n                t.lengths.length = 0;\r\n              }\r\n            );\r\n          function bezFunction() {\r\n            var t = Math;\r\n            function e(t, e, i, r, s, a) {\r\n              var n = t * r + e * s + i * a - s * r - a * t - i * e;\r\n              return n > -0.001 && n < 0.001;\r\n            }\r\n            var i = function (t, e, i, r) {\r\n              var s,\r\n                a,\r\n                n,\r\n                o,\r\n                h,\r\n                l,\r\n                p = getDefaultCurveSegments(),\r\n                f = 0,\r\n                m = [],\r\n                c = [],\r\n                d = bezierLengthPool.newElement();\r\n              for (n = i.length, s = 0; s < p; s += 1) {\r\n                for (h = s \/ (p - 1), l = 0, a = 0; a < n; a += 1)\r\n                  (o =\r\n                    bmPow(1 - h, 3) * t[a] +\r\n                    3 * bmPow(1 - h, 2) * h * i[a] +\r\n                    3 * (1 - h) * bmPow(h, 2) * r[a] +\r\n                    bmPow(h, 3) * e[a]),\r\n                    (m[a] = o),\r\n                    null !== c[a] && (l += bmPow(m[a] - c[a], 2)),\r\n                    (c[a] = m[a]);\r\n                l && (f += l = bmSqrt(l)),\r\n                  (d.percents[s] = h),\r\n                  (d.lengths[s] = f);\r\n              }\r\n              return (d.addedLength = f), d;\r\n            };\r\n            function r(t) {\r\n              (this.segmentLength = 0), (this.points = new Array(t));\r\n            }\r\n            function s(t, e) {\r\n              (this.partialLength = t), (this.point = e);\r\n            }\r\n            var a,\r\n              n =\r\n                ((a = {}),\r\n                function (t, i, n, o) {\r\n                  var h = (\r\n                    t[0] +\r\n                    \"_\" +\r\n                    t[1] +\r\n                    \"_\" +\r\n                    i[0] +\r\n                    \"_\" +\r\n                    i[1] +\r\n                    \"_\" +\r\n                    n[0] +\r\n                    \"_\" +\r\n                    n[1] +\r\n                    \"_\" +\r\n                    o[0] +\r\n                    \"_\" +\r\n                    o[1]\r\n                  ).replace(\/\\.\/g, \"p\");\r\n                  if (!a[h]) {\r\n                    var l,\r\n                      p,\r\n                      f,\r\n                      m,\r\n                      c,\r\n                      d,\r\n                      u,\r\n                      y = getDefaultCurveSegments(),\r\n                      g = 0,\r\n                      v = null;\r\n                    2 === t.length &&\r\n                      (t[0] !== i[0] || t[1] !== i[1]) &&\r\n                      e(t[0], t[1], i[0], i[1], t[0] + n[0], t[1] + n[1]) &&\r\n                      e(t[0], t[1], i[0], i[1], i[0] + o[0], i[1] + o[1]) &&\r\n                      (y = 2);\r\n                    var b = new r(y);\r\n                    for (f = n.length, l = 0; l < y; l += 1) {\r\n                      for (\r\n                        u = createSizedArray(f), c = l \/ (y - 1), d = 0, p = 0;\r\n                        p < f;\r\n                        p += 1\r\n                      )\r\n                        (m =\r\n                          bmPow(1 - c, 3) * t[p] +\r\n                          3 * bmPow(1 - c, 2) * c * (t[p] + n[p]) +\r\n                          3 * (1 - c) * bmPow(c, 2) * (i[p] + o[p]) +\r\n                          bmPow(c, 3) * i[p]),\r\n                          (u[p] = m),\r\n                          null !== v && (d += bmPow(u[p] - v[p], 2));\r\n                      (g += d = bmSqrt(d)),\r\n                        (b.points[l] = new s(d, u)),\r\n                        (v = u);\r\n                    }\r\n                    (b.segmentLength = g), (a[h] = b);\r\n                  }\r\n                  return a[h];\r\n                });\r\n            function o(t, e) {\r\n              var i = e.percents,\r\n                r = e.lengths,\r\n                s = i.length,\r\n                a = bmFloor((s - 1) * t),\r\n                n = t * e.addedLength,\r\n                o = 0;\r\n              if (a === s - 1 || 0 === a || n === r[a]) return i[a];\r\n              for (var h = r[a] > n ? -1 : 1, l = !0; l; )\r\n                if (\r\n                  (r[a] <= n && r[a + 1] > n\r\n                    ? ((o = (n - r[a]) \/ (r[a + 1] - r[a])), (l = !1))\r\n                    : (a += h),\r\n                  a < 0 || a >= s - 1)\r\n                ) {\r\n                  if (a === s - 1) return i[a];\r\n                  l = !1;\r\n                }\r\n              return i[a] + (i[a + 1] - i[a]) * o;\r\n            }\r\n            var h = createTypedArray(\"float32\", 8);\r\n            return {\r\n              getSegmentsLength: function (t) {\r\n                var e,\r\n                  r = segmentsLengthPool.newElement(),\r\n                  s = t.c,\r\n                  a = t.v,\r\n                  n = t.o,\r\n                  o = t.i,\r\n                  h = t._length,\r\n                  l = r.lengths,\r\n                  p = 0;\r\n                for (e = 0; e < h - 1; e += 1)\r\n                  (l[e] = i(a[e], a[e + 1], n[e], o[e + 1])),\r\n                    (p += l[e].addedLength);\r\n                return (\r\n                  s &&\r\n                    h &&\r\n                    ((l[e] = i(a[e], a[0], n[e], o[0])),\r\n                    (p += l[e].addedLength)),\r\n                  (r.totalLength = p),\r\n                  r\r\n                );\r\n              },\r\n              getNewSegment: function (e, i, r, s, a, n, l) {\r\n                a < 0 ? (a = 0) : a > 1 && (a = 1);\r\n                var p,\r\n                  f = o(a, l),\r\n                  m = o((n = n > 1 ? 1 : n), l),\r\n                  c = e.length,\r\n                  d = 1 - f,\r\n                  u = 1 - m,\r\n                  y = d * d * d,\r\n                  g = f * d * d * 3,\r\n                  v = f * f * d * 3,\r\n                  b = f * f * f,\r\n                  x = d * d * u,\r\n                  P = f * d * u + d * f * u + d * d * m,\r\n                  E = f * f * u + d * f * m + f * d * m,\r\n                  S = f * f * m,\r\n                  C = d * u * u,\r\n                  _ = f * u * u + d * m * u + d * u * m,\r\n                  A = f * m * u + d * m * m + f * u * m,\r\n                  T = f * m * m,\r\n                  M = u * u * u,\r\n                  k = m * u * u + u * m * u + u * u * m,\r\n                  D = m * m * u + u * m * m + m * u * m,\r\n                  F = m * m * m;\r\n                for (p = 0; p < c; p += 1)\r\n                  (h[4 * p] =\r\n                    t.round(1e3 * (y * e[p] + g * r[p] + v * s[p] + b * i[p])) \/\r\n                    1e3),\r\n                    (h[4 * p + 1] =\r\n                      t.round(\r\n                        1e3 * (x * e[p] + P * r[p] + E * s[p] + S * i[p])\r\n                      ) \/ 1e3),\r\n                    (h[4 * p + 2] =\r\n                      t.round(\r\n                        1e3 * (C * e[p] + _ * r[p] + A * s[p] + T * i[p])\r\n                      ) \/ 1e3),\r\n                    (h[4 * p + 3] =\r\n                      t.round(\r\n                        1e3 * (M * e[p] + k * r[p] + D * s[p] + F * i[p])\r\n                      ) \/ 1e3);\r\n                return h;\r\n              },\r\n              getPointInSegment: function (e, i, r, s, a, n) {\r\n                var h = o(a, n),\r\n                  l = 1 - h;\r\n                return [\r\n                  t.round(\r\n                    1e3 *\r\n                      (l * l * l * e[0] +\r\n                        (h * l * l + l * h * l + l * l * h) * r[0] +\r\n                        (h * h * l + l * h * h + h * l * h) * s[0] +\r\n                        h * h * h * i[0])\r\n                  ) \/ 1e3,\r\n                  t.round(\r\n                    1e3 *\r\n                      (l * l * l * e[1] +\r\n                        (h * l * l + l * h * l + l * l * h) * r[1] +\r\n                        (h * h * l + l * h * h + h * l * h) * s[1] +\r\n                        h * h * h * i[1])\r\n                  ) \/ 1e3,\r\n                ];\r\n              },\r\n              buildBezierData: n,\r\n              pointOnLine2D: e,\r\n              pointOnLine3D: function (i, r, s, a, n, o, h, l, p) {\r\n                if (0 === s && 0 === o && 0 === p) return e(i, r, a, n, h, l);\r\n                var f,\r\n                  m = t.sqrt(\r\n                    t.pow(a - i, 2) + t.pow(n - r, 2) + t.pow(o - s, 2)\r\n                  ),\r\n                  c = t.sqrt(\r\n                    t.pow(h - i, 2) + t.pow(l - r, 2) + t.pow(p - s, 2)\r\n                  ),\r\n                  d = t.sqrt(\r\n                    t.pow(h - a, 2) + t.pow(l - n, 2) + t.pow(p - o, 2)\r\n                  );\r\n                return (\r\n                  (f =\r\n                    m > c\r\n                      ? m > d\r\n                        ? m - c - d\r\n                        : d - c - m\r\n                      : d > c\r\n                      ? d - c - m\r\n                      : c - m - d) > -1e-4 && f < 1e-4\r\n                );\r\n              },\r\n            };\r\n          }\r\n          var bez = bezFunction(),\r\n            initFrame = initialDefaultFrame,\r\n            mathAbs = Math.abs;\r\n          function interpolateValue(t, e) {\r\n            var i,\r\n              r = this.offsetTime;\r\n            \"multidimensional\" === this.propType &&\r\n              (i = createTypedArray(\"float32\", this.pv.length));\r\n            for (\r\n              var s,\r\n                a,\r\n                n,\r\n                o,\r\n                h,\r\n                l,\r\n                p,\r\n                f,\r\n                m,\r\n                c = e.lastIndex,\r\n                d = c,\r\n                u = this.keyframes.length - 1,\r\n                y = !0;\r\n              y;\r\n\r\n            ) {\r\n              if (\r\n                ((s = this.keyframes[d]),\r\n                (a = this.keyframes[d + 1]),\r\n                d === u - 1 && t >= a.t - r)\r\n              ) {\r\n                s.h && (s = a), (c = 0);\r\n                break;\r\n              }\r\n              if (a.t - r > t) {\r\n                c = d;\r\n                break;\r\n              }\r\n              d < u - 1 ? (d += 1) : ((c = 0), (y = !1));\r\n            }\r\n            n = this.keyframesMetadata[d] || {};\r\n            var g,\r\n              v = a.t - r,\r\n              b = s.t - r;\r\n            if (s.to) {\r\n              n.bezierData ||\r\n                (n.bezierData = bez.buildBezierData(\r\n                  s.s,\r\n                  a.s || s.e,\r\n                  s.to,\r\n                  s.ti\r\n                ));\r\n              var x = n.bezierData;\r\n              if (t >= v || t < b) {\r\n                var P = t >= v ? x.points.length - 1 : 0;\r\n                for (h = x.points[P].point.length, o = 0; o < h; o += 1)\r\n                  i[o] = x.points[P].point[o];\r\n              } else {\r\n                n.__fnct\r\n                  ? (m = n.__fnct)\r\n                  : ((m = BezierFactory.getBezierEasing(\r\n                      s.o.x,\r\n                      s.o.y,\r\n                      s.i.x,\r\n                      s.i.y,\r\n                      s.n\r\n                    ).get),\r\n                    (n.__fnct = m)),\r\n                  (l = m((t - b) \/ (v - b)));\r\n                var E,\r\n                  S = x.segmentLength * l,\r\n                  C =\r\n                    e.lastFrame < t && e._lastKeyframeIndex === d\r\n                      ? e._lastAddedLength\r\n                      : 0;\r\n                for (\r\n                  f =\r\n                    e.lastFrame < t && e._lastKeyframeIndex === d\r\n                      ? e._lastPoint\r\n                      : 0,\r\n                    y = !0,\r\n                    p = x.points.length;\r\n                  y;\r\n\r\n                ) {\r\n                  if (\r\n                    ((C += x.points[f].partialLength),\r\n                    0 === S || 0 === l || f === x.points.length - 1)\r\n                  ) {\r\n                    for (h = x.points[f].point.length, o = 0; o < h; o += 1)\r\n                      i[o] = x.points[f].point[o];\r\n                    break;\r\n                  }\r\n                  if (S >= C && S < C + x.points[f + 1].partialLength) {\r\n                    for (\r\n                      E = (S - C) \/ x.points[f + 1].partialLength,\r\n                        h = x.points[f].point.length,\r\n                        o = 0;\r\n                      o < h;\r\n                      o += 1\r\n                    )\r\n                      i[o] =\r\n                        x.points[f].point[o] +\r\n                        (x.points[f + 1].point[o] - x.points[f].point[o]) * E;\r\n                    break;\r\n                  }\r\n                  f < p - 1 ? (f += 1) : (y = !1);\r\n                }\r\n                (e._lastPoint = f),\r\n                  (e._lastAddedLength = C - x.points[f].partialLength),\r\n                  (e._lastKeyframeIndex = d);\r\n              }\r\n            } else {\r\n              var _, A, T, M, k;\r\n              if (((u = s.s.length), (g = a.s || s.e), this.sh && 1 !== s.h))\r\n                if (t >= v) (i[0] = g[0]), (i[1] = g[1]), (i[2] = g[2]);\r\n                else if (t <= b)\r\n                  (i[0] = s.s[0]), (i[1] = s.s[1]), (i[2] = s.s[2]);\r\n                else {\r\n                  quaternionToEuler(\r\n                    i,\r\n                    slerp(\r\n                      createQuaternion(s.s),\r\n                      createQuaternion(g),\r\n                      (t - b) \/ (v - b)\r\n                    )\r\n                  );\r\n                }\r\n              else\r\n                for (d = 0; d < u; d += 1)\r\n                  1 !== s.h &&\r\n                    (t >= v\r\n                      ? (l = 1)\r\n                      : t < b\r\n                      ? (l = 0)\r\n                      : (s.o.x.constructor === Array\r\n                          ? (n.__fnct || (n.__fnct = []),\r\n                            n.__fnct[d]\r\n                              ? (m = n.__fnct[d])\r\n                              : ((_ =\r\n                                  void 0 === s.o.x[d] ? s.o.x[0] : s.o.x[d]),\r\n                                (A = void 0 === s.o.y[d] ? s.o.y[0] : s.o.y[d]),\r\n                                (T = void 0 === s.i.x[d] ? s.i.x[0] : s.i.x[d]),\r\n                                (M = void 0 === s.i.y[d] ? s.i.y[0] : s.i.y[d]),\r\n                                (m = BezierFactory.getBezierEasing(\r\n                                  _,\r\n                                  A,\r\n                                  T,\r\n                                  M\r\n                                ).get),\r\n                                (n.__fnct[d] = m)))\r\n                          : n.__fnct\r\n                          ? (m = n.__fnct)\r\n                          : ((_ = s.o.x),\r\n                            (A = s.o.y),\r\n                            (T = s.i.x),\r\n                            (M = s.i.y),\r\n                            (m = BezierFactory.getBezierEasing(_, A, T, M).get),\r\n                            (s.keyframeMetadata = m)),\r\n                        (l = m((t - b) \/ (v - b))))),\r\n                    (g = a.s || s.e),\r\n                    (k = 1 === s.h ? s.s[d] : s.s[d] + (g[d] - s.s[d]) * l),\r\n                    \"multidimensional\" === this.propType ? (i[d] = k) : (i = k);\r\n            }\r\n            return (e.lastIndex = c), i;\r\n          }\r\n          function slerp(t, e, i) {\r\n            var r,\r\n              s,\r\n              a,\r\n              n,\r\n              o,\r\n              h = [],\r\n              l = t[0],\r\n              p = t[1],\r\n              f = t[2],\r\n              m = t[3],\r\n              c = e[0],\r\n              d = e[1],\r\n              u = e[2],\r\n              y = e[3];\r\n            return (\r\n              (s = l * c + p * d + f * u + m * y) < 0 &&\r\n                ((s = -s), (c = -c), (d = -d), (u = -u), (y = -y)),\r\n              1 - s > 1e-6\r\n                ? ((r = Math.acos(s)),\r\n                  (a = Math.sin(r)),\r\n                  (n = Math.sin((1 - i) * r) \/ a),\r\n                  (o = Math.sin(i * r) \/ a))\r\n                : ((n = 1 - i), (o = i)),\r\n              (h[0] = n * l + o * c),\r\n              (h[1] = n * p + o * d),\r\n              (h[2] = n * f + o * u),\r\n              (h[3] = n * m + o * y),\r\n              h\r\n            );\r\n          }\r\n          function quaternionToEuler(t, e) {\r\n            var i = e[0],\r\n              r = e[1],\r\n              s = e[2],\r\n              a = e[3],\r\n              n = Math.atan2(2 * r * a - 2 * i * s, 1 - 2 * r * r - 2 * s * s),\r\n              o = Math.asin(2 * i * r + 2 * s * a),\r\n              h = Math.atan2(2 * i * a - 2 * r * s, 1 - 2 * i * i - 2 * s * s);\r\n            (t[0] = n \/ degToRads),\r\n              (t[1] = o \/ degToRads),\r\n              (t[2] = h \/ degToRads);\r\n          }\r\n          function createQuaternion(t) {\r\n            var e = t[0] * degToRads,\r\n              i = t[1] * degToRads,\r\n              r = t[2] * degToRads,\r\n              s = Math.cos(e \/ 2),\r\n              a = Math.cos(i \/ 2),\r\n              n = Math.cos(r \/ 2),\r\n              o = Math.sin(e \/ 2),\r\n              h = Math.sin(i \/ 2),\r\n              l = Math.sin(r \/ 2);\r\n            return [\r\n              o * h * n + s * a * l,\r\n              o * a * n + s * h * l,\r\n              s * h * n - o * a * l,\r\n              s * a * n - o * h * l,\r\n            ];\r\n          }\r\n          function getValueAtCurrentTime() {\r\n            var t = this.comp.renderedFrame - this.offsetTime,\r\n              e = this.keyframes[0].t - this.offsetTime,\r\n              i = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n            if (\r\n              !(\r\n                t === this._caching.lastFrame ||\r\n                (this._caching.lastFrame !== initFrame &&\r\n                  ((this._caching.lastFrame >= i && t >= i) ||\r\n                    (this._caching.lastFrame < e && t < e)))\r\n              )\r\n            ) {\r\n              this._caching.lastFrame >= t &&\r\n                ((this._caching._lastKeyframeIndex = -1),\r\n                (this._caching.lastIndex = 0));\r\n              var r = this.interpolateValue(t, this._caching);\r\n              this.pv = r;\r\n            }\r\n            return (this._caching.lastFrame = t), this.pv;\r\n          }\r\n          function setVValue(t) {\r\n            var e;\r\n            if (\"unidimensional\" === this.propType)\r\n              (e = t * this.mult),\r\n                mathAbs(this.v - e) > 1e-5 && ((this.v = e), (this._mdf = !0));\r\n            else\r\n              for (var i = 0, r = this.v.length; i < r; )\r\n                (e = t[i] * this.mult),\r\n                  mathAbs(this.v[i] - e) > 1e-5 &&\r\n                    ((this.v[i] = e), (this._mdf = !0)),\r\n                  (i += 1);\r\n          }\r\n          function processEffectsSequence() {\r\n            if (\r\n              this.elem.globalData.frameId !== this.frameId &&\r\n              this.effectsSequence.length\r\n            )\r\n              if (this.lock) this.setVValue(this.pv);\r\n              else {\r\n                var t;\r\n                (this.lock = !0), (this._mdf = this._isFirstFrame);\r\n                var e = this.effectsSequence.length,\r\n                  i = this.kf ? this.pv : this.data.k;\r\n                for (t = 0; t < e; t += 1) i = this.effectsSequence[t](i);\r\n                this.setVValue(i),\r\n                  (this._isFirstFrame = !1),\r\n                  (this.lock = !1),\r\n                  (this.frameId = this.elem.globalData.frameId);\r\n              }\r\n          }\r\n          function addEffect(t) {\r\n            this.effectsSequence.push(t),\r\n              this.container.addDynamicProperty(this);\r\n          }\r\n          function ValueProperty(t, e, i, r) {\r\n            (this.propType = \"unidimensional\"),\r\n              (this.mult = i || 1),\r\n              (this.data = e),\r\n              (this.v = i ? e.k * i : e.k),\r\n              (this.pv = e.k),\r\n              (this._mdf = !1),\r\n              (this.elem = t),\r\n              (this.container = r),\r\n              (this.comp = t.comp),\r\n              (this.k = !1),\r\n              (this.kf = !1),\r\n              (this.vel = 0),\r\n              (this.effectsSequence = []),\r\n              (this._isFirstFrame = !0),\r\n              (this.getValue = processEffectsSequence),\r\n              (this.setVValue = setVValue),\r\n              (this.addEffect = addEffect);\r\n          }\r\n          function MultiDimensionalProperty(t, e, i, r) {\r\n            var s;\r\n            (this.propType = \"multidimensional\"),\r\n              (this.mult = i || 1),\r\n              (this.data = e),\r\n              (this._mdf = !1),\r\n              (this.elem = t),\r\n              (this.container = r),\r\n              (this.comp = t.comp),\r\n              (this.k = !1),\r\n              (this.kf = !1),\r\n              (this.frameId = -1);\r\n            var a = e.k.length;\r\n            for (\r\n              this.v = createTypedArray(\"float32\", a),\r\n                this.pv = createTypedArray(\"float32\", a),\r\n                this.vel = createTypedArray(\"float32\", a),\r\n                s = 0;\r\n              s < a;\r\n              s += 1\r\n            )\r\n              (this.v[s] = e.k[s] * this.mult), (this.pv[s] = e.k[s]);\r\n            (this._isFirstFrame = !0),\r\n              (this.effectsSequence = []),\r\n              (this.getValue = processEffectsSequence),\r\n              (this.setVValue = setVValue),\r\n              (this.addEffect = addEffect);\r\n          }\r\n          function KeyframedValueProperty(t, e, i, r) {\r\n            (this.propType = \"unidimensional\"),\r\n              (this.keyframes = e.k),\r\n              (this.keyframesMetadata = []),\r\n              (this.offsetTime = t.data.st),\r\n              (this.frameId = -1),\r\n              (this._caching = {\r\n                lastFrame: initFrame,\r\n                lastIndex: 0,\r\n                value: 0,\r\n                _lastKeyframeIndex: -1,\r\n              }),\r\n              (this.k = !0),\r\n              (this.kf = !0),\r\n              (this.data = e),\r\n              (this.mult = i || 1),\r\n              (this.elem = t),\r\n              (this.container = r),\r\n              (this.comp = t.comp),\r\n              (this.v = initFrame),\r\n              (this.pv = initFrame),\r\n              (this._isFirstFrame = !0),\r\n              (this.getValue = processEffectsSequence),\r\n              (this.setVValue = setVValue),\r\n              (this.interpolateValue = interpolateValue),\r\n              (this.effectsSequence = [getValueAtCurrentTime.bind(this)]),\r\n              (this.addEffect = addEffect);\r\n          }\r\n          function KeyframedMultidimensionalProperty(t, e, i, r) {\r\n            var s;\r\n            this.propType = \"multidimensional\";\r\n            var a,\r\n              n,\r\n              o,\r\n              h,\r\n              l = e.k.length;\r\n            for (s = 0; s < l - 1; s += 1)\r\n              e.k[s].to &&\r\n                e.k[s].s &&\r\n                e.k[s + 1] &&\r\n                e.k[s + 1].s &&\r\n                ((a = e.k[s].s),\r\n                (n = e.k[s + 1].s),\r\n                (o = e.k[s].to),\r\n                (h = e.k[s].ti),\r\n                ((2 === a.length &&\r\n                  (a[0] !== n[0] || a[1] !== n[1]) &&\r\n                  bez.pointOnLine2D(\r\n                    a[0],\r\n                    a[1],\r\n                    n[0],\r\n                    n[1],\r\n                    a[0] + o[0],\r\n                    a[1] + o[1]\r\n                  ) &&\r\n                  bez.pointOnLine2D(\r\n                    a[0],\r\n                    a[1],\r\n                    n[0],\r\n                    n[1],\r\n                    n[0] + h[0],\r\n                    n[1] + h[1]\r\n                  )) ||\r\n                  (3 === a.length &&\r\n                    (a[0] !== n[0] || a[1] !== n[1] || a[2] !== n[2]) &&\r\n                    bez.pointOnLine3D(\r\n                      a[0],\r\n                      a[1],\r\n                      a[2],\r\n                      n[0],\r\n                      n[1],\r\n                      n[2],\r\n                      a[0] + o[0],\r\n                      a[1] + o[1],\r\n                      a[2] + o[2]\r\n                    ) &&\r\n                    bez.pointOnLine3D(\r\n                      a[0],\r\n                      a[1],\r\n                      a[2],\r\n                      n[0],\r\n                      n[1],\r\n                      n[2],\r\n                      n[0] + h[0],\r\n                      n[1] + h[1],\r\n                      n[2] + h[2]\r\n                    ))) &&\r\n                  ((e.k[s].to = null), (e.k[s].ti = null)),\r\n                a[0] === n[0] &&\r\n                  a[1] === n[1] &&\r\n                  0 === o[0] &&\r\n                  0 === o[1] &&\r\n                  0 === h[0] &&\r\n                  0 === h[1] &&\r\n                  (2 === a.length ||\r\n                    (a[2] === n[2] && 0 === o[2] && 0 === h[2])) &&\r\n                  ((e.k[s].to = null), (e.k[s].ti = null)));\r\n            (this.effectsSequence = [getValueAtCurrentTime.bind(this)]),\r\n              (this.data = e),\r\n              (this.keyframes = e.k),\r\n              (this.keyframesMetadata = []),\r\n              (this.offsetTime = t.data.st),\r\n              (this.k = !0),\r\n              (this.kf = !0),\r\n              (this._isFirstFrame = !0),\r\n              (this.mult = i || 1),\r\n              (this.elem = t),\r\n              (this.container = r),\r\n              (this.comp = t.comp),\r\n              (this.getValue = processEffectsSequence),\r\n              (this.setVValue = setVValue),\r\n              (this.interpolateValue = interpolateValue),\r\n              (this.frameId = -1);\r\n            var p = e.k[0].s.length;\r\n            for (\r\n              this.v = createTypedArray(\"float32\", p),\r\n                this.pv = createTypedArray(\"float32\", p),\r\n                s = 0;\r\n              s < p;\r\n              s += 1\r\n            )\r\n              (this.v[s] = initFrame), (this.pv[s] = initFrame);\r\n            (this._caching = {\r\n              lastFrame: initFrame,\r\n              lastIndex: 0,\r\n              value: createTypedArray(\"float32\", p),\r\n            }),\r\n              (this.addEffect = addEffect);\r\n          }\r\n          var PropertyFactory = {\r\n            getProp: function (t, e, i, r, s) {\r\n              var a;\r\n              if (\r\n                (e.sid && (e = t.globalData.slotManager.getProp(e)), e.k.length)\r\n              )\r\n                if (\"number\" == typeof e.k[0])\r\n                  a = new MultiDimensionalProperty(t, e, r, s);\r\n                else\r\n                  switch (i) {\r\n                    case 0:\r\n                      a = new KeyframedValueProperty(t, e, r, s);\r\n                      break;\r\n                    case 1:\r\n                      a = new KeyframedMultidimensionalProperty(t, e, r, s);\r\n                  }\r\n              else a = new ValueProperty(t, e, r, s);\r\n              return a.effectsSequence.length && s.addDynamicProperty(a), a;\r\n            },\r\n          };\r\n          function DynamicPropertyContainer() {}\r\n          DynamicPropertyContainer.prototype = {\r\n            addDynamicProperty: function (t) {\r\n              -1 === this.dynamicProperties.indexOf(t) &&\r\n                (this.dynamicProperties.push(t),\r\n                this.container.addDynamicProperty(this),\r\n                (this._isAnimated = !0));\r\n            },\r\n            iterateDynamicProperties: function () {\r\n              var t;\r\n              this._mdf = !1;\r\n              var e = this.dynamicProperties.length;\r\n              for (t = 0; t < e; t += 1)\r\n                this.dynamicProperties[t].getValue(),\r\n                  this.dynamicProperties[t]._mdf && (this._mdf = !0);\r\n            },\r\n            initDynamicPropertyContainer: function (t) {\r\n              (this.container = t),\r\n                (this.dynamicProperties = []),\r\n                (this._mdf = !1),\r\n                (this._isAnimated = !1);\r\n            },\r\n          };\r\n          var pointPool = poolFactory(8, function () {\r\n            return createTypedArray(\"float32\", 2);\r\n          });\r\n          function ShapePath() {\r\n            (this.c = !1),\r\n              (this._length = 0),\r\n              (this._maxLength = 8),\r\n              (this.v = createSizedArray(this._maxLength)),\r\n              (this.o = createSizedArray(this._maxLength)),\r\n              (this.i = createSizedArray(this._maxLength));\r\n          }\r\n          (ShapePath.prototype.setPathData = function (t, e) {\r\n            (this.c = t), this.setLength(e);\r\n            for (var i = 0; i < e; )\r\n              (this.v[i] = pointPool.newElement()),\r\n                (this.o[i] = pointPool.newElement()),\r\n                (this.i[i] = pointPool.newElement()),\r\n                (i += 1);\r\n          }),\r\n            (ShapePath.prototype.setLength = function (t) {\r\n              for (; this._maxLength < t; ) this.doubleArrayLength();\r\n              this._length = t;\r\n            }),\r\n            (ShapePath.prototype.doubleArrayLength = function () {\r\n              (this.v = this.v.concat(createSizedArray(this._maxLength))),\r\n                (this.i = this.i.concat(createSizedArray(this._maxLength))),\r\n                (this.o = this.o.concat(createSizedArray(this._maxLength))),\r\n                (this._maxLength *= 2);\r\n            }),\r\n            (ShapePath.prototype.setXYAt = function (t, e, i, r, s) {\r\n              var a;\r\n              switch (\r\n                ((this._length = Math.max(this._length, r + 1)),\r\n                this._length >= this._maxLength && this.doubleArrayLength(),\r\n                i)\r\n              ) {\r\n                case \"v\":\r\n                  a = this.v;\r\n                  break;\r\n                case \"i\":\r\n                  a = this.i;\r\n                  break;\r\n                case \"o\":\r\n                  a = this.o;\r\n                  break;\r\n                default:\r\n                  a = [];\r\n              }\r\n              (!a[r] || (a[r] && !s)) && (a[r] = pointPool.newElement()),\r\n                (a[r][0] = t),\r\n                (a[r][1] = e);\r\n            }),\r\n            (ShapePath.prototype.setTripleAt = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s,\r\n              a,\r\n              n,\r\n              o\r\n            ) {\r\n              this.setXYAt(t, e, \"v\", n, o),\r\n                this.setXYAt(i, r, \"o\", n, o),\r\n                this.setXYAt(s, a, \"i\", n, o);\r\n            }),\r\n            (ShapePath.prototype.reverse = function () {\r\n              var t = new ShapePath();\r\n              t.setPathData(this.c, this._length);\r\n              var e = this.v,\r\n                i = this.o,\r\n                r = this.i,\r\n                s = 0;\r\n              this.c &&\r\n                (t.setTripleAt(\r\n                  e[0][0],\r\n                  e[0][1],\r\n                  r[0][0],\r\n                  r[0][1],\r\n                  i[0][0],\r\n                  i[0][1],\r\n                  0,\r\n                  !1\r\n                ),\r\n                (s = 1));\r\n              var a,\r\n                n = this._length - 1,\r\n                o = this._length;\r\n              for (a = s; a < o; a += 1)\r\n                t.setTripleAt(\r\n                  e[n][0],\r\n                  e[n][1],\r\n                  r[n][0],\r\n                  r[n][1],\r\n                  i[n][0],\r\n                  i[n][1],\r\n                  a,\r\n                  !1\r\n                ),\r\n                  (n -= 1);\r\n              return t;\r\n            }),\r\n            (ShapePath.prototype.length = function () {\r\n              return this._length;\r\n            });\r\n          var shapePool =\r\n              ((factory = poolFactory(\r\n                4,\r\n                function () {\r\n                  return new ShapePath();\r\n                },\r\n                function (t) {\r\n                  var e,\r\n                    i = t._length;\r\n                  for (e = 0; e < i; e += 1)\r\n                    pointPool.release(t.v[e]),\r\n                      pointPool.release(t.i[e]),\r\n                      pointPool.release(t.o[e]),\r\n                      (t.v[e] = null),\r\n                      (t.i[e] = null),\r\n                      (t.o[e] = null);\r\n                  (t._length = 0), (t.c = !1);\r\n                }\r\n              )),\r\n              (factory.clone = function (t) {\r\n                var e,\r\n                  i = factory.newElement(),\r\n                  r = void 0 === t._length ? t.v.length : t._length;\r\n                for (i.setLength(r), i.c = t.c, e = 0; e < r; e += 1)\r\n                  i.setTripleAt(\r\n                    t.v[e][0],\r\n                    t.v[e][1],\r\n                    t.o[e][0],\r\n                    t.o[e][1],\r\n                    t.i[e][0],\r\n                    t.i[e][1],\r\n                    e\r\n                  );\r\n                return i;\r\n              }),\r\n              factory),\r\n            factory;\r\n          function ShapeCollection() {\r\n            (this._length = 0),\r\n              (this._maxLength = 4),\r\n              (this.shapes = createSizedArray(this._maxLength));\r\n          }\r\n          (ShapeCollection.prototype.addShape = function (t) {\r\n            this._length === this._maxLength &&\r\n              ((this.shapes = this.shapes.concat(\r\n                createSizedArray(this._maxLength)\r\n              )),\r\n              (this._maxLength *= 2)),\r\n              (this.shapes[this._length] = t),\r\n              (this._length += 1);\r\n          }),\r\n            (ShapeCollection.prototype.releaseShapes = function () {\r\n              var t;\r\n              for (t = 0; t < this._length; t += 1)\r\n                shapePool.release(this.shapes[t]);\r\n              this._length = 0;\r\n            });\r\n          var shapeCollectionPool =\r\n              ((ob = {\r\n                newShapeCollection: function () {\r\n                  return _length ? pool[(_length -= 1)] : new ShapeCollection();\r\n                },\r\n                release: function (t) {\r\n                  var e,\r\n                    i = t._length;\r\n                  for (e = 0; e < i; e += 1) shapePool.release(t.shapes[e]);\r\n                  (t._length = 0),\r\n                    _length === _maxLength &&\r\n                      ((pool = pooling.double(pool)), (_maxLength *= 2)),\r\n                    (pool[_length] = t),\r\n                    (_length += 1);\r\n                },\r\n              }),\r\n              (_length = 0),\r\n              (_maxLength = 4),\r\n              (pool = createSizedArray(_maxLength)),\r\n              ob),\r\n            ob,\r\n            _length,\r\n            _maxLength,\r\n            pool,\r\n            ShapePropertyFactory = (function () {\r\n              var t = -999999;\r\n              function e(t, e, i) {\r\n                var r,\r\n                  s,\r\n                  a,\r\n                  n,\r\n                  o,\r\n                  h,\r\n                  l,\r\n                  p,\r\n                  f,\r\n                  m = i.lastIndex,\r\n                  c = this.keyframes;\r\n                if (t < c[0].t - this.offsetTime)\r\n                  (r = c[0].s[0]), (a = !0), (m = 0);\r\n                else if (t >= c[c.length - 1].t - this.offsetTime)\r\n                  (r = c[c.length - 1].s\r\n                    ? c[c.length - 1].s[0]\r\n                    : c[c.length - 2].e[0]),\r\n                    (a = !0);\r\n                else {\r\n                  for (\r\n                    var d, u, y, g = m, v = c.length - 1, b = !0;\r\n                    b &&\r\n                    ((d = c[g]), !((u = c[g + 1]).t - this.offsetTime > t));\r\n\r\n                  )\r\n                    g < v - 1 ? (g += 1) : (b = !1);\r\n                  if (\r\n                    ((y = this.keyframesMetadata[g] || {}),\r\n                    (m = g),\r\n                    !(a = 1 === d.h))\r\n                  ) {\r\n                    if (t >= u.t - this.offsetTime) p = 1;\r\n                    else if (t < d.t - this.offsetTime) p = 0;\r\n                    else {\r\n                      var x;\r\n                      y.__fnct\r\n                        ? (x = y.__fnct)\r\n                        : ((x = BezierFactory.getBezierEasing(\r\n                            d.o.x,\r\n                            d.o.y,\r\n                            d.i.x,\r\n                            d.i.y\r\n                          ).get),\r\n                          (y.__fnct = x)),\r\n                        (p = x(\r\n                          (t - (d.t - this.offsetTime)) \/\r\n                            (u.t - this.offsetTime - (d.t - this.offsetTime))\r\n                        ));\r\n                    }\r\n                    s = u.s ? u.s[0] : d.e[0];\r\n                  }\r\n                  r = d.s[0];\r\n                }\r\n                for (\r\n                  h = e._length, l = r.i[0].length, i.lastIndex = m, n = 0;\r\n                  n < h;\r\n                  n += 1\r\n                )\r\n                  for (o = 0; o < l; o += 1)\r\n                    (f = a\r\n                      ? r.i[n][o]\r\n                      : r.i[n][o] + (s.i[n][o] - r.i[n][o]) * p),\r\n                      (e.i[n][o] = f),\r\n                      (f = a\r\n                        ? r.o[n][o]\r\n                        : r.o[n][o] + (s.o[n][o] - r.o[n][o]) * p),\r\n                      (e.o[n][o] = f),\r\n                      (f = a\r\n                        ? r.v[n][o]\r\n                        : r.v[n][o] + (s.v[n][o] - r.v[n][o]) * p),\r\n                      (e.v[n][o] = f);\r\n              }\r\n              function i() {\r\n                var e = this.comp.renderedFrame - this.offsetTime,\r\n                  i = this.keyframes[0].t - this.offsetTime,\r\n                  r =\r\n                    this.keyframes[this.keyframes.length - 1].t -\r\n                    this.offsetTime,\r\n                  s = this._caching.lastFrame;\r\n                return (\r\n                  (s !== t && ((s < i && e < i) || (s > r && e > r))) ||\r\n                    ((this._caching.lastIndex =\r\n                      s < e ? this._caching.lastIndex : 0),\r\n                    this.interpolateShape(e, this.pv, this._caching)),\r\n                  (this._caching.lastFrame = e),\r\n                  this.pv\r\n                );\r\n              }\r\n              function r() {\r\n                this.paths = this.localShapeCollection;\r\n              }\r\n              function s(t) {\r\n                (function (t, e) {\r\n                  if (t._length !== e._length || t.c !== e.c) return !1;\r\n                  var i,\r\n                    r = t._length;\r\n                  for (i = 0; i < r; i += 1)\r\n                    if (\r\n                      t.v[i][0] !== e.v[i][0] ||\r\n                      t.v[i][1] !== e.v[i][1] ||\r\n                      t.o[i][0] !== e.o[i][0] ||\r\n                      t.o[i][1] !== e.o[i][1] ||\r\n                      t.i[i][0] !== e.i[i][0] ||\r\n                      t.i[i][1] !== e.i[i][1]\r\n                    )\r\n                      return !1;\r\n                  return !0;\r\n                })(this.v, t) ||\r\n                  ((this.v = shapePool.clone(t)),\r\n                  this.localShapeCollection.releaseShapes(),\r\n                  this.localShapeCollection.addShape(this.v),\r\n                  (this._mdf = !0),\r\n                  (this.paths = this.localShapeCollection));\r\n              }\r\n              function a() {\r\n                if (this.elem.globalData.frameId !== this.frameId)\r\n                  if (this.effectsSequence.length)\r\n                    if (this.lock) this.setVValue(this.pv);\r\n                    else {\r\n                      var t, e;\r\n                      (this.lock = !0),\r\n                        (this._mdf = !1),\r\n                        (t = this.kf\r\n                          ? this.pv\r\n                          : this.data.ks\r\n                          ? this.data.ks.k\r\n                          : this.data.pt.k);\r\n                      var i = this.effectsSequence.length;\r\n                      for (e = 0; e < i; e += 1) t = this.effectsSequence[e](t);\r\n                      this.setVValue(t),\r\n                        (this.lock = !1),\r\n                        (this.frameId = this.elem.globalData.frameId);\r\n                    }\r\n                  else this._mdf = !1;\r\n              }\r\n              function n(t, e, i) {\r\n                (this.propType = \"shape\"),\r\n                  (this.comp = t.comp),\r\n                  (this.container = t),\r\n                  (this.elem = t),\r\n                  (this.data = e),\r\n                  (this.k = !1),\r\n                  (this.kf = !1),\r\n                  (this._mdf = !1);\r\n                var s = 3 === i ? e.pt.k : e.ks.k;\r\n                (this.v = shapePool.clone(s)),\r\n                  (this.pv = shapePool.clone(this.v)),\r\n                  (this.localShapeCollection =\r\n                    shapeCollectionPool.newShapeCollection()),\r\n                  (this.paths = this.localShapeCollection),\r\n                  this.paths.addShape(this.v),\r\n                  (this.reset = r),\r\n                  (this.effectsSequence = []);\r\n              }\r\n              function o(t) {\r\n                this.effectsSequence.push(t),\r\n                  this.container.addDynamicProperty(this);\r\n              }\r\n              function h(e, s, a) {\r\n                (this.propType = \"shape\"),\r\n                  (this.comp = e.comp),\r\n                  (this.elem = e),\r\n                  (this.container = e),\r\n                  (this.offsetTime = e.data.st),\r\n                  (this.keyframes = 3 === a ? s.pt.k : s.ks.k),\r\n                  (this.keyframesMetadata = []),\r\n                  (this.k = !0),\r\n                  (this.kf = !0);\r\n                var n = this.keyframes[0].s[0].i.length;\r\n                (this.v = shapePool.newElement()),\r\n                  this.v.setPathData(this.keyframes[0].s[0].c, n),\r\n                  (this.pv = shapePool.clone(this.v)),\r\n                  (this.localShapeCollection =\r\n                    shapeCollectionPool.newShapeCollection()),\r\n                  (this.paths = this.localShapeCollection),\r\n                  this.paths.addShape(this.v),\r\n                  (this.lastFrame = t),\r\n                  (this.reset = r),\r\n                  (this._caching = { lastFrame: t, lastIndex: 0 }),\r\n                  (this.effectsSequence = [i.bind(this)]);\r\n              }\r\n              (n.prototype.interpolateShape = e),\r\n                (n.prototype.getValue = a),\r\n                (n.prototype.setVValue = s),\r\n                (n.prototype.addEffect = o),\r\n                (h.prototype.getValue = a),\r\n                (h.prototype.interpolateShape = e),\r\n                (h.prototype.setVValue = s),\r\n                (h.prototype.addEffect = o);\r\n              var l = (function () {\r\n                  var t = roundCorner;\r\n                  function e(t, e) {\r\n                    (this.v = shapePool.newElement()),\r\n                      this.v.setPathData(!0, 4),\r\n                      (this.localShapeCollection =\r\n                        shapeCollectionPool.newShapeCollection()),\r\n                      (this.paths = this.localShapeCollection),\r\n                      this.localShapeCollection.addShape(this.v),\r\n                      (this.d = e.d),\r\n                      (this.elem = t),\r\n                      (this.comp = t.comp),\r\n                      (this.frameId = -1),\r\n                      this.initDynamicPropertyContainer(t),\r\n                      (this.p = PropertyFactory.getProp(t, e.p, 1, 0, this)),\r\n                      (this.s = PropertyFactory.getProp(t, e.s, 1, 0, this)),\r\n                      this.dynamicProperties.length\r\n                        ? (this.k = !0)\r\n                        : ((this.k = !1), this.convertEllToPath());\r\n                  }\r\n                  return (\r\n                    (e.prototype = {\r\n                      reset: r,\r\n                      getValue: function () {\r\n                        this.elem.globalData.frameId !== this.frameId &&\r\n                          ((this.frameId = this.elem.globalData.frameId),\r\n                          this.iterateDynamicProperties(),\r\n                          this._mdf && this.convertEllToPath());\r\n                      },\r\n                      convertEllToPath: function () {\r\n                        var e = this.p.v[0],\r\n                          i = this.p.v[1],\r\n                          r = this.s.v[0] \/ 2,\r\n                          s = this.s.v[1] \/ 2,\r\n                          a = 3 !== this.d,\r\n                          n = this.v;\r\n                        (n.v[0][0] = e),\r\n                          (n.v[0][1] = i - s),\r\n                          (n.v[1][0] = a ? e + r : e - r),\r\n                          (n.v[1][1] = i),\r\n                          (n.v[2][0] = e),\r\n                          (n.v[2][1] = i + s),\r\n                          (n.v[3][0] = a ? e - r : e + r),\r\n                          (n.v[3][1] = i),\r\n                          (n.i[0][0] = a ? e - r * t : e + r * t),\r\n                          (n.i[0][1] = i - s),\r\n                          (n.i[1][0] = a ? e + r : e - r),\r\n                          (n.i[1][1] = i - s * t),\r\n                          (n.i[2][0] = a ? e + r * t : e - r * t),\r\n                          (n.i[2][1] = i + s),\r\n                          (n.i[3][0] = a ? e - r : e + r),\r\n                          (n.i[3][1] = i + s * t),\r\n                          (n.o[0][0] = a ? e + r * t : e - r * t),\r\n                          (n.o[0][1] = i - s),\r\n                          (n.o[1][0] = a ? e + r : e - r),\r\n                          (n.o[1][1] = i + s * t),\r\n                          (n.o[2][0] = a ? e - r * t : e + r * t),\r\n                          (n.o[2][1] = i + s),\r\n                          (n.o[3][0] = a ? e - r : e + r),\r\n                          (n.o[3][1] = i - s * t);\r\n                      },\r\n                    }),\r\n                    extendPrototype([DynamicPropertyContainer], e),\r\n                    e\r\n                  );\r\n                })(),\r\n                p = (function () {\r\n                  function t(t, e) {\r\n                    (this.v = shapePool.newElement()),\r\n                      this.v.setPathData(!0, 0),\r\n                      (this.elem = t),\r\n                      (this.comp = t.comp),\r\n                      (this.data = e),\r\n                      (this.frameId = -1),\r\n                      (this.d = e.d),\r\n                      this.initDynamicPropertyContainer(t),\r\n                      1 === e.sy\r\n                        ? ((this.ir = PropertyFactory.getProp(\r\n                            t,\r\n                            e.ir,\r\n                            0,\r\n                            0,\r\n                            this\r\n                          )),\r\n                          (this.is = PropertyFactory.getProp(\r\n                            t,\r\n                            e.is,\r\n                            0,\r\n                            0.01,\r\n                            this\r\n                          )),\r\n                          (this.convertToPath = this.convertStarToPath))\r\n                        : (this.convertToPath = this.convertPolygonToPath),\r\n                      (this.pt = PropertyFactory.getProp(t, e.pt, 0, 0, this)),\r\n                      (this.p = PropertyFactory.getProp(t, e.p, 1, 0, this)),\r\n                      (this.r = PropertyFactory.getProp(\r\n                        t,\r\n                        e.r,\r\n                        0,\r\n                        degToRads,\r\n                        this\r\n                      )),\r\n                      (this.or = PropertyFactory.getProp(t, e.or, 0, 0, this)),\r\n                      (this.os = PropertyFactory.getProp(\r\n                        t,\r\n                        e.os,\r\n                        0,\r\n                        0.01,\r\n                        this\r\n                      )),\r\n                      (this.localShapeCollection =\r\n                        shapeCollectionPool.newShapeCollection()),\r\n                      this.localShapeCollection.addShape(this.v),\r\n                      (this.paths = this.localShapeCollection),\r\n                      this.dynamicProperties.length\r\n                        ? (this.k = !0)\r\n                        : ((this.k = !1), this.convertToPath());\r\n                  }\r\n                  return (\r\n                    (t.prototype = {\r\n                      reset: r,\r\n                      getValue: function () {\r\n                        this.elem.globalData.frameId !== this.frameId &&\r\n                          ((this.frameId = this.elem.globalData.frameId),\r\n                          this.iterateDynamicProperties(),\r\n                          this._mdf && this.convertToPath());\r\n                      },\r\n                      convertStarToPath: function () {\r\n                        var t,\r\n                          e,\r\n                          i,\r\n                          r,\r\n                          s = 2 * Math.floor(this.pt.v),\r\n                          a = (2 * Math.PI) \/ s,\r\n                          n = !0,\r\n                          o = this.or.v,\r\n                          h = this.ir.v,\r\n                          l = this.os.v,\r\n                          p = this.is.v,\r\n                          f = (2 * Math.PI * o) \/ (2 * s),\r\n                          m = (2 * Math.PI * h) \/ (2 * s),\r\n                          c = -Math.PI \/ 2;\r\n                        c += this.r.v;\r\n                        var d = 3 === this.data.d ? -1 : 1;\r\n                        for (this.v._length = 0, t = 0; t < s; t += 1) {\r\n                          (i = n ? l : p), (r = n ? f : m);\r\n                          var u = (e = n ? o : h) * Math.cos(c),\r\n                            y = e * Math.sin(c),\r\n                            g =\r\n                              0 === u && 0 === y\r\n                                ? 0\r\n                                : y \/ Math.sqrt(u * u + y * y),\r\n                            v =\r\n                              0 === u && 0 === y\r\n                                ? 0\r\n                                : -u \/ Math.sqrt(u * u + y * y);\r\n                          (u += +this.p.v[0]),\r\n                            (y += +this.p.v[1]),\r\n                            this.v.setTripleAt(\r\n                              u,\r\n                              y,\r\n                              u - g * r * i * d,\r\n                              y - v * r * i * d,\r\n                              u + g * r * i * d,\r\n                              y + v * r * i * d,\r\n                              t,\r\n                              !0\r\n                            ),\r\n                            (n = !n),\r\n                            (c += a * d);\r\n                        }\r\n                      },\r\n                      convertPolygonToPath: function () {\r\n                        var t,\r\n                          e = Math.floor(this.pt.v),\r\n                          i = (2 * Math.PI) \/ e,\r\n                          r = this.or.v,\r\n                          s = this.os.v,\r\n                          a = (2 * Math.PI * r) \/ (4 * e),\r\n                          n = 0.5 * -Math.PI,\r\n                          o = 3 === this.data.d ? -1 : 1;\r\n                        for (\r\n                          n += this.r.v, this.v._length = 0, t = 0;\r\n                          t < e;\r\n                          t += 1\r\n                        ) {\r\n                          var h = r * Math.cos(n),\r\n                            l = r * Math.sin(n),\r\n                            p =\r\n                              0 === h && 0 === l\r\n                                ? 0\r\n                                : l \/ Math.sqrt(h * h + l * l),\r\n                            f =\r\n                              0 === h && 0 === l\r\n                                ? 0\r\n                                : -h \/ Math.sqrt(h * h + l * l);\r\n                          (h += +this.p.v[0]),\r\n                            (l += +this.p.v[1]),\r\n                            this.v.setTripleAt(\r\n                              h,\r\n                              l,\r\n                              h - p * a * s * o,\r\n                              l - f * a * s * o,\r\n                              h + p * a * s * o,\r\n                              l + f * a * s * o,\r\n                              t,\r\n                              !0\r\n                            ),\r\n                            (n += i * o);\r\n                        }\r\n                        (this.paths.length = 0), (this.paths[0] = this.v);\r\n                      },\r\n                    }),\r\n                    extendPrototype([DynamicPropertyContainer], t),\r\n                    t\r\n                  );\r\n                })(),\r\n                f = (function () {\r\n                  function t(t, e) {\r\n                    (this.v = shapePool.newElement()),\r\n                      (this.v.c = !0),\r\n                      (this.localShapeCollection =\r\n                        shapeCollectionPool.newShapeCollection()),\r\n                      this.localShapeCollection.addShape(this.v),\r\n                      (this.paths = this.localShapeCollection),\r\n                      (this.elem = t),\r\n                      (this.comp = t.comp),\r\n                      (this.frameId = -1),\r\n                      (this.d = e.d),\r\n                      this.initDynamicPropertyContainer(t),\r\n                      (this.p = PropertyFactory.getProp(t, e.p, 1, 0, this)),\r\n                      (this.s = PropertyFactory.getProp(t, e.s, 1, 0, this)),\r\n                      (this.r = PropertyFactory.getProp(t, e.r, 0, 0, this)),\r\n                      this.dynamicProperties.length\r\n                        ? (this.k = !0)\r\n                        : ((this.k = !1), this.convertRectToPath());\r\n                  }\r\n                  return (\r\n                    (t.prototype = {\r\n                      convertRectToPath: function () {\r\n                        var t = this.p.v[0],\r\n                          e = this.p.v[1],\r\n                          i = this.s.v[0] \/ 2,\r\n                          r = this.s.v[1] \/ 2,\r\n                          s = bmMin(i, r, this.r.v),\r\n                          a = s * (1 - roundCorner);\r\n                        (this.v._length = 0),\r\n                          2 === this.d || 1 === this.d\r\n                            ? (this.v.setTripleAt(\r\n                                t + i,\r\n                                e - r + s,\r\n                                t + i,\r\n                                e - r + s,\r\n                                t + i,\r\n                                e - r + a,\r\n                                0,\r\n                                !0\r\n                              ),\r\n                              this.v.setTripleAt(\r\n                                t + i,\r\n                                e + r - s,\r\n                                t + i,\r\n                                e + r - a,\r\n                                t + i,\r\n                                e + r - s,\r\n                                1,\r\n                                !0\r\n                              ),\r\n                              0 !== s\r\n                                ? (this.v.setTripleAt(\r\n                                    t + i - s,\r\n                                    e + r,\r\n                                    t + i - s,\r\n                                    e + r,\r\n                                    t + i - a,\r\n                                    e + r,\r\n                                    2,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i + s,\r\n                                    e + r,\r\n                                    t - i + a,\r\n                                    e + r,\r\n                                    t - i + s,\r\n                                    e + r,\r\n                                    3,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e + r - s,\r\n                                    t - i,\r\n                                    e + r - s,\r\n                                    t - i,\r\n                                    e + r - a,\r\n                                    4,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e - r + s,\r\n                                    t - i,\r\n                                    e - r + a,\r\n                                    t - i,\r\n                                    e - r + s,\r\n                                    5,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i + s,\r\n                                    e - r,\r\n                                    t - i + s,\r\n                                    e - r,\r\n                                    t - i + a,\r\n                                    e - r,\r\n                                    6,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t + i - s,\r\n                                    e - r,\r\n                                    t + i - a,\r\n                                    e - r,\r\n                                    t + i - s,\r\n                                    e - r,\r\n                                    7,\r\n                                    !0\r\n                                  ))\r\n                                : (this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e + r,\r\n                                    t - i + a,\r\n                                    e + r,\r\n                                    t - i,\r\n                                    e + r,\r\n                                    2\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e - r,\r\n                                    t - i,\r\n                                    e - r + a,\r\n                                    t - i,\r\n                                    e - r,\r\n                                    3\r\n                                  )))\r\n                            : (this.v.setTripleAt(\r\n                                t + i,\r\n                                e - r + s,\r\n                                t + i,\r\n                                e - r + a,\r\n                                t + i,\r\n                                e - r + s,\r\n                                0,\r\n                                !0\r\n                              ),\r\n                              0 !== s\r\n                                ? (this.v.setTripleAt(\r\n                                    t + i - s,\r\n                                    e - r,\r\n                                    t + i - s,\r\n                                    e - r,\r\n                                    t + i - a,\r\n                                    e - r,\r\n                                    1,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i + s,\r\n                                    e - r,\r\n                                    t - i + a,\r\n                                    e - r,\r\n                                    t - i + s,\r\n                                    e - r,\r\n                                    2,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e - r + s,\r\n                                    t - i,\r\n                                    e - r + s,\r\n                                    t - i,\r\n                                    e - r + a,\r\n                                    3,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e + r - s,\r\n                                    t - i,\r\n                                    e + r - a,\r\n                                    t - i,\r\n                                    e + r - s,\r\n                                    4,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i + s,\r\n                                    e + r,\r\n                                    t - i + s,\r\n                                    e + r,\r\n                                    t - i + a,\r\n                                    e + r,\r\n                                    5,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t + i - s,\r\n                                    e + r,\r\n                                    t + i - a,\r\n                                    e + r,\r\n                                    t + i - s,\r\n                                    e + r,\r\n                                    6,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t + i,\r\n                                    e + r - s,\r\n                                    t + i,\r\n                                    e + r - s,\r\n                                    t + i,\r\n                                    e + r - a,\r\n                                    7,\r\n                                    !0\r\n                                  ))\r\n                                : (this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e - r,\r\n                                    t - i + a,\r\n                                    e - r,\r\n                                    t - i,\r\n                                    e - r,\r\n                                    1,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t - i,\r\n                                    e + r,\r\n                                    t - i,\r\n                                    e + r - a,\r\n                                    t - i,\r\n                                    e + r,\r\n                                    2,\r\n                                    !0\r\n                                  ),\r\n                                  this.v.setTripleAt(\r\n                                    t + i,\r\n                                    e + r,\r\n                                    t + i - a,\r\n                                    e + r,\r\n                                    t + i,\r\n                                    e + r,\r\n                                    3,\r\n                                    !0\r\n                                  )));\r\n                      },\r\n                      getValue: function () {\r\n                        this.elem.globalData.frameId !== this.frameId &&\r\n                          ((this.frameId = this.elem.globalData.frameId),\r\n                          this.iterateDynamicProperties(),\r\n                          this._mdf && this.convertRectToPath());\r\n                      },\r\n                      reset: r,\r\n                    }),\r\n                    extendPrototype([DynamicPropertyContainer], t),\r\n                    t\r\n                  );\r\n                })();\r\n              var m = {\r\n                getShapeProp: function (t, e, i) {\r\n                  var r;\r\n                  return (\r\n                    3 === i || 4 === i\r\n                      ? (r = (3 === i ? e.pt : e.ks).k.length\r\n                          ? new h(t, e, i)\r\n                          : new n(t, e, i))\r\n                      : 5 === i\r\n                      ? (r = new f(t, e))\r\n                      : 6 === i\r\n                      ? (r = new l(t, e))\r\n                      : 7 === i && (r = new p(t, e)),\r\n                    r.k && t.addDynamicProperty(r),\r\n                    r\r\n                  );\r\n                },\r\n                getConstructorFunction: function () {\r\n                  return n;\r\n                },\r\n                getKeyframedConstructorFunction: function () {\r\n                  return h;\r\n                },\r\n              };\r\n              return m;\r\n            })(),\r\n            Matrix = (function () {\r\n              var t = Math.cos,\r\n                e = Math.sin,\r\n                i = Math.tan,\r\n                r = Math.round;\r\n              function s() {\r\n                return (\r\n                  (this.props[0] = 1),\r\n                  (this.props[1] = 0),\r\n                  (this.props[2] = 0),\r\n                  (this.props[3] = 0),\r\n                  (this.props[4] = 0),\r\n                  (this.props[5] = 1),\r\n                  (this.props[6] = 0),\r\n                  (this.props[7] = 0),\r\n                  (this.props[8] = 0),\r\n                  (this.props[9] = 0),\r\n                  (this.props[10] = 1),\r\n                  (this.props[11] = 0),\r\n                  (this.props[12] = 0),\r\n                  (this.props[13] = 0),\r\n                  (this.props[14] = 0),\r\n                  (this.props[15] = 1),\r\n                  this\r\n                );\r\n              }\r\n              function a(i) {\r\n                if (0 === i) return this;\r\n                var r = t(i),\r\n                  s = e(i);\r\n                return this._t(r, -s, 0, 0, s, r, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n              }\r\n              function n(i) {\r\n                if (0 === i) return this;\r\n                var r = t(i),\r\n                  s = e(i);\r\n                return this._t(1, 0, 0, 0, 0, r, -s, 0, 0, s, r, 0, 0, 0, 0, 1);\r\n              }\r\n              function o(i) {\r\n                if (0 === i) return this;\r\n                var r = t(i),\r\n                  s = e(i);\r\n                return this._t(r, 0, s, 0, 0, 1, 0, 0, -s, 0, r, 0, 0, 0, 0, 1);\r\n              }\r\n              function h(i) {\r\n                if (0 === i) return this;\r\n                var r = t(i),\r\n                  s = e(i);\r\n                return this._t(r, -s, 0, 0, s, r, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n              }\r\n              function l(t, e) {\r\n                return this._t(1, e, t, 1, 0, 0);\r\n              }\r\n              function p(t, e) {\r\n                return this.shear(i(t), i(e));\r\n              }\r\n              function f(r, s) {\r\n                var a = t(s),\r\n                  n = e(s);\r\n                return this._t(a, n, 0, 0, -n, a, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n                  ._t(1, 0, 0, 0, i(r), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n                  ._t(a, -n, 0, 0, n, a, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n              }\r\n              function m(t, e, i) {\r\n                return (\r\n                  i || 0 === i || (i = 1),\r\n                  1 === t && 1 === e && 1 === i\r\n                    ? this\r\n                    : this._t(t, 0, 0, 0, 0, e, 0, 0, 0, 0, i, 0, 0, 0, 0, 1)\r\n                );\r\n              }\r\n              function c(t, e, i, r, s, a, n, o, h, l, p, f, m, c, d, u) {\r\n                return (\r\n                  (this.props[0] = t),\r\n                  (this.props[1] = e),\r\n                  (this.props[2] = i),\r\n                  (this.props[3] = r),\r\n                  (this.props[4] = s),\r\n                  (this.props[5] = a),\r\n                  (this.props[6] = n),\r\n                  (this.props[7] = o),\r\n                  (this.props[8] = h),\r\n                  (this.props[9] = l),\r\n                  (this.props[10] = p),\r\n                  (this.props[11] = f),\r\n                  (this.props[12] = m),\r\n                  (this.props[13] = c),\r\n                  (this.props[14] = d),\r\n                  (this.props[15] = u),\r\n                  this\r\n                );\r\n              }\r\n              function d(t, e, i) {\r\n                return (\r\n                  (i = i || 0),\r\n                  0 !== t || 0 !== e || 0 !== i\r\n                    ? this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, e, i, 1)\r\n                    : this\r\n                );\r\n              }\r\n              function u(t, e, i, r, s, a, n, o, h, l, p, f, m, c, d, u) {\r\n                var y = this.props;\r\n                if (\r\n                  1 === t &&\r\n                  0 === e &&\r\n                  0 === i &&\r\n                  0 === r &&\r\n                  0 === s &&\r\n                  1 === a &&\r\n                  0 === n &&\r\n                  0 === o &&\r\n                  0 === h &&\r\n                  0 === l &&\r\n                  1 === p &&\r\n                  0 === f\r\n                )\r\n                  return (\r\n                    (y[12] = y[12] * t + y[15] * m),\r\n                    (y[13] = y[13] * a + y[15] * c),\r\n                    (y[14] = y[14] * p + y[15] * d),\r\n                    (y[15] *= u),\r\n                    (this._identityCalculated = !1),\r\n                    this\r\n                  );\r\n                var g = y[0],\r\n                  v = y[1],\r\n                  b = y[2],\r\n                  x = y[3],\r\n                  P = y[4],\r\n                  E = y[5],\r\n                  S = y[6],\r\n                  C = y[7],\r\n                  _ = y[8],\r\n                  A = y[9],\r\n                  T = y[10],\r\n                  M = y[11],\r\n                  k = y[12],\r\n                  D = y[13],\r\n                  F = y[14],\r\n                  w = y[15];\r\n                return (\r\n                  (y[0] = g * t + v * s + b * h + x * m),\r\n                  (y[1] = g * e + v * a + b * l + x * c),\r\n                  (y[2] = g * i + v * n + b * p + x * d),\r\n                  (y[3] = g * r + v * o + b * f + x * u),\r\n                  (y[4] = P * t + E * s + S * h + C * m),\r\n                  (y[5] = P * e + E * a + S * l + C * c),\r\n                  (y[6] = P * i + E * n + S * p + C * d),\r\n                  (y[7] = P * r + E * o + S * f + C * u),\r\n                  (y[8] = _ * t + A * s + T * h + M * m),\r\n                  (y[9] = _ * e + A * a + T * l + M * c),\r\n                  (y[10] = _ * i + A * n + T * p + M * d),\r\n                  (y[11] = _ * r + A * o + T * f + M * u),\r\n                  (y[12] = k * t + D * s + F * h + w * m),\r\n                  (y[13] = k * e + D * a + F * l + w * c),\r\n                  (y[14] = k * i + D * n + F * p + w * d),\r\n                  (y[15] = k * r + D * o + F * f + w * u),\r\n                  (this._identityCalculated = !1),\r\n                  this\r\n                );\r\n              }\r\n              function y(t) {\r\n                var e = t.props;\r\n                return this.transform(\r\n                  e[0],\r\n                  e[1],\r\n                  e[2],\r\n                  e[3],\r\n                  e[4],\r\n                  e[5],\r\n                  e[6],\r\n                  e[7],\r\n                  e[8],\r\n                  e[9],\r\n                  e[10],\r\n                  e[11],\r\n                  e[12],\r\n                  e[13],\r\n                  e[14],\r\n                  e[15]\r\n                );\r\n              }\r\n              function g() {\r\n                return (\r\n                  this._identityCalculated ||\r\n                    ((this._identity = !(\r\n                      1 !== this.props[0] ||\r\n                      0 !== this.props[1] ||\r\n                      0 !== this.props[2] ||\r\n                      0 !== this.props[3] ||\r\n                      0 !== this.props[4] ||\r\n                      1 !== this.props[5] ||\r\n                      0 !== this.props[6] ||\r\n                      0 !== this.props[7] ||\r\n                      0 !== this.props[8] ||\r\n                      0 !== this.props[9] ||\r\n                      1 !== this.props[10] ||\r\n                      0 !== this.props[11] ||\r\n                      0 !== this.props[12] ||\r\n                      0 !== this.props[13] ||\r\n                      0 !== this.props[14] ||\r\n                      1 !== this.props[15]\r\n                    )),\r\n                    (this._identityCalculated = !0)),\r\n                  this._identity\r\n                );\r\n              }\r\n              function v(t) {\r\n                for (var e = 0; e < 16; ) {\r\n                  if (t.props[e] !== this.props[e]) return !1;\r\n                  e += 1;\r\n                }\r\n                return !0;\r\n              }\r\n              function b(t) {\r\n                var e;\r\n                for (e = 0; e < 16; e += 1) t.props[e] = this.props[e];\r\n                return t;\r\n              }\r\n              function x(t) {\r\n                var e;\r\n                for (e = 0; e < 16; e += 1) this.props[e] = t[e];\r\n              }\r\n              function P(t, e, i) {\r\n                return {\r\n                  x:\r\n                    t * this.props[0] +\r\n                    e * this.props[4] +\r\n                    i * this.props[8] +\r\n                    this.props[12],\r\n                  y:\r\n                    t * this.props[1] +\r\n                    e * this.props[5] +\r\n                    i * this.props[9] +\r\n                    this.props[13],\r\n                  z:\r\n                    t * this.props[2] +\r\n                    e * this.props[6] +\r\n                    i * this.props[10] +\r\n                    this.props[14],\r\n                };\r\n              }\r\n              function E(t, e, i) {\r\n                return (\r\n                  t * this.props[0] +\r\n                  e * this.props[4] +\r\n                  i * this.props[8] +\r\n                  this.props[12]\r\n                );\r\n              }\r\n              function S(t, e, i) {\r\n                return (\r\n                  t * this.props[1] +\r\n                  e * this.props[5] +\r\n                  i * this.props[9] +\r\n                  this.props[13]\r\n                );\r\n              }\r\n              function C(t, e, i) {\r\n                return (\r\n                  t * this.props[2] +\r\n                  e * this.props[6] +\r\n                  i * this.props[10] +\r\n                  this.props[14]\r\n                );\r\n              }\r\n              function _() {\r\n                var t =\r\n                    this.props[0] * this.props[5] -\r\n                    this.props[1] * this.props[4],\r\n                  e = this.props[5] \/ t,\r\n                  i = -this.props[1] \/ t,\r\n                  r = -this.props[4] \/ t,\r\n                  s = this.props[0] \/ t,\r\n                  a =\r\n                    (this.props[4] * this.props[13] -\r\n                      this.props[5] * this.props[12]) \/\r\n                    t,\r\n                  n =\r\n                    -(\r\n                      this.props[0] * this.props[13] -\r\n                      this.props[1] * this.props[12]\r\n                    ) \/ t,\r\n                  o = new Matrix();\r\n                return (\r\n                  (o.props[0] = e),\r\n                  (o.props[1] = i),\r\n                  (o.props[4] = r),\r\n                  (o.props[5] = s),\r\n                  (o.props[12] = a),\r\n                  (o.props[13] = n),\r\n                  o\r\n                );\r\n              }\r\n              function A(t) {\r\n                return this.getInverseMatrix().applyToPointArray(\r\n                  t[0],\r\n                  t[1],\r\n                  t[2] || 0\r\n                );\r\n              }\r\n              function T(t) {\r\n                var e,\r\n                  i = t.length,\r\n                  r = [];\r\n                for (e = 0; e < i; e += 1) r[e] = A(t[e]);\r\n                return r;\r\n              }\r\n              function M(t, e, i) {\r\n                var r = createTypedArray(\"float32\", 6);\r\n                if (this.isIdentity())\r\n                  (r[0] = t[0]),\r\n                    (r[1] = t[1]),\r\n                    (r[2] = e[0]),\r\n                    (r[3] = e[1]),\r\n                    (r[4] = i[0]),\r\n                    (r[5] = i[1]);\r\n                else {\r\n                  var s = this.props[0],\r\n                    a = this.props[1],\r\n                    n = this.props[4],\r\n                    o = this.props[5],\r\n                    h = this.props[12],\r\n                    l = this.props[13];\r\n                  (r[0] = t[0] * s + t[1] * n + h),\r\n                    (r[1] = t[0] * a + t[1] * o + l),\r\n                    (r[2] = e[0] * s + e[1] * n + h),\r\n                    (r[3] = e[0] * a + e[1] * o + l),\r\n                    (r[4] = i[0] * s + i[1] * n + h),\r\n                    (r[5] = i[0] * a + i[1] * o + l);\r\n                }\r\n                return r;\r\n              }\r\n              function k(t, e, i) {\r\n                return this.isIdentity()\r\n                  ? [t, e, i]\r\n                  : [\r\n                      t * this.props[0] +\r\n                        e * this.props[4] +\r\n                        i * this.props[8] +\r\n                        this.props[12],\r\n                      t * this.props[1] +\r\n                        e * this.props[5] +\r\n                        i * this.props[9] +\r\n                        this.props[13],\r\n                      t * this.props[2] +\r\n                        e * this.props[6] +\r\n                        i * this.props[10] +\r\n                        this.props[14],\r\n                    ];\r\n              }\r\n              function D(t, e) {\r\n                if (this.isIdentity()) return t + \",\" + e;\r\n                var i = this.props;\r\n                return (\r\n                  Math.round(100 * (t * i[0] + e * i[4] + i[12])) \/ 100 +\r\n                  \",\" +\r\n                  Math.round(100 * (t * i[1] + e * i[5] + i[13])) \/ 100\r\n                );\r\n              }\r\n              function F() {\r\n                for (var t = 0, e = this.props, i = \"matrix3d(\"; t < 16; )\r\n                  (i += r(1e4 * e[t]) \/ 1e4),\r\n                    (i += 15 === t ? \")\" : \",\"),\r\n                    (t += 1);\r\n                return i;\r\n              }\r\n              function w(t) {\r\n                return (t < 1e-6 && t > 0) || (t > -1e-6 && t < 0)\r\n                  ? r(1e4 * t) \/ 1e4\r\n                  : t;\r\n              }\r\n              function I() {\r\n                var t = this.props;\r\n                return (\r\n                  \"matrix(\" +\r\n                  w(t[0]) +\r\n                  \",\" +\r\n                  w(t[1]) +\r\n                  \",\" +\r\n                  w(t[4]) +\r\n                  \",\" +\r\n                  w(t[5]) +\r\n                  \",\" +\r\n                  w(t[12]) +\r\n                  \",\" +\r\n                  w(t[13]) +\r\n                  \")\"\r\n                );\r\n              }\r\n              return function () {\r\n                (this.reset = s),\r\n                  (this.rotate = a),\r\n                  (this.rotateX = n),\r\n                  (this.rotateY = o),\r\n                  (this.rotateZ = h),\r\n                  (this.skew = p),\r\n                  (this.skewFromAxis = f),\r\n                  (this.shear = l),\r\n                  (this.scale = m),\r\n                  (this.setTransform = c),\r\n                  (this.translate = d),\r\n                  (this.transform = u),\r\n                  (this.multiply = y),\r\n                  (this.applyToPoint = P),\r\n                  (this.applyToX = E),\r\n                  (this.applyToY = S),\r\n                  (this.applyToZ = C),\r\n                  (this.applyToPointArray = k),\r\n                  (this.applyToTriplePoints = M),\r\n                  (this.applyToPointStringified = D),\r\n                  (this.toCSS = F),\r\n                  (this.to2dCSS = I),\r\n                  (this.clone = b),\r\n                  (this.cloneFromProps = x),\r\n                  (this.equals = v),\r\n                  (this.inversePoints = T),\r\n                  (this.inversePoint = A),\r\n                  (this.getInverseMatrix = _),\r\n                  (this._t = this.transform),\r\n                  (this.isIdentity = g),\r\n                  (this._identity = !0),\r\n                  (this._identityCalculated = !1),\r\n                  (this.props = createTypedArray(\"float32\", 16)),\r\n                  this.reset();\r\n              };\r\n            })();\r\n          function _typeof$3(t) {\r\n            return (\r\n              (_typeof$3 =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof$3(t)\r\n            );\r\n          }\r\n          var lottie = {},\r\n            standalone = \"__[STANDALONE]__\",\r\n            animationData = \"__[ANIMATIONDATA]__\",\r\n            renderer = \"\";\r\n          function setLocation(t) {\r\n            setLocationHref(t);\r\n          }\r\n          function searchAnimations() {\r\n            !0 === standalone\r\n              ? animationManager.searchAnimations(\r\n                  animationData,\r\n                  standalone,\r\n                  renderer\r\n                )\r\n              : animationManager.searchAnimations();\r\n          }\r\n          function setSubframeRendering(t) {\r\n            setSubframeEnabled(t);\r\n          }\r\n          function setPrefix(t) {\r\n            setIdPrefix(t);\r\n          }\r\n          function loadAnimation(t) {\r\n            return (\r\n              !0 === standalone &&\r\n                (t.animationData = JSON.parse(animationData)),\r\n              animationManager.loadAnimation(t)\r\n            );\r\n          }\r\n          function setQuality(t) {\r\n            if (\"string\" == typeof t)\r\n              switch (t) {\r\n                case \"high\":\r\n                  setDefaultCurveSegments(200);\r\n                  break;\r\n                default:\r\n                case \"medium\":\r\n                  setDefaultCurveSegments(50);\r\n                  break;\r\n                case \"low\":\r\n                  setDefaultCurveSegments(10);\r\n              }\r\n            else !isNaN(t) && t > 1 && setDefaultCurveSegments(t);\r\n            getDefaultCurveSegments() >= 50 ? roundValues(!1) : roundValues(!0);\r\n          }\r\n          function inBrowser() {\r\n            return \"undefined\" != typeof navigator;\r\n          }\r\n          function installPlugin(t, e) {\r\n            \"expressions\" === t && setExpressionsPlugin(e);\r\n          }\r\n          function getFactory(t) {\r\n            switch (t) {\r\n              case \"propertyFactory\":\r\n                return PropertyFactory;\r\n              case \"shapePropertyFactory\":\r\n                return ShapePropertyFactory;\r\n              case \"matrix\":\r\n                return Matrix;\r\n              default:\r\n                return null;\r\n            }\r\n          }\r\n          function checkReady() {\r\n            \"complete\" === document.readyState &&\r\n              (clearInterval(readyStateCheckInterval), searchAnimations());\r\n          }\r\n          function getQueryVariable(t) {\r\n            for (var e = queryString.split(\"&\"), i = 0; i < e.length; i += 1) {\r\n              var r = e[i].split(\"=\");\r\n              if (decodeURIComponent(r[0]) == t)\r\n                return decodeURIComponent(r[1]);\r\n            }\r\n            return null;\r\n          }\r\n          (lottie.play = animationManager.play),\r\n            (lottie.pause = animationManager.pause),\r\n            (lottie.setLocationHref = setLocation),\r\n            (lottie.togglePause = animationManager.togglePause),\r\n            (lottie.setSpeed = animationManager.setSpeed),\r\n            (lottie.setDirection = animationManager.setDirection),\r\n            (lottie.stop = animationManager.stop),\r\n            (lottie.searchAnimations = searchAnimations),\r\n            (lottie.registerAnimation = animationManager.registerAnimation),\r\n            (lottie.loadAnimation = loadAnimation),\r\n            (lottie.setSubframeRendering = setSubframeRendering),\r\n            (lottie.resize = animationManager.resize),\r\n            (lottie.goToAndStop = animationManager.goToAndStop),\r\n            (lottie.destroy = animationManager.destroy),\r\n            (lottie.setQuality = setQuality),\r\n            (lottie.inBrowser = inBrowser),\r\n            (lottie.installPlugin = installPlugin),\r\n            (lottie.freeze = animationManager.freeze),\r\n            (lottie.unfreeze = animationManager.unfreeze),\r\n            (lottie.setVolume = animationManager.setVolume),\r\n            (lottie.mute = animationManager.mute),\r\n            (lottie.unmute = animationManager.unmute),\r\n            (lottie.getRegisteredAnimations =\r\n              animationManager.getRegisteredAnimations),\r\n            (lottie.useWebWorker = setWebWorker),\r\n            (lottie.setIDPrefix = setPrefix),\r\n            (lottie.__getFactory = getFactory),\r\n            (lottie.version = \"5.12.1\");\r\n          var queryString = \"\";\r\n          if (standalone) {\r\n            var scripts = document.getElementsByTagName(\"script\"),\r\n              index = scripts.length - 1,\r\n              myScript = scripts[index] || { src: \"\" };\r\n            (queryString = myScript.src\r\n              ? myScript.src.replace(\/^[^\\?]+\\??\/, \"\")\r\n              : \"\"),\r\n              (renderer = getQueryVariable(\"renderer\"));\r\n          }\r\n          var readyStateCheckInterval = setInterval(checkReady, 100);\r\n          try {\r\n            (\"object\" ===\r\n              (\"undefined\" == typeof exports\r\n                ? \"undefined\"\r\n                : _typeof$3(exports)) &&\r\n              \"undefined\" != typeof module) ||\r\n              (\"function\" == typeof define && define.amd) ||\r\n              (window.bodymovin = lottie);\r\n          } catch (t) {}\r\n          var ShapeModifiers = (function () {\r\n            var t = {},\r\n              e = {};\r\n            return (\r\n              (t.registerModifier = function (t, i) {\r\n                e[t] || (e[t] = i);\r\n              }),\r\n              (t.getModifier = function (t, i, r) {\r\n                return new e[t](i, r);\r\n              }),\r\n              t\r\n            );\r\n          })();\r\n          function ShapeModifier() {}\r\n          function TrimModifier() {}\r\n          function PuckerAndBloatModifier() {}\r\n          (ShapeModifier.prototype.initModifierProperties = function () {}),\r\n            (ShapeModifier.prototype.addShapeToModifier = function () {}),\r\n            (ShapeModifier.prototype.addShape = function (t) {\r\n              if (!this.closed) {\r\n                t.sh.container.addDynamicProperty(t.sh);\r\n                var e = {\r\n                  shape: t.sh,\r\n                  data: t,\r\n                  localShapeCollection:\r\n                    shapeCollectionPool.newShapeCollection(),\r\n                };\r\n                this.shapes.push(e),\r\n                  this.addShapeToModifier(e),\r\n                  this._isAnimated && t.setAsAnimated();\r\n              }\r\n            }),\r\n            (ShapeModifier.prototype.init = function (t, e) {\r\n              (this.shapes = []),\r\n                (this.elem = t),\r\n                this.initDynamicPropertyContainer(t),\r\n                this.initModifierProperties(t, e),\r\n                (this.frameId = initialDefaultFrame),\r\n                (this.closed = !1),\r\n                (this.k = !1),\r\n                this.dynamicProperties.length\r\n                  ? (this.k = !0)\r\n                  : this.getValue(!0);\r\n            }),\r\n            (ShapeModifier.prototype.processKeys = function () {\r\n              this.elem.globalData.frameId !== this.frameId &&\r\n                ((this.frameId = this.elem.globalData.frameId),\r\n                this.iterateDynamicProperties());\r\n            }),\r\n            extendPrototype([DynamicPropertyContainer], ShapeModifier),\r\n            extendPrototype([ShapeModifier], TrimModifier),\r\n            (TrimModifier.prototype.initModifierProperties = function (t, e) {\r\n              (this.s = PropertyFactory.getProp(t, e.s, 0, 0.01, this)),\r\n                (this.e = PropertyFactory.getProp(t, e.e, 0, 0.01, this)),\r\n                (this.o = PropertyFactory.getProp(t, e.o, 0, 0, this)),\r\n                (this.sValue = 0),\r\n                (this.eValue = 0),\r\n                (this.getValue = this.processKeys),\r\n                (this.m = e.m),\r\n                (this._isAnimated =\r\n                  !!this.s.effectsSequence.length ||\r\n                  !!this.e.effectsSequence.length ||\r\n                  !!this.o.effectsSequence.length);\r\n            }),\r\n            (TrimModifier.prototype.addShapeToModifier = function (t) {\r\n              t.pathsData = [];\r\n            }),\r\n            (TrimModifier.prototype.calculateShapeEdges = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s\r\n            ) {\r\n              var a = [];\r\n              e <= 1\r\n                ? a.push({ s: t, e: e })\r\n                : t >= 1\r\n                ? a.push({ s: t - 1, e: e - 1 })\r\n                : (a.push({ s: t, e: 1 }), a.push({ s: 0, e: e - 1 }));\r\n              var n,\r\n                o,\r\n                h = [],\r\n                l = a.length;\r\n              for (n = 0; n < l; n += 1) {\r\n                var p, f;\r\n                if (!((o = a[n]).e * s < r || o.s * s > r + i))\r\n                  (p = o.s * s <= r ? 0 : (o.s * s - r) \/ i),\r\n                    (f = o.e * s >= r + i ? 1 : (o.e * s - r) \/ i),\r\n                    h.push([p, f]);\r\n              }\r\n              return h.length || h.push([0, 0]), h;\r\n            }),\r\n            (TrimModifier.prototype.releasePathsData = function (t) {\r\n              var e,\r\n                i = t.length;\r\n              for (e = 0; e < i; e += 1) segmentsLengthPool.release(t[e]);\r\n              return (t.length = 0), t;\r\n            }),\r\n            (TrimModifier.prototype.processShapes = function (t) {\r\n              var e, i, r, s;\r\n              if (this._mdf || t) {\r\n                var a = (this.o.v % 360) \/ 360;\r\n                if (\r\n                  (a < 0 && (a += 1),\r\n                  (e =\r\n                    this.s.v > 1\r\n                      ? 1 + a\r\n                      : this.s.v < 0\r\n                      ? 0 + a\r\n                      : this.s.v + a) >\r\n                    (i =\r\n                      this.e.v > 1\r\n                        ? 1 + a\r\n                        : this.e.v < 0\r\n                        ? 0 + a\r\n                        : this.e.v + a))\r\n                ) {\r\n                  var n = e;\r\n                  (e = i), (i = n);\r\n                }\r\n                (e = 1e-4 * Math.round(1e4 * e)),\r\n                  (i = 1e-4 * Math.round(1e4 * i)),\r\n                  (this.sValue = e),\r\n                  (this.eValue = i);\r\n              } else (e = this.sValue), (i = this.eValue);\r\n              var o,\r\n                h,\r\n                l,\r\n                p,\r\n                f,\r\n                m = this.shapes.length,\r\n                c = 0;\r\n              if (i === e)\r\n                for (s = 0; s < m; s += 1)\r\n                  this.shapes[s].localShapeCollection.releaseShapes(),\r\n                    (this.shapes[s].shape._mdf = !0),\r\n                    (this.shapes[s].shape.paths =\r\n                      this.shapes[s].localShapeCollection),\r\n                    this._mdf && (this.shapes[s].pathsData.length = 0);\r\n              else if ((1 === i && 0 === e) || (0 === i && 1 === e)) {\r\n                if (this._mdf)\r\n                  for (s = 0; s < m; s += 1)\r\n                    (this.shapes[s].pathsData.length = 0),\r\n                      (this.shapes[s].shape._mdf = !0);\r\n              } else {\r\n                var d,\r\n                  u,\r\n                  y = [];\r\n                for (s = 0; s < m; s += 1)\r\n                  if (\r\n                    (d = this.shapes[s]).shape._mdf ||\r\n                    this._mdf ||\r\n                    t ||\r\n                    2 === this.m\r\n                  ) {\r\n                    if (\r\n                      ((h = (r = d.shape.paths)._length),\r\n                      (f = 0),\r\n                      !d.shape._mdf && d.pathsData.length)\r\n                    )\r\n                      f = d.totalShapeLength;\r\n                    else {\r\n                      for (\r\n                        l = this.releasePathsData(d.pathsData), o = 0;\r\n                        o < h;\r\n                        o += 1\r\n                      )\r\n                        (p = bez.getSegmentsLength(r.shapes[o])),\r\n                          l.push(p),\r\n                          (f += p.totalLength);\r\n                      (d.totalShapeLength = f), (d.pathsData = l);\r\n                    }\r\n                    (c += f), (d.shape._mdf = !0);\r\n                  } else d.shape.paths = d.localShapeCollection;\r\n                var g,\r\n                  v = e,\r\n                  b = i,\r\n                  x = 0;\r\n                for (s = m - 1; s >= 0; s -= 1)\r\n                  if ((d = this.shapes[s]).shape._mdf) {\r\n                    for (\r\n                      (u = d.localShapeCollection).releaseShapes(),\r\n                        2 === this.m && m > 1\r\n                          ? ((g = this.calculateShapeEdges(\r\n                              e,\r\n                              i,\r\n                              d.totalShapeLength,\r\n                              x,\r\n                              c\r\n                            )),\r\n                            (x += d.totalShapeLength))\r\n                          : (g = [[v, b]]),\r\n                        h = g.length,\r\n                        o = 0;\r\n                      o < h;\r\n                      o += 1\r\n                    ) {\r\n                      (v = g[o][0]),\r\n                        (b = g[o][1]),\r\n                        (y.length = 0),\r\n                        b <= 1\r\n                          ? y.push({\r\n                              s: d.totalShapeLength * v,\r\n                              e: d.totalShapeLength * b,\r\n                            })\r\n                          : v >= 1\r\n                          ? y.push({\r\n                              s: d.totalShapeLength * (v - 1),\r\n                              e: d.totalShapeLength * (b - 1),\r\n                            })\r\n                          : (y.push({\r\n                              s: d.totalShapeLength * v,\r\n                              e: d.totalShapeLength,\r\n                            }),\r\n                            y.push({ s: 0, e: d.totalShapeLength * (b - 1) }));\r\n                      var P = this.addShapes(d, y[0]);\r\n                      if (y[0].s !== y[0].e) {\r\n                        if (y.length > 1)\r\n                          if (\r\n                            d.shape.paths.shapes[d.shape.paths._length - 1].c\r\n                          ) {\r\n                            var E = P.pop();\r\n                            this.addPaths(P, u),\r\n                              (P = this.addShapes(d, y[1], E));\r\n                          } else\r\n                            this.addPaths(P, u), (P = this.addShapes(d, y[1]));\r\n                        this.addPaths(P, u);\r\n                      }\r\n                    }\r\n                    d.shape.paths = u;\r\n                  }\r\n              }\r\n            }),\r\n            (TrimModifier.prototype.addPaths = function (t, e) {\r\n              var i,\r\n                r = t.length;\r\n              for (i = 0; i < r; i += 1) e.addShape(t[i]);\r\n            }),\r\n            (TrimModifier.prototype.addSegment = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s,\r\n              a,\r\n              n\r\n            ) {\r\n              s.setXYAt(e[0], e[1], \"o\", a),\r\n                s.setXYAt(i[0], i[1], \"i\", a + 1),\r\n                n && s.setXYAt(t[0], t[1], \"v\", a),\r\n                s.setXYAt(r[0], r[1], \"v\", a + 1);\r\n            }),\r\n            (TrimModifier.prototype.addSegmentFromArray = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r\r\n            ) {\r\n              e.setXYAt(t[1], t[5], \"o\", i),\r\n                e.setXYAt(t[2], t[6], \"i\", i + 1),\r\n                r && e.setXYAt(t[0], t[4], \"v\", i),\r\n                e.setXYAt(t[3], t[7], \"v\", i + 1);\r\n            }),\r\n            (TrimModifier.prototype.addShapes = function (t, e, i) {\r\n              var r,\r\n                s,\r\n                a,\r\n                n,\r\n                o,\r\n                h,\r\n                l,\r\n                p,\r\n                f = t.pathsData,\r\n                m = t.shape.paths.shapes,\r\n                c = t.shape.paths._length,\r\n                d = 0,\r\n                u = [],\r\n                y = !0;\r\n              for (\r\n                i\r\n                  ? ((o = i._length), (p = i._length))\r\n                  : ((i = shapePool.newElement()), (o = 0), (p = 0)),\r\n                  u.push(i),\r\n                  r = 0;\r\n                r < c;\r\n                r += 1\r\n              ) {\r\n                for (\r\n                  h = f[r].lengths,\r\n                    i.c = m[r].c,\r\n                    a = m[r].c ? h.length : h.length + 1,\r\n                    s = 1;\r\n                  s < a;\r\n                  s += 1\r\n                )\r\n                  if (d + (n = h[s - 1]).addedLength < e.s)\r\n                    (d += n.addedLength), (i.c = !1);\r\n                  else {\r\n                    if (d > e.e) {\r\n                      i.c = !1;\r\n                      break;\r\n                    }\r\n                    e.s <= d && e.e >= d + n.addedLength\r\n                      ? (this.addSegment(\r\n                          m[r].v[s - 1],\r\n                          m[r].o[s - 1],\r\n                          m[r].i[s],\r\n                          m[r].v[s],\r\n                          i,\r\n                          o,\r\n                          y\r\n                        ),\r\n                        (y = !1))\r\n                      : ((l = bez.getNewSegment(\r\n                          m[r].v[s - 1],\r\n                          m[r].v[s],\r\n                          m[r].o[s - 1],\r\n                          m[r].i[s],\r\n                          (e.s - d) \/ n.addedLength,\r\n                          (e.e - d) \/ n.addedLength,\r\n                          h[s - 1]\r\n                        )),\r\n                        this.addSegmentFromArray(l, i, o, y),\r\n                        (y = !1),\r\n                        (i.c = !1)),\r\n                      (d += n.addedLength),\r\n                      (o += 1);\r\n                  }\r\n                if (m[r].c && h.length) {\r\n                  if (((n = h[s - 1]), d <= e.e)) {\r\n                    var g = h[s - 1].addedLength;\r\n                    e.s <= d && e.e >= d + g\r\n                      ? (this.addSegment(\r\n                          m[r].v[s - 1],\r\n                          m[r].o[s - 1],\r\n                          m[r].i[0],\r\n                          m[r].v[0],\r\n                          i,\r\n                          o,\r\n                          y\r\n                        ),\r\n                        (y = !1))\r\n                      : ((l = bez.getNewSegment(\r\n                          m[r].v[s - 1],\r\n                          m[r].v[0],\r\n                          m[r].o[s - 1],\r\n                          m[r].i[0],\r\n                          (e.s - d) \/ g,\r\n                          (e.e - d) \/ g,\r\n                          h[s - 1]\r\n                        )),\r\n                        this.addSegmentFromArray(l, i, o, y),\r\n                        (y = !1),\r\n                        (i.c = !1));\r\n                  } else i.c = !1;\r\n                  (d += n.addedLength), (o += 1);\r\n                }\r\n                if (\r\n                  (i._length &&\r\n                    (i.setXYAt(i.v[p][0], i.v[p][1], \"i\", p),\r\n                    i.setXYAt(\r\n                      i.v[i._length - 1][0],\r\n                      i.v[i._length - 1][1],\r\n                      \"o\",\r\n                      i._length - 1\r\n                    )),\r\n                  d > e.e)\r\n                )\r\n                  break;\r\n                r < c - 1 &&\r\n                  ((i = shapePool.newElement()), (y = !0), u.push(i), (o = 0));\r\n              }\r\n              return u;\r\n            }),\r\n            extendPrototype([ShapeModifier], PuckerAndBloatModifier),\r\n            (PuckerAndBloatModifier.prototype.initModifierProperties =\r\n              function (t, e) {\r\n                (this.getValue = this.processKeys),\r\n                  (this.amount = PropertyFactory.getProp(\r\n                    t,\r\n                    e.a,\r\n                    0,\r\n                    null,\r\n                    this\r\n                  )),\r\n                  (this._isAnimated = !!this.amount.effectsSequence.length);\r\n              }),\r\n            (PuckerAndBloatModifier.prototype.processPath = function (t, e) {\r\n              var i = e \/ 100,\r\n                r = [0, 0],\r\n                s = t._length,\r\n                a = 0;\r\n              for (a = 0; a < s; a += 1)\r\n                (r[0] += t.v[a][0]), (r[1] += t.v[a][1]);\r\n              (r[0] \/= s), (r[1] \/= s);\r\n              var n,\r\n                o,\r\n                h,\r\n                l,\r\n                p,\r\n                f,\r\n                m = shapePool.newElement();\r\n              for (m.c = t.c, a = 0; a < s; a += 1)\r\n                (n = t.v[a][0] + (r[0] - t.v[a][0]) * i),\r\n                  (o = t.v[a][1] + (r[1] - t.v[a][1]) * i),\r\n                  (h = t.o[a][0] + (r[0] - t.o[a][0]) * -i),\r\n                  (l = t.o[a][1] + (r[1] - t.o[a][1]) * -i),\r\n                  (p = t.i[a][0] + (r[0] - t.i[a][0]) * -i),\r\n                  (f = t.i[a][1] + (r[1] - t.i[a][1]) * -i),\r\n                  m.setTripleAt(n, o, h, l, p, f, a);\r\n              return m;\r\n            }),\r\n            (PuckerAndBloatModifier.prototype.processShapes = function (t) {\r\n              var e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o = this.shapes.length,\r\n                h = this.amount.v;\r\n              if (0 !== h)\r\n                for (i = 0; i < o; i += 1) {\r\n                  if (\r\n                    ((n = (a = this.shapes[i]).localShapeCollection),\r\n                    a.shape._mdf || this._mdf || t)\r\n                  )\r\n                    for (\r\n                      n.releaseShapes(),\r\n                        a.shape._mdf = !0,\r\n                        e = a.shape.paths.shapes,\r\n                        s = a.shape.paths._length,\r\n                        r = 0;\r\n                      r < s;\r\n                      r += 1\r\n                    )\r\n                      n.addShape(this.processPath(e[r], h));\r\n                  a.shape.paths = a.localShapeCollection;\r\n                }\r\n              this.dynamicProperties.length || (this._mdf = !1);\r\n            });\r\n          var TransformPropertyFactory = (function () {\r\n            var t = [0, 0];\r\n            function e(t, e, i) {\r\n              if (\r\n                ((this.elem = t),\r\n                (this.frameId = -1),\r\n                (this.propType = \"transform\"),\r\n                (this.data = e),\r\n                (this.v = new Matrix()),\r\n                (this.pre = new Matrix()),\r\n                (this.appliedTransformations = 0),\r\n                this.initDynamicPropertyContainer(i || t),\r\n                e.p && e.p.s\r\n                  ? ((this.px = PropertyFactory.getProp(t, e.p.x, 0, 0, this)),\r\n                    (this.py = PropertyFactory.getProp(t, e.p.y, 0, 0, this)),\r\n                    e.p.z &&\r\n                      (this.pz = PropertyFactory.getProp(t, e.p.z, 0, 0, this)))\r\n                  : (this.p = PropertyFactory.getProp(\r\n                      t,\r\n                      e.p || { k: [0, 0, 0] },\r\n                      1,\r\n                      0,\r\n                      this\r\n                    )),\r\n                e.rx)\r\n              ) {\r\n                if (\r\n                  ((this.rx = PropertyFactory.getProp(\r\n                    t,\r\n                    e.rx,\r\n                    0,\r\n                    degToRads,\r\n                    this\r\n                  )),\r\n                  (this.ry = PropertyFactory.getProp(\r\n                    t,\r\n                    e.ry,\r\n                    0,\r\n                    degToRads,\r\n                    this\r\n                  )),\r\n                  (this.rz = PropertyFactory.getProp(\r\n                    t,\r\n                    e.rz,\r\n                    0,\r\n                    degToRads,\r\n                    this\r\n                  )),\r\n                  e.or.k[0].ti)\r\n                ) {\r\n                  var r,\r\n                    s = e.or.k.length;\r\n                  for (r = 0; r < s; r += 1)\r\n                    (e.or.k[r].to = null), (e.or.k[r].ti = null);\r\n                }\r\n                (this.or = PropertyFactory.getProp(\r\n                  t,\r\n                  e.or,\r\n                  1,\r\n                  degToRads,\r\n                  this\r\n                )),\r\n                  (this.or.sh = !0);\r\n              } else\r\n                this.r = PropertyFactory.getProp(\r\n                  t,\r\n                  e.r || { k: 0 },\r\n                  0,\r\n                  degToRads,\r\n                  this\r\n                );\r\n              e.sk &&\r\n                ((this.sk = PropertyFactory.getProp(\r\n                  t,\r\n                  e.sk,\r\n                  0,\r\n                  degToRads,\r\n                  this\r\n                )),\r\n                (this.sa = PropertyFactory.getProp(\r\n                  t,\r\n                  e.sa,\r\n                  0,\r\n                  degToRads,\r\n                  this\r\n                ))),\r\n                (this.a = PropertyFactory.getProp(\r\n                  t,\r\n                  e.a || { k: [0, 0, 0] },\r\n                  1,\r\n                  0,\r\n                  this\r\n                )),\r\n                (this.s = PropertyFactory.getProp(\r\n                  t,\r\n                  e.s || { k: [100, 100, 100] },\r\n                  1,\r\n                  0.01,\r\n                  this\r\n                )),\r\n                e.o\r\n                  ? (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, t))\r\n                  : (this.o = { _mdf: !1, v: 1 }),\r\n                (this._isDirty = !0),\r\n                this.dynamicProperties.length || this.getValue(!0);\r\n            }\r\n            return (\r\n              (e.prototype = {\r\n                applyToMatrix: function (t) {\r\n                  var e = this._mdf;\r\n                  this.iterateDynamicProperties(),\r\n                    (this._mdf = this._mdf || e),\r\n                    this.a &&\r\n                      t.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]),\r\n                    this.s && t.scale(this.s.v[0], this.s.v[1], this.s.v[2]),\r\n                    this.sk && t.skewFromAxis(-this.sk.v, this.sa.v),\r\n                    this.r\r\n                      ? t.rotate(-this.r.v)\r\n                      : t\r\n                          .rotateZ(-this.rz.v)\r\n                          .rotateY(this.ry.v)\r\n                          .rotateX(this.rx.v)\r\n                          .rotateZ(-this.or.v[2])\r\n                          .rotateY(this.or.v[1])\r\n                          .rotateX(this.or.v[0]),\r\n                    this.data.p.s\r\n                      ? this.data.p.z\r\n                        ? t.translate(this.px.v, this.py.v, -this.pz.v)\r\n                        : t.translate(this.px.v, this.py.v, 0)\r\n                      : t.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n                },\r\n                getValue: function (e) {\r\n                  if (this.elem.globalData.frameId !== this.frameId) {\r\n                    if (\r\n                      (this._isDirty &&\r\n                        (this.precalculateMatrix(), (this._isDirty = !1)),\r\n                      this.iterateDynamicProperties(),\r\n                      this._mdf || e)\r\n                    ) {\r\n                      var i;\r\n                      if (\r\n                        (this.v.cloneFromProps(this.pre.props),\r\n                        this.appliedTransformations < 1 &&\r\n                          this.v.translate(\r\n                            -this.a.v[0],\r\n                            -this.a.v[1],\r\n                            this.a.v[2]\r\n                          ),\r\n                        this.appliedTransformations < 2 &&\r\n                          this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]),\r\n                        this.sk &&\r\n                          this.appliedTransformations < 3 &&\r\n                          this.v.skewFromAxis(-this.sk.v, this.sa.v),\r\n                        this.r && this.appliedTransformations < 4\r\n                          ? this.v.rotate(-this.r.v)\r\n                          : !this.r &&\r\n                            this.appliedTransformations < 4 &&\r\n                            this.v\r\n                              .rotateZ(-this.rz.v)\r\n                              .rotateY(this.ry.v)\r\n                              .rotateX(this.rx.v)\r\n                              .rotateZ(-this.or.v[2])\r\n                              .rotateY(this.or.v[1])\r\n                              .rotateX(this.or.v[0]),\r\n                        this.autoOriented)\r\n                      ) {\r\n                        var r, s;\r\n                        if (\r\n                          ((i = this.elem.globalData.frameRate),\r\n                          this.p && this.p.keyframes && this.p.getValueAtTime)\r\n                        )\r\n                          this.p._caching.lastFrame + this.p.offsetTime <=\r\n                          this.p.keyframes[0].t\r\n                            ? ((r = this.p.getValueAtTime(\r\n                                (this.p.keyframes[0].t + 0.01) \/ i,\r\n                                0\r\n                              )),\r\n                              (s = this.p.getValueAtTime(\r\n                                this.p.keyframes[0].t \/ i,\r\n                                0\r\n                              )))\r\n                            : this.p._caching.lastFrame + this.p.offsetTime >=\r\n                              this.p.keyframes[this.p.keyframes.length - 1].t\r\n                            ? ((r = this.p.getValueAtTime(\r\n                                this.p.keyframes[this.p.keyframes.length - 1]\r\n                                  .t \/ i,\r\n                                0\r\n                              )),\r\n                              (s = this.p.getValueAtTime(\r\n                                (this.p.keyframes[this.p.keyframes.length - 1]\r\n                                  .t -\r\n                                  0.05) \/\r\n                                  i,\r\n                                0\r\n                              )))\r\n                            : ((r = this.p.pv),\r\n                              (s = this.p.getValueAtTime(\r\n                                (this.p._caching.lastFrame +\r\n                                  this.p.offsetTime -\r\n                                  0.01) \/\r\n                                  i,\r\n                                this.p.offsetTime\r\n                              )));\r\n                        else if (\r\n                          this.px &&\r\n                          this.px.keyframes &&\r\n                          this.py.keyframes &&\r\n                          this.px.getValueAtTime &&\r\n                          this.py.getValueAtTime\r\n                        ) {\r\n                          (r = []), (s = []);\r\n                          var a = this.px,\r\n                            n = this.py;\r\n                          a._caching.lastFrame + a.offsetTime <=\r\n                          a.keyframes[0].t\r\n                            ? ((r[0] = a.getValueAtTime(\r\n                                (a.keyframes[0].t + 0.01) \/ i,\r\n                                0\r\n                              )),\r\n                              (r[1] = n.getValueAtTime(\r\n                                (n.keyframes[0].t + 0.01) \/ i,\r\n                                0\r\n                              )),\r\n                              (s[0] = a.getValueAtTime(\r\n                                a.keyframes[0].t \/ i,\r\n                                0\r\n                              )),\r\n                              (s[1] = n.getValueAtTime(\r\n                                n.keyframes[0].t \/ i,\r\n                                0\r\n                              )))\r\n                            : a._caching.lastFrame + a.offsetTime >=\r\n                              a.keyframes[a.keyframes.length - 1].t\r\n                            ? ((r[0] = a.getValueAtTime(\r\n                                a.keyframes[a.keyframes.length - 1].t \/ i,\r\n                                0\r\n                              )),\r\n                              (r[1] = n.getValueAtTime(\r\n                                n.keyframes[n.keyframes.length - 1].t \/ i,\r\n                                0\r\n                              )),\r\n                              (s[0] = a.getValueAtTime(\r\n                                (a.keyframes[a.keyframes.length - 1].t - 0.01) \/\r\n                                  i,\r\n                                0\r\n                              )),\r\n                              (s[1] = n.getValueAtTime(\r\n                                (n.keyframes[n.keyframes.length - 1].t - 0.01) \/\r\n                                  i,\r\n                                0\r\n                              )))\r\n                            : ((r = [a.pv, n.pv]),\r\n                              (s[0] = a.getValueAtTime(\r\n                                (a._caching.lastFrame + a.offsetTime - 0.01) \/\r\n                                  i,\r\n                                a.offsetTime\r\n                              )),\r\n                              (s[1] = n.getValueAtTime(\r\n                                (n._caching.lastFrame + n.offsetTime - 0.01) \/\r\n                                  i,\r\n                                n.offsetTime\r\n                              )));\r\n                        } else r = s = t;\r\n                        this.v.rotate(-Math.atan2(r[1] - s[1], r[0] - s[0]));\r\n                      }\r\n                      this.data.p && this.data.p.s\r\n                        ? this.data.p.z\r\n                          ? this.v.translate(this.px.v, this.py.v, -this.pz.v)\r\n                          : this.v.translate(this.px.v, this.py.v, 0)\r\n                        : this.v.translate(\r\n                            this.p.v[0],\r\n                            this.p.v[1],\r\n                            -this.p.v[2]\r\n                          );\r\n                    }\r\n                    this.frameId = this.elem.globalData.frameId;\r\n                  }\r\n                },\r\n                precalculateMatrix: function () {\r\n                  if (\r\n                    ((this.appliedTransformations = 0),\r\n                    this.pre.reset(),\r\n                    !this.a.effectsSequence.length &&\r\n                      (this.pre.translate(\r\n                        -this.a.v[0],\r\n                        -this.a.v[1],\r\n                        this.a.v[2]\r\n                      ),\r\n                      (this.appliedTransformations = 1),\r\n                      !this.s.effectsSequence.length))\r\n                  ) {\r\n                    if (\r\n                      (this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]),\r\n                      (this.appliedTransformations = 2),\r\n                      this.sk)\r\n                    ) {\r\n                      if (\r\n                        this.sk.effectsSequence.length ||\r\n                        this.sa.effectsSequence.length\r\n                      )\r\n                        return;\r\n                      this.pre.skewFromAxis(-this.sk.v, this.sa.v),\r\n                        (this.appliedTransformations = 3);\r\n                    }\r\n                    this.r\r\n                      ? this.r.effectsSequence.length ||\r\n                        (this.pre.rotate(-this.r.v),\r\n                        (this.appliedTransformations = 4))\r\n                      : this.rz.effectsSequence.length ||\r\n                        this.ry.effectsSequence.length ||\r\n                        this.rx.effectsSequence.length ||\r\n                        this.or.effectsSequence.length ||\r\n                        (this.pre\r\n                          .rotateZ(-this.rz.v)\r\n                          .rotateY(this.ry.v)\r\n                          .rotateX(this.rx.v)\r\n                          .rotateZ(-this.or.v[2])\r\n                          .rotateY(this.or.v[1])\r\n                          .rotateX(this.or.v[0]),\r\n                        (this.appliedTransformations = 4));\r\n                  }\r\n                },\r\n                autoOrient: function () {},\r\n              }),\r\n              extendPrototype([DynamicPropertyContainer], e),\r\n              (e.prototype.addDynamicProperty = function (t) {\r\n                this._addDynamicProperty(t),\r\n                  this.elem.addDynamicProperty(t),\r\n                  (this._isDirty = !0);\r\n              }),\r\n              (e.prototype._addDynamicProperty =\r\n                DynamicPropertyContainer.prototype.addDynamicProperty),\r\n              {\r\n                getTransformProperty: function (t, i, r) {\r\n                  return new e(t, i, r);\r\n                },\r\n              }\r\n            );\r\n          })();\r\n          function RepeaterModifier() {}\r\n          function RoundCornersModifier() {}\r\n          function floatEqual(t, e) {\r\n            return 1e5 * Math.abs(t - e) <= Math.min(Math.abs(t), Math.abs(e));\r\n          }\r\n          function floatZero(t) {\r\n            return Math.abs(t) <= 1e-5;\r\n          }\r\n          function lerp(t, e, i) {\r\n            return t * (1 - i) + e * i;\r\n          }\r\n          function lerpPoint(t, e, i) {\r\n            return [lerp(t[0], e[0], i), lerp(t[1], e[1], i)];\r\n          }\r\n          function quadRoots(t, e, i) {\r\n            if (0 === t) return [];\r\n            var r = e * e - 4 * t * i;\r\n            if (r < 0) return [];\r\n            var s = -e \/ (2 * t);\r\n            if (0 === r) return [s];\r\n            var a = Math.sqrt(r) \/ (2 * t);\r\n            return [s - a, s + a];\r\n          }\r\n          function polynomialCoefficients(t, e, i, r) {\r\n            return [\r\n              3 * e - t - 3 * i + r,\r\n              3 * t - 6 * e + 3 * i,\r\n              -3 * t + 3 * e,\r\n              t,\r\n            ];\r\n          }\r\n          function singlePoint(t) {\r\n            return new PolynomialBezier(t, t, t, t, !1);\r\n          }\r\n          function PolynomialBezier(t, e, i, r, s) {\r\n            s && pointEqual(t, e) && (e = lerpPoint(t, r, 1 \/ 3)),\r\n              s && pointEqual(i, r) && (i = lerpPoint(t, r, 2 \/ 3));\r\n            var a = polynomialCoefficients(t[0], e[0], i[0], r[0]),\r\n              n = polynomialCoefficients(t[1], e[1], i[1], r[1]);\r\n            (this.a = [a[0], n[0]]),\r\n              (this.b = [a[1], n[1]]),\r\n              (this.c = [a[2], n[2]]),\r\n              (this.d = [a[3], n[3]]),\r\n              (this.points = [t, e, i, r]);\r\n          }\r\n          function extrema(t, e) {\r\n            var i = t.points[0][e],\r\n              r = t.points[t.points.length - 1][e];\r\n            if (i > r) {\r\n              var s = r;\r\n              (r = i), (i = s);\r\n            }\r\n            for (\r\n              var a = quadRoots(3 * t.a[e], 2 * t.b[e], t.c[e]), n = 0;\r\n              n < a.length;\r\n              n += 1\r\n            )\r\n              if (a[n] > 0 && a[n] < 1) {\r\n                var o = t.point(a[n])[e];\r\n                o < i ? (i = o) : o > r && (r = o);\r\n              }\r\n            return { min: i, max: r };\r\n          }\r\n          function intersectData(t, e, i) {\r\n            var r = t.boundingBox();\r\n            return {\r\n              cx: r.cx,\r\n              cy: r.cy,\r\n              width: r.width,\r\n              height: r.height,\r\n              bez: t,\r\n              t: (e + i) \/ 2,\r\n              t1: e,\r\n              t2: i,\r\n            };\r\n          }\r\n          function splitData(t) {\r\n            var e = t.bez.split(0.5);\r\n            return [\r\n              intersectData(e[0], t.t1, t.t),\r\n              intersectData(e[1], t.t, t.t2),\r\n            ];\r\n          }\r\n          function boxIntersect(t, e) {\r\n            return (\r\n              2 * Math.abs(t.cx - e.cx) < t.width + e.width &&\r\n              2 * Math.abs(t.cy - e.cy) < t.height + e.height\r\n            );\r\n          }\r\n          function intersectsImpl(t, e, i, r, s, a) {\r\n            if (boxIntersect(t, e))\r\n              if (\r\n                i >= a ||\r\n                (t.width <= r && t.height <= r && e.width <= r && e.height <= r)\r\n              )\r\n                s.push([t.t, e.t]);\r\n              else {\r\n                var n = splitData(t),\r\n                  o = splitData(e);\r\n                intersectsImpl(n[0], o[0], i + 1, r, s, a),\r\n                  intersectsImpl(n[0], o[1], i + 1, r, s, a),\r\n                  intersectsImpl(n[1], o[0], i + 1, r, s, a),\r\n                  intersectsImpl(n[1], o[1], i + 1, r, s, a);\r\n              }\r\n          }\r\n          function crossProduct(t, e) {\r\n            return [\r\n              t[1] * e[2] - t[2] * e[1],\r\n              t[2] * e[0] - t[0] * e[2],\r\n              t[0] * e[1] - t[1] * e[0],\r\n            ];\r\n          }\r\n          function lineIntersection(t, e, i, r) {\r\n            var s = [t[0], t[1], 1],\r\n              a = [e[0], e[1], 1],\r\n              n = [i[0], i[1], 1],\r\n              o = [r[0], r[1], 1],\r\n              h = crossProduct(crossProduct(s, a), crossProduct(n, o));\r\n            return floatZero(h[2]) ? null : [h[0] \/ h[2], h[1] \/ h[2]];\r\n          }\r\n          function polarOffset(t, e, i) {\r\n            return [t[0] + Math.cos(e) * i, t[1] - Math.sin(e) * i];\r\n          }\r\n          function pointDistance(t, e) {\r\n            return Math.hypot(t[0] - e[0], t[1] - e[1]);\r\n          }\r\n          function pointEqual(t, e) {\r\n            return floatEqual(t[0], e[0]) && floatEqual(t[1], e[1]);\r\n          }\r\n          function ZigZagModifier() {}\r\n          function setPoint(t, e, i, r, s, a, n) {\r\n            var o = i - Math.PI \/ 2,\r\n              h = i + Math.PI \/ 2,\r\n              l = e[0] + Math.cos(i) * r * s,\r\n              p = e[1] - Math.sin(i) * r * s;\r\n            t.setTripleAt(\r\n              l,\r\n              p,\r\n              l + Math.cos(o) * a,\r\n              p - Math.sin(o) * a,\r\n              l + Math.cos(h) * n,\r\n              p - Math.sin(h) * n,\r\n              t.length()\r\n            );\r\n          }\r\n          function getPerpendicularVector(t, e) {\r\n            var i = [e[0] - t[0], e[1] - t[1]],\r\n              r = 0.5 * -Math.PI;\r\n            return [\r\n              Math.cos(r) * i[0] - Math.sin(r) * i[1],\r\n              Math.sin(r) * i[0] + Math.cos(r) * i[1],\r\n            ];\r\n          }\r\n          function getProjectingAngle(t, e) {\r\n            var i = 0 === e ? t.length() - 1 : e - 1,\r\n              r = (e + 1) % t.length(),\r\n              s = getPerpendicularVector(t.v[i], t.v[r]);\r\n            return Math.atan2(0, 1) - Math.atan2(s[1], s[0]);\r\n          }\r\n          function zigZagCorner(t, e, i, r, s, a, n) {\r\n            var o = getProjectingAngle(e, i),\r\n              h = e.v[i % e._length],\r\n              l = e.v[0 === i ? e._length - 1 : i - 1],\r\n              p = e.v[(i + 1) % e._length],\r\n              f =\r\n                2 === a\r\n                  ? Math.sqrt(\r\n                      Math.pow(h[0] - l[0], 2) + Math.pow(h[1] - l[1], 2)\r\n                    )\r\n                  : 0,\r\n              m =\r\n                2 === a\r\n                  ? Math.sqrt(\r\n                      Math.pow(h[0] - p[0], 2) + Math.pow(h[1] - p[1], 2)\r\n                    )\r\n                  : 0;\r\n            setPoint(\r\n              t,\r\n              e.v[i % e._length],\r\n              o,\r\n              n,\r\n              r,\r\n              m \/ (2 * (s + 1)),\r\n              f \/ (2 * (s + 1)),\r\n              a\r\n            );\r\n          }\r\n          function zigZagSegment(t, e, i, r, s, a) {\r\n            for (var n = 0; n < r; n += 1) {\r\n              var o = (n + 1) \/ (r + 1),\r\n                h =\r\n                  2 === s\r\n                    ? Math.sqrt(\r\n                        Math.pow(e.points[3][0] - e.points[0][0], 2) +\r\n                          Math.pow(e.points[3][1] - e.points[0][1], 2)\r\n                      )\r\n                    : 0,\r\n                l = e.normalAngle(o);\r\n              setPoint(\r\n                t,\r\n                e.point(o),\r\n                l,\r\n                a,\r\n                i,\r\n                h \/ (2 * (r + 1)),\r\n                h \/ (2 * (r + 1)),\r\n                s\r\n              ),\r\n                (a = -a);\r\n            }\r\n            return a;\r\n          }\r\n          function linearOffset(t, e, i) {\r\n            var r = Math.atan2(e[0] - t[0], e[1] - t[1]);\r\n            return [polarOffset(t, r, i), polarOffset(e, r, i)];\r\n          }\r\n          function offsetSegment(t, e) {\r\n            var i, r, s, a, n, o, h;\r\n            (i = (h = linearOffset(t.points[0], t.points[1], e))[0]),\r\n              (r = h[1]),\r\n              (s = (h = linearOffset(t.points[1], t.points[2], e))[0]),\r\n              (a = h[1]),\r\n              (n = (h = linearOffset(t.points[2], t.points[3], e))[0]),\r\n              (o = h[1]);\r\n            var l = lineIntersection(i, r, s, a);\r\n            null === l && (l = r);\r\n            var p = lineIntersection(n, o, s, a);\r\n            return null === p && (p = n), new PolynomialBezier(i, l, p, o);\r\n          }\r\n          function joinLines(t, e, i, r, s) {\r\n            var a = e.points[3],\r\n              n = i.points[0];\r\n            if (3 === r) return a;\r\n            if (pointEqual(a, n)) return a;\r\n            if (2 === r) {\r\n              var o = -e.tangentAngle(1),\r\n                h = -i.tangentAngle(0) + Math.PI,\r\n                l = lineIntersection(\r\n                  a,\r\n                  polarOffset(a, o + Math.PI \/ 2, 100),\r\n                  n,\r\n                  polarOffset(n, o + Math.PI \/ 2, 100)\r\n                ),\r\n                p = l ? pointDistance(l, a) : pointDistance(a, n) \/ 2,\r\n                f = polarOffset(a, o, 2 * p * roundCorner);\r\n              return (\r\n                t.setXYAt(f[0], f[1], \"o\", t.length() - 1),\r\n                (f = polarOffset(n, h, 2 * p * roundCorner)),\r\n                t.setTripleAt(n[0], n[1], n[0], n[1], f[0], f[1], t.length()),\r\n                n\r\n              );\r\n            }\r\n            var m = lineIntersection(\r\n              pointEqual(a, e.points[2]) ? e.points[0] : e.points[2],\r\n              a,\r\n              n,\r\n              pointEqual(n, i.points[1]) ? i.points[3] : i.points[1]\r\n            );\r\n            return m && pointDistance(m, a) < s\r\n              ? (t.setTripleAt(m[0], m[1], m[0], m[1], m[0], m[1], t.length()),\r\n                m)\r\n              : a;\r\n          }\r\n          function getIntersection(t, e) {\r\n            var i = t.intersections(e);\r\n            return (\r\n              i.length && floatEqual(i[0][0], 1) && i.shift(),\r\n              i.length ? i[0] : null\r\n            );\r\n          }\r\n          function pruneSegmentIntersection(t, e) {\r\n            var i = t.slice(),\r\n              r = e.slice(),\r\n              s = getIntersection(t[t.length - 1], e[0]);\r\n            return (\r\n              s &&\r\n                ((i[t.length - 1] = t[t.length - 1].split(s[0])[0]),\r\n                (r[0] = e[0].split(s[1])[1])),\r\n              t.length > 1 &&\r\n              e.length > 1 &&\r\n              (s = getIntersection(t[0], e[e.length - 1]))\r\n                ? [[t[0].split(s[0])[0]], [e[e.length - 1].split(s[1])[1]]]\r\n                : [i, r]\r\n            );\r\n          }\r\n          function pruneIntersections(t) {\r\n            for (var e, i = 1; i < t.length; i += 1)\r\n              (e = pruneSegmentIntersection(t[i - 1], t[i])),\r\n                (t[i - 1] = e[0]),\r\n                (t[i] = e[1]);\r\n            return (\r\n              t.length > 1 &&\r\n                ((e = pruneSegmentIntersection(t[t.length - 1], t[0])),\r\n                (t[t.length - 1] = e[0]),\r\n                (t[0] = e[1])),\r\n              t\r\n            );\r\n          }\r\n          function offsetSegmentSplit(t, e) {\r\n            var i,\r\n              r,\r\n              s,\r\n              a,\r\n              n = t.inflectionPoints();\r\n            if (0 === n.length) return [offsetSegment(t, e)];\r\n            if (1 === n.length || floatEqual(n[1], 1))\r\n              return (\r\n                (i = (s = t.split(n[0]))[0]),\r\n                (r = s[1]),\r\n                [offsetSegment(i, e), offsetSegment(r, e)]\r\n              );\r\n            i = (s = t.split(n[0]))[0];\r\n            var o = (n[1] - n[0]) \/ (1 - n[0]);\r\n            return (\r\n              (a = (s = s[1].split(o))[0]),\r\n              (r = s[1]),\r\n              [offsetSegment(i, e), offsetSegment(a, e), offsetSegment(r, e)]\r\n            );\r\n          }\r\n          function OffsetPathModifier() {}\r\n          function getFontProperties(t) {\r\n            for (\r\n              var e = t.fStyle ? t.fStyle.split(\" \") : [],\r\n                i = \"normal\",\r\n                r = \"normal\",\r\n                s = e.length,\r\n                a = 0;\r\n              a < s;\r\n              a += 1\r\n            )\r\n              switch (e[a].toLowerCase()) {\r\n                case \"italic\":\r\n                  r = \"italic\";\r\n                  break;\r\n                case \"bold\":\r\n                  i = \"700\";\r\n                  break;\r\n                case \"black\":\r\n                  i = \"900\";\r\n                  break;\r\n                case \"medium\":\r\n                  i = \"500\";\r\n                  break;\r\n                case \"regular\":\r\n                case \"normal\":\r\n                  i = \"400\";\r\n                  break;\r\n                case \"light\":\r\n                case \"thin\":\r\n                  i = \"200\";\r\n              }\r\n            return { style: r, weight: t.fWeight || i };\r\n          }\r\n          extendPrototype([ShapeModifier], RepeaterModifier),\r\n            (RepeaterModifier.prototype.initModifierProperties = function (\r\n              t,\r\n              e\r\n            ) {\r\n              (this.getValue = this.processKeys),\r\n                (this.c = PropertyFactory.getProp(t, e.c, 0, null, this)),\r\n                (this.o = PropertyFactory.getProp(t, e.o, 0, null, this)),\r\n                (this.tr = TransformPropertyFactory.getTransformProperty(\r\n                  t,\r\n                  e.tr,\r\n                  this\r\n                )),\r\n                (this.so = PropertyFactory.getProp(t, e.tr.so, 0, 0.01, this)),\r\n                (this.eo = PropertyFactory.getProp(t, e.tr.eo, 0, 0.01, this)),\r\n                (this.data = e),\r\n                this.dynamicProperties.length || this.getValue(!0),\r\n                (this._isAnimated = !!this.dynamicProperties.length),\r\n                (this.pMatrix = new Matrix()),\r\n                (this.rMatrix = new Matrix()),\r\n                (this.sMatrix = new Matrix()),\r\n                (this.tMatrix = new Matrix()),\r\n                (this.matrix = new Matrix());\r\n            }),\r\n            (RepeaterModifier.prototype.applyTransforms = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s,\r\n              a\r\n            ) {\r\n              var n = a ? -1 : 1,\r\n                o = r.s.v[0] + (1 - r.s.v[0]) * (1 - s),\r\n                h = r.s.v[1] + (1 - r.s.v[1]) * (1 - s);\r\n              t.translate(r.p.v[0] * n * s, r.p.v[1] * n * s, r.p.v[2]),\r\n                e.translate(-r.a.v[0], -r.a.v[1], r.a.v[2]),\r\n                e.rotate(-r.r.v * n * s),\r\n                e.translate(r.a.v[0], r.a.v[1], r.a.v[2]),\r\n                i.translate(-r.a.v[0], -r.a.v[1], r.a.v[2]),\r\n                i.scale(a ? 1 \/ o : o, a ? 1 \/ h : h),\r\n                i.translate(r.a.v[0], r.a.v[1], r.a.v[2]);\r\n            }),\r\n            (RepeaterModifier.prototype.init = function (t, e, i, r) {\r\n              for (\r\n                this.elem = t,\r\n                  this.arr = e,\r\n                  this.pos = i,\r\n                  this.elemsData = r,\r\n                  this._currentCopies = 0,\r\n                  this._elements = [],\r\n                  this._groups = [],\r\n                  this.frameId = -1,\r\n                  this.initDynamicPropertyContainer(t),\r\n                  this.initModifierProperties(t, e[i]);\r\n                i > 0;\r\n\r\n              )\r\n                (i -= 1), this._elements.unshift(e[i]);\r\n              this.dynamicProperties.length ? (this.k = !0) : this.getValue(!0);\r\n            }),\r\n            (RepeaterModifier.prototype.resetElements = function (t) {\r\n              var e,\r\n                i = t.length;\r\n              for (e = 0; e < i; e += 1)\r\n                (t[e]._processed = !1),\r\n                  \"gr\" === t[e].ty && this.resetElements(t[e].it);\r\n            }),\r\n            (RepeaterModifier.prototype.cloneElements = function (t) {\r\n              var e = JSON.parse(JSON.stringify(t));\r\n              return this.resetElements(e), e;\r\n            }),\r\n            (RepeaterModifier.prototype.changeGroupRender = function (t, e) {\r\n              var i,\r\n                r = t.length;\r\n              for (i = 0; i < r; i += 1)\r\n                (t[i]._render = e),\r\n                  \"gr\" === t[i].ty && this.changeGroupRender(t[i].it, e);\r\n            }),\r\n            (RepeaterModifier.prototype.processShapes = function (t) {\r\n              var e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n = !1;\r\n              if (this._mdf || t) {\r\n                var o,\r\n                  h = Math.ceil(this.c.v);\r\n                if (this._groups.length < h) {\r\n                  for (; this._groups.length < h; ) {\r\n                    var l = {\r\n                      it: this.cloneElements(this._elements),\r\n                      ty: \"gr\",\r\n                    };\r\n                    l.it.push({\r\n                      a: { a: 0, ix: 1, k: [0, 0] },\r\n                      nm: \"Transform\",\r\n                      o: { a: 0, ix: 7, k: 100 },\r\n                      p: { a: 0, ix: 2, k: [0, 0] },\r\n                      r: {\r\n                        a: 1,\r\n                        ix: 6,\r\n                        k: [\r\n                          { s: 0, e: 0, t: 0 },\r\n                          { s: 0, e: 0, t: 1 },\r\n                        ],\r\n                      },\r\n                      s: { a: 0, ix: 3, k: [100, 100] },\r\n                      sa: { a: 0, ix: 5, k: 0 },\r\n                      sk: { a: 0, ix: 4, k: 0 },\r\n                      ty: \"tr\",\r\n                    }),\r\n                      this.arr.splice(0, 0, l),\r\n                      this._groups.splice(0, 0, l),\r\n                      (this._currentCopies += 1);\r\n                  }\r\n                  this.elem.reloadShapes(), (n = !0);\r\n                }\r\n                for (a = 0, r = 0; r <= this._groups.length - 1; r += 1) {\r\n                  if (\r\n                    ((o = a < h),\r\n                    (this._groups[r]._render = o),\r\n                    this.changeGroupRender(this._groups[r].it, o),\r\n                    !o)\r\n                  ) {\r\n                    var p = this.elemsData[r].it,\r\n                      f = p[p.length - 1];\r\n                    0 !== f.transform.op.v\r\n                      ? ((f.transform.op._mdf = !0), (f.transform.op.v = 0))\r\n                      : (f.transform.op._mdf = !1);\r\n                  }\r\n                  a += 1;\r\n                }\r\n                this._currentCopies = h;\r\n                var m = this.o.v,\r\n                  c = m % 1,\r\n                  d = m > 0 ? Math.floor(m) : Math.ceil(m),\r\n                  u = this.pMatrix.props,\r\n                  y = this.rMatrix.props,\r\n                  g = this.sMatrix.props;\r\n                this.pMatrix.reset(),\r\n                  this.rMatrix.reset(),\r\n                  this.sMatrix.reset(),\r\n                  this.tMatrix.reset(),\r\n                  this.matrix.reset();\r\n                var v,\r\n                  b,\r\n                  x = 0;\r\n                if (m > 0) {\r\n                  for (; x < d; )\r\n                    this.applyTransforms(\r\n                      this.pMatrix,\r\n                      this.rMatrix,\r\n                      this.sMatrix,\r\n                      this.tr,\r\n                      1,\r\n                      !1\r\n                    ),\r\n                      (x += 1);\r\n                  c &&\r\n                    (this.applyTransforms(\r\n                      this.pMatrix,\r\n                      this.rMatrix,\r\n                      this.sMatrix,\r\n                      this.tr,\r\n                      c,\r\n                      !1\r\n                    ),\r\n                    (x += c));\r\n                } else if (m < 0) {\r\n                  for (; x > d; )\r\n                    this.applyTransforms(\r\n                      this.pMatrix,\r\n                      this.rMatrix,\r\n                      this.sMatrix,\r\n                      this.tr,\r\n                      1,\r\n                      !0\r\n                    ),\r\n                      (x -= 1);\r\n                  c &&\r\n                    (this.applyTransforms(\r\n                      this.pMatrix,\r\n                      this.rMatrix,\r\n                      this.sMatrix,\r\n                      this.tr,\r\n                      -c,\r\n                      !0\r\n                    ),\r\n                    (x -= c));\r\n                }\r\n                for (\r\n                  r = 1 === this.data.m ? 0 : this._currentCopies - 1,\r\n                    s = 1 === this.data.m ? 1 : -1,\r\n                    a = this._currentCopies;\r\n                  a;\r\n\r\n                ) {\r\n                  if (\r\n                    ((b = (i = (e = this.elemsData[r].it)[e.length - 1]\r\n                      .transform.mProps.v.props).length),\r\n                    (e[e.length - 1].transform.mProps._mdf = !0),\r\n                    (e[e.length - 1].transform.op._mdf = !0),\r\n                    (e[e.length - 1].transform.op.v =\r\n                      1 === this._currentCopies\r\n                        ? this.so.v\r\n                        : this.so.v +\r\n                          (this.eo.v - this.so.v) *\r\n                            (r \/ (this._currentCopies - 1))),\r\n                    0 !== x)\r\n                  ) {\r\n                    for (\r\n                      ((0 !== r && 1 === s) ||\r\n                        (r !== this._currentCopies - 1 && -1 === s)) &&\r\n                        this.applyTransforms(\r\n                          this.pMatrix,\r\n                          this.rMatrix,\r\n                          this.sMatrix,\r\n                          this.tr,\r\n                          1,\r\n                          !1\r\n                        ),\r\n                        this.matrix.transform(\r\n                          y[0],\r\n                          y[1],\r\n                          y[2],\r\n                          y[3],\r\n                          y[4],\r\n                          y[5],\r\n                          y[6],\r\n                          y[7],\r\n                          y[8],\r\n                          y[9],\r\n                          y[10],\r\n                          y[11],\r\n                          y[12],\r\n                          y[13],\r\n                          y[14],\r\n                          y[15]\r\n                        ),\r\n                        this.matrix.transform(\r\n                          g[0],\r\n                          g[1],\r\n                          g[2],\r\n                          g[3],\r\n                          g[4],\r\n                          g[5],\r\n                          g[6],\r\n                          g[7],\r\n                          g[8],\r\n                          g[9],\r\n                          g[10],\r\n                          g[11],\r\n                          g[12],\r\n                          g[13],\r\n                          g[14],\r\n                          g[15]\r\n                        ),\r\n                        this.matrix.transform(\r\n                          u[0],\r\n                          u[1],\r\n                          u[2],\r\n                          u[3],\r\n                          u[4],\r\n                          u[5],\r\n                          u[6],\r\n                          u[7],\r\n                          u[8],\r\n                          u[9],\r\n                          u[10],\r\n                          u[11],\r\n                          u[12],\r\n                          u[13],\r\n                          u[14],\r\n                          u[15]\r\n                        ),\r\n                        v = 0;\r\n                      v < b;\r\n                      v += 1\r\n                    )\r\n                      i[v] = this.matrix.props[v];\r\n                    this.matrix.reset();\r\n                  } else\r\n                    for (this.matrix.reset(), v = 0; v < b; v += 1)\r\n                      i[v] = this.matrix.props[v];\r\n                  (x += 1), (a -= 1), (r += s);\r\n                }\r\n              } else\r\n                for (a = this._currentCopies, r = 0, s = 1; a; )\r\n                  (i = (e = this.elemsData[r].it)[e.length - 1].transform.mProps\r\n                    .v.props),\r\n                    (e[e.length - 1].transform.mProps._mdf = !1),\r\n                    (e[e.length - 1].transform.op._mdf = !1),\r\n                    (a -= 1),\r\n                    (r += s);\r\n              return n;\r\n            }),\r\n            (RepeaterModifier.prototype.addShape = function () {}),\r\n            extendPrototype([ShapeModifier], RoundCornersModifier),\r\n            (RoundCornersModifier.prototype.initModifierProperties = function (\r\n              t,\r\n              e\r\n            ) {\r\n              (this.getValue = this.processKeys),\r\n                (this.rd = PropertyFactory.getProp(t, e.r, 0, null, this)),\r\n                (this._isAnimated = !!this.rd.effectsSequence.length);\r\n            }),\r\n            (RoundCornersModifier.prototype.processPath = function (t, e) {\r\n              var i,\r\n                r = shapePool.newElement();\r\n              r.c = t.c;\r\n              var s,\r\n                a,\r\n                n,\r\n                o,\r\n                h,\r\n                l,\r\n                p,\r\n                f,\r\n                m,\r\n                c,\r\n                d,\r\n                u,\r\n                y = t._length,\r\n                g = 0;\r\n              for (i = 0; i < y; i += 1)\r\n                (s = t.v[i]),\r\n                  (n = t.o[i]),\r\n                  (a = t.i[i]),\r\n                  s[0] === n[0] &&\r\n                  s[1] === n[1] &&\r\n                  s[0] === a[0] &&\r\n                  s[1] === a[1]\r\n                    ? (0 !== i && i !== y - 1) || t.c\r\n                      ? ((o = 0 === i ? t.v[y - 1] : t.v[i - 1]),\r\n                        (l = (h = Math.sqrt(\r\n                          Math.pow(s[0] - o[0], 2) + Math.pow(s[1] - o[1], 2)\r\n                        ))\r\n                          ? Math.min(h \/ 2, e) \/ h\r\n                          : 0),\r\n                        (p = d = s[0] + (o[0] - s[0]) * l),\r\n                        (f = u = s[1] - (s[1] - o[1]) * l),\r\n                        (m = p - (p - s[0]) * roundCorner),\r\n                        (c = f - (f - s[1]) * roundCorner),\r\n                        r.setTripleAt(p, f, m, c, d, u, g),\r\n                        (g += 1),\r\n                        (o = i === y - 1 ? t.v[0] : t.v[i + 1]),\r\n                        (l = (h = Math.sqrt(\r\n                          Math.pow(s[0] - o[0], 2) + Math.pow(s[1] - o[1], 2)\r\n                        ))\r\n                          ? Math.min(h \/ 2, e) \/ h\r\n                          : 0),\r\n                        (p = m = s[0] + (o[0] - s[0]) * l),\r\n                        (f = c = s[1] + (o[1] - s[1]) * l),\r\n                        (d = p - (p - s[0]) * roundCorner),\r\n                        (u = f - (f - s[1]) * roundCorner),\r\n                        r.setTripleAt(p, f, m, c, d, u, g),\r\n                        (g += 1))\r\n                      : (r.setTripleAt(s[0], s[1], n[0], n[1], a[0], a[1], g),\r\n                        (g += 1))\r\n                    : (r.setTripleAt(\r\n                        t.v[i][0],\r\n                        t.v[i][1],\r\n                        t.o[i][0],\r\n                        t.o[i][1],\r\n                        t.i[i][0],\r\n                        t.i[i][1],\r\n                        g\r\n                      ),\r\n                      (g += 1));\r\n              return r;\r\n            }),\r\n            (RoundCornersModifier.prototype.processShapes = function (t) {\r\n              var e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o = this.shapes.length,\r\n                h = this.rd.v;\r\n              if (0 !== h)\r\n                for (i = 0; i < o; i += 1) {\r\n                  if (\r\n                    ((n = (a = this.shapes[i]).localShapeCollection),\r\n                    a.shape._mdf || this._mdf || t)\r\n                  )\r\n                    for (\r\n                      n.releaseShapes(),\r\n                        a.shape._mdf = !0,\r\n                        e = a.shape.paths.shapes,\r\n                        s = a.shape.paths._length,\r\n                        r = 0;\r\n                      r < s;\r\n                      r += 1\r\n                    )\r\n                      n.addShape(this.processPath(e[r], h));\r\n                  a.shape.paths = a.localShapeCollection;\r\n                }\r\n              this.dynamicProperties.length || (this._mdf = !1);\r\n            }),\r\n            (PolynomialBezier.prototype.point = function (t) {\r\n              return [\r\n                ((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0],\r\n                ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1],\r\n              ];\r\n            }),\r\n            (PolynomialBezier.prototype.derivative = function (t) {\r\n              return [\r\n                (3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0],\r\n                (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1],\r\n              ];\r\n            }),\r\n            (PolynomialBezier.prototype.tangentAngle = function (t) {\r\n              var e = this.derivative(t);\r\n              return Math.atan2(e[1], e[0]);\r\n            }),\r\n            (PolynomialBezier.prototype.normalAngle = function (t) {\r\n              var e = this.derivative(t);\r\n              return Math.atan2(e[0], e[1]);\r\n            }),\r\n            (PolynomialBezier.prototype.inflectionPoints = function () {\r\n              var t = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n              if (floatZero(t)) return [];\r\n              var e =\r\n                  (-0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1])) \/ t,\r\n                i =\r\n                  e * e -\r\n                  ((1 \/ 3) * (this.b[1] * this.c[0] - this.b[0] * this.c[1])) \/\r\n                    t;\r\n              if (i < 0) return [];\r\n              var r = Math.sqrt(i);\r\n              return floatZero(r)\r\n                ? r > 0 && r < 1\r\n                  ? [e]\r\n                  : []\r\n                : [e - r, e + r].filter(function (t) {\r\n                    return t > 0 && t < 1;\r\n                  });\r\n            }),\r\n            (PolynomialBezier.prototype.split = function (t) {\r\n              if (t <= 0) return [singlePoint(this.points[0]), this];\r\n              if (t >= 1)\r\n                return [this, singlePoint(this.points[this.points.length - 1])];\r\n              var e = lerpPoint(this.points[0], this.points[1], t),\r\n                i = lerpPoint(this.points[1], this.points[2], t),\r\n                r = lerpPoint(this.points[2], this.points[3], t),\r\n                s = lerpPoint(e, i, t),\r\n                a = lerpPoint(i, r, t),\r\n                n = lerpPoint(s, a, t);\r\n              return [\r\n                new PolynomialBezier(this.points[0], e, s, n, !0),\r\n                new PolynomialBezier(n, a, r, this.points[3], !0),\r\n              ];\r\n            }),\r\n            (PolynomialBezier.prototype.bounds = function () {\r\n              return { x: extrema(this, 0), y: extrema(this, 1) };\r\n            }),\r\n            (PolynomialBezier.prototype.boundingBox = function () {\r\n              var t = this.bounds();\r\n              return {\r\n                left: t.x.min,\r\n                right: t.x.max,\r\n                top: t.y.min,\r\n                bottom: t.y.max,\r\n                width: t.x.max - t.x.min,\r\n                height: t.y.max - t.y.min,\r\n                cx: (t.x.max + t.x.min) \/ 2,\r\n                cy: (t.y.max + t.y.min) \/ 2,\r\n              };\r\n            }),\r\n            (PolynomialBezier.prototype.intersections = function (t, e, i) {\r\n              void 0 === e && (e = 2), void 0 === i && (i = 7);\r\n              var r = [];\r\n              return (\r\n                intersectsImpl(\r\n                  intersectData(this, 0, 1),\r\n                  intersectData(t, 0, 1),\r\n                  0,\r\n                  e,\r\n                  r,\r\n                  i\r\n                ),\r\n                r\r\n              );\r\n            }),\r\n            (PolynomialBezier.shapeSegment = function (t, e) {\r\n              var i = (e + 1) % t.length();\r\n              return new PolynomialBezier(t.v[e], t.o[e], t.i[i], t.v[i], !0);\r\n            }),\r\n            (PolynomialBezier.shapeSegmentInverted = function (t, e) {\r\n              var i = (e + 1) % t.length();\r\n              return new PolynomialBezier(t.v[i], t.i[i], t.o[e], t.v[e], !0);\r\n            }),\r\n            extendPrototype([ShapeModifier], ZigZagModifier),\r\n            (ZigZagModifier.prototype.initModifierProperties = function (t, e) {\r\n              (this.getValue = this.processKeys),\r\n                (this.amplitude = PropertyFactory.getProp(\r\n                  t,\r\n                  e.s,\r\n                  0,\r\n                  null,\r\n                  this\r\n                )),\r\n                (this.frequency = PropertyFactory.getProp(\r\n                  t,\r\n                  e.r,\r\n                  0,\r\n                  null,\r\n                  this\r\n                )),\r\n                (this.pointsType = PropertyFactory.getProp(\r\n                  t,\r\n                  e.pt,\r\n                  0,\r\n                  null,\r\n                  this\r\n                )),\r\n                (this._isAnimated =\r\n                  0 !== this.amplitude.effectsSequence.length ||\r\n                  0 !== this.frequency.effectsSequence.length ||\r\n                  0 !== this.pointsType.effectsSequence.length);\r\n            }),\r\n            (ZigZagModifier.prototype.processPath = function (t, e, i, r) {\r\n              var s = t._length,\r\n                a = shapePool.newElement();\r\n              if (((a.c = t.c), t.c || (s -= 1), 0 === s)) return a;\r\n              var n = -1,\r\n                o = PolynomialBezier.shapeSegment(t, 0);\r\n              zigZagCorner(a, t, 0, e, i, r, n);\r\n              for (var h = 0; h < s; h += 1)\r\n                (n = zigZagSegment(a, o, e, i, r, -n)),\r\n                  (o =\r\n                    h !== s - 1 || t.c\r\n                      ? PolynomialBezier.shapeSegment(t, (h + 1) % s)\r\n                      : null),\r\n                  zigZagCorner(a, t, h + 1, e, i, r, n);\r\n              return a;\r\n            }),\r\n            (ZigZagModifier.prototype.processShapes = function (t) {\r\n              var e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o = this.shapes.length,\r\n                h = this.amplitude.v,\r\n                l = Math.max(0, Math.round(this.frequency.v)),\r\n                p = this.pointsType.v;\r\n              if (0 !== h)\r\n                for (i = 0; i < o; i += 1) {\r\n                  if (\r\n                    ((n = (a = this.shapes[i]).localShapeCollection),\r\n                    a.shape._mdf || this._mdf || t)\r\n                  )\r\n                    for (\r\n                      n.releaseShapes(),\r\n                        a.shape._mdf = !0,\r\n                        e = a.shape.paths.shapes,\r\n                        s = a.shape.paths._length,\r\n                        r = 0;\r\n                      r < s;\r\n                      r += 1\r\n                    )\r\n                      n.addShape(this.processPath(e[r], h, l, p));\r\n                  a.shape.paths = a.localShapeCollection;\r\n                }\r\n              this.dynamicProperties.length || (this._mdf = !1);\r\n            }),\r\n            extendPrototype([ShapeModifier], OffsetPathModifier),\r\n            (OffsetPathModifier.prototype.initModifierProperties = function (\r\n              t,\r\n              e\r\n            ) {\r\n              (this.getValue = this.processKeys),\r\n                (this.amount = PropertyFactory.getProp(t, e.a, 0, null, this)),\r\n                (this.miterLimit = PropertyFactory.getProp(\r\n                  t,\r\n                  e.ml,\r\n                  0,\r\n                  null,\r\n                  this\r\n                )),\r\n                (this.lineJoin = e.lj),\r\n                (this._isAnimated = 0 !== this.amount.effectsSequence.length);\r\n            }),\r\n            (OffsetPathModifier.prototype.processPath = function (t, e, i, r) {\r\n              var s = shapePool.newElement();\r\n              s.c = t.c;\r\n              var a,\r\n                n,\r\n                o,\r\n                h = t.length();\r\n              t.c || (h -= 1);\r\n              var l = [];\r\n              for (a = 0; a < h; a += 1)\r\n                (o = PolynomialBezier.shapeSegment(t, a)),\r\n                  l.push(offsetSegmentSplit(o, e));\r\n              if (!t.c)\r\n                for (a = h - 1; a >= 0; a -= 1)\r\n                  (o = PolynomialBezier.shapeSegmentInverted(t, a)),\r\n                    l.push(offsetSegmentSplit(o, e));\r\n              l = pruneIntersections(l);\r\n              var p = null,\r\n                f = null;\r\n              for (a = 0; a < l.length; a += 1) {\r\n                var m = l[a];\r\n                for (\r\n                  f && (p = joinLines(s, f, m[0], i, r)),\r\n                    f = m[m.length - 1],\r\n                    n = 0;\r\n                  n < m.length;\r\n                  n += 1\r\n                )\r\n                  (o = m[n]),\r\n                    p && pointEqual(o.points[0], p)\r\n                      ? s.setXYAt(\r\n                          o.points[1][0],\r\n                          o.points[1][1],\r\n                          \"o\",\r\n                          s.length() - 1\r\n                        )\r\n                      : s.setTripleAt(\r\n                          o.points[0][0],\r\n                          o.points[0][1],\r\n                          o.points[1][0],\r\n                          o.points[1][1],\r\n                          o.points[0][0],\r\n                          o.points[0][1],\r\n                          s.length()\r\n                        ),\r\n                    s.setTripleAt(\r\n                      o.points[3][0],\r\n                      o.points[3][1],\r\n                      o.points[3][0],\r\n                      o.points[3][1],\r\n                      o.points[2][0],\r\n                      o.points[2][1],\r\n                      s.length()\r\n                    ),\r\n                    (p = o.points[3]);\r\n              }\r\n              return l.length && joinLines(s, f, l[0][0], i, r), s;\r\n            }),\r\n            (OffsetPathModifier.prototype.processShapes = function (t) {\r\n              var e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o = this.shapes.length,\r\n                h = this.amount.v,\r\n                l = this.miterLimit.v,\r\n                p = this.lineJoin;\r\n              if (0 !== h)\r\n                for (i = 0; i < o; i += 1) {\r\n                  if (\r\n                    ((n = (a = this.shapes[i]).localShapeCollection),\r\n                    a.shape._mdf || this._mdf || t)\r\n                  )\r\n                    for (\r\n                      n.releaseShapes(),\r\n                        a.shape._mdf = !0,\r\n                        e = a.shape.paths.shapes,\r\n                        s = a.shape.paths._length,\r\n                        r = 0;\r\n                      r < s;\r\n                      r += 1\r\n                    )\r\n                      n.addShape(this.processPath(e[r], h, p, l));\r\n                  a.shape.paths = a.localShapeCollection;\r\n                }\r\n              this.dynamicProperties.length || (this._mdf = !1);\r\n            });\r\n          var FontManager = (function () {\r\n            var t = { w: 0, size: 0, shapes: [], data: { shapes: [] } },\r\n              e = [];\r\n            e = e.concat([\r\n              2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368,\r\n              2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\r\n              2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403,\r\n            ]);\r\n            var i = 127988,\r\n              r = [\"d83cdffb\", \"d83cdffc\", \"d83cdffd\", \"d83cdffe\", \"d83cdfff\"];\r\n            function s(t, e) {\r\n              var i = createTag(\"span\");\r\n              i.setAttribute(\"aria-hidden\", !0), (i.style.fontFamily = e);\r\n              var r = createTag(\"span\");\r\n              (r.innerText = \"giItT1WQy@!-\/#\"),\r\n                (i.style.position = \"absolute\"),\r\n                (i.style.left = \"-10000px\"),\r\n                (i.style.top = \"-10000px\"),\r\n                (i.style.fontSize = \"300px\"),\r\n                (i.style.fontVariant = \"normal\"),\r\n                (i.style.fontStyle = \"normal\"),\r\n                (i.style.fontWeight = \"normal\"),\r\n                (i.style.letterSpacing = \"0\"),\r\n                i.appendChild(r),\r\n                document.body.appendChild(i);\r\n              var s = r.offsetWidth;\r\n              return (\r\n                (r.style.fontFamily =\r\n                  (function (t) {\r\n                    var e,\r\n                      i = t.split(\",\"),\r\n                      r = i.length,\r\n                      s = [];\r\n                    for (e = 0; e < r; e += 1)\r\n                      \"sans-serif\" !== i[e] &&\r\n                        \"monospace\" !== i[e] &&\r\n                        s.push(i[e]);\r\n                    return s.join(\",\");\r\n                  })(t) +\r\n                  \", \" +\r\n                  e),\r\n                { node: r, w: s, parent: i }\r\n              );\r\n            }\r\n            function a(t, e) {\r\n              var i,\r\n                r = document.body && e ? \"svg\" : \"canvas\",\r\n                s = getFontProperties(t);\r\n              if (\"svg\" === r) {\r\n                var a = createNS(\"text\");\r\n                (a.style.fontSize = \"100px\"),\r\n                  a.setAttribute(\"font-family\", t.fFamily),\r\n                  a.setAttribute(\"font-style\", s.style),\r\n                  a.setAttribute(\"font-weight\", s.weight),\r\n                  (a.textContent = \"1\"),\r\n                  t.fClass\r\n                    ? ((a.style.fontFamily = \"inherit\"),\r\n                      a.setAttribute(\"class\", t.fClass))\r\n                    : (a.style.fontFamily = t.fFamily),\r\n                  e.appendChild(a),\r\n                  (i = a);\r\n              } else {\r\n                var n = new OffscreenCanvas(500, 500).getContext(\"2d\");\r\n                (n.font = s.style + \" \" + s.weight + \" 100px \" + t.fFamily),\r\n                  (i = n);\r\n              }\r\n              return {\r\n                measureText: function (t) {\r\n                  return \"svg\" === r\r\n                    ? ((i.textContent = t), i.getComputedTextLength())\r\n                    : i.measureText(t).width;\r\n                },\r\n              };\r\n            }\r\n            function n(t) {\r\n              var e = 0,\r\n                i = t.charCodeAt(0);\r\n              if (i >= 55296 && i <= 56319) {\r\n                var r = t.charCodeAt(1);\r\n                r >= 56320 &&\r\n                  r <= 57343 &&\r\n                  (e = 1024 * (i - 55296) + r - 56320 + 65536);\r\n              }\r\n              return e;\r\n            }\r\n            function o(t) {\r\n              var e = n(t);\r\n              return e >= 127462 && e <= 127487;\r\n            }\r\n            var h = function () {\r\n              (this.fonts = []),\r\n                (this.chars = null),\r\n                (this.typekitLoaded = 0),\r\n                (this.isLoaded = !1),\r\n                (this._warned = !1),\r\n                (this.initTime = Date.now()),\r\n                (this.setIsLoadedBinded = this.setIsLoaded.bind(this)),\r\n                (this.checkLoadedFontsBinded =\r\n                  this.checkLoadedFonts.bind(this));\r\n            };\r\n            (h.isModifier = function (t, e) {\r\n              var i = t.toString(16) + e.toString(16);\r\n              return -1 !== r.indexOf(i);\r\n            }),\r\n              (h.isZeroWidthJoiner = function (t) {\r\n                return 8205 === t;\r\n              }),\r\n              (h.isFlagEmoji = function (t) {\r\n                return o(t.substr(0, 2)) && o(t.substr(2, 2));\r\n              }),\r\n              (h.isRegionalCode = o),\r\n              (h.isCombinedCharacter = function (t) {\r\n                return -1 !== e.indexOf(t);\r\n              }),\r\n              (h.isRegionalFlag = function (t, e) {\r\n                var r = n(t.substr(e, 2));\r\n                if (r !== i) return !1;\r\n                var s = 0;\r\n                for (e += 2; s < 5; ) {\r\n                  if ((r = n(t.substr(e, 2))) < 917601 || r > 917626) return !1;\r\n                  (s += 1), (e += 2);\r\n                }\r\n                return 917631 === n(t.substr(e, 2));\r\n              }),\r\n              (h.isVariationSelector = function (t) {\r\n                return 65039 === t;\r\n              }),\r\n              (h.BLACK_FLAG_CODE_POINT = i);\r\n            var l = {\r\n              addChars: function (t) {\r\n                if (t) {\r\n                  var e;\r\n                  this.chars || (this.chars = []);\r\n                  var i,\r\n                    r,\r\n                    s = t.length,\r\n                    a = this.chars.length;\r\n                  for (e = 0; e < s; e += 1) {\r\n                    for (i = 0, r = !1; i < a; )\r\n                      this.chars[i].style === t[e].style &&\r\n                        this.chars[i].fFamily === t[e].fFamily &&\r\n                        this.chars[i].ch === t[e].ch &&\r\n                        (r = !0),\r\n                        (i += 1);\r\n                    r || (this.chars.push(t[e]), (a += 1));\r\n                  }\r\n                }\r\n              },\r\n              addFonts: function (t, e) {\r\n                if (t) {\r\n                  if (this.chars)\r\n                    return (this.isLoaded = !0), void (this.fonts = t.list);\r\n                  if (!document.body)\r\n                    return (\r\n                      (this.isLoaded = !0),\r\n                      t.list.forEach(function (t) {\r\n                        (t.helper = a(t)), (t.cache = {});\r\n                      }),\r\n                      void (this.fonts = t.list)\r\n                    );\r\n                  var i,\r\n                    r = t.list,\r\n                    n = r.length,\r\n                    o = n;\r\n                  for (i = 0; i < n; i += 1) {\r\n                    var h,\r\n                      l,\r\n                      p = !0;\r\n                    if (\r\n                      ((r[i].loaded = !1),\r\n                      (r[i].monoCase = s(r[i].fFamily, \"monospace\")),\r\n                      (r[i].sansCase = s(r[i].fFamily, \"sans-serif\")),\r\n                      r[i].fPath)\r\n                    ) {\r\n                      if (\"p\" === r[i].fOrigin || 3 === r[i].origin) {\r\n                        if (\r\n                          ((h = document.querySelectorAll(\r\n                            'style[f-forigin=\"p\"][f-family=\"' +\r\n                              r[i].fFamily +\r\n                              '\"], style[f-origin=\"3\"][f-family=\"' +\r\n                              r[i].fFamily +\r\n                              '\"]'\r\n                          )).length > 0 && (p = !1),\r\n                          p)\r\n                        ) {\r\n                          var f = createTag(\"style\");\r\n                          f.setAttribute(\"f-forigin\", r[i].fOrigin),\r\n                            f.setAttribute(\"f-origin\", r[i].origin),\r\n                            f.setAttribute(\"f-family\", r[i].fFamily),\r\n                            (f.type = \"text\/css\"),\r\n                            (f.innerText =\r\n                              \"@font-face {font-family: \" +\r\n                              r[i].fFamily +\r\n                              \"; font-style: normal; src: url('\" +\r\n                              r[i].fPath +\r\n                              \"');}\"),\r\n                            e.appendChild(f);\r\n                        }\r\n                      } else if (\"g\" === r[i].fOrigin || 1 === r[i].origin) {\r\n                        for (\r\n                          h = document.querySelectorAll(\r\n                            'link[f-forigin=\"g\"], link[f-origin=\"1\"]'\r\n                          ),\r\n                            l = 0;\r\n                          l < h.length;\r\n                          l += 1\r\n                        )\r\n                          -1 !== h[l].href.indexOf(r[i].fPath) && (p = !1);\r\n                        if (p) {\r\n                          var m = createTag(\"link\");\r\n                          m.setAttribute(\"f-forigin\", r[i].fOrigin),\r\n                            m.setAttribute(\"f-origin\", r[i].origin),\r\n                            (m.type = \"text\/css\"),\r\n                            (m.rel = \"stylesheet\"),\r\n                            (m.href = r[i].fPath),\r\n                            document.body.appendChild(m);\r\n                        }\r\n                      } else if (\"t\" === r[i].fOrigin || 2 === r[i].origin) {\r\n                        for (\r\n                          h = document.querySelectorAll(\r\n                            'script[f-forigin=\"t\"], script[f-origin=\"2\"]'\r\n                          ),\r\n                            l = 0;\r\n                          l < h.length;\r\n                          l += 1\r\n                        )\r\n                          r[i].fPath === h[l].src && (p = !1);\r\n                        if (p) {\r\n                          var c = createTag(\"link\");\r\n                          c.setAttribute(\"f-forigin\", r[i].fOrigin),\r\n                            c.setAttribute(\"f-origin\", r[i].origin),\r\n                            c.setAttribute(\"rel\", \"stylesheet\"),\r\n                            c.setAttribute(\"href\", r[i].fPath),\r\n                            e.appendChild(c);\r\n                        }\r\n                      }\r\n                    } else (r[i].loaded = !0), (o -= 1);\r\n                    (r[i].helper = a(r[i], e)),\r\n                      (r[i].cache = {}),\r\n                      this.fonts.push(r[i]);\r\n                  }\r\n                  0 === o\r\n                    ? (this.isLoaded = !0)\r\n                    : setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n                } else this.isLoaded = !0;\r\n              },\r\n              getCharData: function (e, i, r) {\r\n                for (var s = 0, a = this.chars.length; s < a; ) {\r\n                  if (\r\n                    this.chars[s].ch === e &&\r\n                    this.chars[s].style === i &&\r\n                    this.chars[s].fFamily === r\r\n                  )\r\n                    return this.chars[s];\r\n                  s += 1;\r\n                }\r\n                return (\r\n                  ((\"string\" == typeof e && 13 !== e.charCodeAt(0)) || !e) &&\r\n                    console &&\r\n                    console.warn &&\r\n                    !this._warned &&\r\n                    ((this._warned = !0),\r\n                    console.warn(\r\n                      \"Missing character from exported characters list: \",\r\n                      e,\r\n                      i,\r\n                      r\r\n                    )),\r\n                  t\r\n                );\r\n              },\r\n              getFontByName: function (t) {\r\n                for (var e = 0, i = this.fonts.length; e < i; ) {\r\n                  if (this.fonts[e].fName === t) return this.fonts[e];\r\n                  e += 1;\r\n                }\r\n                return this.fonts[0];\r\n              },\r\n              measureText: function (t, e, i) {\r\n                var r = this.getFontByName(e),\r\n                  s = t;\r\n                if (!r.cache[s]) {\r\n                  var a = r.helper;\r\n                  if (\" \" === t) {\r\n                    var n = a.measureText(\"|\" + t + \"|\"),\r\n                      o = a.measureText(\"||\");\r\n                    r.cache[s] = (n - o) \/ 100;\r\n                  } else r.cache[s] = a.measureText(t) \/ 100;\r\n                }\r\n                return r.cache[s] * i;\r\n              },\r\n              checkLoadedFonts: function () {\r\n                var t,\r\n                  e,\r\n                  i,\r\n                  r = this.fonts.length,\r\n                  s = r;\r\n                for (t = 0; t < r; t += 1)\r\n                  this.fonts[t].loaded\r\n                    ? (s -= 1)\r\n                    : \"n\" === this.fonts[t].fOrigin ||\r\n                      0 === this.fonts[t].origin\r\n                    ? (this.fonts[t].loaded = !0)\r\n                    : ((e = this.fonts[t].monoCase.node),\r\n                      (i = this.fonts[t].monoCase.w),\r\n                      e.offsetWidth !== i\r\n                        ? ((s -= 1), (this.fonts[t].loaded = !0))\r\n                        : ((e = this.fonts[t].sansCase.node),\r\n                          (i = this.fonts[t].sansCase.w),\r\n                          e.offsetWidth !== i &&\r\n                            ((s -= 1), (this.fonts[t].loaded = !0))),\r\n                      this.fonts[t].loaded &&\r\n                        (this.fonts[t].sansCase.parent.parentNode.removeChild(\r\n                          this.fonts[t].sansCase.parent\r\n                        ),\r\n                        this.fonts[t].monoCase.parent.parentNode.removeChild(\r\n                          this.fonts[t].monoCase.parent\r\n                        )));\r\n                0 !== s && Date.now() - this.initTime < 5e3\r\n                  ? setTimeout(this.checkLoadedFontsBinded, 20)\r\n                  : setTimeout(this.setIsLoadedBinded, 10);\r\n              },\r\n              setIsLoaded: function () {\r\n                this.isLoaded = !0;\r\n              },\r\n            };\r\n            return (h.prototype = l), h;\r\n          })();\r\n          function SlotManager(t) {\r\n            this.animationData = t;\r\n          }\r\n          function slotFactory(t) {\r\n            return new SlotManager(t);\r\n          }\r\n          function RenderableElement() {}\r\n          (SlotManager.prototype.getProp = function (t) {\r\n            return this.animationData.slots && this.animationData.slots[t.sid]\r\n              ? Object.assign(t, this.animationData.slots[t.sid].p)\r\n              : t;\r\n          }),\r\n            (RenderableElement.prototype = {\r\n              initRenderable: function () {\r\n                (this.isInRange = !1),\r\n                  (this.hidden = !1),\r\n                  (this.isTransparent = !1),\r\n                  (this.renderableComponents = []);\r\n              },\r\n              addRenderableComponent: function (t) {\r\n                -1 === this.renderableComponents.indexOf(t) &&\r\n                  this.renderableComponents.push(t);\r\n              },\r\n              removeRenderableComponent: function (t) {\r\n                -1 !== this.renderableComponents.indexOf(t) &&\r\n                  this.renderableComponents.splice(\r\n                    this.renderableComponents.indexOf(t),\r\n                    1\r\n                  );\r\n              },\r\n              prepareRenderableFrame: function (t) {\r\n                this.checkLayerLimits(t);\r\n              },\r\n              checkTransparency: function () {\r\n                this.finalTransform.mProp.o.v <= 0\r\n                  ? !this.isTransparent &&\r\n                    this.globalData.renderConfig.hideOnTransparent &&\r\n                    ((this.isTransparent = !0), this.hide())\r\n                  : this.isTransparent &&\r\n                    ((this.isTransparent = !1), this.show());\r\n              },\r\n              checkLayerLimits: function (t) {\r\n                this.data.ip - this.data.st <= t &&\r\n                this.data.op - this.data.st > t\r\n                  ? !0 !== this.isInRange &&\r\n                    ((this.globalData._mdf = !0),\r\n                    (this._mdf = !0),\r\n                    (this.isInRange = !0),\r\n                    this.show())\r\n                  : !1 !== this.isInRange &&\r\n                    ((this.globalData._mdf = !0),\r\n                    (this.isInRange = !1),\r\n                    this.hide());\r\n              },\r\n              renderRenderable: function () {\r\n                var t,\r\n                  e = this.renderableComponents.length;\r\n                for (t = 0; t < e; t += 1)\r\n                  this.renderableComponents[t].renderFrame(this._isFirstFrame);\r\n              },\r\n              sourceRectAtTime: function () {\r\n                return { top: 0, left: 0, width: 100, height: 100 };\r\n              },\r\n              getLayerSize: function () {\r\n                return 5 === this.data.ty\r\n                  ? {\r\n                      w: this.data.textData.width,\r\n                      h: this.data.textData.height,\r\n                    }\r\n                  : { w: this.data.width, h: this.data.height };\r\n              },\r\n            });\r\n          var getBlendMode =\r\n              ((blendModeEnums = {\r\n                0: \"source-over\",\r\n                1: \"multiply\",\r\n                2: \"screen\",\r\n                3: \"overlay\",\r\n                4: \"darken\",\r\n                5: \"lighten\",\r\n                6: \"color-dodge\",\r\n                7: \"color-burn\",\r\n                8: \"hard-light\",\r\n                9: \"soft-light\",\r\n                10: \"difference\",\r\n                11: \"exclusion\",\r\n                12: \"hue\",\r\n                13: \"saturation\",\r\n                14: \"color\",\r\n                15: \"luminosity\",\r\n              }),\r\n              function (t) {\r\n                return blendModeEnums[t] || \"\";\r\n              }),\r\n            blendModeEnums;\r\n          function SliderEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 0, 0, i);\r\n          }\r\n          function AngleEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 0, 0, i);\r\n          }\r\n          function ColorEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 1, 0, i);\r\n          }\r\n          function PointEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 1, 0, i);\r\n          }\r\n          function LayerIndexEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 0, 0, i);\r\n          }\r\n          function MaskIndexEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 0, 0, i);\r\n          }\r\n          function CheckboxEffect(t, e, i) {\r\n            this.p = PropertyFactory.getProp(e, t.v, 0, 0, i);\r\n          }\r\n          function NoValueEffect() {\r\n            this.p = {};\r\n          }\r\n          function EffectsManager(t, e) {\r\n            var i,\r\n              r = t.ef || [];\r\n            this.effectElements = [];\r\n            var s,\r\n              a = r.length;\r\n            for (i = 0; i < a; i += 1)\r\n              (s = new GroupEffect(r[i], e)), this.effectElements.push(s);\r\n          }\r\n          function GroupEffect(t, e) {\r\n            this.init(t, e);\r\n          }\r\n          function BaseElement() {}\r\n          function FrameElement() {}\r\n          function FootageElement(t, e, i) {\r\n            this.initFrame(),\r\n              this.initRenderable(),\r\n              (this.assetData = e.getAssetData(t.refId)),\r\n              (this.footageData = e.imageLoader.getAsset(this.assetData)),\r\n              this.initBaseData(t, e, i);\r\n          }\r\n          function AudioElement(t, e, i) {\r\n            this.initFrame(),\r\n              this.initRenderable(),\r\n              (this.assetData = e.getAssetData(t.refId)),\r\n              this.initBaseData(t, e, i),\r\n              (this._isPlaying = !1),\r\n              (this._canPlay = !1);\r\n            var r = this.globalData.getAssetsPath(this.assetData);\r\n            (this.audio = this.globalData.audioController.createAudio(r)),\r\n              (this._currentTime = 0),\r\n              this.globalData.audioController.addAudio(this),\r\n              (this._volumeMultiplier = 1),\r\n              (this._volume = 1),\r\n              (this._previousVolume = null),\r\n              (this.tm = t.tm\r\n                ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this)\r\n                : { _placeholder: !0 }),\r\n              (this.lv = PropertyFactory.getProp(\r\n                this,\r\n                t.au && t.au.lv ? t.au.lv : { k: [100] },\r\n                1,\r\n                0.01,\r\n                this\r\n              ));\r\n          }\r\n          function BaseRenderer() {}\r\n          extendPrototype([DynamicPropertyContainer], GroupEffect),\r\n            (GroupEffect.prototype.getValue =\r\n              GroupEffect.prototype.iterateDynamicProperties),\r\n            (GroupEffect.prototype.init = function (t, e) {\r\n              var i;\r\n              (this.data = t),\r\n                (this.effectElements = []),\r\n                this.initDynamicPropertyContainer(e);\r\n              var r,\r\n                s = this.data.ef.length,\r\n                a = this.data.ef;\r\n              for (i = 0; i < s; i += 1) {\r\n                switch (((r = null), a[i].ty)) {\r\n                  case 0:\r\n                    r = new SliderEffect(a[i], e, this);\r\n                    break;\r\n                  case 1:\r\n                    r = new AngleEffect(a[i], e, this);\r\n                    break;\r\n                  case 2:\r\n                    r = new ColorEffect(a[i], e, this);\r\n                    break;\r\n                  case 3:\r\n                    r = new PointEffect(a[i], e, this);\r\n                    break;\r\n                  case 4:\r\n                  case 7:\r\n                    r = new CheckboxEffect(a[i], e, this);\r\n                    break;\r\n                  case 10:\r\n                    r = new LayerIndexEffect(a[i], e, this);\r\n                    break;\r\n                  case 11:\r\n                    r = new MaskIndexEffect(a[i], e, this);\r\n                    break;\r\n                  case 5:\r\n                    r = new EffectsManager(a[i], e, this);\r\n                    break;\r\n                  default:\r\n                    r = new NoValueEffect(a[i], e, this);\r\n                }\r\n                r && this.effectElements.push(r);\r\n              }\r\n            }),\r\n            (BaseElement.prototype = {\r\n              checkMasks: function () {\r\n                if (!this.data.hasMask) return !1;\r\n                for (var t = 0, e = this.data.masksProperties.length; t < e; ) {\r\n                  if (\r\n                    \"n\" !== this.data.masksProperties[t].mode &&\r\n                    !1 !== this.data.masksProperties[t].cl\r\n                  )\r\n                    return !0;\r\n                  t += 1;\r\n                }\r\n                return !1;\r\n              },\r\n              initExpressions: function () {\r\n                var t = getExpressionInterfaces();\r\n                if (t) {\r\n                  var e = t(\"layer\"),\r\n                    i = t(\"effects\"),\r\n                    r = t(\"shape\"),\r\n                    s = t(\"text\"),\r\n                    a = t(\"comp\");\r\n                  (this.layerInterface = e(this)),\r\n                    this.data.hasMask &&\r\n                      this.maskManager &&\r\n                      this.layerInterface.registerMaskInterface(\r\n                        this.maskManager\r\n                      );\r\n                  var n = i.createEffectsInterface(this, this.layerInterface);\r\n                  this.layerInterface.registerEffectsInterface(n),\r\n                    0 === this.data.ty || this.data.xt\r\n                      ? (this.compInterface = a(this))\r\n                      : 4 === this.data.ty\r\n                      ? ((this.layerInterface.shapeInterface = r(\r\n                          this.shapesData,\r\n                          this.itemsData,\r\n                          this.layerInterface\r\n                        )),\r\n                        (this.layerInterface.content =\r\n                          this.layerInterface.shapeInterface))\r\n                      : 5 === this.data.ty &&\r\n                        ((this.layerInterface.textInterface = s(this)),\r\n                        (this.layerInterface.text =\r\n                          this.layerInterface.textInterface));\r\n                }\r\n              },\r\n              setBlendMode: function () {\r\n                var t = getBlendMode(this.data.bm);\r\n                (this.baseElement || this.layerElement).style[\r\n                  \"mix-blend-mode\"\r\n                ] = t;\r\n              },\r\n              initBaseData: function (t, e, i) {\r\n                (this.globalData = e),\r\n                  (this.comp = i),\r\n                  (this.data = t),\r\n                  (this.layerId = createElementID()),\r\n                  this.data.sr || (this.data.sr = 1),\r\n                  (this.effectsManager = new EffectsManager(\r\n                    this.data,\r\n                    this,\r\n                    this.dynamicProperties\r\n                  ));\r\n              },\r\n              getType: function () {\r\n                return this.type;\r\n              },\r\n              sourceRectAtTime: function () {},\r\n            }),\r\n            (FrameElement.prototype = {\r\n              initFrame: function () {\r\n                (this._isFirstFrame = !1),\r\n                  (this.dynamicProperties = []),\r\n                  (this._mdf = !1);\r\n              },\r\n              prepareProperties: function (t, e) {\r\n                var i,\r\n                  r = this.dynamicProperties.length;\r\n                for (i = 0; i < r; i += 1)\r\n                  (e ||\r\n                    (this._isParent &&\r\n                      \"transform\" === this.dynamicProperties[i].propType)) &&\r\n                    (this.dynamicProperties[i].getValue(),\r\n                    this.dynamicProperties[i]._mdf &&\r\n                      ((this.globalData._mdf = !0), (this._mdf = !0)));\r\n              },\r\n              addDynamicProperty: function (t) {\r\n                -1 === this.dynamicProperties.indexOf(t) &&\r\n                  this.dynamicProperties.push(t);\r\n              },\r\n            }),\r\n            (FootageElement.prototype.prepareFrame = function () {}),\r\n            extendPrototype(\r\n              [RenderableElement, BaseElement, FrameElement],\r\n              FootageElement\r\n            ),\r\n            (FootageElement.prototype.getBaseElement = function () {\r\n              return null;\r\n            }),\r\n            (FootageElement.prototype.renderFrame = function () {}),\r\n            (FootageElement.prototype.destroy = function () {}),\r\n            (FootageElement.prototype.initExpressions = function () {\r\n              var t = getExpressionInterfaces();\r\n              if (t) {\r\n                var e = t(\"footage\");\r\n                this.layerInterface = e(this);\r\n              }\r\n            }),\r\n            (FootageElement.prototype.getFootageData = function () {\r\n              return this.footageData;\r\n            }),\r\n            (AudioElement.prototype.prepareFrame = function (t) {\r\n              if (\r\n                (this.prepareRenderableFrame(t, !0),\r\n                this.prepareProperties(t, !0),\r\n                this.tm._placeholder)\r\n              )\r\n                this._currentTime = t \/ this.data.sr;\r\n              else {\r\n                var e = this.tm.v;\r\n                this._currentTime = e;\r\n              }\r\n              this._volume = this.lv.v[0];\r\n              var i = this._volume * this._volumeMultiplier;\r\n              this._previousVolume !== i &&\r\n                ((this._previousVolume = i), this.audio.volume(i));\r\n            }),\r\n            extendPrototype(\r\n              [RenderableElement, BaseElement, FrameElement],\r\n              AudioElement\r\n            ),\r\n            (AudioElement.prototype.renderFrame = function () {\r\n              this.isInRange &&\r\n                this._canPlay &&\r\n                (this._isPlaying\r\n                  ? (!this.audio.playing() ||\r\n                      Math.abs(\r\n                        this._currentTime \/ this.globalData.frameRate -\r\n                          this.audio.seek()\r\n                      ) > 0.1) &&\r\n                    this.audio.seek(\r\n                      this._currentTime \/ this.globalData.frameRate\r\n                    )\r\n                  : (this.audio.play(),\r\n                    this.audio.seek(\r\n                      this._currentTime \/ this.globalData.frameRate\r\n                    ),\r\n                    (this._isPlaying = !0)));\r\n            }),\r\n            (AudioElement.prototype.show = function () {}),\r\n            (AudioElement.prototype.hide = function () {\r\n              this.audio.pause(), (this._isPlaying = !1);\r\n            }),\r\n            (AudioElement.prototype.pause = function () {\r\n              this.audio.pause(), (this._isPlaying = !1), (this._canPlay = !1);\r\n            }),\r\n            (AudioElement.prototype.resume = function () {\r\n              this._canPlay = !0;\r\n            }),\r\n            (AudioElement.prototype.setRate = function (t) {\r\n              this.audio.rate(t);\r\n            }),\r\n            (AudioElement.prototype.volume = function (t) {\r\n              (this._volumeMultiplier = t),\r\n                (this._previousVolume = t * this._volume),\r\n                this.audio.volume(this._previousVolume);\r\n            }),\r\n            (AudioElement.prototype.getBaseElement = function () {\r\n              return null;\r\n            }),\r\n            (AudioElement.prototype.destroy = function () {}),\r\n            (AudioElement.prototype.sourceRectAtTime = function () {}),\r\n            (AudioElement.prototype.initExpressions = function () {}),\r\n            (BaseRenderer.prototype.checkLayers = function (t) {\r\n              var e,\r\n                i,\r\n                r = this.layers.length;\r\n              for (this.completeLayers = !0, e = r - 1; e >= 0; e -= 1)\r\n                this.elements[e] ||\r\n                  ((i = this.layers[e]).ip - i.st <= t - this.layers[e].st &&\r\n                    i.op - i.st > t - this.layers[e].st &&\r\n                    this.buildItem(e)),\r\n                  (this.completeLayers =\r\n                    !!this.elements[e] && this.completeLayers);\r\n              this.checkPendingElements();\r\n            }),\r\n            (BaseRenderer.prototype.createItem = function (t) {\r\n              switch (t.ty) {\r\n                case 2:\r\n                  return this.createImage(t);\r\n                case 0:\r\n                  return this.createComp(t);\r\n                case 1:\r\n                  return this.createSolid(t);\r\n                case 3:\r\n                default:\r\n                  return this.createNull(t);\r\n                case 4:\r\n                  return this.createShape(t);\r\n                case 5:\r\n                  return this.createText(t);\r\n                case 6:\r\n                  return this.createAudio(t);\r\n                case 13:\r\n                  return this.createCamera(t);\r\n                case 15:\r\n                  return this.createFootage(t);\r\n              }\r\n            }),\r\n            (BaseRenderer.prototype.createCamera = function () {\r\n              throw new Error(\r\n                \"You're using a 3d camera. Try the html renderer.\"\r\n              );\r\n            }),\r\n            (BaseRenderer.prototype.createAudio = function (t) {\r\n              return new AudioElement(t, this.globalData, this);\r\n            }),\r\n            (BaseRenderer.prototype.createFootage = function (t) {\r\n              return new FootageElement(t, this.globalData, this);\r\n            }),\r\n            (BaseRenderer.prototype.buildAllItems = function () {\r\n              var t,\r\n                e = this.layers.length;\r\n              for (t = 0; t < e; t += 1) this.buildItem(t);\r\n              this.checkPendingElements();\r\n            }),\r\n            (BaseRenderer.prototype.includeLayers = function (t) {\r\n              var e;\r\n              this.completeLayers = !1;\r\n              var i,\r\n                r = t.length,\r\n                s = this.layers.length;\r\n              for (e = 0; e < r; e += 1)\r\n                for (i = 0; i < s; ) {\r\n                  if (this.layers[i].id === t[e].id) {\r\n                    this.layers[i] = t[e];\r\n                    break;\r\n                  }\r\n                  i += 1;\r\n                }\r\n            }),\r\n            (BaseRenderer.prototype.setProjectInterface = function (t) {\r\n              this.globalData.projectInterface = t;\r\n            }),\r\n            (BaseRenderer.prototype.initItems = function () {\r\n              this.globalData.progressiveLoad || this.buildAllItems();\r\n            }),\r\n            (BaseRenderer.prototype.buildElementParenting = function (t, e, i) {\r\n              for (\r\n                var r = this.elements, s = this.layers, a = 0, n = s.length;\r\n                a < n;\r\n\r\n              )\r\n                s[a].ind == e &&\r\n                  (r[a] && !0 !== r[a]\r\n                    ? (i.push(r[a]),\r\n                      r[a].setAsParent(),\r\n                      void 0 !== s[a].parent\r\n                        ? this.buildElementParenting(t, s[a].parent, i)\r\n                        : t.setHierarchy(i))\r\n                    : (this.buildItem(a), this.addPendingElement(t))),\r\n                  (a += 1);\r\n            }),\r\n            (BaseRenderer.prototype.addPendingElement = function (t) {\r\n              this.pendingElements.push(t);\r\n            }),\r\n            (BaseRenderer.prototype.searchExtraCompositions = function (t) {\r\n              var e,\r\n                i = t.length;\r\n              for (e = 0; e < i; e += 1)\r\n                if (t[e].xt) {\r\n                  var r = this.createComp(t[e]);\r\n                  r.initExpressions(),\r\n                    this.globalData.projectInterface.registerComposition(r);\r\n                }\r\n            }),\r\n            (BaseRenderer.prototype.getElementById = function (t) {\r\n              var e,\r\n                i = this.elements.length;\r\n              for (e = 0; e < i; e += 1)\r\n                if (this.elements[e].data.ind === t) return this.elements[e];\r\n              return null;\r\n            }),\r\n            (BaseRenderer.prototype.getElementByPath = function (t) {\r\n              var e,\r\n                i = t.shift();\r\n              if (\"number\" == typeof i) e = this.elements[i];\r\n              else {\r\n                var r,\r\n                  s = this.elements.length;\r\n                for (r = 0; r < s; r += 1)\r\n                  if (this.elements[r].data.nm === i) {\r\n                    e = this.elements[r];\r\n                    break;\r\n                  }\r\n              }\r\n              return 0 === t.length ? e : e.getElementByPath(t);\r\n            }),\r\n            (BaseRenderer.prototype.setupGlobalData = function (t, e) {\r\n              (this.globalData.fontManager = new FontManager()),\r\n                (this.globalData.slotManager = slotFactory(t)),\r\n                this.globalData.fontManager.addChars(t.chars),\r\n                this.globalData.fontManager.addFonts(t.fonts, e),\r\n                (this.globalData.getAssetData =\r\n                  this.animationItem.getAssetData.bind(this.animationItem)),\r\n                (this.globalData.getAssetsPath =\r\n                  this.animationItem.getAssetsPath.bind(this.animationItem)),\r\n                (this.globalData.imageLoader =\r\n                  this.animationItem.imagePreloader),\r\n                (this.globalData.audioController =\r\n                  this.animationItem.audioController),\r\n                (this.globalData.frameId = 0),\r\n                (this.globalData.frameRate = t.fr),\r\n                (this.globalData.nm = t.nm),\r\n                (this.globalData.compSize = { w: t.w, h: t.h });\r\n            });\r\n          var effectTypes = { TRANSFORM_EFFECT: \"transformEFfect\" };\r\n          function TransformElement() {}\r\n          function MaskElement(t, e, i) {\r\n            (this.data = t),\r\n              (this.element = e),\r\n              (this.globalData = i),\r\n              (this.storedData = []),\r\n              (this.masksProperties = this.data.masksProperties || []),\r\n              (this.maskElement = null);\r\n            var r,\r\n              s,\r\n              a = this.globalData.defs,\r\n              n = this.masksProperties ? this.masksProperties.length : 0;\r\n            (this.viewData = createSizedArray(n)), (this.solidPath = \"\");\r\n            var o,\r\n              h,\r\n              l,\r\n              p,\r\n              f,\r\n              m,\r\n              c = this.masksProperties,\r\n              d = 0,\r\n              u = [],\r\n              y = createElementID(),\r\n              g = \"clipPath\",\r\n              v = \"clip-path\";\r\n            for (r = 0; r < n; r += 1)\r\n              if (\r\n                (((\"a\" !== c[r].mode && \"n\" !== c[r].mode) ||\r\n                  c[r].inv ||\r\n                  100 !== c[r].o.k ||\r\n                  c[r].o.x) &&\r\n                  ((g = \"mask\"), (v = \"mask\")),\r\n                (\"s\" !== c[r].mode && \"i\" !== c[r].mode) || 0 !== d\r\n                  ? (l = null)\r\n                  : ((l = createNS(\"rect\")).setAttribute(\"fill\", \"#ffffff\"),\r\n                    l.setAttribute(\"width\", this.element.comp.data.w || 0),\r\n                    l.setAttribute(\"height\", this.element.comp.data.h || 0),\r\n                    u.push(l)),\r\n                (s = createNS(\"path\")),\r\n                \"n\" === c[r].mode)\r\n              )\r\n                (this.viewData[r] = {\r\n                  op: PropertyFactory.getProp(\r\n                    this.element,\r\n                    c[r].o,\r\n                    0,\r\n                    0.01,\r\n                    this.element\r\n                  ),\r\n                  prop: ShapePropertyFactory.getShapeProp(\r\n                    this.element,\r\n                    c[r],\r\n                    3\r\n                  ),\r\n                  elem: s,\r\n                  lastPath: \"\",\r\n                }),\r\n                  a.appendChild(s);\r\n              else {\r\n                var b;\r\n                if (\r\n                  ((d += 1),\r\n                  s.setAttribute(\r\n                    \"fill\",\r\n                    \"s\" === c[r].mode ? \"#000000\" : \"#ffffff\"\r\n                  ),\r\n                  s.setAttribute(\"clip-rule\", \"nonzero\"),\r\n                  0 !== c[r].x.k\r\n                    ? ((g = \"mask\"),\r\n                      (v = \"mask\"),\r\n                      (m = PropertyFactory.getProp(\r\n                        this.element,\r\n                        c[r].x,\r\n                        0,\r\n                        null,\r\n                        this.element\r\n                      )),\r\n                      (b = createElementID()),\r\n                      (p = createNS(\"filter\")).setAttribute(\"id\", b),\r\n                      (f = createNS(\"feMorphology\")).setAttribute(\r\n                        \"operator\",\r\n                        \"erode\"\r\n                      ),\r\n                      f.setAttribute(\"in\", \"SourceGraphic\"),\r\n                      f.setAttribute(\"radius\", \"0\"),\r\n                      p.appendChild(f),\r\n                      a.appendChild(p),\r\n                      s.setAttribute(\r\n                        \"stroke\",\r\n                        \"s\" === c[r].mode ? \"#000000\" : \"#ffffff\"\r\n                      ))\r\n                    : ((f = null), (m = null)),\r\n                  (this.storedData[r] = {\r\n                    elem: s,\r\n                    x: m,\r\n                    expan: f,\r\n                    lastPath: \"\",\r\n                    lastOperator: \"\",\r\n                    filterId: b,\r\n                    lastRadius: 0,\r\n                  }),\r\n                  \"i\" === c[r].mode)\r\n                ) {\r\n                  h = u.length;\r\n                  var x = createNS(\"g\");\r\n                  for (o = 0; o < h; o += 1) x.appendChild(u[o]);\r\n                  var P = createNS(\"mask\");\r\n                  P.setAttribute(\"mask-type\", \"alpha\"),\r\n                    P.setAttribute(\"id\", y + \"_\" + d),\r\n                    P.appendChild(s),\r\n                    a.appendChild(P),\r\n                    x.setAttribute(\r\n                      \"mask\",\r\n                      \"url(\" + getLocationHref() + \"#\" + y + \"_\" + d + \")\"\r\n                    ),\r\n                    (u.length = 0),\r\n                    u.push(x);\r\n                } else u.push(s);\r\n                c[r].inv &&\r\n                  !this.solidPath &&\r\n                  (this.solidPath = this.createLayerSolidPath()),\r\n                  (this.viewData[r] = {\r\n                    elem: s,\r\n                    lastPath: \"\",\r\n                    op: PropertyFactory.getProp(\r\n                      this.element,\r\n                      c[r].o,\r\n                      0,\r\n                      0.01,\r\n                      this.element\r\n                    ),\r\n                    prop: ShapePropertyFactory.getShapeProp(\r\n                      this.element,\r\n                      c[r],\r\n                      3\r\n                    ),\r\n                    invRect: l,\r\n                  }),\r\n                  this.viewData[r].prop.k ||\r\n                    this.drawPath(\r\n                      c[r],\r\n                      this.viewData[r].prop.v,\r\n                      this.viewData[r]\r\n                    );\r\n              }\r\n            for (\r\n              this.maskElement = createNS(g), n = u.length, r = 0;\r\n              r < n;\r\n              r += 1\r\n            )\r\n              this.maskElement.appendChild(u[r]);\r\n            d > 0 &&\r\n              (this.maskElement.setAttribute(\"id\", y),\r\n              this.element.maskedElement.setAttribute(\r\n                v,\r\n                \"url(\" + getLocationHref() + \"#\" + y + \")\"\r\n              ),\r\n              a.appendChild(this.maskElement)),\r\n              this.viewData.length && this.element.addRenderableComponent(this);\r\n          }\r\n          (TransformElement.prototype = {\r\n            initTransform: function () {\r\n              var t = new Matrix();\r\n              (this.finalTransform = {\r\n                mProp: this.data.ks\r\n                  ? TransformPropertyFactory.getTransformProperty(\r\n                      this,\r\n                      this.data.ks,\r\n                      this\r\n                    )\r\n                  : { o: 0 },\r\n                _matMdf: !1,\r\n                _localMatMdf: !1,\r\n                _opMdf: !1,\r\n                mat: t,\r\n                localMat: t,\r\n                localOpacity: 1,\r\n              }),\r\n                this.data.ao && (this.finalTransform.mProp.autoOriented = !0),\r\n                this.data.ty;\r\n            },\r\n            renderTransform: function () {\r\n              if (\r\n                ((this.finalTransform._opMdf =\r\n                  this.finalTransform.mProp.o._mdf || this._isFirstFrame),\r\n                (this.finalTransform._matMdf =\r\n                  this.finalTransform.mProp._mdf || this._isFirstFrame),\r\n                this.hierarchy)\r\n              ) {\r\n                var t,\r\n                  e = this.finalTransform.mat,\r\n                  i = 0,\r\n                  r = this.hierarchy.length;\r\n                if (!this.finalTransform._matMdf)\r\n                  for (; i < r; ) {\r\n                    if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n                      this.finalTransform._matMdf = !0;\r\n                      break;\r\n                    }\r\n                    i += 1;\r\n                  }\r\n                if (this.finalTransform._matMdf)\r\n                  for (\r\n                    t = this.finalTransform.mProp.v.props,\r\n                      e.cloneFromProps(t),\r\n                      i = 0;\r\n                    i < r;\r\n                    i += 1\r\n                  )\r\n                    e.multiply(this.hierarchy[i].finalTransform.mProp.v);\r\n              }\r\n              this.finalTransform._matMdf &&\r\n                (this.finalTransform._localMatMdf =\r\n                  this.finalTransform._matMdf),\r\n                this.finalTransform._opMdf &&\r\n                  (this.finalTransform.localOpacity =\r\n                    this.finalTransform.mProp.o.v);\r\n            },\r\n            renderLocalTransform: function () {\r\n              if (this.localTransforms) {\r\n                var t = 0,\r\n                  e = this.localTransforms.length;\r\n                if (\r\n                  ((this.finalTransform._localMatMdf =\r\n                    this.finalTransform._matMdf),\r\n                  !this.finalTransform._localMatMdf ||\r\n                    !this.finalTransform._opMdf)\r\n                )\r\n                  for (; t < e; )\r\n                    this.localTransforms[t]._mdf &&\r\n                      (this.finalTransform._localMatMdf = !0),\r\n                      this.localTransforms[t]._opMdf &&\r\n                        !this.finalTransform._opMdf &&\r\n                        ((this.finalTransform.localOpacity =\r\n                          this.finalTransform.mProp.o.v),\r\n                        (this.finalTransform._opMdf = !0)),\r\n                      (t += 1);\r\n                if (this.finalTransform._localMatMdf) {\r\n                  var i = this.finalTransform.localMat;\r\n                  for (\r\n                    this.localTransforms[0].matrix.clone(i), t = 1;\r\n                    t < e;\r\n                    t += 1\r\n                  ) {\r\n                    var r = this.localTransforms[t].matrix;\r\n                    i.multiply(r);\r\n                  }\r\n                  i.multiply(this.finalTransform.mat);\r\n                }\r\n                if (this.finalTransform._opMdf) {\r\n                  var s = this.finalTransform.localOpacity;\r\n                  for (t = 0; t < e; t += 1)\r\n                    s *= 0.01 * this.localTransforms[t].opacity;\r\n                  this.finalTransform.localOpacity = s;\r\n                }\r\n              }\r\n            },\r\n            searchEffectTransforms: function () {\r\n              if (this.renderableEffectsManager) {\r\n                var t = this.renderableEffectsManager.getEffects(\r\n                  effectTypes.TRANSFORM_EFFECT\r\n                );\r\n                if (t.length) {\r\n                  (this.localTransforms = []),\r\n                    (this.finalTransform.localMat = new Matrix());\r\n                  var e = 0,\r\n                    i = t.length;\r\n                  for (e = 0; e < i; e += 1) this.localTransforms.push(t[e]);\r\n                }\r\n              }\r\n            },\r\n            globalToLocal: function (t) {\r\n              var e = [];\r\n              e.push(this.finalTransform);\r\n              for (var i, r = !0, s = this.comp; r; )\r\n                s.finalTransform\r\n                  ? (s.data.hasMask && e.splice(0, 0, s.finalTransform),\r\n                    (s = s.comp))\r\n                  : (r = !1);\r\n              var a,\r\n                n = e.length;\r\n              for (i = 0; i < n; i += 1)\r\n                (a = e[i].mat.applyToPointArray(0, 0, 0)),\r\n                  (t = [t[0] - a[0], t[1] - a[1], 0]);\r\n              return t;\r\n            },\r\n            mHelper: new Matrix(),\r\n          }),\r\n            (MaskElement.prototype.getMaskProperty = function (t) {\r\n              return this.viewData[t].prop;\r\n            }),\r\n            (MaskElement.prototype.renderFrame = function (t) {\r\n              var e,\r\n                i = this.element.finalTransform.mat,\r\n                r = this.masksProperties.length;\r\n              for (e = 0; e < r; e += 1)\r\n                if (\r\n                  ((this.viewData[e].prop._mdf || t) &&\r\n                    this.drawPath(\r\n                      this.masksProperties[e],\r\n                      this.viewData[e].prop.v,\r\n                      this.viewData[e]\r\n                    ),\r\n                  (this.viewData[e].op._mdf || t) &&\r\n                    this.viewData[e].elem.setAttribute(\r\n                      \"fill-opacity\",\r\n                      this.viewData[e].op.v\r\n                    ),\r\n                  \"n\" !== this.masksProperties[e].mode &&\r\n                    (this.viewData[e].invRect &&\r\n                      (this.element.finalTransform.mProp._mdf || t) &&\r\n                      this.viewData[e].invRect.setAttribute(\r\n                        \"transform\",\r\n                        i.getInverseMatrix().to2dCSS()\r\n                      ),\r\n                    this.storedData[e].x && (this.storedData[e].x._mdf || t)))\r\n                ) {\r\n                  var s = this.storedData[e].expan;\r\n                  this.storedData[e].x.v < 0\r\n                    ? (\"erode\" !== this.storedData[e].lastOperator &&\r\n                        ((this.storedData[e].lastOperator = \"erode\"),\r\n                        this.storedData[e].elem.setAttribute(\r\n                          \"filter\",\r\n                          \"url(\" +\r\n                            getLocationHref() +\r\n                            \"#\" +\r\n                            this.storedData[e].filterId +\r\n                            \")\"\r\n                        )),\r\n                      s.setAttribute(\"radius\", -this.storedData[e].x.v))\r\n                    : (\"dilate\" !== this.storedData[e].lastOperator &&\r\n                        ((this.storedData[e].lastOperator = \"dilate\"),\r\n                        this.storedData[e].elem.setAttribute(\"filter\", null)),\r\n                      this.storedData[e].elem.setAttribute(\r\n                        \"stroke-width\",\r\n                        2 * this.storedData[e].x.v\r\n                      ));\r\n                }\r\n            }),\r\n            (MaskElement.prototype.getMaskelement = function () {\r\n              return this.maskElement;\r\n            }),\r\n            (MaskElement.prototype.createLayerSolidPath = function () {\r\n              var t = \"M0,0 \";\r\n              return (\r\n                (t += \" h\" + this.globalData.compSize.w),\r\n                (t += \" v\" + this.globalData.compSize.h),\r\n                (t += \" h-\" + this.globalData.compSize.w),\r\n                (t += \" v-\" + this.globalData.compSize.h + \" \")\r\n              );\r\n            }),\r\n            (MaskElement.prototype.drawPath = function (t, e, i) {\r\n              var r,\r\n                s,\r\n                a = \" M\" + e.v[0][0] + \",\" + e.v[0][1];\r\n              for (s = e._length, r = 1; r < s; r += 1)\r\n                a +=\r\n                  \" C\" +\r\n                  e.o[r - 1][0] +\r\n                  \",\" +\r\n                  e.o[r - 1][1] +\r\n                  \" \" +\r\n                  e.i[r][0] +\r\n                  \",\" +\r\n                  e.i[r][1] +\r\n                  \" \" +\r\n                  e.v[r][0] +\r\n                  \",\" +\r\n                  e.v[r][1];\r\n              if (\r\n                (e.c &&\r\n                  s > 1 &&\r\n                  (a +=\r\n                    \" C\" +\r\n                    e.o[r - 1][0] +\r\n                    \",\" +\r\n                    e.o[r - 1][1] +\r\n                    \" \" +\r\n                    e.i[0][0] +\r\n                    \",\" +\r\n                    e.i[0][1] +\r\n                    \" \" +\r\n                    e.v[0][0] +\r\n                    \",\" +\r\n                    e.v[0][1]),\r\n                i.lastPath !== a)\r\n              ) {\r\n                var n = \"\";\r\n                i.elem &&\r\n                  (e.c && (n = t.inv ? this.solidPath + a : a),\r\n                  i.elem.setAttribute(\"d\", n)),\r\n                  (i.lastPath = a);\r\n              }\r\n            }),\r\n            (MaskElement.prototype.destroy = function () {\r\n              (this.element = null),\r\n                (this.globalData = null),\r\n                (this.maskElement = null),\r\n                (this.data = null),\r\n                (this.masksProperties = null);\r\n            });\r\n          var filtersFactory = (function () {\r\n              var t = {};\r\n              return (\r\n                (t.createFilter = function (t, e) {\r\n                  var i = createNS(\"filter\");\r\n                  i.setAttribute(\"id\", t),\r\n                    !0 !== e &&\r\n                      (i.setAttribute(\"filterUnits\", \"objectBoundingBox\"),\r\n                      i.setAttribute(\"x\", \"0%\"),\r\n                      i.setAttribute(\"y\", \"0%\"),\r\n                      i.setAttribute(\"width\", \"100%\"),\r\n                      i.setAttribute(\"height\", \"100%\"));\r\n                  return i;\r\n                }),\r\n                (t.createAlphaToLuminanceFilter = function () {\r\n                  var t = createNS(\"feColorMatrix\");\r\n                  return (\r\n                    t.setAttribute(\"type\", \"matrix\"),\r\n                    t.setAttribute(\"color-interpolation-filters\", \"sRGB\"),\r\n                    t.setAttribute(\r\n                      \"values\",\r\n                      \"0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1\"\r\n                    ),\r\n                    t\r\n                  );\r\n                }),\r\n                t\r\n              );\r\n            })(),\r\n            featureSupport = (function () {\r\n              var t = {\r\n                maskType: !0,\r\n                svgLumaHidden: !0,\r\n                offscreenCanvas: \"undefined\" != typeof OffscreenCanvas,\r\n              };\r\n              return (\r\n                (\/MSIE 10\/i.test(navigator.userAgent) ||\r\n                  \/MSIE 9\/i.test(navigator.userAgent) ||\r\n                  \/rv:11.0\/i.test(navigator.userAgent) ||\r\n                  \/Edge\\\/\\d.\/i.test(navigator.userAgent)) &&\r\n                  (t.maskType = !1),\r\n                \/firefox\/i.test(navigator.userAgent) && (t.svgLumaHidden = !1),\r\n                t\r\n              );\r\n            })(),\r\n            registeredEffects$1 = {},\r\n            idPrefix = \"filter_result_\";\r\n          function SVGEffects(t) {\r\n            var e,\r\n              i,\r\n              r = \"SourceGraphic\",\r\n              s = t.data.ef ? t.data.ef.length : 0,\r\n              a = createElementID(),\r\n              n = filtersFactory.createFilter(a, !0),\r\n              o = 0;\r\n            for (this.filters = [], e = 0; e < s; e += 1) {\r\n              i = null;\r\n              var h = t.data.ef[e].ty;\r\n              if (registeredEffects$1[h])\r\n                (i = new (0, registeredEffects$1[h].effect)(\r\n                  n,\r\n                  t.effectsManager.effectElements[e],\r\n                  t,\r\n                  idPrefix + o,\r\n                  r\r\n                )),\r\n                  (r = idPrefix + o),\r\n                  registeredEffects$1[h].countsAsEffect && (o += 1);\r\n              i && this.filters.push(i);\r\n            }\r\n            o &&\r\n              (t.globalData.defs.appendChild(n),\r\n              t.layerElement.setAttribute(\r\n                \"filter\",\r\n                \"url(\" + getLocationHref() + \"#\" + a + \")\"\r\n              )),\r\n              this.filters.length && t.addRenderableComponent(this);\r\n          }\r\n          function registerEffect$1(t, e, i) {\r\n            registeredEffects$1[t] = { effect: e, countsAsEffect: i };\r\n          }\r\n          function SVGBaseElement() {}\r\n          function HierarchyElement() {}\r\n          function RenderableDOMElement() {}\r\n          function IImageElement(t, e, i) {\r\n            (this.assetData = e.getAssetData(t.refId)),\r\n              this.assetData &&\r\n                this.assetData.sid &&\r\n                (this.assetData = e.slotManager.getProp(this.assetData)),\r\n              this.initElement(t, e, i),\r\n              (this.sourceRect = {\r\n                top: 0,\r\n                left: 0,\r\n                width: this.assetData.w,\r\n                height: this.assetData.h,\r\n              });\r\n          }\r\n          function ProcessedElement(t, e) {\r\n            (this.elem = t), (this.pos = e);\r\n          }\r\n          function IShapeElement() {}\r\n          (SVGEffects.prototype.renderFrame = function (t) {\r\n            var e,\r\n              i = this.filters.length;\r\n            for (e = 0; e < i; e += 1) this.filters[e].renderFrame(t);\r\n          }),\r\n            (SVGEffects.prototype.getEffects = function (t) {\r\n              var e,\r\n                i = this.filters.length,\r\n                r = [];\r\n              for (e = 0; e < i; e += 1)\r\n                this.filters[e].type === t && r.push(this.filters[e]);\r\n              return r;\r\n            }),\r\n            (SVGBaseElement.prototype = {\r\n              initRendererElement: function () {\r\n                this.layerElement = createNS(\"g\");\r\n              },\r\n              createContainerElements: function () {\r\n                (this.matteElement = createNS(\"g\")),\r\n                  (this.transformedElement = this.layerElement),\r\n                  (this.maskedElement = this.layerElement),\r\n                  (this._sizeChanged = !1);\r\n                var t = null;\r\n                if (this.data.td) {\r\n                  this.matteMasks = {};\r\n                  var e = createNS(\"g\");\r\n                  e.setAttribute(\"id\", this.layerId),\r\n                    e.appendChild(this.layerElement),\r\n                    (t = e),\r\n                    this.globalData.defs.appendChild(e);\r\n                } else\r\n                  this.data.tt\r\n                    ? (this.matteElement.appendChild(this.layerElement),\r\n                      (t = this.matteElement),\r\n                      (this.baseElement = this.matteElement))\r\n                    : (this.baseElement = this.layerElement);\r\n                if (\r\n                  (this.data.ln &&\r\n                    this.layerElement.setAttribute(\"id\", this.data.ln),\r\n                  this.data.cl &&\r\n                    this.layerElement.setAttribute(\"class\", this.data.cl),\r\n                  0 === this.data.ty && !this.data.hd)\r\n                ) {\r\n                  var i = createNS(\"clipPath\"),\r\n                    r = createNS(\"path\");\r\n                  r.setAttribute(\r\n                    \"d\",\r\n                    \"M0,0 L\" +\r\n                      this.data.w +\r\n                      \",0 L\" +\r\n                      this.data.w +\r\n                      \",\" +\r\n                      this.data.h +\r\n                      \" L0,\" +\r\n                      this.data.h +\r\n                      \"z\"\r\n                  );\r\n                  var s = createElementID();\r\n                  if (\r\n                    (i.setAttribute(\"id\", s),\r\n                    i.appendChild(r),\r\n                    this.globalData.defs.appendChild(i),\r\n                    this.checkMasks())\r\n                  ) {\r\n                    var a = createNS(\"g\");\r\n                    a.setAttribute(\r\n                      \"clip-path\",\r\n                      \"url(\" + getLocationHref() + \"#\" + s + \")\"\r\n                    ),\r\n                      a.appendChild(this.layerElement),\r\n                      (this.transformedElement = a),\r\n                      t\r\n                        ? t.appendChild(this.transformedElement)\r\n                        : (this.baseElement = this.transformedElement);\r\n                  } else\r\n                    this.layerElement.setAttribute(\r\n                      \"clip-path\",\r\n                      \"url(\" + getLocationHref() + \"#\" + s + \")\"\r\n                    );\r\n                }\r\n                0 !== this.data.bm && this.setBlendMode();\r\n              },\r\n              renderElement: function () {\r\n                this.finalTransform._localMatMdf &&\r\n                  this.transformedElement.setAttribute(\r\n                    \"transform\",\r\n                    this.finalTransform.localMat.to2dCSS()\r\n                  ),\r\n                  this.finalTransform._opMdf &&\r\n                    this.transformedElement.setAttribute(\r\n                      \"opacity\",\r\n                      this.finalTransform.localOpacity\r\n                    );\r\n              },\r\n              destroyBaseElement: function () {\r\n                (this.layerElement = null),\r\n                  (this.matteElement = null),\r\n                  this.maskManager.destroy();\r\n              },\r\n              getBaseElement: function () {\r\n                return this.data.hd ? null : this.baseElement;\r\n              },\r\n              createRenderableComponents: function () {\r\n                (this.maskManager = new MaskElement(\r\n                  this.data,\r\n                  this,\r\n                  this.globalData\r\n                )),\r\n                  (this.renderableEffectsManager = new SVGEffects(this)),\r\n                  this.searchEffectTransforms();\r\n              },\r\n              getMatte: function (t) {\r\n                if (\r\n                  (this.matteMasks || (this.matteMasks = {}),\r\n                  !this.matteMasks[t])\r\n                ) {\r\n                  var e,\r\n                    i,\r\n                    r,\r\n                    s,\r\n                    a = this.layerId + \"_\" + t;\r\n                  if (1 === t || 3 === t) {\r\n                    var n = createNS(\"mask\");\r\n                    n.setAttribute(\"id\", a),\r\n                      n.setAttribute(\r\n                        \"mask-type\",\r\n                        3 === t ? \"luminance\" : \"alpha\"\r\n                      ),\r\n                      (r = createNS(\"use\")).setAttributeNS(\r\n                        \"http:\/\/www.w3.org\/1999\/xlink\",\r\n                        \"href\",\r\n                        \"#\" + this.layerId\r\n                      ),\r\n                      n.appendChild(r),\r\n                      this.globalData.defs.appendChild(n),\r\n                      featureSupport.maskType ||\r\n                        1 !== t ||\r\n                        (n.setAttribute(\"mask-type\", \"luminance\"),\r\n                        (e = createElementID()),\r\n                        (i = filtersFactory.createFilter(e)),\r\n                        this.globalData.defs.appendChild(i),\r\n                        i.appendChild(\r\n                          filtersFactory.createAlphaToLuminanceFilter()\r\n                        ),\r\n                        (s = createNS(\"g\")).appendChild(r),\r\n                        n.appendChild(s),\r\n                        s.setAttribute(\r\n                          \"filter\",\r\n                          \"url(\" + getLocationHref() + \"#\" + e + \")\"\r\n                        ));\r\n                  } else if (2 === t) {\r\n                    var o = createNS(\"mask\");\r\n                    o.setAttribute(\"id\", a),\r\n                      o.setAttribute(\"mask-type\", \"alpha\");\r\n                    var h = createNS(\"g\");\r\n                    o.appendChild(h),\r\n                      (e = createElementID()),\r\n                      (i = filtersFactory.createFilter(e));\r\n                    var l = createNS(\"feComponentTransfer\");\r\n                    l.setAttribute(\"in\", \"SourceGraphic\"), i.appendChild(l);\r\n                    var p = createNS(\"feFuncA\");\r\n                    p.setAttribute(\"type\", \"table\"),\r\n                      p.setAttribute(\"tableValues\", \"1.0 0.0\"),\r\n                      l.appendChild(p),\r\n                      this.globalData.defs.appendChild(i);\r\n                    var f = createNS(\"rect\");\r\n                    f.setAttribute(\"width\", this.comp.data.w),\r\n                      f.setAttribute(\"height\", this.comp.data.h),\r\n                      f.setAttribute(\"x\", \"0\"),\r\n                      f.setAttribute(\"y\", \"0\"),\r\n                      f.setAttribute(\"fill\", \"#ffffff\"),\r\n                      f.setAttribute(\"opacity\", \"0\"),\r\n                      h.setAttribute(\r\n                        \"filter\",\r\n                        \"url(\" + getLocationHref() + \"#\" + e + \")\"\r\n                      ),\r\n                      h.appendChild(f),\r\n                      (r = createNS(\"use\")).setAttributeNS(\r\n                        \"http:\/\/www.w3.org\/1999\/xlink\",\r\n                        \"href\",\r\n                        \"#\" + this.layerId\r\n                      ),\r\n                      h.appendChild(r),\r\n                      featureSupport.maskType ||\r\n                        (o.setAttribute(\"mask-type\", \"luminance\"),\r\n                        i.appendChild(\r\n                          filtersFactory.createAlphaToLuminanceFilter()\r\n                        ),\r\n                        (s = createNS(\"g\")),\r\n                        h.appendChild(f),\r\n                        s.appendChild(this.layerElement),\r\n                        h.appendChild(s)),\r\n                      this.globalData.defs.appendChild(o);\r\n                  }\r\n                  this.matteMasks[t] = a;\r\n                }\r\n                return this.matteMasks[t];\r\n              },\r\n              setMatte: function (t) {\r\n                this.matteElement &&\r\n                  this.matteElement.setAttribute(\r\n                    \"mask\",\r\n                    \"url(\" + getLocationHref() + \"#\" + t + \")\"\r\n                  );\r\n              },\r\n            }),\r\n            (HierarchyElement.prototype = {\r\n              initHierarchy: function () {\r\n                (this.hierarchy = []),\r\n                  (this._isParent = !1),\r\n                  this.checkParenting();\r\n              },\r\n              setHierarchy: function (t) {\r\n                this.hierarchy = t;\r\n              },\r\n              setAsParent: function () {\r\n                this._isParent = !0;\r\n              },\r\n              checkParenting: function () {\r\n                void 0 !== this.data.parent &&\r\n                  this.comp.buildElementParenting(this, this.data.parent, []);\r\n              },\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                RenderableElement,\r\n                createProxyFunction({\r\n                  initElement: function (t, e, i) {\r\n                    this.initFrame(),\r\n                      this.initBaseData(t, e, i),\r\n                      this.initTransform(t, e, i),\r\n                      this.initHierarchy(),\r\n                      this.initRenderable(),\r\n                      this.initRendererElement(),\r\n                      this.createContainerElements(),\r\n                      this.createRenderableComponents(),\r\n                      this.createContent(),\r\n                      this.hide();\r\n                  },\r\n                  hide: function () {\r\n                    this.hidden ||\r\n                      (this.isInRange && !this.isTransparent) ||\r\n                      (((this.baseElement || this.layerElement).style.display =\r\n                        \"none\"),\r\n                      (this.hidden = !0));\r\n                  },\r\n                  show: function () {\r\n                    this.isInRange &&\r\n                      !this.isTransparent &&\r\n                      (this.data.hd ||\r\n                        ((this.baseElement || this.layerElement).style.display =\r\n                          \"block\"),\r\n                      (this.hidden = !1),\r\n                      (this._isFirstFrame = !0));\r\n                  },\r\n                  renderFrame: function () {\r\n                    this.data.hd ||\r\n                      this.hidden ||\r\n                      (this.renderTransform(),\r\n                      this.renderRenderable(),\r\n                      this.renderLocalTransform(),\r\n                      this.renderElement(),\r\n                      this.renderInnerContent(),\r\n                      this._isFirstFrame && (this._isFirstFrame = !1));\r\n                  },\r\n                  renderInnerContent: function () {},\r\n                  prepareFrame: function (t) {\r\n                    (this._mdf = !1),\r\n                      this.prepareRenderableFrame(t),\r\n                      this.prepareProperties(t, this.isInRange),\r\n                      this.checkTransparency();\r\n                  },\r\n                  destroy: function () {\r\n                    (this.innerElem = null), this.destroyBaseElement();\r\n                  },\r\n                }),\r\n              ],\r\n              RenderableDOMElement\r\n            ),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                SVGBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableDOMElement,\r\n              ],\r\n              IImageElement\r\n            ),\r\n            (IImageElement.prototype.createContent = function () {\r\n              var t = this.globalData.getAssetsPath(this.assetData);\r\n              (this.innerElem = createNS(\"image\")),\r\n                this.innerElem.setAttribute(\"width\", this.assetData.w + \"px\"),\r\n                this.innerElem.setAttribute(\"height\", this.assetData.h + \"px\"),\r\n                this.innerElem.setAttribute(\r\n                  \"preserveAspectRatio\",\r\n                  this.assetData.pr ||\r\n                    this.globalData.renderConfig.imagePreserveAspectRatio\r\n                ),\r\n                this.innerElem.setAttributeNS(\r\n                  \"http:\/\/www.w3.org\/1999\/xlink\",\r\n                  \"href\",\r\n                  t\r\n                ),\r\n                this.layerElement.appendChild(this.innerElem);\r\n            }),\r\n            (IImageElement.prototype.sourceRectAtTime = function () {\r\n              return this.sourceRect;\r\n            }),\r\n            (IShapeElement.prototype = {\r\n              addShapeToModifiers: function (t) {\r\n                var e,\r\n                  i = this.shapeModifiers.length;\r\n                for (e = 0; e < i; e += 1) this.shapeModifiers[e].addShape(t);\r\n              },\r\n              isShapeInAnimatedModifiers: function (t) {\r\n                for (var e = this.shapeModifiers.length; 0 < e; )\r\n                  if (this.shapeModifiers[0].isAnimatedWithShape(t)) return !0;\r\n                return !1;\r\n              },\r\n              renderModifiers: function () {\r\n                if (this.shapeModifiers.length) {\r\n                  var t,\r\n                    e = this.shapes.length;\r\n                  for (t = 0; t < e; t += 1) this.shapes[t].sh.reset();\r\n                  for (\r\n                    t = (e = this.shapeModifiers.length) - 1;\r\n                    t >= 0 &&\r\n                    !this.shapeModifiers[t].processShapes(this._isFirstFrame);\r\n                    t -= 1\r\n                  );\r\n                }\r\n              },\r\n              searchProcessedElement: function (t) {\r\n                for (\r\n                  var e = this.processedElements, i = 0, r = e.length;\r\n                  i < r;\r\n\r\n                ) {\r\n                  if (e[i].elem === t) return e[i].pos;\r\n                  i += 1;\r\n                }\r\n                return 0;\r\n              },\r\n              addProcessedElement: function (t, e) {\r\n                for (var i = this.processedElements, r = i.length; r; )\r\n                  if (i[(r -= 1)].elem === t) return void (i[r].pos = e);\r\n                i.push(new ProcessedElement(t, e));\r\n              },\r\n              prepareFrame: function (t) {\r\n                this.prepareRenderableFrame(t),\r\n                  this.prepareProperties(t, this.isInRange);\r\n              },\r\n            });\r\n          var lineCapEnum = { 1: \"butt\", 2: \"round\", 3: \"square\" },\r\n            lineJoinEnum = { 1: \"miter\", 2: \"round\", 3: \"bevel\" };\r\n          function SVGShapeData(t, e, i) {\r\n            (this.caches = []),\r\n              (this.styles = []),\r\n              (this.transformers = t),\r\n              (this.lStr = \"\"),\r\n              (this.sh = i),\r\n              (this.lvl = e),\r\n              (this._isAnimated = !!i.k);\r\n            for (var r = 0, s = t.length; r < s; ) {\r\n              if (t[r].mProps.dynamicProperties.length) {\r\n                this._isAnimated = !0;\r\n                break;\r\n              }\r\n              r += 1;\r\n            }\r\n          }\r\n          function SVGStyleData(t, e) {\r\n            (this.data = t),\r\n              (this.type = t.ty),\r\n              (this.d = \"\"),\r\n              (this.lvl = e),\r\n              (this._mdf = !1),\r\n              (this.closed = !0 === t.hd),\r\n              (this.pElem = createNS(\"path\")),\r\n              (this.msElem = null);\r\n          }\r\n          function DashProperty(t, e, i, r) {\r\n            var s;\r\n            (this.elem = t),\r\n              (this.frameId = -1),\r\n              (this.dataProps = createSizedArray(e.length)),\r\n              (this.renderer = i),\r\n              (this.k = !1),\r\n              (this.dashStr = \"\"),\r\n              (this.dashArray = createTypedArray(\r\n                \"float32\",\r\n                e.length ? e.length - 1 : 0\r\n              )),\r\n              (this.dashoffset = createTypedArray(\"float32\", 1)),\r\n              this.initDynamicPropertyContainer(r);\r\n            var a,\r\n              n = e.length || 0;\r\n            for (s = 0; s < n; s += 1)\r\n              (a = PropertyFactory.getProp(t, e[s].v, 0, 0, this)),\r\n                (this.k = a.k || this.k),\r\n                (this.dataProps[s] = { n: e[s].n, p: a });\r\n            this.k || this.getValue(!0), (this._isAnimated = this.k);\r\n          }\r\n          function SVGStrokeStyleData(t, e, i) {\r\n            this.initDynamicPropertyContainer(t),\r\n              (this.getValue = this.iterateDynamicProperties),\r\n              (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, this)),\r\n              (this.w = PropertyFactory.getProp(t, e.w, 0, null, this)),\r\n              (this.d = new DashProperty(t, e.d || {}, \"svg\", this)),\r\n              (this.c = PropertyFactory.getProp(t, e.c, 1, 255, this)),\r\n              (this.style = i),\r\n              (this._isAnimated = !!this._isAnimated);\r\n          }\r\n          function SVGFillStyleData(t, e, i) {\r\n            this.initDynamicPropertyContainer(t),\r\n              (this.getValue = this.iterateDynamicProperties),\r\n              (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, this)),\r\n              (this.c = PropertyFactory.getProp(t, e.c, 1, 255, this)),\r\n              (this.style = i);\r\n          }\r\n          function SVGNoStyleData(t, e, i) {\r\n            this.initDynamicPropertyContainer(t),\r\n              (this.getValue = this.iterateDynamicProperties),\r\n              (this.style = i);\r\n          }\r\n          function GradientProperty(t, e, i) {\r\n            (this.data = e), (this.c = createTypedArray(\"uint8c\", 4 * e.p));\r\n            var r = e.k.k[0].s\r\n              ? e.k.k[0].s.length - 4 * e.p\r\n              : e.k.k.length - 4 * e.p;\r\n            (this.o = createTypedArray(\"float32\", r)),\r\n              (this._cmdf = !1),\r\n              (this._omdf = !1),\r\n              (this._collapsable = this.checkCollapsable()),\r\n              (this._hasOpacity = r),\r\n              this.initDynamicPropertyContainer(i),\r\n              (this.prop = PropertyFactory.getProp(t, e.k, 1, null, this)),\r\n              (this.k = this.prop.k),\r\n              this.getValue(!0);\r\n          }\r\n          function SVGGradientFillStyleData(t, e, i) {\r\n            this.initDynamicPropertyContainer(t),\r\n              (this.getValue = this.iterateDynamicProperties),\r\n              this.initGradientData(t, e, i);\r\n          }\r\n          function SVGGradientStrokeStyleData(t, e, i) {\r\n            this.initDynamicPropertyContainer(t),\r\n              (this.getValue = this.iterateDynamicProperties),\r\n              (this.w = PropertyFactory.getProp(t, e.w, 0, null, this)),\r\n              (this.d = new DashProperty(t, e.d || {}, \"svg\", this)),\r\n              this.initGradientData(t, e, i),\r\n              (this._isAnimated = !!this._isAnimated);\r\n          }\r\n          function ShapeGroupData() {\r\n            (this.it = []), (this.prevViewData = []), (this.gr = createNS(\"g\"));\r\n          }\r\n          function SVGTransformData(t, e, i) {\r\n            (this.transform = { mProps: t, op: e, container: i }),\r\n              (this.elements = []),\r\n              (this._isAnimated =\r\n                this.transform.mProps.dynamicProperties.length ||\r\n                this.transform.op.effectsSequence.length);\r\n          }\r\n          (SVGShapeData.prototype.setAsAnimated = function () {\r\n            this._isAnimated = !0;\r\n          }),\r\n            (SVGStyleData.prototype.reset = function () {\r\n              (this.d = \"\"), (this._mdf = !1);\r\n            }),\r\n            (DashProperty.prototype.getValue = function (t) {\r\n              if (\r\n                (this.elem.globalData.frameId !== this.frameId || t) &&\r\n                ((this.frameId = this.elem.globalData.frameId),\r\n                this.iterateDynamicProperties(),\r\n                (this._mdf = this._mdf || t),\r\n                this._mdf)\r\n              ) {\r\n                var e = 0,\r\n                  i = this.dataProps.length;\r\n                for (\r\n                  \"svg\" === this.renderer && (this.dashStr = \"\"), e = 0;\r\n                  e < i;\r\n                  e += 1\r\n                )\r\n                  \"o\" !== this.dataProps[e].n\r\n                    ? \"svg\" === this.renderer\r\n                      ? (this.dashStr += \" \" + this.dataProps[e].p.v)\r\n                      : (this.dashArray[e] = this.dataProps[e].p.v)\r\n                    : (this.dashoffset[0] = this.dataProps[e].p.v);\r\n              }\r\n            }),\r\n            extendPrototype([DynamicPropertyContainer], DashProperty),\r\n            extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData),\r\n            extendPrototype([DynamicPropertyContainer], SVGFillStyleData),\r\n            extendPrototype([DynamicPropertyContainer], SVGNoStyleData),\r\n            (GradientProperty.prototype.comparePoints = function (t, e) {\r\n              for (var i = 0, r = this.o.length \/ 2; i < r; ) {\r\n                if (Math.abs(t[4 * i] - t[4 * e + 2 * i]) > 0.01) return !1;\r\n                i += 1;\r\n              }\r\n              return !0;\r\n            }),\r\n            (GradientProperty.prototype.checkCollapsable = function () {\r\n              if (this.o.length \/ 2 != this.c.length \/ 4) return !1;\r\n              if (this.data.k.k[0].s)\r\n                for (var t = 0, e = this.data.k.k.length; t < e; ) {\r\n                  if (!this.comparePoints(this.data.k.k[t].s, this.data.p))\r\n                    return !1;\r\n                  t += 1;\r\n                }\r\n              else if (!this.comparePoints(this.data.k.k, this.data.p))\r\n                return !1;\r\n              return !0;\r\n            }),\r\n            (GradientProperty.prototype.getValue = function (t) {\r\n              if (\r\n                (this.prop.getValue(),\r\n                (this._mdf = !1),\r\n                (this._cmdf = !1),\r\n                (this._omdf = !1),\r\n                this.prop._mdf || t)\r\n              ) {\r\n                var e,\r\n                  i,\r\n                  r,\r\n                  s = 4 * this.data.p;\r\n                for (e = 0; e < s; e += 1)\r\n                  (i = e % 4 == 0 ? 100 : 255),\r\n                    (r = Math.round(this.prop.v[e] * i)),\r\n                    this.c[e] !== r && ((this.c[e] = r), (this._cmdf = !t));\r\n                if (this.o.length)\r\n                  for (\r\n                    s = this.prop.v.length, e = 4 * this.data.p;\r\n                    e < s;\r\n                    e += 1\r\n                  )\r\n                    (i = e % 2 == 0 ? 100 : 1),\r\n                      (r =\r\n                        e % 2 == 0\r\n                          ? Math.round(100 * this.prop.v[e])\r\n                          : this.prop.v[e]),\r\n                      this.o[e - 4 * this.data.p] !== r &&\r\n                        ((this.o[e - 4 * this.data.p] = r), (this._omdf = !t));\r\n                this._mdf = !t;\r\n              }\r\n            }),\r\n            extendPrototype([DynamicPropertyContainer], GradientProperty),\r\n            (SVGGradientFillStyleData.prototype.initGradientData = function (\r\n              t,\r\n              e,\r\n              i\r\n            ) {\r\n              (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, this)),\r\n                (this.s = PropertyFactory.getProp(t, e.s, 1, null, this)),\r\n                (this.e = PropertyFactory.getProp(t, e.e, 1, null, this)),\r\n                (this.h = PropertyFactory.getProp(\r\n                  t,\r\n                  e.h || { k: 0 },\r\n                  0,\r\n                  0.01,\r\n                  this\r\n                )),\r\n                (this.a = PropertyFactory.getProp(\r\n                  t,\r\n                  e.a || { k: 0 },\r\n                  0,\r\n                  degToRads,\r\n                  this\r\n                )),\r\n                (this.g = new GradientProperty(t, e.g, this)),\r\n                (this.style = i),\r\n                (this.stops = []),\r\n                this.setGradientData(i.pElem, e),\r\n                this.setGradientOpacity(e, i),\r\n                (this._isAnimated = !!this._isAnimated);\r\n            }),\r\n            (SVGGradientFillStyleData.prototype.setGradientData = function (\r\n              t,\r\n              e\r\n            ) {\r\n              var i = createElementID(),\r\n                r = createNS(1 === e.t ? \"linearGradient\" : \"radialGradient\");\r\n              r.setAttribute(\"id\", i),\r\n                r.setAttribute(\"spreadMethod\", \"pad\"),\r\n                r.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\r\n              var s,\r\n                a,\r\n                n,\r\n                o = [];\r\n              for (n = 4 * e.g.p, a = 0; a < n; a += 4)\r\n                (s = createNS(\"stop\")), r.appendChild(s), o.push(s);\r\n              t.setAttribute(\r\n                \"gf\" === e.ty ? \"fill\" : \"stroke\",\r\n                \"url(\" + getLocationHref() + \"#\" + i + \")\"\r\n              ),\r\n                (this.gf = r),\r\n                (this.cst = o);\r\n            }),\r\n            (SVGGradientFillStyleData.prototype.setGradientOpacity = function (\r\n              t,\r\n              e\r\n            ) {\r\n              if (this.g._hasOpacity && !this.g._collapsable) {\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a = createNS(\"mask\"),\r\n                  n = createNS(\"path\");\r\n                a.appendChild(n);\r\n                var o = createElementID(),\r\n                  h = createElementID();\r\n                a.setAttribute(\"id\", h);\r\n                var l = createNS(\r\n                  1 === t.t ? \"linearGradient\" : \"radialGradient\"\r\n                );\r\n                l.setAttribute(\"id\", o),\r\n                  l.setAttribute(\"spreadMethod\", \"pad\"),\r\n                  l.setAttribute(\"gradientUnits\", \"userSpaceOnUse\"),\r\n                  (s = t.g.k.k[0].s ? t.g.k.k[0].s.length : t.g.k.k.length);\r\n                var p = this.stops;\r\n                for (r = 4 * t.g.p; r < s; r += 2)\r\n                  (i = createNS(\"stop\")).setAttribute(\r\n                    \"stop-color\",\r\n                    \"rgb(255,255,255)\"\r\n                  ),\r\n                    l.appendChild(i),\r\n                    p.push(i);\r\n                n.setAttribute(\r\n                  \"gf\" === t.ty ? \"fill\" : \"stroke\",\r\n                  \"url(\" + getLocationHref() + \"#\" + o + \")\"\r\n                ),\r\n                  \"gs\" === t.ty &&\r\n                    (n.setAttribute(\"stroke-linecap\", lineCapEnum[t.lc || 2]),\r\n                    n.setAttribute(\"stroke-linejoin\", lineJoinEnum[t.lj || 2]),\r\n                    1 === t.lj && n.setAttribute(\"stroke-miterlimit\", t.ml)),\r\n                  (this.of = l),\r\n                  (this.ms = a),\r\n                  (this.ost = p),\r\n                  (this.maskId = h),\r\n                  (e.msElem = n);\r\n              }\r\n            }),\r\n            extendPrototype(\r\n              [DynamicPropertyContainer],\r\n              SVGGradientFillStyleData\r\n            ),\r\n            extendPrototype(\r\n              [SVGGradientFillStyleData, DynamicPropertyContainer],\r\n              SVGGradientStrokeStyleData\r\n            );\r\n          var buildShapeString = function (t, e, i, r) {\r\n              if (0 === e) return \"\";\r\n              var s,\r\n                a = t.o,\r\n                n = t.i,\r\n                o = t.v,\r\n                h = \" M\" + r.applyToPointStringified(o[0][0], o[0][1]);\r\n              for (s = 1; s < e; s += 1)\r\n                h +=\r\n                  \" C\" +\r\n                  r.applyToPointStringified(a[s - 1][0], a[s - 1][1]) +\r\n                  \" \" +\r\n                  r.applyToPointStringified(n[s][0], n[s][1]) +\r\n                  \" \" +\r\n                  r.applyToPointStringified(o[s][0], o[s][1]);\r\n              return (\r\n                i &&\r\n                  e &&\r\n                  ((h +=\r\n                    \" C\" +\r\n                    r.applyToPointStringified(a[s - 1][0], a[s - 1][1]) +\r\n                    \" \" +\r\n                    r.applyToPointStringified(n[0][0], n[0][1]) +\r\n                    \" \" +\r\n                    r.applyToPointStringified(o[0][0], o[0][1])),\r\n                  (h += \"z\")),\r\n                h\r\n              );\r\n            },\r\n            SVGElementsRenderer = (function () {\r\n              var t = new Matrix(),\r\n                e = new Matrix();\r\n              function i(t, e, i) {\r\n                (i || e.transform.op._mdf) &&\r\n                  e.transform.container.setAttribute(\r\n                    \"opacity\",\r\n                    e.transform.op.v\r\n                  ),\r\n                  (i || e.transform.mProps._mdf) &&\r\n                    e.transform.container.setAttribute(\r\n                      \"transform\",\r\n                      e.transform.mProps.v.to2dCSS()\r\n                    );\r\n              }\r\n              function r() {}\r\n              function s(i, r, s) {\r\n                var a,\r\n                  n,\r\n                  o,\r\n                  h,\r\n                  l,\r\n                  p,\r\n                  f,\r\n                  m,\r\n                  c,\r\n                  d,\r\n                  u = r.styles.length,\r\n                  y = r.lvl;\r\n                for (p = 0; p < u; p += 1) {\r\n                  if (((h = r.sh._mdf || s), r.styles[p].lvl < y)) {\r\n                    for (\r\n                      m = e.reset(),\r\n                        c = y - r.styles[p].lvl,\r\n                        d = r.transformers.length - 1;\r\n                      !h && c > 0;\r\n\r\n                    )\r\n                      (h = r.transformers[d].mProps._mdf || h),\r\n                        (c -= 1),\r\n                        (d -= 1);\r\n                    if (h)\r\n                      for (\r\n                        c = y - r.styles[p].lvl, d = r.transformers.length - 1;\r\n                        c > 0;\r\n\r\n                      )\r\n                        m.multiply(r.transformers[d].mProps.v),\r\n                          (c -= 1),\r\n                          (d -= 1);\r\n                  } else m = t;\r\n                  if (((n = (f = r.sh.paths)._length), h)) {\r\n                    for (o = \"\", a = 0; a < n; a += 1)\r\n                      (l = f.shapes[a]) &&\r\n                        l._length &&\r\n                        (o += buildShapeString(l, l._length, l.c, m));\r\n                    r.caches[p] = o;\r\n                  } else o = r.caches[p];\r\n                  (r.styles[p].d += !0 === i.hd ? \"\" : o),\r\n                    (r.styles[p]._mdf = h || r.styles[p]._mdf);\r\n                }\r\n              }\r\n              function a(t, e, i) {\r\n                var r = e.style;\r\n                (e.c._mdf || i) &&\r\n                  r.pElem.setAttribute(\r\n                    \"fill\",\r\n                    \"rgb(\" +\r\n                      bmFloor(e.c.v[0]) +\r\n                      \",\" +\r\n                      bmFloor(e.c.v[1]) +\r\n                      \",\" +\r\n                      bmFloor(e.c.v[2]) +\r\n                      \")\"\r\n                  ),\r\n                  (e.o._mdf || i) &&\r\n                    r.pElem.setAttribute(\"fill-opacity\", e.o.v);\r\n              }\r\n              function n(t, e, i) {\r\n                o(t, e, i), h(t, e, i);\r\n              }\r\n              function o(t, e, i) {\r\n                var r,\r\n                  s,\r\n                  a,\r\n                  n,\r\n                  o,\r\n                  h = e.gf,\r\n                  l = e.g._hasOpacity,\r\n                  p = e.s.v,\r\n                  f = e.e.v;\r\n                if (e.o._mdf || i) {\r\n                  var m = \"gf\" === t.ty ? \"fill-opacity\" : \"stroke-opacity\";\r\n                  e.style.pElem.setAttribute(m, e.o.v);\r\n                }\r\n                if (e.s._mdf || i) {\r\n                  var c = 1 === t.t ? \"x1\" : \"cx\",\r\n                    d = \"x1\" === c ? \"y1\" : \"cy\";\r\n                  h.setAttribute(c, p[0]),\r\n                    h.setAttribute(d, p[1]),\r\n                    l &&\r\n                      !e.g._collapsable &&\r\n                      (e.of.setAttribute(c, p[0]), e.of.setAttribute(d, p[1]));\r\n                }\r\n                if (e.g._cmdf || i) {\r\n                  r = e.cst;\r\n                  var u = e.g.c;\r\n                  for (a = r.length, s = 0; s < a; s += 1)\r\n                    (n = r[s]).setAttribute(\"offset\", u[4 * s] + \"%\"),\r\n                      n.setAttribute(\r\n                        \"stop-color\",\r\n                        \"rgb(\" +\r\n                          u[4 * s + 1] +\r\n                          \",\" +\r\n                          u[4 * s + 2] +\r\n                          \",\" +\r\n                          u[4 * s + 3] +\r\n                          \")\"\r\n                      );\r\n                }\r\n                if (l && (e.g._omdf || i)) {\r\n                  var y = e.g.o;\r\n                  for (\r\n                    a = (r = e.g._collapsable ? e.cst : e.ost).length, s = 0;\r\n                    s < a;\r\n                    s += 1\r\n                  )\r\n                    (n = r[s]),\r\n                      e.g._collapsable ||\r\n                        n.setAttribute(\"offset\", y[2 * s] + \"%\"),\r\n                      n.setAttribute(\"stop-opacity\", y[2 * s + 1]);\r\n                }\r\n                if (1 === t.t)\r\n                  (e.e._mdf || i) &&\r\n                    (h.setAttribute(\"x2\", f[0]),\r\n                    h.setAttribute(\"y2\", f[1]),\r\n                    l &&\r\n                      !e.g._collapsable &&\r\n                      (e.of.setAttribute(\"x2\", f[0]),\r\n                      e.of.setAttribute(\"y2\", f[1])));\r\n                else if (\r\n                  ((e.s._mdf || e.e._mdf || i) &&\r\n                    ((o = Math.sqrt(\r\n                      Math.pow(p[0] - f[0], 2) + Math.pow(p[1] - f[1], 2)\r\n                    )),\r\n                    h.setAttribute(\"r\", o),\r\n                    l && !e.g._collapsable && e.of.setAttribute(\"r\", o)),\r\n                  e.e._mdf || e.h._mdf || e.a._mdf || i)\r\n                ) {\r\n                  o ||\r\n                    (o = Math.sqrt(\r\n                      Math.pow(p[0] - f[0], 2) + Math.pow(p[1] - f[1], 2)\r\n                    ));\r\n                  var g = Math.atan2(f[1] - p[1], f[0] - p[0]),\r\n                    v = e.h.v;\r\n                  v >= 1 ? (v = 0.99) : v <= -1 && (v = -0.99);\r\n                  var b = o * v,\r\n                    x = Math.cos(g + e.a.v) * b + p[0],\r\n                    P = Math.sin(g + e.a.v) * b + p[1];\r\n                  h.setAttribute(\"fx\", x),\r\n                    h.setAttribute(\"fy\", P),\r\n                    l &&\r\n                      !e.g._collapsable &&\r\n                      (e.of.setAttribute(\"fx\", x), e.of.setAttribute(\"fy\", P));\r\n                }\r\n              }\r\n              function h(t, e, i) {\r\n                var r = e.style,\r\n                  s = e.d;\r\n                s &&\r\n                  (s._mdf || i) &&\r\n                  s.dashStr &&\r\n                  (r.pElem.setAttribute(\"stroke-dasharray\", s.dashStr),\r\n                  r.pElem.setAttribute(\"stroke-dashoffset\", s.dashoffset[0])),\r\n                  e.c &&\r\n                    (e.c._mdf || i) &&\r\n                    r.pElem.setAttribute(\r\n                      \"stroke\",\r\n                      \"rgb(\" +\r\n                        bmFloor(e.c.v[0]) +\r\n                        \",\" +\r\n                        bmFloor(e.c.v[1]) +\r\n                        \",\" +\r\n                        bmFloor(e.c.v[2]) +\r\n                        \")\"\r\n                    ),\r\n                  (e.o._mdf || i) &&\r\n                    r.pElem.setAttribute(\"stroke-opacity\", e.o.v),\r\n                  (e.w._mdf || i) &&\r\n                    (r.pElem.setAttribute(\"stroke-width\", e.w.v),\r\n                    r.msElem && r.msElem.setAttribute(\"stroke-width\", e.w.v));\r\n              }\r\n              return {\r\n                createRenderFunction: function (t) {\r\n                  switch (t.ty) {\r\n                    case \"fl\":\r\n                      return a;\r\n                    case \"gf\":\r\n                      return o;\r\n                    case \"gs\":\r\n                      return n;\r\n                    case \"st\":\r\n                      return h;\r\n                    case \"sh\":\r\n                    case \"el\":\r\n                    case \"rc\":\r\n                    case \"sr\":\r\n                      return s;\r\n                    case \"tr\":\r\n                      return i;\r\n                    case \"no\":\r\n                      return r;\r\n                    default:\r\n                      return null;\r\n                  }\r\n                },\r\n              };\r\n            })();\r\n          function SVGShapeElement(t, e, i) {\r\n            (this.shapes = []),\r\n              (this.shapesData = t.shapes),\r\n              (this.stylesList = []),\r\n              (this.shapeModifiers = []),\r\n              (this.itemsData = []),\r\n              (this.processedElements = []),\r\n              (this.animatedContents = []),\r\n              this.initElement(t, e, i),\r\n              (this.prevViewData = []);\r\n          }\r\n          function LetterProps(t, e, i, r, s, a) {\r\n            (this.o = t),\r\n              (this.sw = e),\r\n              (this.sc = i),\r\n              (this.fc = r),\r\n              (this.m = s),\r\n              (this.p = a),\r\n              (this._mdf = { o: !0, sw: !!e, sc: !!i, fc: !!r, m: !0, p: !0 });\r\n          }\r\n          function TextProperty(t, e) {\r\n            (this._frameId = initialDefaultFrame),\r\n              (this.pv = \"\"),\r\n              (this.v = \"\"),\r\n              (this.kf = !1),\r\n              (this._isFirstFrame = !0),\r\n              (this._mdf = !1),\r\n              e.d && e.d.sid && (e.d = t.globalData.slotManager.getProp(e.d)),\r\n              (this.data = e),\r\n              (this.elem = t),\r\n              (this.comp = this.elem.comp),\r\n              (this.keysIndex = 0),\r\n              (this.canResize = !1),\r\n              (this.minimumFontSize = 1),\r\n              (this.effectsSequence = []),\r\n              (this.currentData = {\r\n                ascent: 0,\r\n                boxWidth: this.defaultBoxWidth,\r\n                f: \"\",\r\n                fStyle: \"\",\r\n                fWeight: \"\",\r\n                fc: \"\",\r\n                j: \"\",\r\n                justifyOffset: \"\",\r\n                l: [],\r\n                lh: 0,\r\n                lineWidths: [],\r\n                ls: \"\",\r\n                of: \"\",\r\n                s: \"\",\r\n                sc: \"\",\r\n                sw: 0,\r\n                t: 0,\r\n                tr: 0,\r\n                sz: 0,\r\n                ps: null,\r\n                fillColorAnim: !1,\r\n                strokeColorAnim: !1,\r\n                strokeWidthAnim: !1,\r\n                yOffset: 0,\r\n                finalSize: 0,\r\n                finalText: [],\r\n                finalLineHeight: 0,\r\n                __complete: !1,\r\n              }),\r\n              this.copyData(this.currentData, this.data.d.k[0].s),\r\n              this.searchProperty() || this.completeTextData(this.currentData);\r\n          }\r\n          extendPrototype(\r\n            [\r\n              BaseElement,\r\n              TransformElement,\r\n              SVGBaseElement,\r\n              IShapeElement,\r\n              HierarchyElement,\r\n              FrameElement,\r\n              RenderableDOMElement,\r\n            ],\r\n            SVGShapeElement\r\n          ),\r\n            (SVGShapeElement.prototype.initSecondaryElement = function () {}),\r\n            (SVGShapeElement.prototype.identityMatrix = new Matrix()),\r\n            (SVGShapeElement.prototype.buildExpressionInterface =\r\n              function () {}),\r\n            (SVGShapeElement.prototype.createContent = function () {\r\n              this.searchShapes(\r\n                this.shapesData,\r\n                this.itemsData,\r\n                this.prevViewData,\r\n                this.layerElement,\r\n                0,\r\n                [],\r\n                !0\r\n              ),\r\n                this.filterUniqueShapes();\r\n            }),\r\n            (SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n              var t,\r\n                e,\r\n                i,\r\n                r,\r\n                s = this.shapes.length,\r\n                a = this.stylesList.length,\r\n                n = [],\r\n                o = !1;\r\n              for (i = 0; i < a; i += 1) {\r\n                for (\r\n                  r = this.stylesList[i], o = !1, n.length = 0, t = 0;\r\n                  t < s;\r\n                  t += 1\r\n                )\r\n                  -1 !== (e = this.shapes[t]).styles.indexOf(r) &&\r\n                    (n.push(e), (o = e._isAnimated || o));\r\n                n.length > 1 && o && this.setShapesAsAnimated(n);\r\n              }\r\n            }),\r\n            (SVGShapeElement.prototype.setShapesAsAnimated = function (t) {\r\n              var e,\r\n                i = t.length;\r\n              for (e = 0; e < i; e += 1) t[e].setAsAnimated();\r\n            }),\r\n            (SVGShapeElement.prototype.createStyleElement = function (t, e) {\r\n              var i,\r\n                r = new SVGStyleData(t, e),\r\n                s = r.pElem;\r\n              if (\"st\" === t.ty) i = new SVGStrokeStyleData(this, t, r);\r\n              else if (\"fl\" === t.ty) i = new SVGFillStyleData(this, t, r);\r\n              else if (\"gf\" === t.ty || \"gs\" === t.ty) {\r\n                (i = new (\r\n                  \"gf\" === t.ty\r\n                    ? SVGGradientFillStyleData\r\n                    : SVGGradientStrokeStyleData\r\n                )(this, t, r)),\r\n                  this.globalData.defs.appendChild(i.gf),\r\n                  i.maskId &&\r\n                    (this.globalData.defs.appendChild(i.ms),\r\n                    this.globalData.defs.appendChild(i.of),\r\n                    s.setAttribute(\r\n                      \"mask\",\r\n                      \"url(\" + getLocationHref() + \"#\" + i.maskId + \")\"\r\n                    ));\r\n              } else \"no\" === t.ty && (i = new SVGNoStyleData(this, t, r));\r\n              return (\r\n                (\"st\" !== t.ty && \"gs\" !== t.ty) ||\r\n                  (s.setAttribute(\"stroke-linecap\", lineCapEnum[t.lc || 2]),\r\n                  s.setAttribute(\"stroke-linejoin\", lineJoinEnum[t.lj || 2]),\r\n                  s.setAttribute(\"fill-opacity\", \"0\"),\r\n                  1 === t.lj && s.setAttribute(\"stroke-miterlimit\", t.ml)),\r\n                2 === t.r && s.setAttribute(\"fill-rule\", \"evenodd\"),\r\n                t.ln && s.setAttribute(\"id\", t.ln),\r\n                t.cl && s.setAttribute(\"class\", t.cl),\r\n                t.bm && (s.style[\"mix-blend-mode\"] = getBlendMode(t.bm)),\r\n                this.stylesList.push(r),\r\n                this.addToAnimatedContents(t, i),\r\n                i\r\n              );\r\n            }),\r\n            (SVGShapeElement.prototype.createGroupElement = function (t) {\r\n              var e = new ShapeGroupData();\r\n              return (\r\n                t.ln && e.gr.setAttribute(\"id\", t.ln),\r\n                t.cl && e.gr.setAttribute(\"class\", t.cl),\r\n                t.bm && (e.gr.style[\"mix-blend-mode\"] = getBlendMode(t.bm)),\r\n                e\r\n              );\r\n            }),\r\n            (SVGShapeElement.prototype.createTransformElement = function (\r\n              t,\r\n              e\r\n            ) {\r\n              var i = TransformPropertyFactory.getTransformProperty(\r\n                  this,\r\n                  t,\r\n                  this\r\n                ),\r\n                r = new SVGTransformData(i, i.o, e);\r\n              return this.addToAnimatedContents(t, r), r;\r\n            }),\r\n            (SVGShapeElement.prototype.createShapeElement = function (t, e, i) {\r\n              var r = 4;\r\n              \"rc\" === t.ty\r\n                ? (r = 5)\r\n                : \"el\" === t.ty\r\n                ? (r = 6)\r\n                : \"sr\" === t.ty && (r = 7);\r\n              var s = new SVGShapeData(\r\n                e,\r\n                i,\r\n                ShapePropertyFactory.getShapeProp(this, t, r, this)\r\n              );\r\n              return (\r\n                this.shapes.push(s),\r\n                this.addShapeToModifiers(s),\r\n                this.addToAnimatedContents(t, s),\r\n                s\r\n              );\r\n            }),\r\n            (SVGShapeElement.prototype.addToAnimatedContents = function (t, e) {\r\n              for (var i = 0, r = this.animatedContents.length; i < r; ) {\r\n                if (this.animatedContents[i].element === e) return;\r\n                i += 1;\r\n              }\r\n              this.animatedContents.push({\r\n                fn: SVGElementsRenderer.createRenderFunction(t),\r\n                element: e,\r\n                data: t,\r\n              });\r\n            }),\r\n            (SVGShapeElement.prototype.setElementStyles = function (t) {\r\n              var e,\r\n                i = t.styles,\r\n                r = this.stylesList.length;\r\n              for (e = 0; e < r; e += 1)\r\n                this.stylesList[e].closed || i.push(this.stylesList[e]);\r\n            }),\r\n            (SVGShapeElement.prototype.reloadShapes = function () {\r\n              var t;\r\n              this._isFirstFrame = !0;\r\n              var e = this.itemsData.length;\r\n              for (t = 0; t < e; t += 1)\r\n                this.prevViewData[t] = this.itemsData[t];\r\n              for (\r\n                this.searchShapes(\r\n                  this.shapesData,\r\n                  this.itemsData,\r\n                  this.prevViewData,\r\n                  this.layerElement,\r\n                  0,\r\n                  [],\r\n                  !0\r\n                ),\r\n                  this.filterUniqueShapes(),\r\n                  e = this.dynamicProperties.length,\r\n                  t = 0;\r\n                t < e;\r\n                t += 1\r\n              )\r\n                this.dynamicProperties[t].getValue();\r\n              this.renderModifiers();\r\n            }),\r\n            (SVGShapeElement.prototype.searchShapes = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s,\r\n              a,\r\n              n\r\n            ) {\r\n              var o,\r\n                h,\r\n                l,\r\n                p,\r\n                f,\r\n                m,\r\n                c = [].concat(a),\r\n                d = t.length - 1,\r\n                u = [],\r\n                y = [];\r\n              for (o = d; o >= 0; o -= 1) {\r\n                if (\r\n                  ((m = this.searchProcessedElement(t[o]))\r\n                    ? (e[o] = i[m - 1])\r\n                    : (t[o]._render = n),\r\n                  \"fl\" === t[o].ty ||\r\n                    \"st\" === t[o].ty ||\r\n                    \"gf\" === t[o].ty ||\r\n                    \"gs\" === t[o].ty ||\r\n                    \"no\" === t[o].ty)\r\n                )\r\n                  m\r\n                    ? (e[o].style.closed = !1)\r\n                    : (e[o] = this.createStyleElement(t[o], s)),\r\n                    t[o]._render &&\r\n                      e[o].style.pElem.parentNode !== r &&\r\n                      r.appendChild(e[o].style.pElem),\r\n                    u.push(e[o].style);\r\n                else if (\"gr\" === t[o].ty) {\r\n                  if (m)\r\n                    for (l = e[o].it.length, h = 0; h < l; h += 1)\r\n                      e[o].prevViewData[h] = e[o].it[h];\r\n                  else e[o] = this.createGroupElement(t[o]);\r\n                  this.searchShapes(\r\n                    t[o].it,\r\n                    e[o].it,\r\n                    e[o].prevViewData,\r\n                    e[o].gr,\r\n                    s + 1,\r\n                    c,\r\n                    n\r\n                  ),\r\n                    t[o]._render &&\r\n                      e[o].gr.parentNode !== r &&\r\n                      r.appendChild(e[o].gr);\r\n                } else\r\n                  \"tr\" === t[o].ty\r\n                    ? (m || (e[o] = this.createTransformElement(t[o], r)),\r\n                      (p = e[o].transform),\r\n                      c.push(p))\r\n                    : \"sh\" === t[o].ty ||\r\n                      \"rc\" === t[o].ty ||\r\n                      \"el\" === t[o].ty ||\r\n                      \"sr\" === t[o].ty\r\n                    ? (m || (e[o] = this.createShapeElement(t[o], c, s)),\r\n                      this.setElementStyles(e[o]))\r\n                    : \"tm\" === t[o].ty ||\r\n                      \"rd\" === t[o].ty ||\r\n                      \"ms\" === t[o].ty ||\r\n                      \"pb\" === t[o].ty ||\r\n                      \"zz\" === t[o].ty ||\r\n                      \"op\" === t[o].ty\r\n                    ? (m\r\n                        ? ((f = e[o]).closed = !1)\r\n                        : ((f = ShapeModifiers.getModifier(t[o].ty)).init(\r\n                            this,\r\n                            t[o]\r\n                          ),\r\n                          (e[o] = f),\r\n                          this.shapeModifiers.push(f)),\r\n                      y.push(f))\r\n                    : \"rp\" === t[o].ty &&\r\n                      (m\r\n                        ? ((f = e[o]).closed = !0)\r\n                        : ((f = ShapeModifiers.getModifier(t[o].ty)),\r\n                          (e[o] = f),\r\n                          f.init(this, t, o, e),\r\n                          this.shapeModifiers.push(f),\r\n                          (n = !1)),\r\n                      y.push(f));\r\n                this.addProcessedElement(t[o], o + 1);\r\n              }\r\n              for (d = u.length, o = 0; o < d; o += 1) u[o].closed = !0;\r\n              for (d = y.length, o = 0; o < d; o += 1) y[o].closed = !0;\r\n            }),\r\n            (SVGShapeElement.prototype.renderInnerContent = function () {\r\n              var t;\r\n              this.renderModifiers();\r\n              var e = this.stylesList.length;\r\n              for (t = 0; t < e; t += 1) this.stylesList[t].reset();\r\n              for (this.renderShape(), t = 0; t < e; t += 1)\r\n                (this.stylesList[t]._mdf || this._isFirstFrame) &&\r\n                  (this.stylesList[t].msElem &&\r\n                    (this.stylesList[t].msElem.setAttribute(\r\n                      \"d\",\r\n                      this.stylesList[t].d\r\n                    ),\r\n                    (this.stylesList[t].d = \"M0 0\" + this.stylesList[t].d)),\r\n                  this.stylesList[t].pElem.setAttribute(\r\n                    \"d\",\r\n                    this.stylesList[t].d || \"M0 0\"\r\n                  ));\r\n            }),\r\n            (SVGShapeElement.prototype.renderShape = function () {\r\n              var t,\r\n                e,\r\n                i = this.animatedContents.length;\r\n              for (t = 0; t < i; t += 1)\r\n                (e = this.animatedContents[t]),\r\n                  (this._isFirstFrame || e.element._isAnimated) &&\r\n                    !0 !== e.data &&\r\n                    e.fn(e.data, e.element, this._isFirstFrame);\r\n            }),\r\n            (SVGShapeElement.prototype.destroy = function () {\r\n              this.destroyBaseElement(),\r\n                (this.shapesData = null),\r\n                (this.itemsData = null);\r\n            }),\r\n            (LetterProps.prototype.update = function (t, e, i, r, s, a) {\r\n              (this._mdf.o = !1),\r\n                (this._mdf.sw = !1),\r\n                (this._mdf.sc = !1),\r\n                (this._mdf.fc = !1),\r\n                (this._mdf.m = !1),\r\n                (this._mdf.p = !1);\r\n              var n = !1;\r\n              return (\r\n                this.o !== t && ((this.o = t), (this._mdf.o = !0), (n = !0)),\r\n                this.sw !== e && ((this.sw = e), (this._mdf.sw = !0), (n = !0)),\r\n                this.sc !== i && ((this.sc = i), (this._mdf.sc = !0), (n = !0)),\r\n                this.fc !== r && ((this.fc = r), (this._mdf.fc = !0), (n = !0)),\r\n                this.m !== s && ((this.m = s), (this._mdf.m = !0), (n = !0)),\r\n                !a.length ||\r\n                  (this.p[0] === a[0] &&\r\n                    this.p[1] === a[1] &&\r\n                    this.p[4] === a[4] &&\r\n                    this.p[5] === a[5] &&\r\n                    this.p[12] === a[12] &&\r\n                    this.p[13] === a[13]) ||\r\n                  ((this.p = a), (this._mdf.p = !0), (n = !0)),\r\n                n\r\n              );\r\n            }),\r\n            (TextProperty.prototype.defaultBoxWidth = [0, 0]),\r\n            (TextProperty.prototype.copyData = function (t, e) {\r\n              for (var i in e)\r\n                Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);\r\n              return t;\r\n            }),\r\n            (TextProperty.prototype.setCurrentData = function (t) {\r\n              t.__complete || this.completeTextData(t),\r\n                (this.currentData = t),\r\n                (this.currentData.boxWidth =\r\n                  this.currentData.boxWidth || this.defaultBoxWidth),\r\n                (this._mdf = !0);\r\n            }),\r\n            (TextProperty.prototype.searchProperty = function () {\r\n              return this.searchKeyframes();\r\n            }),\r\n            (TextProperty.prototype.searchKeyframes = function () {\r\n              return (\r\n                (this.kf = this.data.d.k.length > 1),\r\n                this.kf && this.addEffect(this.getKeyframeValue.bind(this)),\r\n                this.kf\r\n              );\r\n            }),\r\n            (TextProperty.prototype.addEffect = function (t) {\r\n              this.effectsSequence.push(t), this.elem.addDynamicProperty(this);\r\n            }),\r\n            (TextProperty.prototype.getValue = function (t) {\r\n              if (\r\n                (this.elem.globalData.frameId !== this.frameId &&\r\n                  this.effectsSequence.length) ||\r\n                t\r\n              ) {\r\n                this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n                var e = this.currentData,\r\n                  i = this.keysIndex;\r\n                if (this.lock) this.setCurrentData(this.currentData);\r\n                else {\r\n                  var r;\r\n                  (this.lock = !0), (this._mdf = !1);\r\n                  var s = this.effectsSequence.length,\r\n                    a = t || this.data.d.k[this.keysIndex].s;\r\n                  for (r = 0; r < s; r += 1)\r\n                    a =\r\n                      i !== this.keysIndex\r\n                        ? this.effectsSequence[r](a, a.t)\r\n                        : this.effectsSequence[r](this.currentData, a.t);\r\n                  e !== a && this.setCurrentData(a),\r\n                    (this.v = this.currentData),\r\n                    (this.pv = this.v),\r\n                    (this.lock = !1),\r\n                    (this.frameId = this.elem.globalData.frameId);\r\n                }\r\n              }\r\n            }),\r\n            (TextProperty.prototype.getKeyframeValue = function () {\r\n              for (\r\n                var t = this.data.d.k,\r\n                  e = this.elem.comp.renderedFrame,\r\n                  i = 0,\r\n                  r = t.length;\r\n                i <= r - 1 && !(i === r - 1 || t[i + 1].t > e);\r\n\r\n              )\r\n                i += 1;\r\n              return (\r\n                this.keysIndex !== i && (this.keysIndex = i),\r\n                this.data.d.k[this.keysIndex].s\r\n              );\r\n            }),\r\n            (TextProperty.prototype.buildFinalText = function (t) {\r\n              for (\r\n                var e, i, r = [], s = 0, a = t.length, n = !1, o = !1, h = \"\";\r\n                s < a;\r\n\r\n              )\r\n                (n = o),\r\n                  (o = !1),\r\n                  (e = t.charCodeAt(s)),\r\n                  (h = t.charAt(s)),\r\n                  FontManager.isCombinedCharacter(e)\r\n                    ? (n = !0)\r\n                    : e >= 55296 && e <= 56319\r\n                    ? FontManager.isRegionalFlag(t, s)\r\n                      ? (h = t.substr(s, 14))\r\n                      : (i = t.charCodeAt(s + 1)) >= 56320 &&\r\n                        i <= 57343 &&\r\n                        (FontManager.isModifier(e, i)\r\n                          ? ((h = t.substr(s, 2)), (n = !0))\r\n                          : (h = FontManager.isFlagEmoji(t.substr(s, 4))\r\n                              ? t.substr(s, 4)\r\n                              : t.substr(s, 2)))\r\n                    : e > 56319\r\n                    ? ((i = t.charCodeAt(s + 1)),\r\n                      FontManager.isVariationSelector(e) && (n = !0))\r\n                    : FontManager.isZeroWidthJoiner(e) && ((n = !0), (o = !0)),\r\n                  n ? ((r[r.length - 1] += h), (n = !1)) : r.push(h),\r\n                  (s += h.length);\r\n              return r;\r\n            }),\r\n            (TextProperty.prototype.completeTextData = function (t) {\r\n              t.__complete = !0;\r\n              var e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o,\r\n                h = this.elem.globalData.fontManager,\r\n                l = this.data,\r\n                p = [],\r\n                f = 0,\r\n                m = l.m.g,\r\n                c = 0,\r\n                d = 0,\r\n                u = 0,\r\n                y = [],\r\n                g = 0,\r\n                v = 0,\r\n                b = h.getFontByName(t.f),\r\n                x = 0,\r\n                P = getFontProperties(b);\r\n              (t.fWeight = P.weight),\r\n                (t.fStyle = P.style),\r\n                (t.finalSize = t.s),\r\n                (t.finalText = this.buildFinalText(t.t)),\r\n                (i = t.finalText.length),\r\n                (t.finalLineHeight = t.lh);\r\n              var E,\r\n                S = (t.tr \/ 1e3) * t.finalSize;\r\n              if (t.sz)\r\n                for (var C, _, A = !0, T = t.sz[0], M = t.sz[1]; A; ) {\r\n                  (C = 0),\r\n                    (g = 0),\r\n                    (i = (_ = this.buildFinalText(t.t)).length),\r\n                    (S = (t.tr \/ 1e3) * t.finalSize);\r\n                  var k = -1;\r\n                  for (e = 0; e < i; e += 1)\r\n                    (E = _[e].charCodeAt(0)),\r\n                      (r = !1),\r\n                      \" \" === _[e]\r\n                        ? (k = e)\r\n                        : (13 !== E && 3 !== E) ||\r\n                          ((g = 0),\r\n                          (r = !0),\r\n                          (C += t.finalLineHeight || 1.2 * t.finalSize)),\r\n                      h.chars\r\n                        ? ((o = h.getCharData(_[e], b.fStyle, b.fFamily)),\r\n                          (x = r ? 0 : (o.w * t.finalSize) \/ 100))\r\n                        : (x = h.measureText(_[e], t.f, t.finalSize)),\r\n                      g + x > T && \" \" !== _[e]\r\n                        ? (-1 === k ? (i += 1) : (e = k),\r\n                          (C += t.finalLineHeight || 1.2 * t.finalSize),\r\n                          _.splice(e, k === e ? 1 : 0, \"\\r\"),\r\n                          (k = -1),\r\n                          (g = 0))\r\n                        : ((g += x), (g += S));\r\n                  (C += (b.ascent * t.finalSize) \/ 100),\r\n                    this.canResize &&\r\n                    t.finalSize > this.minimumFontSize &&\r\n                    M < C\r\n                      ? ((t.finalSize -= 1),\r\n                        (t.finalLineHeight = (t.finalSize * t.lh) \/ t.s))\r\n                      : ((t.finalText = _), (i = t.finalText.length), (A = !1));\r\n                }\r\n              (g = -S), (x = 0);\r\n              var D,\r\n                F = 0;\r\n              for (e = 0; e < i; e += 1)\r\n                if (\r\n                  ((r = !1),\r\n                  13 === (E = (D = t.finalText[e]).charCodeAt(0)) || 3 === E\r\n                    ? ((F = 0),\r\n                      y.push(g),\r\n                      (v = g > v ? g : v),\r\n                      (g = -2 * S),\r\n                      (s = \"\"),\r\n                      (r = !0),\r\n                      (u += 1))\r\n                    : (s = D),\r\n                  h.chars\r\n                    ? ((o = h.getCharData(\r\n                        D,\r\n                        b.fStyle,\r\n                        h.getFontByName(t.f).fFamily\r\n                      )),\r\n                      (x = r ? 0 : (o.w * t.finalSize) \/ 100))\r\n                    : (x = h.measureText(s, t.f, t.finalSize)),\r\n                  \" \" === D ? (F += x + S) : ((g += x + S + F), (F = 0)),\r\n                  p.push({\r\n                    l: x,\r\n                    an: x,\r\n                    add: c,\r\n                    n: r,\r\n                    anIndexes: [],\r\n                    val: s,\r\n                    line: u,\r\n                    animatorJustifyOffset: 0,\r\n                  }),\r\n                  2 == m)\r\n                ) {\r\n                  if (((c += x), \"\" === s || \" \" === s || e === i - 1)) {\r\n                    for ((\"\" !== s && \" \" !== s) || (c -= x); d <= e; )\r\n                      (p[d].an = c), (p[d].ind = f), (p[d].extra = x), (d += 1);\r\n                    (f += 1), (c = 0);\r\n                  }\r\n                } else if (3 == m) {\r\n                  if (((c += x), \"\" === s || e === i - 1)) {\r\n                    for (\"\" === s && (c -= x); d <= e; )\r\n                      (p[d].an = c), (p[d].ind = f), (p[d].extra = x), (d += 1);\r\n                    (c = 0), (f += 1);\r\n                  }\r\n                } else (p[f].ind = f), (p[f].extra = 0), (f += 1);\r\n              if (((t.l = p), (v = g > v ? g : v), y.push(g), t.sz))\r\n                (t.boxWidth = t.sz[0]), (t.justifyOffset = 0);\r\n              else\r\n                switch (((t.boxWidth = v), t.j)) {\r\n                  case 1:\r\n                    t.justifyOffset = -t.boxWidth;\r\n                    break;\r\n                  case 2:\r\n                    t.justifyOffset = -t.boxWidth \/ 2;\r\n                    break;\r\n                  default:\r\n                    t.justifyOffset = 0;\r\n                }\r\n              t.lineWidths = y;\r\n              var w,\r\n                I,\r\n                V,\r\n                B,\r\n                R = l.a;\r\n              n = R.length;\r\n              var L = [];\r\n              for (a = 0; a < n; a += 1) {\r\n                for (\r\n                  (w = R[a]).a.sc && (t.strokeColorAnim = !0),\r\n                    w.a.sw && (t.strokeWidthAnim = !0),\r\n                    (w.a.fc || w.a.fh || w.a.fs || w.a.fb) &&\r\n                      (t.fillColorAnim = !0),\r\n                    B = 0,\r\n                    V = w.s.b,\r\n                    e = 0;\r\n                  e < i;\r\n                  e += 1\r\n                )\r\n                  ((I = p[e]).anIndexes[a] = B),\r\n                    ((1 == V && \"\" !== I.val) ||\r\n                      (2 == V && \"\" !== I.val && \" \" !== I.val) ||\r\n                      (3 == V && (I.n || \" \" == I.val || e == i - 1)) ||\r\n                      (4 == V && (I.n || e == i - 1))) &&\r\n                      (1 === w.s.rn && L.push(B), (B += 1));\r\n                l.a[a].s.totalChars = B;\r\n                var G,\r\n                  z = -1;\r\n                if (1 === w.s.rn)\r\n                  for (e = 0; e < i; e += 1)\r\n                    z != (I = p[e]).anIndexes[a] &&\r\n                      ((z = I.anIndexes[a]),\r\n                      (G = L.splice(\r\n                        Math.floor(Math.random() * L.length),\r\n                        1\r\n                      )[0])),\r\n                      (I.anIndexes[a] = G);\r\n              }\r\n              (t.yOffset = t.finalLineHeight || 1.2 * t.finalSize),\r\n                (t.ls = t.ls || 0),\r\n                (t.ascent = (b.ascent * t.finalSize) \/ 100);\r\n            }),\r\n            (TextProperty.prototype.updateDocumentData = function (t, e) {\r\n              e = void 0 === e ? this.keysIndex : e;\r\n              var i = this.copyData({}, this.data.d.k[e].s);\r\n              (i = this.copyData(i, t)),\r\n                (this.data.d.k[e].s = i),\r\n                this.recalculate(e),\r\n                this.setCurrentData(i),\r\n                this.elem.addDynamicProperty(this);\r\n            }),\r\n            (TextProperty.prototype.recalculate = function (t) {\r\n              var e = this.data.d.k[t].s;\r\n              (e.__complete = !1),\r\n                (this.keysIndex = 0),\r\n                (this._isFirstFrame = !0),\r\n                this.getValue(e);\r\n            }),\r\n            (TextProperty.prototype.canResizeFont = function (t) {\r\n              (this.canResize = t),\r\n                this.recalculate(this.keysIndex),\r\n                this.elem.addDynamicProperty(this);\r\n            }),\r\n            (TextProperty.prototype.setMinimumFontSize = function (t) {\r\n              (this.minimumFontSize = Math.floor(t) || 1),\r\n                this.recalculate(this.keysIndex),\r\n                this.elem.addDynamicProperty(this);\r\n            });\r\n          var TextSelectorProp = (function () {\r\n            var t = Math.max,\r\n              e = Math.min,\r\n              i = Math.floor;\r\n            function r(t, e) {\r\n              (this._currentTextLength = -1),\r\n                (this.k = !1),\r\n                (this.data = e),\r\n                (this.elem = t),\r\n                (this.comp = t.comp),\r\n                (this.finalS = 0),\r\n                (this.finalE = 0),\r\n                this.initDynamicPropertyContainer(t),\r\n                (this.s = PropertyFactory.getProp(\r\n                  t,\r\n                  e.s || { k: 0 },\r\n                  0,\r\n                  0,\r\n                  this\r\n                )),\r\n                (this.e =\r\n                  \"e\" in e\r\n                    ? PropertyFactory.getProp(t, e.e, 0, 0, this)\r\n                    : { v: 100 }),\r\n                (this.o = PropertyFactory.getProp(\r\n                  t,\r\n                  e.o || { k: 0 },\r\n                  0,\r\n                  0,\r\n                  this\r\n                )),\r\n                (this.xe = PropertyFactory.getProp(\r\n                  t,\r\n                  e.xe || { k: 0 },\r\n                  0,\r\n                  0,\r\n                  this\r\n                )),\r\n                (this.ne = PropertyFactory.getProp(\r\n                  t,\r\n                  e.ne || { k: 0 },\r\n                  0,\r\n                  0,\r\n                  this\r\n                )),\r\n                (this.sm = PropertyFactory.getProp(\r\n                  t,\r\n                  e.sm || { k: 100 },\r\n                  0,\r\n                  0,\r\n                  this\r\n                )),\r\n                (this.a = PropertyFactory.getProp(t, e.a, 0, 0.01, this)),\r\n                this.dynamicProperties.length || this.getValue();\r\n            }\r\n            return (\r\n              (r.prototype = {\r\n                getMult: function (r) {\r\n                  this._currentTextLength !==\r\n                    this.elem.textProperty.currentData.l.length &&\r\n                    this.getValue();\r\n                  var s = 0,\r\n                    a = 0,\r\n                    n = 1,\r\n                    o = 1;\r\n                  this.ne.v > 0\r\n                    ? (s = this.ne.v \/ 100)\r\n                    : (a = -this.ne.v \/ 100),\r\n                    this.xe.v > 0\r\n                      ? (n = 1 - this.xe.v \/ 100)\r\n                      : (o = 1 + this.xe.v \/ 100);\r\n                  var h = BezierFactory.getBezierEasing(s, a, n, o).get,\r\n                    l = 0,\r\n                    p = this.finalS,\r\n                    f = this.finalE,\r\n                    m = this.data.sh;\r\n                  if (2 === m)\r\n                    l = h(\r\n                      (l =\r\n                        f === p\r\n                          ? r >= f\r\n                            ? 1\r\n                            : 0\r\n                          : t(0, e(0.5 \/ (f - p) + (r - p) \/ (f - p), 1)))\r\n                    );\r\n                  else if (3 === m)\r\n                    l = h(\r\n                      (l =\r\n                        f === p\r\n                          ? r >= f\r\n                            ? 0\r\n                            : 1\r\n                          : 1 - t(0, e(0.5 \/ (f - p) + (r - p) \/ (f - p), 1)))\r\n                    );\r\n                  else if (4 === m)\r\n                    f === p\r\n                      ? (l = 0)\r\n                      : (l = t(0, e(0.5 \/ (f - p) + (r - p) \/ (f - p), 1))) <\r\n                        0.5\r\n                      ? (l *= 2)\r\n                      : (l = 1 - 2 * (l - 0.5)),\r\n                      (l = h(l));\r\n                  else if (5 === m) {\r\n                    if (f === p) l = 0;\r\n                    else {\r\n                      var c = f - p,\r\n                        d = -c \/ 2 + (r = e(t(0, r + 0.5 - p), f - p)),\r\n                        u = c \/ 2;\r\n                      l = Math.sqrt(1 - (d * d) \/ (u * u));\r\n                    }\r\n                    l = h(l);\r\n                  } else\r\n                    6 === m\r\n                      ? (f === p\r\n                          ? (l = 0)\r\n                          : ((r = e(t(0, r + 0.5 - p), f - p)),\r\n                            (l =\r\n                              (1 +\r\n                                Math.cos(\r\n                                  Math.PI + (2 * Math.PI * r) \/ (f - p)\r\n                                )) \/\r\n                              2)),\r\n                        (l = h(l)))\r\n                      : (r >= i(p) &&\r\n                          (l = t(\r\n                            0,\r\n                            e(r - p < 0 ? e(f, 1) - (p - r) : f - r, 1)\r\n                          )),\r\n                        (l = h(l)));\r\n                  if (100 !== this.sm.v) {\r\n                    var y = 0.01 * this.sm.v;\r\n                    0 === y && (y = 1e-8);\r\n                    var g = 0.5 - 0.5 * y;\r\n                    l < g ? (l = 0) : (l = (l - g) \/ y) > 1 && (l = 1);\r\n                  }\r\n                  return l * this.a.v;\r\n                },\r\n                getValue: function (t) {\r\n                  this.iterateDynamicProperties(),\r\n                    (this._mdf = t || this._mdf),\r\n                    (this._currentTextLength =\r\n                      this.elem.textProperty.currentData.l.length || 0),\r\n                    t &&\r\n                      2 === this.data.r &&\r\n                      (this.e.v = this._currentTextLength);\r\n                  var e = 2 === this.data.r ? 1 : 100 \/ this.data.totalChars,\r\n                    i = this.o.v \/ e,\r\n                    r = this.s.v \/ e + i,\r\n                    s = this.e.v \/ e + i;\r\n                  if (r > s) {\r\n                    var a = r;\r\n                    (r = s), (s = a);\r\n                  }\r\n                  (this.finalS = r), (this.finalE = s);\r\n                },\r\n              }),\r\n              extendPrototype([DynamicPropertyContainer], r),\r\n              {\r\n                getTextSelectorProp: function (t, e, i) {\r\n                  return new r(t, e, i);\r\n                },\r\n              }\r\n            );\r\n          })();\r\n          function TextAnimatorDataProperty(t, e, i) {\r\n            var r = { propType: !1 },\r\n              s = PropertyFactory.getProp,\r\n              a = e.a;\r\n            (this.a = {\r\n              r: a.r ? s(t, a.r, 0, degToRads, i) : r,\r\n              rx: a.rx ? s(t, a.rx, 0, degToRads, i) : r,\r\n              ry: a.ry ? s(t, a.ry, 0, degToRads, i) : r,\r\n              sk: a.sk ? s(t, a.sk, 0, degToRads, i) : r,\r\n              sa: a.sa ? s(t, a.sa, 0, degToRads, i) : r,\r\n              s: a.s ? s(t, a.s, 1, 0.01, i) : r,\r\n              a: a.a ? s(t, a.a, 1, 0, i) : r,\r\n              o: a.o ? s(t, a.o, 0, 0.01, i) : r,\r\n              p: a.p ? s(t, a.p, 1, 0, i) : r,\r\n              sw: a.sw ? s(t, a.sw, 0, 0, i) : r,\r\n              sc: a.sc ? s(t, a.sc, 1, 0, i) : r,\r\n              fc: a.fc ? s(t, a.fc, 1, 0, i) : r,\r\n              fh: a.fh ? s(t, a.fh, 0, 0, i) : r,\r\n              fs: a.fs ? s(t, a.fs, 0, 0.01, i) : r,\r\n              fb: a.fb ? s(t, a.fb, 0, 0.01, i) : r,\r\n              t: a.t ? s(t, a.t, 0, 0, i) : r,\r\n            }),\r\n              (this.s = TextSelectorProp.getTextSelectorProp(t, e.s, i)),\r\n              (this.s.t = e.s.t);\r\n          }\r\n          function TextAnimatorProperty(t, e, i) {\r\n            (this._isFirstFrame = !0),\r\n              (this._hasMaskedPath = !1),\r\n              (this._frameId = -1),\r\n              (this._textData = t),\r\n              (this._renderType = e),\r\n              (this._elem = i),\r\n              (this._animatorsData = createSizedArray(this._textData.a.length)),\r\n              (this._pathData = {}),\r\n              (this._moreOptions = { alignment: {} }),\r\n              (this.renderedLetters = []),\r\n              (this.lettersChangedFlag = !1),\r\n              this.initDynamicPropertyContainer(i);\r\n          }\r\n          function ITextElement() {}\r\n          (TextAnimatorProperty.prototype.searchProperties = function () {\r\n            var t,\r\n              e,\r\n              i = this._textData.a.length,\r\n              r = PropertyFactory.getProp;\r\n            for (t = 0; t < i; t += 1)\r\n              (e = this._textData.a[t]),\r\n                (this._animatorsData[t] = new TextAnimatorDataProperty(\r\n                  this._elem,\r\n                  e,\r\n                  this\r\n                ));\r\n            this._textData.p && \"m\" in this._textData.p\r\n              ? ((this._pathData = {\r\n                  a: r(this._elem, this._textData.p.a, 0, 0, this),\r\n                  f: r(this._elem, this._textData.p.f, 0, 0, this),\r\n                  l: r(this._elem, this._textData.p.l, 0, 0, this),\r\n                  r: r(this._elem, this._textData.p.r, 0, 0, this),\r\n                  p: r(this._elem, this._textData.p.p, 0, 0, this),\r\n                  m: this._elem.maskManager.getMaskProperty(this._textData.p.m),\r\n                }),\r\n                (this._hasMaskedPath = !0))\r\n              : (this._hasMaskedPath = !1),\r\n              (this._moreOptions.alignment = r(\r\n                this._elem,\r\n                this._textData.m.a,\r\n                1,\r\n                0,\r\n                this\r\n              ));\r\n          }),\r\n            (TextAnimatorProperty.prototype.getMeasures = function (t, e) {\r\n              if (\r\n                ((this.lettersChangedFlag = e),\r\n                this._mdf ||\r\n                  this._isFirstFrame ||\r\n                  e ||\r\n                  (this._hasMaskedPath && this._pathData.m._mdf))\r\n              ) {\r\n                this._isFirstFrame = !1;\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a,\r\n                  n,\r\n                  o,\r\n                  h,\r\n                  l,\r\n                  p,\r\n                  f,\r\n                  m,\r\n                  c,\r\n                  d,\r\n                  u,\r\n                  y,\r\n                  g,\r\n                  v,\r\n                  b,\r\n                  x,\r\n                  P = this._moreOptions.alignment.v,\r\n                  E = this._animatorsData,\r\n                  S = this._textData,\r\n                  C = this.mHelper,\r\n                  _ = this._renderType,\r\n                  A = this.renderedLetters.length,\r\n                  T = t.l;\r\n                if (this._hasMaskedPath) {\r\n                  if (\r\n                    ((x = this._pathData.m),\r\n                    !this._pathData.n || this._pathData._mdf)\r\n                  ) {\r\n                    var M,\r\n                      k = x.v;\r\n                    for (\r\n                      this._pathData.r.v && (k = k.reverse()),\r\n                        n = { tLength: 0, segments: [] },\r\n                        a = k._length - 1,\r\n                        g = 0,\r\n                        s = 0;\r\n                      s < a;\r\n                      s += 1\r\n                    )\r\n                      (M = bez.buildBezierData(\r\n                        k.v[s],\r\n                        k.v[s + 1],\r\n                        [k.o[s][0] - k.v[s][0], k.o[s][1] - k.v[s][1]],\r\n                        [\r\n                          k.i[s + 1][0] - k.v[s + 1][0],\r\n                          k.i[s + 1][1] - k.v[s + 1][1],\r\n                        ]\r\n                      )),\r\n                        (n.tLength += M.segmentLength),\r\n                        n.segments.push(M),\r\n                        (g += M.segmentLength);\r\n                    (s = a),\r\n                      x.v.c &&\r\n                        ((M = bez.buildBezierData(\r\n                          k.v[s],\r\n                          k.v[0],\r\n                          [k.o[s][0] - k.v[s][0], k.o[s][1] - k.v[s][1]],\r\n                          [k.i[0][0] - k.v[0][0], k.i[0][1] - k.v[0][1]]\r\n                        )),\r\n                        (n.tLength += M.segmentLength),\r\n                        n.segments.push(M),\r\n                        (g += M.segmentLength)),\r\n                      (this._pathData.pi = n);\r\n                  }\r\n                  if (\r\n                    ((n = this._pathData.pi),\r\n                    (o = this._pathData.f.v),\r\n                    (m = 0),\r\n                    (f = 1),\r\n                    (l = 0),\r\n                    (p = !0),\r\n                    (u = n.segments),\r\n                    o < 0 && x.v.c)\r\n                  )\r\n                    for (\r\n                      n.tLength < Math.abs(o) && (o = -Math.abs(o) % n.tLength),\r\n                        f = (d = u[(m = u.length - 1)].points).length - 1;\r\n                      o < 0;\r\n\r\n                    )\r\n                      (o += d[f].partialLength),\r\n                        (f -= 1) < 0 &&\r\n                          (f = (d = u[(m -= 1)].points).length - 1);\r\n                  (c = (d = u[m].points)[f - 1]),\r\n                    (y = (h = d[f]).partialLength);\r\n                }\r\n                (a = T.length), (i = 0), (r = 0);\r\n                var D,\r\n                  F,\r\n                  w,\r\n                  I,\r\n                  V,\r\n                  B = 1.2 * t.finalSize * 0.714,\r\n                  R = !0;\r\n                w = E.length;\r\n                var L,\r\n                  G,\r\n                  z,\r\n                  O,\r\n                  N,\r\n                  H,\r\n                  q,\r\n                  j,\r\n                  W,\r\n                  $,\r\n                  Y,\r\n                  J,\r\n                  X = -1,\r\n                  Z = o,\r\n                  K = m,\r\n                  U = f,\r\n                  Q = -1,\r\n                  tt = \"\",\r\n                  et = this.defaultPropsArray;\r\n                if (2 === t.j || 1 === t.j) {\r\n                  var it = 0,\r\n                    rt = 0,\r\n                    st = 2 === t.j ? -0.5 : -1,\r\n                    at = 0,\r\n                    nt = !0;\r\n                  for (s = 0; s < a; s += 1)\r\n                    if (T[s].n) {\r\n                      for (it && (it += rt); at < s; )\r\n                        (T[at].animatorJustifyOffset = it), (at += 1);\r\n                      (it = 0), (nt = !0);\r\n                    } else {\r\n                      for (F = 0; F < w; F += 1)\r\n                        (D = E[F].a).t.propType &&\r\n                          (nt && 2 === t.j && (rt += D.t.v * st),\r\n                          (V = E[F].s.getMult(\r\n                            T[s].anIndexes[F],\r\n                            S.a[F].s.totalChars\r\n                          )).length\r\n                            ? (it += D.t.v * V[0] * st)\r\n                            : (it += D.t.v * V * st));\r\n                      nt = !1;\r\n                    }\r\n                  for (it && (it += rt); at < s; )\r\n                    (T[at].animatorJustifyOffset = it), (at += 1);\r\n                }\r\n                for (s = 0; s < a; s += 1) {\r\n                  if ((C.reset(), (O = 1), T[s].n))\r\n                    (i = 0),\r\n                      (r += t.yOffset),\r\n                      (r += R ? 1 : 0),\r\n                      (o = Z),\r\n                      (R = !1),\r\n                      this._hasMaskedPath &&\r\n                        ((f = U),\r\n                        (c = (d = u[(m = K)].points)[f - 1]),\r\n                        (y = (h = d[f]).partialLength),\r\n                        (l = 0)),\r\n                      (tt = \"\"),\r\n                      (Y = \"\"),\r\n                      (W = \"\"),\r\n                      (J = \"\"),\r\n                      (et = this.defaultPropsArray);\r\n                  else {\r\n                    if (this._hasMaskedPath) {\r\n                      if (Q !== T[s].line) {\r\n                        switch (t.j) {\r\n                          case 1:\r\n                            o += g - t.lineWidths[T[s].line];\r\n                            break;\r\n                          case 2:\r\n                            o += (g - t.lineWidths[T[s].line]) \/ 2;\r\n                        }\r\n                        Q = T[s].line;\r\n                      }\r\n                      X !== T[s].ind &&\r\n                        (T[X] && (o += T[X].extra),\r\n                        (o += T[s].an \/ 2),\r\n                        (X = T[s].ind)),\r\n                        (o += P[0] * T[s].an * 0.005);\r\n                      var ot = 0;\r\n                      for (F = 0; F < w; F += 1)\r\n                        (D = E[F].a).p.propType &&\r\n                          ((V = E[F].s.getMult(\r\n                            T[s].anIndexes[F],\r\n                            S.a[F].s.totalChars\r\n                          )).length\r\n                            ? (ot += D.p.v[0] * V[0])\r\n                            : (ot += D.p.v[0] * V)),\r\n                          D.a.propType &&\r\n                            ((V = E[F].s.getMult(\r\n                              T[s].anIndexes[F],\r\n                              S.a[F].s.totalChars\r\n                            )).length\r\n                              ? (ot += D.a.v[0] * V[0])\r\n                              : (ot += D.a.v[0] * V));\r\n                      for (\r\n                        p = !0,\r\n                          this._pathData.a.v &&\r\n                            ((o =\r\n                              0.5 * T[0].an +\r\n                              ((g -\r\n                                this._pathData.f.v -\r\n                                0.5 * T[0].an -\r\n                                0.5 * T[T.length - 1].an) *\r\n                                X) \/\r\n                                (a - 1)),\r\n                            (o += this._pathData.f.v));\r\n                        p;\r\n\r\n                      )\r\n                        l + y >= o + ot || !d\r\n                          ? ((v = (o + ot - l) \/ h.partialLength),\r\n                            (G = c.point[0] + (h.point[0] - c.point[0]) * v),\r\n                            (z = c.point[1] + (h.point[1] - c.point[1]) * v),\r\n                            C.translate(\r\n                              -P[0] * T[s].an * 0.005,\r\n                              -P[1] * B * 0.01\r\n                            ),\r\n                            (p = !1))\r\n                          : d &&\r\n                            ((l += h.partialLength),\r\n                            (f += 1) >= d.length &&\r\n                              ((f = 0),\r\n                              u[(m += 1)]\r\n                                ? (d = u[m].points)\r\n                                : x.v.c\r\n                                ? ((f = 0), (d = u[(m = 0)].points))\r\n                                : ((l -= h.partialLength), (d = null))),\r\n                            d && ((c = h), (y = (h = d[f]).partialLength)));\r\n                      (L = T[s].an \/ 2 - T[s].add), C.translate(-L, 0, 0);\r\n                    } else\r\n                      (L = T[s].an \/ 2 - T[s].add),\r\n                        C.translate(-L, 0, 0),\r\n                        C.translate(\r\n                          -P[0] * T[s].an * 0.005,\r\n                          -P[1] * B * 0.01,\r\n                          0\r\n                        );\r\n                    for (F = 0; F < w; F += 1)\r\n                      (D = E[F].a).t.propType &&\r\n                        ((V = E[F].s.getMult(\r\n                          T[s].anIndexes[F],\r\n                          S.a[F].s.totalChars\r\n                        )),\r\n                        (0 === i && 0 === t.j) ||\r\n                          (this._hasMaskedPath\r\n                            ? V.length\r\n                              ? (o += D.t.v * V[0])\r\n                              : (o += D.t.v * V)\r\n                            : V.length\r\n                            ? (i += D.t.v * V[0])\r\n                            : (i += D.t.v * V)));\r\n                    for (\r\n                      t.strokeWidthAnim && (H = t.sw || 0),\r\n                        t.strokeColorAnim &&\r\n                          (N = t.sc ? [t.sc[0], t.sc[1], t.sc[2]] : [0, 0, 0]),\r\n                        t.fillColorAnim &&\r\n                          t.fc &&\r\n                          (q = [t.fc[0], t.fc[1], t.fc[2]]),\r\n                        F = 0;\r\n                      F < w;\r\n                      F += 1\r\n                    )\r\n                      (D = E[F].a).a.propType &&\r\n                        ((V = E[F].s.getMult(\r\n                          T[s].anIndexes[F],\r\n                          S.a[F].s.totalChars\r\n                        )).length\r\n                          ? C.translate(\r\n                              -D.a.v[0] * V[0],\r\n                              -D.a.v[1] * V[1],\r\n                              D.a.v[2] * V[2]\r\n                            )\r\n                          : C.translate(\r\n                              -D.a.v[0] * V,\r\n                              -D.a.v[1] * V,\r\n                              D.a.v[2] * V\r\n                            ));\r\n                    for (F = 0; F < w; F += 1)\r\n                      (D = E[F].a).s.propType &&\r\n                        ((V = E[F].s.getMult(\r\n                          T[s].anIndexes[F],\r\n                          S.a[F].s.totalChars\r\n                        )).length\r\n                          ? C.scale(\r\n                              1 + (D.s.v[0] - 1) * V[0],\r\n                              1 + (D.s.v[1] - 1) * V[1],\r\n                              1\r\n                            )\r\n                          : C.scale(\r\n                              1 + (D.s.v[0] - 1) * V,\r\n                              1 + (D.s.v[1] - 1) * V,\r\n                              1\r\n                            ));\r\n                    for (F = 0; F < w; F += 1) {\r\n                      if (\r\n                        ((D = E[F].a),\r\n                        (V = E[F].s.getMult(\r\n                          T[s].anIndexes[F],\r\n                          S.a[F].s.totalChars\r\n                        )),\r\n                        D.sk.propType &&\r\n                          (V.length\r\n                            ? C.skewFromAxis(-D.sk.v * V[0], D.sa.v * V[1])\r\n                            : C.skewFromAxis(-D.sk.v * V, D.sa.v * V)),\r\n                        D.r.propType &&\r\n                          (V.length\r\n                            ? C.rotateZ(-D.r.v * V[2])\r\n                            : C.rotateZ(-D.r.v * V)),\r\n                        D.ry.propType &&\r\n                          (V.length\r\n                            ? C.rotateY(D.ry.v * V[1])\r\n                            : C.rotateY(D.ry.v * V)),\r\n                        D.rx.propType &&\r\n                          (V.length\r\n                            ? C.rotateX(D.rx.v * V[0])\r\n                            : C.rotateX(D.rx.v * V)),\r\n                        D.o.propType &&\r\n                          (V.length\r\n                            ? (O += (D.o.v * V[0] - O) * V[0])\r\n                            : (O += (D.o.v * V - O) * V)),\r\n                        t.strokeWidthAnim &&\r\n                          D.sw.propType &&\r\n                          (V.length ? (H += D.sw.v * V[0]) : (H += D.sw.v * V)),\r\n                        t.strokeColorAnim && D.sc.propType)\r\n                      )\r\n                        for (j = 0; j < 3; j += 1)\r\n                          V.length\r\n                            ? (N[j] += (D.sc.v[j] - N[j]) * V[0])\r\n                            : (N[j] += (D.sc.v[j] - N[j]) * V);\r\n                      if (t.fillColorAnim && t.fc) {\r\n                        if (D.fc.propType)\r\n                          for (j = 0; j < 3; j += 1)\r\n                            V.length\r\n                              ? (q[j] += (D.fc.v[j] - q[j]) * V[0])\r\n                              : (q[j] += (D.fc.v[j] - q[j]) * V);\r\n                        D.fh.propType &&\r\n                          (q = V.length\r\n                            ? addHueToRGB(q, D.fh.v * V[0])\r\n                            : addHueToRGB(q, D.fh.v * V)),\r\n                          D.fs.propType &&\r\n                            (q = V.length\r\n                              ? addSaturationToRGB(q, D.fs.v * V[0])\r\n                              : addSaturationToRGB(q, D.fs.v * V)),\r\n                          D.fb.propType &&\r\n                            (q = V.length\r\n                              ? addBrightnessToRGB(q, D.fb.v * V[0])\r\n                              : addBrightnessToRGB(q, D.fb.v * V));\r\n                      }\r\n                    }\r\n                    for (F = 0; F < w; F += 1)\r\n                      (D = E[F].a).p.propType &&\r\n                        ((V = E[F].s.getMult(\r\n                          T[s].anIndexes[F],\r\n                          S.a[F].s.totalChars\r\n                        )),\r\n                        this._hasMaskedPath\r\n                          ? V.length\r\n                            ? C.translate(0, D.p.v[1] * V[0], -D.p.v[2] * V[1])\r\n                            : C.translate(0, D.p.v[1] * V, -D.p.v[2] * V)\r\n                          : V.length\r\n                          ? C.translate(\r\n                              D.p.v[0] * V[0],\r\n                              D.p.v[1] * V[1],\r\n                              -D.p.v[2] * V[2]\r\n                            )\r\n                          : C.translate(\r\n                              D.p.v[0] * V,\r\n                              D.p.v[1] * V,\r\n                              -D.p.v[2] * V\r\n                            ));\r\n                    if (\r\n                      (t.strokeWidthAnim && (W = H < 0 ? 0 : H),\r\n                      t.strokeColorAnim &&\r\n                        ($ =\r\n                          \"rgb(\" +\r\n                          Math.round(255 * N[0]) +\r\n                          \",\" +\r\n                          Math.round(255 * N[1]) +\r\n                          \",\" +\r\n                          Math.round(255 * N[2]) +\r\n                          \")\"),\r\n                      t.fillColorAnim &&\r\n                        t.fc &&\r\n                        (Y =\r\n                          \"rgb(\" +\r\n                          Math.round(255 * q[0]) +\r\n                          \",\" +\r\n                          Math.round(255 * q[1]) +\r\n                          \",\" +\r\n                          Math.round(255 * q[2]) +\r\n                          \")\"),\r\n                      this._hasMaskedPath)\r\n                    ) {\r\n                      if (\r\n                        (C.translate(0, -t.ls),\r\n                        C.translate(0, P[1] * B * 0.01 + r, 0),\r\n                        this._pathData.p.v)\r\n                      ) {\r\n                        b =\r\n                          (h.point[1] - c.point[1]) \/ (h.point[0] - c.point[0]);\r\n                        var ht = (180 * Math.atan(b)) \/ Math.PI;\r\n                        h.point[0] < c.point[0] && (ht += 180),\r\n                          C.rotate((-ht * Math.PI) \/ 180);\r\n                      }\r\n                      C.translate(G, z, 0),\r\n                        (o -= P[0] * T[s].an * 0.005),\r\n                        T[s + 1] &&\r\n                          X !== T[s + 1].ind &&\r\n                          ((o += T[s].an \/ 2),\r\n                          (o += 0.001 * t.tr * t.finalSize));\r\n                    } else {\r\n                      switch (\r\n                        (C.translate(i, r, 0),\r\n                        t.ps && C.translate(t.ps[0], t.ps[1] + t.ascent, 0),\r\n                        t.j)\r\n                      ) {\r\n                        case 1:\r\n                          C.translate(\r\n                            T[s].animatorJustifyOffset +\r\n                              t.justifyOffset +\r\n                              (t.boxWidth - t.lineWidths[T[s].line]),\r\n                            0,\r\n                            0\r\n                          );\r\n                          break;\r\n                        case 2:\r\n                          C.translate(\r\n                            T[s].animatorJustifyOffset +\r\n                              t.justifyOffset +\r\n                              (t.boxWidth - t.lineWidths[T[s].line]) \/ 2,\r\n                            0,\r\n                            0\r\n                          );\r\n                      }\r\n                      C.translate(0, -t.ls),\r\n                        C.translate(L, 0, 0),\r\n                        C.translate(P[0] * T[s].an * 0.005, P[1] * B * 0.01, 0),\r\n                        (i += T[s].l + 0.001 * t.tr * t.finalSize);\r\n                    }\r\n                    \"html\" === _\r\n                      ? (tt = C.toCSS())\r\n                      : \"svg\" === _\r\n                      ? (tt = C.to2dCSS())\r\n                      : (et = [\r\n                          C.props[0],\r\n                          C.props[1],\r\n                          C.props[2],\r\n                          C.props[3],\r\n                          C.props[4],\r\n                          C.props[5],\r\n                          C.props[6],\r\n                          C.props[7],\r\n                          C.props[8],\r\n                          C.props[9],\r\n                          C.props[10],\r\n                          C.props[11],\r\n                          C.props[12],\r\n                          C.props[13],\r\n                          C.props[14],\r\n                          C.props[15],\r\n                        ]),\r\n                      (J = O);\r\n                  }\r\n                  A <= s\r\n                    ? ((I = new LetterProps(J, W, $, Y, tt, et)),\r\n                      this.renderedLetters.push(I),\r\n                      (A += 1),\r\n                      (this.lettersChangedFlag = !0))\r\n                    : ((I = this.renderedLetters[s]),\r\n                      (this.lettersChangedFlag =\r\n                        I.update(J, W, $, Y, tt, et) ||\r\n                        this.lettersChangedFlag));\r\n                }\r\n              }\r\n            }),\r\n            (TextAnimatorProperty.prototype.getValue = function () {\r\n              this._elem.globalData.frameId !== this._frameId &&\r\n                ((this._frameId = this._elem.globalData.frameId),\r\n                this.iterateDynamicProperties());\r\n            }),\r\n            (TextAnimatorProperty.prototype.mHelper = new Matrix()),\r\n            (TextAnimatorProperty.prototype.defaultPropsArray = []),\r\n            extendPrototype([DynamicPropertyContainer], TextAnimatorProperty),\r\n            (ITextElement.prototype.initElement = function (t, e, i) {\r\n              (this.lettersChangedFlag = !0),\r\n                this.initFrame(),\r\n                this.initBaseData(t, e, i),\r\n                (this.textProperty = new TextProperty(\r\n                  this,\r\n                  t.t,\r\n                  this.dynamicProperties\r\n                )),\r\n                (this.textAnimator = new TextAnimatorProperty(\r\n                  t.t,\r\n                  this.renderType,\r\n                  this\r\n                )),\r\n                this.initTransform(t, e, i),\r\n                this.initHierarchy(),\r\n                this.initRenderable(),\r\n                this.initRendererElement(),\r\n                this.createContainerElements(),\r\n                this.createRenderableComponents(),\r\n                this.createContent(),\r\n                this.hide(),\r\n                this.textAnimator.searchProperties(this.dynamicProperties);\r\n            }),\r\n            (ITextElement.prototype.prepareFrame = function (t) {\r\n              (this._mdf = !1),\r\n                this.prepareRenderableFrame(t),\r\n                this.prepareProperties(t, this.isInRange);\r\n            }),\r\n            (ITextElement.prototype.createPathShape = function (t, e) {\r\n              var i,\r\n                r,\r\n                s = e.length,\r\n                a = \"\";\r\n              for (i = 0; i < s; i += 1)\r\n                \"sh\" === e[i].ty &&\r\n                  ((r = e[i].ks.k),\r\n                  (a += buildShapeString(r, r.i.length, !0, t)));\r\n              return a;\r\n            }),\r\n            (ITextElement.prototype.updateDocumentData = function (t, e) {\r\n              this.textProperty.updateDocumentData(t, e);\r\n            }),\r\n            (ITextElement.prototype.canResizeFont = function (t) {\r\n              this.textProperty.canResizeFont(t);\r\n            }),\r\n            (ITextElement.prototype.setMinimumFontSize = function (t) {\r\n              this.textProperty.setMinimumFontSize(t);\r\n            }),\r\n            (ITextElement.prototype.applyTextPropertiesToMatrix = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s\r\n            ) {\r\n              switch (\r\n                (t.ps && e.translate(t.ps[0], t.ps[1] + t.ascent, 0),\r\n                e.translate(0, -t.ls, 0),\r\n                t.j)\r\n              ) {\r\n                case 1:\r\n                  e.translate(\r\n                    t.justifyOffset + (t.boxWidth - t.lineWidths[i]),\r\n                    0,\r\n                    0\r\n                  );\r\n                  break;\r\n                case 2:\r\n                  e.translate(\r\n                    t.justifyOffset + (t.boxWidth - t.lineWidths[i]) \/ 2,\r\n                    0,\r\n                    0\r\n                  );\r\n              }\r\n              e.translate(r, s, 0);\r\n            }),\r\n            (ITextElement.prototype.buildColor = function (t) {\r\n              return (\r\n                \"rgb(\" +\r\n                Math.round(255 * t[0]) +\r\n                \",\" +\r\n                Math.round(255 * t[1]) +\r\n                \",\" +\r\n                Math.round(255 * t[2]) +\r\n                \")\"\r\n              );\r\n            }),\r\n            (ITextElement.prototype.emptyProp = new LetterProps()),\r\n            (ITextElement.prototype.destroy = function () {}),\r\n            (ITextElement.prototype.validateText = function () {\r\n              (this.textProperty._mdf || this.textProperty._isFirstFrame) &&\r\n                (this.buildNewText(),\r\n                (this.textProperty._isFirstFrame = !1),\r\n                (this.textProperty._mdf = !1));\r\n            });\r\n          var emptyShapeData = { shapes: [] };\r\n          function SVGTextLottieElement(t, e, i) {\r\n            (this.textSpans = []),\r\n              (this.renderType = \"svg\"),\r\n              this.initElement(t, e, i);\r\n          }\r\n          function ISolidElement(t, e, i) {\r\n            this.initElement(t, e, i);\r\n          }\r\n          function NullElement(t, e, i) {\r\n            this.initFrame(),\r\n              this.initBaseData(t, e, i),\r\n              this.initFrame(),\r\n              this.initTransform(t, e, i),\r\n              this.initHierarchy();\r\n          }\r\n          function SVGRendererBase() {}\r\n          function ICompElement() {}\r\n          function SVGCompElement(t, e, i) {\r\n            (this.layers = t.layers),\r\n              (this.supports3d = !0),\r\n              (this.completeLayers = !1),\r\n              (this.pendingElements = []),\r\n              (this.elements = this.layers\r\n                ? createSizedArray(this.layers.length)\r\n                : []),\r\n              this.initElement(t, e, i),\r\n              (this.tm = t.tm\r\n                ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this)\r\n                : { _placeholder: !0 });\r\n          }\r\n          function SVGRenderer(t, e) {\r\n            (this.animationItem = t),\r\n              (this.layers = null),\r\n              (this.renderedFrame = -1),\r\n              (this.svgElement = createNS(\"svg\"));\r\n            var i = \"\";\r\n            if (e && e.title) {\r\n              var r = createNS(\"title\"),\r\n                s = createElementID();\r\n              r.setAttribute(\"id\", s),\r\n                (r.textContent = e.title),\r\n                this.svgElement.appendChild(r),\r\n                (i += s);\r\n            }\r\n            if (e && e.description) {\r\n              var a = createNS(\"desc\"),\r\n                n = createElementID();\r\n              a.setAttribute(\"id\", n),\r\n                (a.textContent = e.description),\r\n                this.svgElement.appendChild(a),\r\n                (i += \" \" + n);\r\n            }\r\n            i && this.svgElement.setAttribute(\"aria-labelledby\", i);\r\n            var o = createNS(\"defs\");\r\n            this.svgElement.appendChild(o);\r\n            var h = createNS(\"g\");\r\n            this.svgElement.appendChild(h),\r\n              (this.layerElement = h),\r\n              (this.renderConfig = {\r\n                preserveAspectRatio:\r\n                  (e && e.preserveAspectRatio) || \"xMidYMid meet\",\r\n                imagePreserveAspectRatio:\r\n                  (e && e.imagePreserveAspectRatio) || \"xMidYMid slice\",\r\n                contentVisibility: (e && e.contentVisibility) || \"visible\",\r\n                progressiveLoad: (e && e.progressiveLoad) || !1,\r\n                hideOnTransparent: !(e && !1 === e.hideOnTransparent),\r\n                viewBoxOnly: (e && e.viewBoxOnly) || !1,\r\n                viewBoxSize: (e && e.viewBoxSize) || !1,\r\n                className: (e && e.className) || \"\",\r\n                id: (e && e.id) || \"\",\r\n                focusable: e && e.focusable,\r\n                filterSize: {\r\n                  width: (e && e.filterSize && e.filterSize.width) || \"100%\",\r\n                  height: (e && e.filterSize && e.filterSize.height) || \"100%\",\r\n                  x: (e && e.filterSize && e.filterSize.x) || \"0%\",\r\n                  y: (e && e.filterSize && e.filterSize.y) || \"0%\",\r\n                },\r\n                width: e && e.width,\r\n                height: e && e.height,\r\n                runExpressions:\r\n                  !e || void 0 === e.runExpressions || e.runExpressions,\r\n              }),\r\n              (this.globalData = {\r\n                _mdf: !1,\r\n                frameNum: -1,\r\n                defs: o,\r\n                renderConfig: this.renderConfig,\r\n              }),\r\n              (this.elements = []),\r\n              (this.pendingElements = []),\r\n              (this.destroyed = !1),\r\n              (this.rendererType = \"svg\");\r\n          }\r\n          function ShapeTransformManager() {\r\n            (this.sequences = {}),\r\n              (this.sequenceList = []),\r\n              (this.transform_key_count = 0);\r\n          }\r\n          extendPrototype(\r\n            [\r\n              BaseElement,\r\n              TransformElement,\r\n              SVGBaseElement,\r\n              HierarchyElement,\r\n              FrameElement,\r\n              RenderableDOMElement,\r\n              ITextElement,\r\n            ],\r\n            SVGTextLottieElement\r\n          ),\r\n            (SVGTextLottieElement.prototype.createContent = function () {\r\n              this.data.singleShape &&\r\n                !this.globalData.fontManager.chars &&\r\n                (this.textContainer = createNS(\"text\"));\r\n            }),\r\n            (SVGTextLottieElement.prototype.buildTextContents = function (t) {\r\n              for (var e = 0, i = t.length, r = [], s = \"\"; e < i; )\r\n                t[e] === String.fromCharCode(13) ||\r\n                t[e] === String.fromCharCode(3)\r\n                  ? (r.push(s), (s = \"\"))\r\n                  : (s += t[e]),\r\n                  (e += 1);\r\n              return r.push(s), r;\r\n            }),\r\n            (SVGTextLottieElement.prototype.buildShapeData = function (t, e) {\r\n              if (t.shapes && t.shapes.length) {\r\n                var i = t.shapes[0];\r\n                if (i.it) {\r\n                  var r = i.it[i.it.length - 1];\r\n                  r.s && ((r.s.k[0] = e), (r.s.k[1] = e));\r\n                }\r\n              }\r\n              return t;\r\n            }),\r\n            (SVGTextLottieElement.prototype.buildNewText = function () {\r\n              var t, e;\r\n              this.addDynamicProperty(this);\r\n              var i = this.textProperty.currentData;\r\n              (this.renderedLetters = createSizedArray(i ? i.l.length : 0)),\r\n                i.fc\r\n                  ? this.layerElement.setAttribute(\r\n                      \"fill\",\r\n                      this.buildColor(i.fc)\r\n                    )\r\n                  : this.layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\"),\r\n                i.sc &&\r\n                  (this.layerElement.setAttribute(\r\n                    \"stroke\",\r\n                    this.buildColor(i.sc)\r\n                  ),\r\n                  this.layerElement.setAttribute(\"stroke-width\", i.sw)),\r\n                this.layerElement.setAttribute(\"font-size\", i.finalSize);\r\n              var r = this.globalData.fontManager.getFontByName(i.f);\r\n              if (r.fClass) this.layerElement.setAttribute(\"class\", r.fClass);\r\n              else {\r\n                this.layerElement.setAttribute(\"font-family\", r.fFamily);\r\n                var s = i.fWeight,\r\n                  a = i.fStyle;\r\n                this.layerElement.setAttribute(\"font-style\", a),\r\n                  this.layerElement.setAttribute(\"font-weight\", s);\r\n              }\r\n              this.layerElement.setAttribute(\"aria-label\", i.t);\r\n              var n,\r\n                o = i.l || [],\r\n                h = !!this.globalData.fontManager.chars;\r\n              e = o.length;\r\n              var l = this.mHelper,\r\n                p = this.data.singleShape,\r\n                f = 0,\r\n                m = 0,\r\n                c = !0,\r\n                d = 0.001 * i.tr * i.finalSize;\r\n              if (!p || h || i.sz) {\r\n                var u,\r\n                  y = this.textSpans.length;\r\n                for (t = 0; t < e; t += 1) {\r\n                  if (\r\n                    (this.textSpans[t] ||\r\n                      (this.textSpans[t] = {\r\n                        span: null,\r\n                        childSpan: null,\r\n                        glyph: null,\r\n                      }),\r\n                    !h || !p || 0 === t)\r\n                  ) {\r\n                    if (\r\n                      ((n =\r\n                        y > t\r\n                          ? this.textSpans[t].span\r\n                          : createNS(h ? \"g\" : \"text\")),\r\n                      y <= t)\r\n                    ) {\r\n                      if (\r\n                        (n.setAttribute(\"stroke-linecap\", \"butt\"),\r\n                        n.setAttribute(\"stroke-linejoin\", \"round\"),\r\n                        n.setAttribute(\"stroke-miterlimit\", \"4\"),\r\n                        (this.textSpans[t].span = n),\r\n                        h)\r\n                      ) {\r\n                        var g = createNS(\"g\");\r\n                        n.appendChild(g), (this.textSpans[t].childSpan = g);\r\n                      }\r\n                      (this.textSpans[t].span = n),\r\n                        this.layerElement.appendChild(n);\r\n                    }\r\n                    n.style.display = \"inherit\";\r\n                  }\r\n                  if (\r\n                    (l.reset(),\r\n                    p &&\r\n                      (o[t].n &&\r\n                        ((f = -d),\r\n                        (m += i.yOffset),\r\n                        (m += c ? 1 : 0),\r\n                        (c = !1)),\r\n                      this.applyTextPropertiesToMatrix(i, l, o[t].line, f, m),\r\n                      (f += o[t].l || 0),\r\n                      (f += d)),\r\n                    h)\r\n                  ) {\r\n                    var v;\r\n                    if (\r\n                      1 ===\r\n                      (u = this.globalData.fontManager.getCharData(\r\n                        i.finalText[t],\r\n                        r.fStyle,\r\n                        this.globalData.fontManager.getFontByName(i.f).fFamily\r\n                      )).t\r\n                    )\r\n                      v = new SVGCompElement(u.data, this.globalData, this);\r\n                    else {\r\n                      var b = emptyShapeData;\r\n                      u.data &&\r\n                        u.data.shapes &&\r\n                        (b = this.buildShapeData(u.data, i.finalSize)),\r\n                        (v = new SVGShapeElement(b, this.globalData, this));\r\n                    }\r\n                    if (this.textSpans[t].glyph) {\r\n                      var x = this.textSpans[t].glyph;\r\n                      this.textSpans[t].childSpan.removeChild(x.layerElement),\r\n                        x.destroy();\r\n                    }\r\n                    (this.textSpans[t].glyph = v),\r\n                      (v._debug = !0),\r\n                      v.prepareFrame(0),\r\n                      v.renderFrame(),\r\n                      this.textSpans[t].childSpan.appendChild(v.layerElement),\r\n                      1 === u.t &&\r\n                        this.textSpans[t].childSpan.setAttribute(\r\n                          \"transform\",\r\n                          \"scale(\" +\r\n                            i.finalSize \/ 100 +\r\n                            \",\" +\r\n                            i.finalSize \/ 100 +\r\n                            \")\"\r\n                        );\r\n                  } else\r\n                    p &&\r\n                      n.setAttribute(\r\n                        \"transform\",\r\n                        \"translate(\" + l.props[12] + \",\" + l.props[13] + \")\"\r\n                      ),\r\n                      (n.textContent = o[t].val),\r\n                      n.setAttributeNS(\r\n                        \"http:\/\/www.w3.org\/XML\/1998\/namespace\",\r\n                        \"xml:space\",\r\n                        \"preserve\"\r\n                      );\r\n                }\r\n                p && n && n.setAttribute(\"d\", \"\");\r\n              } else {\r\n                var P = this.textContainer,\r\n                  E = \"start\";\r\n                switch (i.j) {\r\n                  case 1:\r\n                    E = \"end\";\r\n                    break;\r\n                  case 2:\r\n                    E = \"middle\";\r\n                    break;\r\n                  default:\r\n                    E = \"start\";\r\n                }\r\n                P.setAttribute(\"text-anchor\", E),\r\n                  P.setAttribute(\"letter-spacing\", d);\r\n                var S = this.buildTextContents(i.finalText);\r\n                for (\r\n                  e = S.length, m = i.ps ? i.ps[1] + i.ascent : 0, t = 0;\r\n                  t < e;\r\n                  t += 1\r\n                )\r\n                  ((n =\r\n                    this.textSpans[t].span || createNS(\"tspan\")).textContent =\r\n                    S[t]),\r\n                    n.setAttribute(\"x\", 0),\r\n                    n.setAttribute(\"y\", m),\r\n                    (n.style.display = \"inherit\"),\r\n                    P.appendChild(n),\r\n                    this.textSpans[t] ||\r\n                      (this.textSpans[t] = { span: null, glyph: null }),\r\n                    (this.textSpans[t].span = n),\r\n                    (m += i.finalLineHeight);\r\n                this.layerElement.appendChild(P);\r\n              }\r\n              for (; t < this.textSpans.length; )\r\n                (this.textSpans[t].span.style.display = \"none\"), (t += 1);\r\n              this._sizeChanged = !0;\r\n            }),\r\n            (SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n              if (\r\n                (this.prepareFrame(this.comp.renderedFrame - this.data.st),\r\n                this.renderInnerContent(),\r\n                this._sizeChanged)\r\n              ) {\r\n                this._sizeChanged = !1;\r\n                var t = this.layerElement.getBBox();\r\n                this.bbox = {\r\n                  top: t.y,\r\n                  left: t.x,\r\n                  width: t.width,\r\n                  height: t.height,\r\n                };\r\n              }\r\n              return this.bbox;\r\n            }),\r\n            (SVGTextLottieElement.prototype.getValue = function () {\r\n              var t,\r\n                e,\r\n                i = this.textSpans.length;\r\n              for (\r\n                this.renderedFrame = this.comp.renderedFrame, t = 0;\r\n                t < i;\r\n                t += 1\r\n              )\r\n                (e = this.textSpans[t].glyph) &&\r\n                  (e.prepareFrame(this.comp.renderedFrame - this.data.st),\r\n                  e._mdf && (this._mdf = !0));\r\n            }),\r\n            (SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n              if (\r\n                (this.validateText(),\r\n                (!this.data.singleShape || this._mdf) &&\r\n                  (this.textAnimator.getMeasures(\r\n                    this.textProperty.currentData,\r\n                    this.lettersChangedFlag\r\n                  ),\r\n                  this.lettersChangedFlag ||\r\n                    this.textAnimator.lettersChangedFlag))\r\n              ) {\r\n                var t, e;\r\n                this._sizeChanged = !0;\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a = this.textAnimator.renderedLetters,\r\n                  n = this.textProperty.currentData.l;\r\n                for (e = n.length, t = 0; t < e; t += 1)\r\n                  n[t].n ||\r\n                    ((i = a[t]),\r\n                    (r = this.textSpans[t].span),\r\n                    (s = this.textSpans[t].glyph) && s.renderFrame(),\r\n                    i._mdf.m && r.setAttribute(\"transform\", i.m),\r\n                    i._mdf.o && r.setAttribute(\"opacity\", i.o),\r\n                    i._mdf.sw && r.setAttribute(\"stroke-width\", i.sw),\r\n                    i._mdf.sc && r.setAttribute(\"stroke\", i.sc),\r\n                    i._mdf.fc && r.setAttribute(\"fill\", i.fc));\r\n              }\r\n            }),\r\n            extendPrototype([IImageElement], ISolidElement),\r\n            (ISolidElement.prototype.createContent = function () {\r\n              var t = createNS(\"rect\");\r\n              t.setAttribute(\"width\", this.data.sw),\r\n                t.setAttribute(\"height\", this.data.sh),\r\n                t.setAttribute(\"fill\", this.data.sc),\r\n                this.layerElement.appendChild(t);\r\n            }),\r\n            (NullElement.prototype.prepareFrame = function (t) {\r\n              this.prepareProperties(t, !0);\r\n            }),\r\n            (NullElement.prototype.renderFrame = function () {}),\r\n            (NullElement.prototype.getBaseElement = function () {\r\n              return null;\r\n            }),\r\n            (NullElement.prototype.destroy = function () {}),\r\n            (NullElement.prototype.sourceRectAtTime = function () {}),\r\n            (NullElement.prototype.hide = function () {}),\r\n            extendPrototype(\r\n              [BaseElement, TransformElement, HierarchyElement, FrameElement],\r\n              NullElement\r\n            ),\r\n            extendPrototype([BaseRenderer], SVGRendererBase),\r\n            (SVGRendererBase.prototype.createNull = function (t) {\r\n              return new NullElement(t, this.globalData, this);\r\n            }),\r\n            (SVGRendererBase.prototype.createShape = function (t) {\r\n              return new SVGShapeElement(t, this.globalData, this);\r\n            }),\r\n            (SVGRendererBase.prototype.createText = function (t) {\r\n              return new SVGTextLottieElement(t, this.globalData, this);\r\n            }),\r\n            (SVGRendererBase.prototype.createImage = function (t) {\r\n              return new IImageElement(t, this.globalData, this);\r\n            }),\r\n            (SVGRendererBase.prototype.createSolid = function (t) {\r\n              return new ISolidElement(t, this.globalData, this);\r\n            }),\r\n            (SVGRendererBase.prototype.configAnimation = function (t) {\r\n              this.svgElement.setAttribute(\r\n                \"xmlns\",\r\n                \"http:\/\/www.w3.org\/2000\/svg\"\r\n              ),\r\n                this.svgElement.setAttribute(\r\n                  \"xmlns:xlink\",\r\n                  \"http:\/\/www.w3.org\/1999\/xlink\"\r\n                ),\r\n                this.renderConfig.viewBoxSize\r\n                  ? this.svgElement.setAttribute(\r\n                      \"viewBox\",\r\n                      this.renderConfig.viewBoxSize\r\n                    )\r\n                  : this.svgElement.setAttribute(\r\n                      \"viewBox\",\r\n                      \"0 0 \" + t.w + \" \" + t.h\r\n                    ),\r\n                this.renderConfig.viewBoxOnly ||\r\n                  (this.svgElement.setAttribute(\"width\", t.w),\r\n                  this.svgElement.setAttribute(\"height\", t.h),\r\n                  (this.svgElement.style.width = \"100%\"),\r\n                  (this.svgElement.style.height = \"100%\"),\r\n                  (this.svgElement.style.transform = \"translate3d(0,0,0)\"),\r\n                  (this.svgElement.style.contentVisibility =\r\n                    this.renderConfig.contentVisibility)),\r\n                this.renderConfig.width &&\r\n                  this.svgElement.setAttribute(\r\n                    \"width\",\r\n                    this.renderConfig.width\r\n                  ),\r\n                this.renderConfig.height &&\r\n                  this.svgElement.setAttribute(\r\n                    \"height\",\r\n                    this.renderConfig.height\r\n                  ),\r\n                this.renderConfig.className &&\r\n                  this.svgElement.setAttribute(\r\n                    \"class\",\r\n                    this.renderConfig.className\r\n                  ),\r\n                this.renderConfig.id &&\r\n                  this.svgElement.setAttribute(\"id\", this.renderConfig.id),\r\n                void 0 !== this.renderConfig.focusable &&\r\n                  this.svgElement.setAttribute(\r\n                    \"focusable\",\r\n                    this.renderConfig.focusable\r\n                  ),\r\n                this.svgElement.setAttribute(\r\n                  \"preserveAspectRatio\",\r\n                  this.renderConfig.preserveAspectRatio\r\n                ),\r\n                this.animationItem.wrapper.appendChild(this.svgElement);\r\n              var e = this.globalData.defs;\r\n              this.setupGlobalData(t, e),\r\n                (this.globalData.progressiveLoad =\r\n                  this.renderConfig.progressiveLoad),\r\n                (this.data = t);\r\n              var i = createNS(\"clipPath\"),\r\n                r = createNS(\"rect\");\r\n              r.setAttribute(\"width\", t.w),\r\n                r.setAttribute(\"height\", t.h),\r\n                r.setAttribute(\"x\", 0),\r\n                r.setAttribute(\"y\", 0);\r\n              var s = createElementID();\r\n              i.setAttribute(\"id\", s),\r\n                i.appendChild(r),\r\n                this.layerElement.setAttribute(\r\n                  \"clip-path\",\r\n                  \"url(\" + getLocationHref() + \"#\" + s + \")\"\r\n                ),\r\n                e.appendChild(i),\r\n                (this.layers = t.layers),\r\n                (this.elements = createSizedArray(t.layers.length));\r\n            }),\r\n            (SVGRendererBase.prototype.destroy = function () {\r\n              var t;\r\n              this.animationItem.wrapper &&\r\n                (this.animationItem.wrapper.innerText = \"\"),\r\n                (this.layerElement = null),\r\n                (this.globalData.defs = null);\r\n              var e = this.layers ? this.layers.length : 0;\r\n              for (t = 0; t < e; t += 1)\r\n                this.elements[t] &&\r\n                  this.elements[t].destroy &&\r\n                  this.elements[t].destroy();\r\n              (this.elements.length = 0),\r\n                (this.destroyed = !0),\r\n                (this.animationItem = null);\r\n            }),\r\n            (SVGRendererBase.prototype.updateContainerSize = function () {}),\r\n            (SVGRendererBase.prototype.findIndexByInd = function (t) {\r\n              var e = 0,\r\n                i = this.layers.length;\r\n              for (e = 0; e < i; e += 1) if (this.layers[e].ind === t) return e;\r\n              return -1;\r\n            }),\r\n            (SVGRendererBase.prototype.buildItem = function (t) {\r\n              var e = this.elements;\r\n              if (!e[t] && 99 !== this.layers[t].ty) {\r\n                e[t] = !0;\r\n                var i = this.createItem(this.layers[t]);\r\n                if (\r\n                  ((e[t] = i),\r\n                  getExpressionsPlugin() &&\r\n                    (0 === this.layers[t].ty &&\r\n                      this.globalData.projectInterface.registerComposition(i),\r\n                    i.initExpressions()),\r\n                  this.appendElementInPos(i, t),\r\n                  this.layers[t].tt)\r\n                ) {\r\n                  var r =\r\n                    \"tp\" in this.layers[t]\r\n                      ? this.findIndexByInd(this.layers[t].tp)\r\n                      : t - 1;\r\n                  if (-1 === r) return;\r\n                  if (this.elements[r] && !0 !== this.elements[r]) {\r\n                    var s = e[r].getMatte(this.layers[t].tt);\r\n                    i.setMatte(s);\r\n                  } else this.buildItem(r), this.addPendingElement(i);\r\n                }\r\n              }\r\n            }),\r\n            (SVGRendererBase.prototype.checkPendingElements = function () {\r\n              for (; this.pendingElements.length; ) {\r\n                var t = this.pendingElements.pop();\r\n                if ((t.checkParenting(), t.data.tt))\r\n                  for (var e = 0, i = this.elements.length; e < i; ) {\r\n                    if (this.elements[e] === t) {\r\n                      var r =\r\n                          \"tp\" in t.data\r\n                            ? this.findIndexByInd(t.data.tp)\r\n                            : e - 1,\r\n                        s = this.elements[r].getMatte(this.layers[e].tt);\r\n                      t.setMatte(s);\r\n                      break;\r\n                    }\r\n                    e += 1;\r\n                  }\r\n              }\r\n            }),\r\n            (SVGRendererBase.prototype.renderFrame = function (t) {\r\n              if (this.renderedFrame !== t && !this.destroyed) {\r\n                var e;\r\n                null === t\r\n                  ? (t = this.renderedFrame)\r\n                  : (this.renderedFrame = t),\r\n                  (this.globalData.frameNum = t),\r\n                  (this.globalData.frameId += 1),\r\n                  (this.globalData.projectInterface.currentFrame = t),\r\n                  (this.globalData._mdf = !1);\r\n                var i = this.layers.length;\r\n                for (\r\n                  this.completeLayers || this.checkLayers(t), e = i - 1;\r\n                  e >= 0;\r\n                  e -= 1\r\n                )\r\n                  (this.completeLayers || this.elements[e]) &&\r\n                    this.elements[e].prepareFrame(t - this.layers[e].st);\r\n                if (this.globalData._mdf)\r\n                  for (e = 0; e < i; e += 1)\r\n                    (this.completeLayers || this.elements[e]) &&\r\n                      this.elements[e].renderFrame();\r\n              }\r\n            }),\r\n            (SVGRendererBase.prototype.appendElementInPos = function (t, e) {\r\n              var i = t.getBaseElement();\r\n              if (i) {\r\n                for (var r, s = 0; s < e; )\r\n                  this.elements[s] &&\r\n                    !0 !== this.elements[s] &&\r\n                    this.elements[s].getBaseElement() &&\r\n                    (r = this.elements[s].getBaseElement()),\r\n                    (s += 1);\r\n                r\r\n                  ? this.layerElement.insertBefore(i, r)\r\n                  : this.layerElement.appendChild(i);\r\n              }\r\n            }),\r\n            (SVGRendererBase.prototype.hide = function () {\r\n              this.layerElement.style.display = \"none\";\r\n            }),\r\n            (SVGRendererBase.prototype.show = function () {\r\n              this.layerElement.style.display = \"block\";\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableDOMElement,\r\n              ],\r\n              ICompElement\r\n            ),\r\n            (ICompElement.prototype.initElement = function (t, e, i) {\r\n              this.initFrame(),\r\n                this.initBaseData(t, e, i),\r\n                this.initTransform(t, e, i),\r\n                this.initRenderable(),\r\n                this.initHierarchy(),\r\n                this.initRendererElement(),\r\n                this.createContainerElements(),\r\n                this.createRenderableComponents(),\r\n                (!this.data.xt && e.progressiveLoad) || this.buildAllItems(),\r\n                this.hide();\r\n            }),\r\n            (ICompElement.prototype.prepareFrame = function (t) {\r\n              if (\r\n                ((this._mdf = !1),\r\n                this.prepareRenderableFrame(t),\r\n                this.prepareProperties(t, this.isInRange),\r\n                this.isInRange || this.data.xt)\r\n              ) {\r\n                if (this.tm._placeholder) this.renderedFrame = t \/ this.data.sr;\r\n                else {\r\n                  var e = this.tm.v;\r\n                  e === this.data.op && (e = this.data.op - 1),\r\n                    (this.renderedFrame = e);\r\n                }\r\n                var i,\r\n                  r = this.elements.length;\r\n                for (\r\n                  this.completeLayers || this.checkLayers(this.renderedFrame),\r\n                    i = r - 1;\r\n                  i >= 0;\r\n                  i -= 1\r\n                )\r\n                  (this.completeLayers || this.elements[i]) &&\r\n                    (this.elements[i].prepareFrame(\r\n                      this.renderedFrame - this.layers[i].st\r\n                    ),\r\n                    this.elements[i]._mdf && (this._mdf = !0));\r\n              }\r\n            }),\r\n            (ICompElement.prototype.renderInnerContent = function () {\r\n              var t,\r\n                e = this.layers.length;\r\n              for (t = 0; t < e; t += 1)\r\n                (this.completeLayers || this.elements[t]) &&\r\n                  this.elements[t].renderFrame();\r\n            }),\r\n            (ICompElement.prototype.setElements = function (t) {\r\n              this.elements = t;\r\n            }),\r\n            (ICompElement.prototype.getElements = function () {\r\n              return this.elements;\r\n            }),\r\n            (ICompElement.prototype.destroyElements = function () {\r\n              var t,\r\n                e = this.layers.length;\r\n              for (t = 0; t < e; t += 1)\r\n                this.elements[t] && this.elements[t].destroy();\r\n            }),\r\n            (ICompElement.prototype.destroy = function () {\r\n              this.destroyElements(), this.destroyBaseElement();\r\n            }),\r\n            extendPrototype(\r\n              [SVGRendererBase, ICompElement, SVGBaseElement],\r\n              SVGCompElement\r\n            ),\r\n            (SVGCompElement.prototype.createComp = function (t) {\r\n              return new SVGCompElement(t, this.globalData, this);\r\n            }),\r\n            extendPrototype([SVGRendererBase], SVGRenderer),\r\n            (SVGRenderer.prototype.createComp = function (t) {\r\n              return new SVGCompElement(t, this.globalData, this);\r\n            }),\r\n            (ShapeTransformManager.prototype = {\r\n              addTransformSequence: function (t) {\r\n                var e,\r\n                  i = t.length,\r\n                  r = \"_\";\r\n                for (e = 0; e < i; e += 1) r += t[e].transform.key + \"_\";\r\n                var s = this.sequences[r];\r\n                return (\r\n                  s ||\r\n                    ((s = {\r\n                      transforms: [].concat(t),\r\n                      finalTransform: new Matrix(),\r\n                      _mdf: !1,\r\n                    }),\r\n                    (this.sequences[r] = s),\r\n                    this.sequenceList.push(s)),\r\n                  s\r\n                );\r\n              },\r\n              processSequence: function (t, e) {\r\n                for (var i = 0, r = t.transforms.length, s = e; i < r && !e; ) {\r\n                  if (t.transforms[i].transform.mProps._mdf) {\r\n                    s = !0;\r\n                    break;\r\n                  }\r\n                  i += 1;\r\n                }\r\n                if (s)\r\n                  for (t.finalTransform.reset(), i = r - 1; i >= 0; i -= 1)\r\n                    t.finalTransform.multiply(\r\n                      t.transforms[i].transform.mProps.v\r\n                    );\r\n                t._mdf = s;\r\n              },\r\n              processSequences: function (t) {\r\n                var e,\r\n                  i = this.sequenceList.length;\r\n                for (e = 0; e < i; e += 1)\r\n                  this.processSequence(this.sequenceList[e], t);\r\n              },\r\n              getNewKey: function () {\r\n                return (\r\n                  (this.transform_key_count += 1),\r\n                  \"_\" + this.transform_key_count\r\n                );\r\n              },\r\n            });\r\n          var lumaLoader = function () {\r\n            var t = \"__lottie_element_luma_buffer\",\r\n              e = null,\r\n              i = null,\r\n              r = null;\r\n            function s() {\r\n              var s, a, n;\r\n              e ||\r\n                ((s = createNS(\"svg\")),\r\n                (a = createNS(\"filter\")),\r\n                (n = createNS(\"feColorMatrix\")),\r\n                a.setAttribute(\"id\", t),\r\n                n.setAttribute(\"type\", \"matrix\"),\r\n                n.setAttribute(\"color-interpolation-filters\", \"sRGB\"),\r\n                n.setAttribute(\r\n                  \"values\",\r\n                  \"0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0\"\r\n                ),\r\n                a.appendChild(n),\r\n                s.appendChild(a),\r\n                s.setAttribute(\"id\", t + \"_svg\"),\r\n                featureSupport.svgLumaHidden && (s.style.display = \"none\"),\r\n                (r = s),\r\n                document.body.appendChild(r),\r\n                (e = createTag(\"canvas\")),\r\n                ((i = e.getContext(\"2d\")).filter = \"url(#\" + t + \")\"),\r\n                (i.fillStyle = \"rgba(0,0,0,0)\"),\r\n                i.fillRect(0, 0, 1, 1));\r\n            }\r\n            return {\r\n              load: s,\r\n              get: function (r) {\r\n                return (\r\n                  e || s(),\r\n                  (e.width = r.width),\r\n                  (e.height = r.height),\r\n                  (i.filter = \"url(#\" + t + \")\"),\r\n                  e\r\n                );\r\n              },\r\n            };\r\n          };\r\n          function createCanvas(t, e) {\r\n            if (featureSupport.offscreenCanvas)\r\n              return new OffscreenCanvas(t, e);\r\n            var i = createTag(\"canvas\");\r\n            return (i.width = t), (i.height = e), i;\r\n          }\r\n          var assetLoader = {\r\n              loadLumaCanvas: lumaLoader.load,\r\n              getLumaCanvas: lumaLoader.get,\r\n              createCanvas: createCanvas,\r\n            },\r\n            registeredEffects = {};\r\n          function CVEffects(t) {\r\n            var e,\r\n              i,\r\n              r = t.data.ef ? t.data.ef.length : 0;\r\n            for (this.filters = [], e = 0; e < r; e += 1) {\r\n              i = null;\r\n              var s = t.data.ef[e].ty;\r\n              if (registeredEffects[s])\r\n                i = new (0, registeredEffects[s].effect)(\r\n                  t.effectsManager.effectElements[e],\r\n                  t\r\n                );\r\n              i && this.filters.push(i);\r\n            }\r\n            this.filters.length && t.addRenderableComponent(this);\r\n          }\r\n          function registerEffect(t, e) {\r\n            registeredEffects[t] = { effect: e };\r\n          }\r\n          function CVMaskElement(t, e) {\r\n            var i;\r\n            (this.data = t),\r\n              (this.element = e),\r\n              (this.masksProperties = this.data.masksProperties || []),\r\n              (this.viewData = createSizedArray(this.masksProperties.length));\r\n            var r = this.masksProperties.length,\r\n              s = !1;\r\n            for (i = 0; i < r; i += 1)\r\n              \"n\" !== this.masksProperties[i].mode && (s = !0),\r\n                (this.viewData[i] = ShapePropertyFactory.getShapeProp(\r\n                  this.element,\r\n                  this.masksProperties[i],\r\n                  3\r\n                ));\r\n            (this.hasMasks = s), s && this.element.addRenderableComponent(this);\r\n          }\r\n          function CVBaseElement() {}\r\n          (CVEffects.prototype.renderFrame = function (t) {\r\n            var e,\r\n              i = this.filters.length;\r\n            for (e = 0; e < i; e += 1) this.filters[e].renderFrame(t);\r\n          }),\r\n            (CVEffects.prototype.getEffects = function (t) {\r\n              var e,\r\n                i = this.filters.length,\r\n                r = [];\r\n              for (e = 0; e < i; e += 1)\r\n                this.filters[e].type === t && r.push(this.filters[e]);\r\n              return r;\r\n            }),\r\n            (CVMaskElement.prototype.renderFrame = function () {\r\n              if (this.hasMasks) {\r\n                var t,\r\n                  e,\r\n                  i,\r\n                  r,\r\n                  s = this.element.finalTransform.mat,\r\n                  a = this.element.canvasContext,\r\n                  n = this.masksProperties.length;\r\n                for (a.beginPath(), t = 0; t < n; t += 1)\r\n                  if (\"n\" !== this.masksProperties[t].mode) {\r\n                    var o;\r\n                    this.masksProperties[t].inv &&\r\n                      (a.moveTo(0, 0),\r\n                      a.lineTo(this.element.globalData.compSize.w, 0),\r\n                      a.lineTo(\r\n                        this.element.globalData.compSize.w,\r\n                        this.element.globalData.compSize.h\r\n                      ),\r\n                      a.lineTo(0, this.element.globalData.compSize.h),\r\n                      a.lineTo(0, 0)),\r\n                      (r = this.viewData[t].v),\r\n                      (e = s.applyToPointArray(r.v[0][0], r.v[0][1], 0)),\r\n                      a.moveTo(e[0], e[1]);\r\n                    var h = r._length;\r\n                    for (o = 1; o < h; o += 1)\r\n                      (i = s.applyToTriplePoints(r.o[o - 1], r.i[o], r.v[o])),\r\n                        a.bezierCurveTo(i[0], i[1], i[2], i[3], i[4], i[5]);\r\n                    (i = s.applyToTriplePoints(r.o[o - 1], r.i[0], r.v[0])),\r\n                      a.bezierCurveTo(i[0], i[1], i[2], i[3], i[4], i[5]);\r\n                  }\r\n                this.element.globalData.renderer.save(!0), a.clip();\r\n              }\r\n            }),\r\n            (CVMaskElement.prototype.getMaskProperty =\r\n              MaskElement.prototype.getMaskProperty),\r\n            (CVMaskElement.prototype.destroy = function () {\r\n              this.element = null;\r\n            });\r\n          var operationsMap = {\r\n            1: \"source-in\",\r\n            2: \"source-out\",\r\n            3: \"source-in\",\r\n            4: \"source-out\",\r\n          };\r\n          function CVShapeData(t, e, i, r) {\r\n            (this.styledShapes = []), (this.tr = [0, 0, 0, 0, 0, 0]);\r\n            var s,\r\n              a = 4;\r\n            \"rc\" === e.ty\r\n              ? (a = 5)\r\n              : \"el\" === e.ty\r\n              ? (a = 6)\r\n              : \"sr\" === e.ty && (a = 7),\r\n              (this.sh = ShapePropertyFactory.getShapeProp(t, e, a, t));\r\n            var n,\r\n              o = i.length;\r\n            for (s = 0; s < o; s += 1)\r\n              i[s].closed ||\r\n                ((n = {\r\n                  transforms: r.addTransformSequence(i[s].transforms),\r\n                  trNodes: [],\r\n                }),\r\n                this.styledShapes.push(n),\r\n                i[s].elements.push(n));\r\n          }\r\n          function CVShapeElement(t, e, i) {\r\n            (this.shapes = []),\r\n              (this.shapesData = t.shapes),\r\n              (this.stylesList = []),\r\n              (this.itemsData = []),\r\n              (this.prevViewData = []),\r\n              (this.shapeModifiers = []),\r\n              (this.processedElements = []),\r\n              (this.transformsManager = new ShapeTransformManager()),\r\n              this.initElement(t, e, i);\r\n          }\r\n          function CVTextElement(t, e, i) {\r\n            (this.textSpans = []),\r\n              (this.yOffset = 0),\r\n              (this.fillColorAnim = !1),\r\n              (this.strokeColorAnim = !1),\r\n              (this.strokeWidthAnim = !1),\r\n              (this.stroke = !1),\r\n              (this.fill = !1),\r\n              (this.justifyOffset = 0),\r\n              (this.currentRender = null),\r\n              (this.renderType = \"canvas\"),\r\n              (this.values = {\r\n                fill: \"rgba(0,0,0,0)\",\r\n                stroke: \"rgba(0,0,0,0)\",\r\n                sWidth: 0,\r\n                fValue: \"\",\r\n              }),\r\n              this.initElement(t, e, i);\r\n          }\r\n          function CVImageElement(t, e, i) {\r\n            (this.assetData = e.getAssetData(t.refId)),\r\n              (this.img = e.imageLoader.getAsset(this.assetData)),\r\n              this.initElement(t, e, i);\r\n          }\r\n          function CVSolidElement(t, e, i) {\r\n            this.initElement(t, e, i);\r\n          }\r\n          function CanvasRendererBase() {}\r\n          function CanvasContext() {\r\n            (this.opacity = -1),\r\n              (this.transform = createTypedArray(\"float32\", 16)),\r\n              (this.fillStyle = \"\"),\r\n              (this.strokeStyle = \"\"),\r\n              (this.lineWidth = \"\"),\r\n              (this.lineCap = \"\"),\r\n              (this.lineJoin = \"\"),\r\n              (this.miterLimit = \"\"),\r\n              (this.id = Math.random());\r\n          }\r\n          function CVContextData() {\r\n            var t;\r\n            (this.stack = []), (this.cArrPos = 0), (this.cTr = new Matrix());\r\n            for (t = 0; t < 15; t += 1) {\r\n              var e = new CanvasContext();\r\n              this.stack[t] = e;\r\n            }\r\n            (this._length = 15),\r\n              (this.nativeContext = null),\r\n              (this.transformMat = new Matrix()),\r\n              (this.currentOpacity = 1),\r\n              (this.currentFillStyle = \"\"),\r\n              (this.appliedFillStyle = \"\"),\r\n              (this.currentStrokeStyle = \"\"),\r\n              (this.appliedStrokeStyle = \"\"),\r\n              (this.currentLineWidth = \"\"),\r\n              (this.appliedLineWidth = \"\"),\r\n              (this.currentLineCap = \"\"),\r\n              (this.appliedLineCap = \"\"),\r\n              (this.currentLineJoin = \"\"),\r\n              (this.appliedLineJoin = \"\"),\r\n              (this.appliedMiterLimit = \"\"),\r\n              (this.currentMiterLimit = \"\");\r\n          }\r\n          function CVCompElement(t, e, i) {\r\n            (this.completeLayers = !1),\r\n              (this.layers = t.layers),\r\n              (this.pendingElements = []),\r\n              (this.elements = createSizedArray(this.layers.length)),\r\n              this.initElement(t, e, i),\r\n              (this.tm = t.tm\r\n                ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this)\r\n                : { _placeholder: !0 });\r\n          }\r\n          function CanvasRenderer(t, e) {\r\n            (this.animationItem = t),\r\n              (this.renderConfig = {\r\n                clearCanvas: !e || void 0 === e.clearCanvas || e.clearCanvas,\r\n                context: (e && e.context) || null,\r\n                progressiveLoad: (e && e.progressiveLoad) || !1,\r\n                preserveAspectRatio:\r\n                  (e && e.preserveAspectRatio) || \"xMidYMid meet\",\r\n                imagePreserveAspectRatio:\r\n                  (e && e.imagePreserveAspectRatio) || \"xMidYMid slice\",\r\n                contentVisibility: (e && e.contentVisibility) || \"visible\",\r\n                className: (e && e.className) || \"\",\r\n                id: (e && e.id) || \"\",\r\n                runExpressions:\r\n                  !e || void 0 === e.runExpressions || e.runExpressions,\r\n              }),\r\n              (this.renderConfig.dpr = (e && e.dpr) || 1),\r\n              this.animationItem.wrapper &&\r\n                (this.renderConfig.dpr =\r\n                  (e && e.dpr) || window.devicePixelRatio || 1),\r\n              (this.renderedFrame = -1),\r\n              (this.globalData = {\r\n                frameNum: -1,\r\n                _mdf: !1,\r\n                renderConfig: this.renderConfig,\r\n                currentGlobalAlpha: -1,\r\n              }),\r\n              (this.contextData = new CVContextData()),\r\n              (this.elements = []),\r\n              (this.pendingElements = []),\r\n              (this.transformMat = new Matrix()),\r\n              (this.completeLayers = !1),\r\n              (this.rendererType = \"canvas\"),\r\n              this.renderConfig.clearCanvas &&\r\n                ((this.ctxTransform = this.contextData.transform.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxOpacity = this.contextData.opacity.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxFillStyle = this.contextData.fillStyle.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxStrokeStyle = this.contextData.strokeStyle.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxLineWidth = this.contextData.lineWidth.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxLineCap = this.contextData.lineCap.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxLineJoin = this.contextData.lineJoin.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxMiterLimit = this.contextData.miterLimit.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxFill = this.contextData.fill.bind(this.contextData)),\r\n                (this.ctxFillRect = this.contextData.fillRect.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.ctxStroke = this.contextData.stroke.bind(\r\n                  this.contextData\r\n                )),\r\n                (this.save = this.contextData.save.bind(this.contextData)));\r\n          }\r\n          function HBaseElement() {}\r\n          function HSolidElement(t, e, i) {\r\n            this.initElement(t, e, i);\r\n          }\r\n          function HShapeElement(t, e, i) {\r\n            (this.shapes = []),\r\n              (this.shapesData = t.shapes),\r\n              (this.stylesList = []),\r\n              (this.shapeModifiers = []),\r\n              (this.itemsData = []),\r\n              (this.processedElements = []),\r\n              (this.animatedContents = []),\r\n              (this.shapesContainer = createNS(\"g\")),\r\n              this.initElement(t, e, i),\r\n              (this.prevViewData = []),\r\n              (this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 });\r\n          }\r\n          function HTextElement(t, e, i) {\r\n            (this.textSpans = []),\r\n              (this.textPaths = []),\r\n              (this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 }),\r\n              (this.renderType = \"svg\"),\r\n              (this.isMasked = !1),\r\n              this.initElement(t, e, i);\r\n          }\r\n          function HCameraElement(t, e, i) {\r\n            this.initFrame(), this.initBaseData(t, e, i), this.initHierarchy();\r\n            var r = PropertyFactory.getProp;\r\n            if (\r\n              ((this.pe = r(this, t.pe, 0, 0, this)),\r\n              t.ks.p.s\r\n                ? ((this.px = r(this, t.ks.p.x, 1, 0, this)),\r\n                  (this.py = r(this, t.ks.p.y, 1, 0, this)),\r\n                  (this.pz = r(this, t.ks.p.z, 1, 0, this)))\r\n                : (this.p = r(this, t.ks.p, 1, 0, this)),\r\n              t.ks.a && (this.a = r(this, t.ks.a, 1, 0, this)),\r\n              t.ks.or.k.length && t.ks.or.k[0].to)\r\n            ) {\r\n              var s,\r\n                a = t.ks.or.k.length;\r\n              for (s = 0; s < a; s += 1)\r\n                (t.ks.or.k[s].to = null), (t.ks.or.k[s].ti = null);\r\n            }\r\n            (this.or = r(this, t.ks.or, 1, degToRads, this)),\r\n              (this.or.sh = !0),\r\n              (this.rx = r(this, t.ks.rx, 0, degToRads, this)),\r\n              (this.ry = r(this, t.ks.ry, 0, degToRads, this)),\r\n              (this.rz = r(this, t.ks.rz, 0, degToRads, this)),\r\n              (this.mat = new Matrix()),\r\n              (this._prevMat = new Matrix()),\r\n              (this._isFirstFrame = !0),\r\n              (this.finalTransform = { mProp: this });\r\n          }\r\n          function HImageElement(t, e, i) {\r\n            (this.assetData = e.getAssetData(t.refId)),\r\n              this.initElement(t, e, i);\r\n          }\r\n          function HybridRendererBase(t, e) {\r\n            (this.animationItem = t),\r\n              (this.layers = null),\r\n              (this.renderedFrame = -1),\r\n              (this.renderConfig = {\r\n                className: (e && e.className) || \"\",\r\n                imagePreserveAspectRatio:\r\n                  (e && e.imagePreserveAspectRatio) || \"xMidYMid slice\",\r\n                hideOnTransparent: !(e && !1 === e.hideOnTransparent),\r\n                filterSize: {\r\n                  width: (e && e.filterSize && e.filterSize.width) || \"400%\",\r\n                  height: (e && e.filterSize && e.filterSize.height) || \"400%\",\r\n                  x: (e && e.filterSize && e.filterSize.x) || \"-100%\",\r\n                  y: (e && e.filterSize && e.filterSize.y) || \"-100%\",\r\n                },\r\n              }),\r\n              (this.globalData = {\r\n                _mdf: !1,\r\n                frameNum: -1,\r\n                renderConfig: this.renderConfig,\r\n              }),\r\n              (this.pendingElements = []),\r\n              (this.elements = []),\r\n              (this.threeDElements = []),\r\n              (this.destroyed = !1),\r\n              (this.camera = null),\r\n              (this.supports3d = !0),\r\n              (this.rendererType = \"html\");\r\n          }\r\n          function HCompElement(t, e, i) {\r\n            (this.layers = t.layers),\r\n              (this.supports3d = !t.hasMask),\r\n              (this.completeLayers = !1),\r\n              (this.pendingElements = []),\r\n              (this.elements = this.layers\r\n                ? createSizedArray(this.layers.length)\r\n                : []),\r\n              this.initElement(t, e, i),\r\n              (this.tm = t.tm\r\n                ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this)\r\n                : { _placeholder: !0 });\r\n          }\r\n          function HybridRenderer(t, e) {\r\n            (this.animationItem = t),\r\n              (this.layers = null),\r\n              (this.renderedFrame = -1),\r\n              (this.renderConfig = {\r\n                className: (e && e.className) || \"\",\r\n                imagePreserveAspectRatio:\r\n                  (e && e.imagePreserveAspectRatio) || \"xMidYMid slice\",\r\n                hideOnTransparent: !(e && !1 === e.hideOnTransparent),\r\n                filterSize: {\r\n                  width: (e && e.filterSize && e.filterSize.width) || \"400%\",\r\n                  height: (e && e.filterSize && e.filterSize.height) || \"400%\",\r\n                  x: (e && e.filterSize && e.filterSize.x) || \"-100%\",\r\n                  y: (e && e.filterSize && e.filterSize.y) || \"-100%\",\r\n                },\r\n                runExpressions:\r\n                  !e || void 0 === e.runExpressions || e.runExpressions,\r\n              }),\r\n              (this.globalData = {\r\n                _mdf: !1,\r\n                frameNum: -1,\r\n                renderConfig: this.renderConfig,\r\n              }),\r\n              (this.pendingElements = []),\r\n              (this.elements = []),\r\n              (this.threeDElements = []),\r\n              (this.destroyed = !1),\r\n              (this.camera = null),\r\n              (this.supports3d = !0),\r\n              (this.rendererType = \"html\");\r\n          }\r\n          (CVBaseElement.prototype = {\r\n            createElements: function () {},\r\n            initRendererElement: function () {},\r\n            createContainerElements: function () {\r\n              if (this.data.tt >= 1) {\r\n                this.buffers = [];\r\n                var t = this.globalData.canvasContext,\r\n                  e = assetLoader.createCanvas(t.canvas.width, t.canvas.height);\r\n                this.buffers.push(e);\r\n                var i = assetLoader.createCanvas(\r\n                  t.canvas.width,\r\n                  t.canvas.height\r\n                );\r\n                this.buffers.push(i),\r\n                  this.data.tt >= 3 &&\r\n                    !document._isProxy &&\r\n                    assetLoader.loadLumaCanvas();\r\n              }\r\n              (this.canvasContext = this.globalData.canvasContext),\r\n                (this.transformCanvas = this.globalData.transformCanvas),\r\n                (this.renderableEffectsManager = new CVEffects(this)),\r\n                this.searchEffectTransforms();\r\n            },\r\n            createContent: function () {},\r\n            setBlendMode: function () {\r\n              var t = this.globalData;\r\n              if (t.blendMode !== this.data.bm) {\r\n                t.blendMode = this.data.bm;\r\n                var e = getBlendMode(this.data.bm);\r\n                t.canvasContext.globalCompositeOperation = e;\r\n              }\r\n            },\r\n            createRenderableComponents: function () {\r\n              (this.maskManager = new CVMaskElement(this.data, this)),\r\n                (this.transformEffects =\r\n                  this.renderableEffectsManager.getEffects(\r\n                    effectTypes.TRANSFORM_EFFECT\r\n                  ));\r\n            },\r\n            hideElement: function () {\r\n              this.hidden ||\r\n                (this.isInRange && !this.isTransparent) ||\r\n                (this.hidden = !0);\r\n            },\r\n            showElement: function () {\r\n              this.isInRange &&\r\n                !this.isTransparent &&\r\n                ((this.hidden = !1),\r\n                (this._isFirstFrame = !0),\r\n                (this.maskManager._isFirstFrame = !0));\r\n            },\r\n            clearCanvas: function (t) {\r\n              t.clearRect(\r\n                this.transformCanvas.tx,\r\n                this.transformCanvas.ty,\r\n                this.transformCanvas.w * this.transformCanvas.sx,\r\n                this.transformCanvas.h * this.transformCanvas.sy\r\n              );\r\n            },\r\n            prepareLayer: function () {\r\n              if (this.data.tt >= 1) {\r\n                var t = this.buffers[0].getContext(\"2d\");\r\n                this.clearCanvas(t),\r\n                  t.drawImage(this.canvasContext.canvas, 0, 0),\r\n                  (this.currentTransform = this.canvasContext.getTransform()),\r\n                  this.canvasContext.setTransform(1, 0, 0, 1, 0, 0),\r\n                  this.clearCanvas(this.canvasContext),\r\n                  this.canvasContext.setTransform(this.currentTransform);\r\n              }\r\n            },\r\n            exitLayer: function () {\r\n              if (this.data.tt >= 1) {\r\n                var t = this.buffers[1],\r\n                  e = t.getContext(\"2d\");\r\n                if (\r\n                  (this.clearCanvas(e),\r\n                  e.drawImage(this.canvasContext.canvas, 0, 0),\r\n                  this.canvasContext.setTransform(1, 0, 0, 1, 0, 0),\r\n                  this.clearCanvas(this.canvasContext),\r\n                  this.canvasContext.setTransform(this.currentTransform),\r\n                  this.comp\r\n                    .getElementById(\r\n                      \"tp\" in this.data ? this.data.tp : this.data.ind - 1\r\n                    )\r\n                    .renderFrame(!0),\r\n                  this.canvasContext.setTransform(1, 0, 0, 1, 0, 0),\r\n                  this.data.tt >= 3 && !document._isProxy)\r\n                ) {\r\n                  var i = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n                  i.getContext(\"2d\").drawImage(this.canvasContext.canvas, 0, 0),\r\n                    this.clearCanvas(this.canvasContext),\r\n                    this.canvasContext.drawImage(i, 0, 0);\r\n                }\r\n                (this.canvasContext.globalCompositeOperation =\r\n                  operationsMap[this.data.tt]),\r\n                  this.canvasContext.drawImage(t, 0, 0),\r\n                  (this.canvasContext.globalCompositeOperation =\r\n                    \"destination-over\"),\r\n                  this.canvasContext.drawImage(this.buffers[0], 0, 0),\r\n                  this.canvasContext.setTransform(this.currentTransform),\r\n                  (this.canvasContext.globalCompositeOperation = \"source-over\");\r\n              }\r\n            },\r\n            renderFrame: function (t) {\r\n              if (!this.hidden && !this.data.hd && (1 !== this.data.td || t)) {\r\n                this.renderTransform(),\r\n                  this.renderRenderable(),\r\n                  this.renderLocalTransform(),\r\n                  this.setBlendMode();\r\n                var e = 0 === this.data.ty;\r\n                this.prepareLayer(),\r\n                  this.globalData.renderer.save(e),\r\n                  this.globalData.renderer.ctxTransform(\r\n                    this.finalTransform.localMat.props\r\n                  ),\r\n                  this.globalData.renderer.ctxOpacity(\r\n                    this.finalTransform.localOpacity\r\n                  ),\r\n                  this.renderInnerContent(),\r\n                  this.globalData.renderer.restore(e),\r\n                  this.exitLayer(),\r\n                  this.maskManager.hasMasks &&\r\n                    this.globalData.renderer.restore(!0),\r\n                  this._isFirstFrame && (this._isFirstFrame = !1);\r\n              }\r\n            },\r\n            destroy: function () {\r\n              (this.canvasContext = null),\r\n                (this.data = null),\r\n                (this.globalData = null),\r\n                this.maskManager.destroy();\r\n            },\r\n            mHelper: new Matrix(),\r\n          }),\r\n            (CVBaseElement.prototype.hide =\r\n              CVBaseElement.prototype.hideElement),\r\n            (CVBaseElement.prototype.show =\r\n              CVBaseElement.prototype.showElement),\r\n            (CVShapeData.prototype.setAsAnimated =\r\n              SVGShapeData.prototype.setAsAnimated),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                CVBaseElement,\r\n                IShapeElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableElement,\r\n              ],\r\n              CVShapeElement\r\n            ),\r\n            (CVShapeElement.prototype.initElement =\r\n              RenderableDOMElement.prototype.initElement),\r\n            (CVShapeElement.prototype.transformHelper = {\r\n              opacity: 1,\r\n              _opMdf: !1,\r\n            }),\r\n            (CVShapeElement.prototype.dashResetter = []),\r\n            (CVShapeElement.prototype.createContent = function () {\r\n              this.searchShapes(\r\n                this.shapesData,\r\n                this.itemsData,\r\n                this.prevViewData,\r\n                !0,\r\n                []\r\n              );\r\n            }),\r\n            (CVShapeElement.prototype.createStyleElement = function (t, e) {\r\n              var i = {\r\n                  data: t,\r\n                  type: t.ty,\r\n                  preTransforms: this.transformsManager.addTransformSequence(e),\r\n                  transforms: [],\r\n                  elements: [],\r\n                  closed: !0 === t.hd,\r\n                },\r\n                r = {};\r\n              if (\r\n                (\"fl\" === t.ty || \"st\" === t.ty\r\n                  ? ((r.c = PropertyFactory.getProp(this, t.c, 1, 255, this)),\r\n                    r.c.k ||\r\n                      (i.co =\r\n                        \"rgb(\" +\r\n                        bmFloor(r.c.v[0]) +\r\n                        \",\" +\r\n                        bmFloor(r.c.v[1]) +\r\n                        \",\" +\r\n                        bmFloor(r.c.v[2]) +\r\n                        \")\"))\r\n                  : (\"gf\" !== t.ty && \"gs\" !== t.ty) ||\r\n                    ((r.s = PropertyFactory.getProp(this, t.s, 1, null, this)),\r\n                    (r.e = PropertyFactory.getProp(this, t.e, 1, null, this)),\r\n                    (r.h = PropertyFactory.getProp(\r\n                      this,\r\n                      t.h || { k: 0 },\r\n                      0,\r\n                      0.01,\r\n                      this\r\n                    )),\r\n                    (r.a = PropertyFactory.getProp(\r\n                      this,\r\n                      t.a || { k: 0 },\r\n                      0,\r\n                      degToRads,\r\n                      this\r\n                    )),\r\n                    (r.g = new GradientProperty(this, t.g, this))),\r\n                (r.o = PropertyFactory.getProp(this, t.o, 0, 0.01, this)),\r\n                \"st\" === t.ty || \"gs\" === t.ty)\r\n              ) {\r\n                if (\r\n                  ((i.lc = lineCapEnum[t.lc || 2]),\r\n                  (i.lj = lineJoinEnum[t.lj || 2]),\r\n                  1 == t.lj && (i.ml = t.ml),\r\n                  (r.w = PropertyFactory.getProp(this, t.w, 0, null, this)),\r\n                  r.w.k || (i.wi = r.w.v),\r\n                  t.d)\r\n                ) {\r\n                  var s = new DashProperty(this, t.d, \"canvas\", this);\r\n                  (r.d = s),\r\n                    r.d.k ||\r\n                      ((i.da = r.d.dashArray), (i.do = r.d.dashoffset[0]));\r\n                }\r\n              } else i.r = 2 === t.r ? \"evenodd\" : \"nonzero\";\r\n              return this.stylesList.push(i), (r.style = i), r;\r\n            }),\r\n            (CVShapeElement.prototype.createGroupElement = function () {\r\n              return { it: [], prevViewData: [] };\r\n            }),\r\n            (CVShapeElement.prototype.createTransformElement = function (t) {\r\n              return {\r\n                transform: {\r\n                  opacity: 1,\r\n                  _opMdf: !1,\r\n                  key: this.transformsManager.getNewKey(),\r\n                  op: PropertyFactory.getProp(this, t.o, 0, 0.01, this),\r\n                  mProps: TransformPropertyFactory.getTransformProperty(\r\n                    this,\r\n                    t,\r\n                    this\r\n                  ),\r\n                },\r\n              };\r\n            }),\r\n            (CVShapeElement.prototype.createShapeElement = function (t) {\r\n              var e = new CVShapeData(\r\n                this,\r\n                t,\r\n                this.stylesList,\r\n                this.transformsManager\r\n              );\r\n              return this.shapes.push(e), this.addShapeToModifiers(e), e;\r\n            }),\r\n            (CVShapeElement.prototype.reloadShapes = function () {\r\n              var t;\r\n              this._isFirstFrame = !0;\r\n              var e = this.itemsData.length;\r\n              for (t = 0; t < e; t += 1)\r\n                this.prevViewData[t] = this.itemsData[t];\r\n              for (\r\n                this.searchShapes(\r\n                  this.shapesData,\r\n                  this.itemsData,\r\n                  this.prevViewData,\r\n                  !0,\r\n                  []\r\n                ),\r\n                  e = this.dynamicProperties.length,\r\n                  t = 0;\r\n                t < e;\r\n                t += 1\r\n              )\r\n                this.dynamicProperties[t].getValue();\r\n              this.renderModifiers(),\r\n                this.transformsManager.processSequences(this._isFirstFrame);\r\n            }),\r\n            (CVShapeElement.prototype.addTransformToStyleList = function (t) {\r\n              var e,\r\n                i = this.stylesList.length;\r\n              for (e = 0; e < i; e += 1)\r\n                this.stylesList[e].closed ||\r\n                  this.stylesList[e].transforms.push(t);\r\n            }),\r\n            (CVShapeElement.prototype.removeTransformFromStyleList =\r\n              function () {\r\n                var t,\r\n                  e = this.stylesList.length;\r\n                for (t = 0; t < e; t += 1)\r\n                  this.stylesList[t].closed ||\r\n                    this.stylesList[t].transforms.pop();\r\n              }),\r\n            (CVShapeElement.prototype.closeStyles = function (t) {\r\n              var e,\r\n                i = t.length;\r\n              for (e = 0; e < i; e += 1) t[e].closed = !0;\r\n            }),\r\n            (CVShapeElement.prototype.searchShapes = function (t, e, i, r, s) {\r\n              var a,\r\n                n,\r\n                o,\r\n                h,\r\n                l,\r\n                p,\r\n                f = t.length - 1,\r\n                m = [],\r\n                c = [],\r\n                d = [].concat(s);\r\n              for (a = f; a >= 0; a -= 1) {\r\n                if (\r\n                  ((h = this.searchProcessedElement(t[a]))\r\n                    ? (e[a] = i[h - 1])\r\n                    : (t[a]._shouldRender = r),\r\n                  \"fl\" === t[a].ty ||\r\n                    \"st\" === t[a].ty ||\r\n                    \"gf\" === t[a].ty ||\r\n                    \"gs\" === t[a].ty)\r\n                )\r\n                  h\r\n                    ? (e[a].style.closed = !1)\r\n                    : (e[a] = this.createStyleElement(t[a], d)),\r\n                    m.push(e[a].style);\r\n                else if (\"gr\" === t[a].ty) {\r\n                  if (h)\r\n                    for (o = e[a].it.length, n = 0; n < o; n += 1)\r\n                      e[a].prevViewData[n] = e[a].it[n];\r\n                  else e[a] = this.createGroupElement(t[a]);\r\n                  this.searchShapes(t[a].it, e[a].it, e[a].prevViewData, r, d);\r\n                } else\r\n                  \"tr\" === t[a].ty\r\n                    ? (h ||\r\n                        ((p = this.createTransformElement(t[a])), (e[a] = p)),\r\n                      d.push(e[a]),\r\n                      this.addTransformToStyleList(e[a]))\r\n                    : \"sh\" === t[a].ty ||\r\n                      \"rc\" === t[a].ty ||\r\n                      \"el\" === t[a].ty ||\r\n                      \"sr\" === t[a].ty\r\n                    ? h || (e[a] = this.createShapeElement(t[a]))\r\n                    : \"tm\" === t[a].ty ||\r\n                      \"rd\" === t[a].ty ||\r\n                      \"pb\" === t[a].ty ||\r\n                      \"zz\" === t[a].ty ||\r\n                      \"op\" === t[a].ty\r\n                    ? (h\r\n                        ? ((l = e[a]).closed = !1)\r\n                        : ((l = ShapeModifiers.getModifier(t[a].ty)).init(\r\n                            this,\r\n                            t[a]\r\n                          ),\r\n                          (e[a] = l),\r\n                          this.shapeModifiers.push(l)),\r\n                      c.push(l))\r\n                    : \"rp\" === t[a].ty &&\r\n                      (h\r\n                        ? ((l = e[a]).closed = !0)\r\n                        : ((l = ShapeModifiers.getModifier(t[a].ty)),\r\n                          (e[a] = l),\r\n                          l.init(this, t, a, e),\r\n                          this.shapeModifiers.push(l),\r\n                          (r = !1)),\r\n                      c.push(l));\r\n                this.addProcessedElement(t[a], a + 1);\r\n              }\r\n              for (\r\n                this.removeTransformFromStyleList(),\r\n                  this.closeStyles(m),\r\n                  f = c.length,\r\n                  a = 0;\r\n                a < f;\r\n                a += 1\r\n              )\r\n                c[a].closed = !0;\r\n            }),\r\n            (CVShapeElement.prototype.renderInnerContent = function () {\r\n              (this.transformHelper.opacity = 1),\r\n                (this.transformHelper._opMdf = !1),\r\n                this.renderModifiers(),\r\n                this.transformsManager.processSequences(this._isFirstFrame),\r\n                this.renderShape(\r\n                  this.transformHelper,\r\n                  this.shapesData,\r\n                  this.itemsData,\r\n                  !0\r\n                );\r\n            }),\r\n            (CVShapeElement.prototype.renderShapeTransform = function (t, e) {\r\n              (t._opMdf || e.op._mdf || this._isFirstFrame) &&\r\n                ((e.opacity = t.opacity),\r\n                (e.opacity *= e.op.v),\r\n                (e._opMdf = !0));\r\n            }),\r\n            (CVShapeElement.prototype.drawLayer = function () {\r\n              var t,\r\n                e,\r\n                i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o,\r\n                h,\r\n                l = this.stylesList.length,\r\n                p = this.globalData.renderer,\r\n                f = this.globalData.canvasContext;\r\n              for (t = 0; t < l; t += 1)\r\n                if (\r\n                  ((\"st\" !== (o = (h = this.stylesList[t]).type) &&\r\n                    \"gs\" !== o) ||\r\n                    0 !== h.wi) &&\r\n                  h.data._shouldRender &&\r\n                  0 !== h.coOp &&\r\n                  0 !== this.globalData.currentGlobalAlpha\r\n                ) {\r\n                  for (\r\n                    p.save(),\r\n                      a = h.elements,\r\n                      \"st\" === o || \"gs\" === o\r\n                        ? (p.ctxStrokeStyle(\"st\" === o ? h.co : h.grd),\r\n                          p.ctxLineWidth(h.wi),\r\n                          p.ctxLineCap(h.lc),\r\n                          p.ctxLineJoin(h.lj),\r\n                          p.ctxMiterLimit(h.ml || 0))\r\n                        : p.ctxFillStyle(\"fl\" === o ? h.co : h.grd),\r\n                      p.ctxOpacity(h.coOp),\r\n                      \"st\" !== o && \"gs\" !== o && f.beginPath(),\r\n                      p.ctxTransform(h.preTransforms.finalTransform.props),\r\n                      i = a.length,\r\n                      e = 0;\r\n                    e < i;\r\n                    e += 1\r\n                  ) {\r\n                    for (\r\n                      (\"st\" !== o && \"gs\" !== o) ||\r\n                        (f.beginPath(),\r\n                        h.da &&\r\n                          (f.setLineDash(h.da), (f.lineDashOffset = h.do))),\r\n                        s = (n = a[e].trNodes).length,\r\n                        r = 0;\r\n                      r < s;\r\n                      r += 1\r\n                    )\r\n                      \"m\" === n[r].t\r\n                        ? f.moveTo(n[r].p[0], n[r].p[1])\r\n                        : \"c\" === n[r].t\r\n                        ? f.bezierCurveTo(\r\n                            n[r].pts[0],\r\n                            n[r].pts[1],\r\n                            n[r].pts[2],\r\n                            n[r].pts[3],\r\n                            n[r].pts[4],\r\n                            n[r].pts[5]\r\n                          )\r\n                        : f.closePath();\r\n                    (\"st\" !== o && \"gs\" !== o) ||\r\n                      (p.ctxStroke(), h.da && f.setLineDash(this.dashResetter));\r\n                  }\r\n                  \"st\" !== o &&\r\n                    \"gs\" !== o &&\r\n                    this.globalData.renderer.ctxFill(h.r),\r\n                    p.restore();\r\n                }\r\n            }),\r\n            (CVShapeElement.prototype.renderShape = function (t, e, i, r) {\r\n              var s, a;\r\n              for (a = t, s = e.length - 1; s >= 0; s -= 1)\r\n                \"tr\" === e[s].ty\r\n                  ? ((a = i[s].transform), this.renderShapeTransform(t, a))\r\n                  : \"sh\" === e[s].ty ||\r\n                    \"el\" === e[s].ty ||\r\n                    \"rc\" === e[s].ty ||\r\n                    \"sr\" === e[s].ty\r\n                  ? this.renderPath(e[s], i[s])\r\n                  : \"fl\" === e[s].ty\r\n                  ? this.renderFill(e[s], i[s], a)\r\n                  : \"st\" === e[s].ty\r\n                  ? this.renderStroke(e[s], i[s], a)\r\n                  : \"gf\" === e[s].ty || \"gs\" === e[s].ty\r\n                  ? this.renderGradientFill(e[s], i[s], a)\r\n                  : \"gr\" === e[s].ty\r\n                  ? this.renderShape(a, e[s].it, i[s].it)\r\n                  : e[s].ty;\r\n              r && this.drawLayer();\r\n            }),\r\n            (CVShapeElement.prototype.renderStyledShape = function (t, e) {\r\n              if (this._isFirstFrame || e._mdf || t.transforms._mdf) {\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a = t.trNodes,\r\n                  n = e.paths,\r\n                  o = n._length;\r\n                a.length = 0;\r\n                var h = t.transforms.finalTransform;\r\n                for (s = 0; s < o; s += 1) {\r\n                  var l = n.shapes[s];\r\n                  if (l && l.v) {\r\n                    for (r = l._length, i = 1; i < r; i += 1)\r\n                      1 === i &&\r\n                        a.push({\r\n                          t: \"m\",\r\n                          p: h.applyToPointArray(l.v[0][0], l.v[0][1], 0),\r\n                        }),\r\n                        a.push({\r\n                          t: \"c\",\r\n                          pts: h.applyToTriplePoints(\r\n                            l.o[i - 1],\r\n                            l.i[i],\r\n                            l.v[i]\r\n                          ),\r\n                        });\r\n                    1 === r &&\r\n                      a.push({\r\n                        t: \"m\",\r\n                        p: h.applyToPointArray(l.v[0][0], l.v[0][1], 0),\r\n                      }),\r\n                      l.c &&\r\n                        r &&\r\n                        (a.push({\r\n                          t: \"c\",\r\n                          pts: h.applyToTriplePoints(\r\n                            l.o[i - 1],\r\n                            l.i[0],\r\n                            l.v[0]\r\n                          ),\r\n                        }),\r\n                        a.push({ t: \"z\" }));\r\n                  }\r\n                }\r\n                t.trNodes = a;\r\n              }\r\n            }),\r\n            (CVShapeElement.prototype.renderPath = function (t, e) {\r\n              if (!0 !== t.hd && t._shouldRender) {\r\n                var i,\r\n                  r = e.styledShapes.length;\r\n                for (i = 0; i < r; i += 1)\r\n                  this.renderStyledShape(e.styledShapes[i], e.sh);\r\n              }\r\n            }),\r\n            (CVShapeElement.prototype.renderFill = function (t, e, i) {\r\n              var r = e.style;\r\n              (e.c._mdf || this._isFirstFrame) &&\r\n                (r.co =\r\n                  \"rgb(\" +\r\n                  bmFloor(e.c.v[0]) +\r\n                  \",\" +\r\n                  bmFloor(e.c.v[1]) +\r\n                  \",\" +\r\n                  bmFloor(e.c.v[2]) +\r\n                  \")\"),\r\n                (e.o._mdf || i._opMdf || this._isFirstFrame) &&\r\n                  (r.coOp = e.o.v * i.opacity);\r\n            }),\r\n            (CVShapeElement.prototype.renderGradientFill = function (t, e, i) {\r\n              var r,\r\n                s = e.style;\r\n              if (\r\n                !s.grd ||\r\n                e.g._mdf ||\r\n                e.s._mdf ||\r\n                e.e._mdf ||\r\n                (1 !== t.t && (e.h._mdf || e.a._mdf))\r\n              ) {\r\n                var a,\r\n                  n = this.globalData.canvasContext,\r\n                  o = e.s.v,\r\n                  h = e.e.v;\r\n                if (1 === t.t)\r\n                  r = n.createLinearGradient(o[0], o[1], h[0], h[1]);\r\n                else {\r\n                  var l = Math.sqrt(\r\n                      Math.pow(o[0] - h[0], 2) + Math.pow(o[1] - h[1], 2)\r\n                    ),\r\n                    p = Math.atan2(h[1] - o[1], h[0] - o[0]),\r\n                    f = e.h.v;\r\n                  f >= 1 ? (f = 0.99) : f <= -1 && (f = -0.99);\r\n                  var m = l * f,\r\n                    c = Math.cos(p + e.a.v) * m + o[0],\r\n                    d = Math.sin(p + e.a.v) * m + o[1];\r\n                  r = n.createRadialGradient(c, d, 0, o[0], o[1], l);\r\n                }\r\n                var u = t.g.p,\r\n                  y = e.g.c,\r\n                  g = 1;\r\n                for (a = 0; a < u; a += 1)\r\n                  e.g._hasOpacity && e.g._collapsable && (g = e.g.o[2 * a + 1]),\r\n                    r.addColorStop(\r\n                      y[4 * a] \/ 100,\r\n                      \"rgba(\" +\r\n                        y[4 * a + 1] +\r\n                        \",\" +\r\n                        y[4 * a + 2] +\r\n                        \",\" +\r\n                        y[4 * a + 3] +\r\n                        \",\" +\r\n                        g +\r\n                        \")\"\r\n                    );\r\n                s.grd = r;\r\n              }\r\n              s.coOp = e.o.v * i.opacity;\r\n            }),\r\n            (CVShapeElement.prototype.renderStroke = function (t, e, i) {\r\n              var r = e.style,\r\n                s = e.d;\r\n              s &&\r\n                (s._mdf || this._isFirstFrame) &&\r\n                ((r.da = s.dashArray), (r.do = s.dashoffset[0])),\r\n                (e.c._mdf || this._isFirstFrame) &&\r\n                  (r.co =\r\n                    \"rgb(\" +\r\n                    bmFloor(e.c.v[0]) +\r\n                    \",\" +\r\n                    bmFloor(e.c.v[1]) +\r\n                    \",\" +\r\n                    bmFloor(e.c.v[2]) +\r\n                    \")\"),\r\n                (e.o._mdf || i._opMdf || this._isFirstFrame) &&\r\n                  (r.coOp = e.o.v * i.opacity),\r\n                (e.w._mdf || this._isFirstFrame) && (r.wi = e.w.v);\r\n            }),\r\n            (CVShapeElement.prototype.destroy = function () {\r\n              (this.shapesData = null),\r\n                (this.globalData = null),\r\n                (this.canvasContext = null),\r\n                (this.stylesList.length = 0),\r\n                (this.itemsData.length = 0);\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                CVBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableElement,\r\n                ITextElement,\r\n              ],\r\n              CVTextElement\r\n            ),\r\n            (CVTextElement.prototype.tHelper =\r\n              createTag(\"canvas\").getContext(\"2d\")),\r\n            (CVTextElement.prototype.buildNewText = function () {\r\n              var t = this.textProperty.currentData;\r\n              this.renderedLetters = createSizedArray(t.l ? t.l.length : 0);\r\n              var e = !1;\r\n              t.fc\r\n                ? ((e = !0), (this.values.fill = this.buildColor(t.fc)))\r\n                : (this.values.fill = \"rgba(0,0,0,0)\"),\r\n                (this.fill = e);\r\n              var i = !1;\r\n              t.sc &&\r\n                ((i = !0),\r\n                (this.values.stroke = this.buildColor(t.sc)),\r\n                (this.values.sWidth = t.sw));\r\n              var r,\r\n                s,\r\n                a,\r\n                n,\r\n                o,\r\n                h,\r\n                l,\r\n                p,\r\n                f,\r\n                m,\r\n                c,\r\n                d,\r\n                u = this.globalData.fontManager.getFontByName(t.f),\r\n                y = t.l,\r\n                g = this.mHelper;\r\n              (this.stroke = i),\r\n                (this.values.fValue =\r\n                  t.finalSize +\r\n                  \"px \" +\r\n                  this.globalData.fontManager.getFontByName(t.f).fFamily),\r\n                (s = t.finalText.length);\r\n              var v = this.data.singleShape,\r\n                b = 0.001 * t.tr * t.finalSize,\r\n                x = 0,\r\n                P = 0,\r\n                E = !0,\r\n                S = 0;\r\n              for (r = 0; r < s; r += 1) {\r\n                (n =\r\n                  ((a = this.globalData.fontManager.getCharData(\r\n                    t.finalText[r],\r\n                    u.fStyle,\r\n                    this.globalData.fontManager.getFontByName(t.f).fFamily\r\n                  )) &&\r\n                    a.data) ||\r\n                  {}),\r\n                  g.reset(),\r\n                  v &&\r\n                    y[r].n &&\r\n                    ((x = -b), (P += t.yOffset), (P += E ? 1 : 0), (E = !1)),\r\n                  (f = (l = n.shapes ? n.shapes[0].it : []).length),\r\n                  g.scale(t.finalSize \/ 100, t.finalSize \/ 100),\r\n                  v && this.applyTextPropertiesToMatrix(t, g, y[r].line, x, P),\r\n                  (c = createSizedArray(f - 1));\r\n                var C = 0;\r\n                for (p = 0; p < f; p += 1)\r\n                  if (\"sh\" === l[p].ty) {\r\n                    for (\r\n                      h = l[p].ks.k.i.length, m = l[p].ks.k, d = [], o = 1;\r\n                      o < h;\r\n                      o += 1\r\n                    )\r\n                      1 === o &&\r\n                        d.push(\r\n                          g.applyToX(m.v[0][0], m.v[0][1], 0),\r\n                          g.applyToY(m.v[0][0], m.v[0][1], 0)\r\n                        ),\r\n                        d.push(\r\n                          g.applyToX(m.o[o - 1][0], m.o[o - 1][1], 0),\r\n                          g.applyToY(m.o[o - 1][0], m.o[o - 1][1], 0),\r\n                          g.applyToX(m.i[o][0], m.i[o][1], 0),\r\n                          g.applyToY(m.i[o][0], m.i[o][1], 0),\r\n                          g.applyToX(m.v[o][0], m.v[o][1], 0),\r\n                          g.applyToY(m.v[o][0], m.v[o][1], 0)\r\n                        );\r\n                    d.push(\r\n                      g.applyToX(m.o[o - 1][0], m.o[o - 1][1], 0),\r\n                      g.applyToY(m.o[o - 1][0], m.o[o - 1][1], 0),\r\n                      g.applyToX(m.i[0][0], m.i[0][1], 0),\r\n                      g.applyToY(m.i[0][0], m.i[0][1], 0),\r\n                      g.applyToX(m.v[0][0], m.v[0][1], 0),\r\n                      g.applyToY(m.v[0][0], m.v[0][1], 0)\r\n                    ),\r\n                      (c[C] = d),\r\n                      (C += 1);\r\n                  }\r\n                v && ((x += y[r].l), (x += b)),\r\n                  this.textSpans[S]\r\n                    ? (this.textSpans[S].elem = c)\r\n                    : (this.textSpans[S] = { elem: c }),\r\n                  (S += 1);\r\n              }\r\n            }),\r\n            (CVTextElement.prototype.renderInnerContent = function () {\r\n              var t, e, i, r, s, a;\r\n              this.validateText(),\r\n                (this.canvasContext.font = this.values.fValue),\r\n                this.globalData.renderer.ctxLineCap(\"butt\"),\r\n                this.globalData.renderer.ctxLineJoin(\"miter\"),\r\n                this.globalData.renderer.ctxMiterLimit(4),\r\n                this.data.singleShape ||\r\n                  this.textAnimator.getMeasures(\r\n                    this.textProperty.currentData,\r\n                    this.lettersChangedFlag\r\n                  );\r\n              var n,\r\n                o = this.textAnimator.renderedLetters,\r\n                h = this.textProperty.currentData.l;\r\n              e = h.length;\r\n              var l,\r\n                p,\r\n                f = null,\r\n                m = null,\r\n                c = null,\r\n                d = this.globalData.renderer;\r\n              for (t = 0; t < e; t += 1)\r\n                if (!h[t].n) {\r\n                  if (\r\n                    ((n = o[t]) &&\r\n                      (d.save(), d.ctxTransform(n.p), d.ctxOpacity(n.o)),\r\n                    this.fill)\r\n                  ) {\r\n                    for (\r\n                      n && n.fc\r\n                        ? f !== n.fc && (d.ctxFillStyle(n.fc), (f = n.fc))\r\n                        : f !== this.values.fill &&\r\n                          ((f = this.values.fill),\r\n                          d.ctxFillStyle(this.values.fill)),\r\n                        r = (l = this.textSpans[t].elem).length,\r\n                        this.globalData.canvasContext.beginPath(),\r\n                        i = 0;\r\n                      i < r;\r\n                      i += 1\r\n                    )\r\n                      for (\r\n                        a = (p = l[i]).length,\r\n                          this.globalData.canvasContext.moveTo(p[0], p[1]),\r\n                          s = 2;\r\n                        s < a;\r\n                        s += 6\r\n                      )\r\n                        this.globalData.canvasContext.bezierCurveTo(\r\n                          p[s],\r\n                          p[s + 1],\r\n                          p[s + 2],\r\n                          p[s + 3],\r\n                          p[s + 4],\r\n                          p[s + 5]\r\n                        );\r\n                    this.globalData.canvasContext.closePath(), d.ctxFill();\r\n                  }\r\n                  if (this.stroke) {\r\n                    for (\r\n                      n && n.sw\r\n                        ? c !== n.sw && ((c = n.sw), d.ctxLineWidth(n.sw))\r\n                        : c !== this.values.sWidth &&\r\n                          ((c = this.values.sWidth),\r\n                          d.ctxLineWidth(this.values.sWidth)),\r\n                        n && n.sc\r\n                          ? m !== n.sc && ((m = n.sc), d.ctxStrokeStyle(n.sc))\r\n                          : m !== this.values.stroke &&\r\n                            ((m = this.values.stroke),\r\n                            d.ctxStrokeStyle(this.values.stroke)),\r\n                        r = (l = this.textSpans[t].elem).length,\r\n                        this.globalData.canvasContext.beginPath(),\r\n                        i = 0;\r\n                      i < r;\r\n                      i += 1\r\n                    )\r\n                      for (\r\n                        a = (p = l[i]).length,\r\n                          this.globalData.canvasContext.moveTo(p[0], p[1]),\r\n                          s = 2;\r\n                        s < a;\r\n                        s += 6\r\n                      )\r\n                        this.globalData.canvasContext.bezierCurveTo(\r\n                          p[s],\r\n                          p[s + 1],\r\n                          p[s + 2],\r\n                          p[s + 3],\r\n                          p[s + 4],\r\n                          p[s + 5]\r\n                        );\r\n                    this.globalData.canvasContext.closePath(), d.ctxStroke();\r\n                  }\r\n                  n && this.globalData.renderer.restore();\r\n                }\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                CVBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableElement,\r\n              ],\r\n              CVImageElement\r\n            ),\r\n            (CVImageElement.prototype.initElement =\r\n              SVGShapeElement.prototype.initElement),\r\n            (CVImageElement.prototype.prepareFrame =\r\n              IImageElement.prototype.prepareFrame),\r\n            (CVImageElement.prototype.createContent = function () {\r\n              if (\r\n                this.img.width &&\r\n                (this.assetData.w !== this.img.width ||\r\n                  this.assetData.h !== this.img.height)\r\n              ) {\r\n                var t = createTag(\"canvas\");\r\n                (t.width = this.assetData.w), (t.height = this.assetData.h);\r\n                var e,\r\n                  i,\r\n                  r = t.getContext(\"2d\"),\r\n                  s = this.img.width,\r\n                  a = this.img.height,\r\n                  n = s \/ a,\r\n                  o = this.assetData.w \/ this.assetData.h,\r\n                  h =\r\n                    this.assetData.pr ||\r\n                    this.globalData.renderConfig.imagePreserveAspectRatio;\r\n                (n > o && \"xMidYMid slice\" === h) ||\r\n                (n < o && \"xMidYMid slice\" !== h)\r\n                  ? (e = (i = a) * o)\r\n                  : (i = (e = s) \/ o),\r\n                  r.drawImage(\r\n                    this.img,\r\n                    (s - e) \/ 2,\r\n                    (a - i) \/ 2,\r\n                    e,\r\n                    i,\r\n                    0,\r\n                    0,\r\n                    this.assetData.w,\r\n                    this.assetData.h\r\n                  ),\r\n                  (this.img = t);\r\n              }\r\n            }),\r\n            (CVImageElement.prototype.renderInnerContent = function () {\r\n              this.canvasContext.drawImage(this.img, 0, 0);\r\n            }),\r\n            (CVImageElement.prototype.destroy = function () {\r\n              this.img = null;\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                CVBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableElement,\r\n              ],\r\n              CVSolidElement\r\n            ),\r\n            (CVSolidElement.prototype.initElement =\r\n              SVGShapeElement.prototype.initElement),\r\n            (CVSolidElement.prototype.prepareFrame =\r\n              IImageElement.prototype.prepareFrame),\r\n            (CVSolidElement.prototype.renderInnerContent = function () {\r\n              this.globalData.renderer.ctxFillStyle(this.data.sc),\r\n                this.globalData.renderer.ctxFillRect(\r\n                  0,\r\n                  0,\r\n                  this.data.sw,\r\n                  this.data.sh\r\n                );\r\n            }),\r\n            extendPrototype([BaseRenderer], CanvasRendererBase),\r\n            (CanvasRendererBase.prototype.createShape = function (t) {\r\n              return new CVShapeElement(t, this.globalData, this);\r\n            }),\r\n            (CanvasRendererBase.prototype.createText = function (t) {\r\n              return new CVTextElement(t, this.globalData, this);\r\n            }),\r\n            (CanvasRendererBase.prototype.createImage = function (t) {\r\n              return new CVImageElement(t, this.globalData, this);\r\n            }),\r\n            (CanvasRendererBase.prototype.createSolid = function (t) {\r\n              return new CVSolidElement(t, this.globalData, this);\r\n            }),\r\n            (CanvasRendererBase.prototype.createNull =\r\n              SVGRenderer.prototype.createNull),\r\n            (CanvasRendererBase.prototype.ctxTransform = function (t) {\r\n              (1 === t[0] &&\r\n                0 === t[1] &&\r\n                0 === t[4] &&\r\n                1 === t[5] &&\r\n                0 === t[12] &&\r\n                0 === t[13]) ||\r\n                this.canvasContext.transform(\r\n                  t[0],\r\n                  t[1],\r\n                  t[4],\r\n                  t[5],\r\n                  t[12],\r\n                  t[13]\r\n                );\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxOpacity = function (t) {\r\n              this.canvasContext.globalAlpha *= t < 0 ? 0 : t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxFillStyle = function (t) {\r\n              this.canvasContext.fillStyle = t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxStrokeStyle = function (t) {\r\n              this.canvasContext.strokeStyle = t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxLineWidth = function (t) {\r\n              this.canvasContext.lineWidth = t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxLineCap = function (t) {\r\n              this.canvasContext.lineCap = t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxLineJoin = function (t) {\r\n              this.canvasContext.lineJoin = t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxMiterLimit = function (t) {\r\n              this.canvasContext.miterLimit = t;\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxFill = function (t) {\r\n              this.canvasContext.fill(t);\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxFillRect = function (t, e, i, r) {\r\n              this.canvasContext.fillRect(t, e, i, r);\r\n            }),\r\n            (CanvasRendererBase.prototype.ctxStroke = function () {\r\n              this.canvasContext.stroke();\r\n            }),\r\n            (CanvasRendererBase.prototype.reset = function () {\r\n              this.renderConfig.clearCanvas\r\n                ? this.contextData.reset()\r\n                : this.canvasContext.restore();\r\n            }),\r\n            (CanvasRendererBase.prototype.save = function () {\r\n              this.canvasContext.save();\r\n            }),\r\n            (CanvasRendererBase.prototype.restore = function (t) {\r\n              this.renderConfig.clearCanvas\r\n                ? (t && (this.globalData.blendMode = \"source-over\"),\r\n                  this.contextData.restore(t))\r\n                : this.canvasContext.restore();\r\n            }),\r\n            (CanvasRendererBase.prototype.configAnimation = function (t) {\r\n              if (this.animationItem.wrapper) {\r\n                this.animationItem.container = createTag(\"canvas\");\r\n                var e = this.animationItem.container.style;\r\n                (e.width = \"100%\"), (e.height = \"100%\");\r\n                var i = \"0px 0px 0px\";\r\n                (e.transformOrigin = i),\r\n                  (e.mozTransformOrigin = i),\r\n                  (e.webkitTransformOrigin = i),\r\n                  (e[\"-webkit-transform\"] = i),\r\n                  (e.contentVisibility = this.renderConfig.contentVisibility),\r\n                  this.animationItem.wrapper.appendChild(\r\n                    this.animationItem.container\r\n                  ),\r\n                  (this.canvasContext =\r\n                    this.animationItem.container.getContext(\"2d\")),\r\n                  this.renderConfig.className &&\r\n                    this.animationItem.container.setAttribute(\r\n                      \"class\",\r\n                      this.renderConfig.className\r\n                    ),\r\n                  this.renderConfig.id &&\r\n                    this.animationItem.container.setAttribute(\r\n                      \"id\",\r\n                      this.renderConfig.id\r\n                    );\r\n              } else this.canvasContext = this.renderConfig.context;\r\n              this.contextData.setContext(this.canvasContext),\r\n                (this.data = t),\r\n                (this.layers = t.layers),\r\n                (this.transformCanvas = {\r\n                  w: t.w,\r\n                  h: t.h,\r\n                  sx: 0,\r\n                  sy: 0,\r\n                  tx: 0,\r\n                  ty: 0,\r\n                }),\r\n                this.setupGlobalData(t, document.body),\r\n                (this.globalData.canvasContext = this.canvasContext),\r\n                (this.globalData.renderer = this),\r\n                (this.globalData.isDashed = !1),\r\n                (this.globalData.progressiveLoad =\r\n                  this.renderConfig.progressiveLoad),\r\n                (this.globalData.transformCanvas = this.transformCanvas),\r\n                (this.elements = createSizedArray(t.layers.length)),\r\n                this.updateContainerSize();\r\n            }),\r\n            (CanvasRendererBase.prototype.updateContainerSize = function (\r\n              t,\r\n              e\r\n            ) {\r\n              var i, r, s, a;\r\n              if (\r\n                (this.reset(),\r\n                t\r\n                  ? ((i = t),\r\n                    (r = e),\r\n                    (this.canvasContext.canvas.width = i),\r\n                    (this.canvasContext.canvas.height = r))\r\n                  : (this.animationItem.wrapper && this.animationItem.container\r\n                      ? ((i = this.animationItem.wrapper.offsetWidth),\r\n                        (r = this.animationItem.wrapper.offsetHeight))\r\n                      : ((i = this.canvasContext.canvas.width),\r\n                        (r = this.canvasContext.canvas.height)),\r\n                    (this.canvasContext.canvas.width =\r\n                      i * this.renderConfig.dpr),\r\n                    (this.canvasContext.canvas.height =\r\n                      r * this.renderConfig.dpr)),\r\n                -1 !== this.renderConfig.preserveAspectRatio.indexOf(\"meet\") ||\r\n                  -1 !== this.renderConfig.preserveAspectRatio.indexOf(\"slice\"))\r\n              ) {\r\n                var n = this.renderConfig.preserveAspectRatio.split(\" \"),\r\n                  o = n[1] || \"meet\",\r\n                  h = n[0] || \"xMidYMid\",\r\n                  l = h.substr(0, 4),\r\n                  p = h.substr(4);\r\n                (s = i \/ r),\r\n                  ((a = this.transformCanvas.w \/ this.transformCanvas.h) > s &&\r\n                    \"meet\" === o) ||\r\n                  (a < s && \"slice\" === o)\r\n                    ? ((this.transformCanvas.sx =\r\n                        i \/ (this.transformCanvas.w \/ this.renderConfig.dpr)),\r\n                      (this.transformCanvas.sy =\r\n                        i \/ (this.transformCanvas.w \/ this.renderConfig.dpr)))\r\n                    : ((this.transformCanvas.sx =\r\n                        r \/ (this.transformCanvas.h \/ this.renderConfig.dpr)),\r\n                      (this.transformCanvas.sy =\r\n                        r \/ (this.transformCanvas.h \/ this.renderConfig.dpr))),\r\n                  (this.transformCanvas.tx =\r\n                    \"xMid\" === l &&\r\n                    ((a < s && \"meet\" === o) || (a > s && \"slice\" === o))\r\n                      ? ((i -\r\n                          this.transformCanvas.w *\r\n                            (r \/ this.transformCanvas.h)) \/\r\n                          2) *\r\n                        this.renderConfig.dpr\r\n                      : \"xMax\" === l &&\r\n                        ((a < s && \"meet\" === o) || (a > s && \"slice\" === o))\r\n                      ? (i -\r\n                          this.transformCanvas.w *\r\n                            (r \/ this.transformCanvas.h)) *\r\n                        this.renderConfig.dpr\r\n                      : 0),\r\n                  (this.transformCanvas.ty =\r\n                    \"YMid\" === p &&\r\n                    ((a > s && \"meet\" === o) || (a < s && \"slice\" === o))\r\n                      ? ((r -\r\n                          this.transformCanvas.h *\r\n                            (i \/ this.transformCanvas.w)) \/\r\n                          2) *\r\n                        this.renderConfig.dpr\r\n                      : \"YMax\" === p &&\r\n                        ((a > s && \"meet\" === o) || (a < s && \"slice\" === o))\r\n                      ? (r -\r\n                          this.transformCanvas.h *\r\n                            (i \/ this.transformCanvas.w)) *\r\n                        this.renderConfig.dpr\r\n                      : 0);\r\n              } else\r\n                \"none\" === this.renderConfig.preserveAspectRatio\r\n                  ? ((this.transformCanvas.sx =\r\n                      i \/ (this.transformCanvas.w \/ this.renderConfig.dpr)),\r\n                    (this.transformCanvas.sy =\r\n                      r \/ (this.transformCanvas.h \/ this.renderConfig.dpr)),\r\n                    (this.transformCanvas.tx = 0),\r\n                    (this.transformCanvas.ty = 0))\r\n                  : ((this.transformCanvas.sx = this.renderConfig.dpr),\r\n                    (this.transformCanvas.sy = this.renderConfig.dpr),\r\n                    (this.transformCanvas.tx = 0),\r\n                    (this.transformCanvas.ty = 0));\r\n              (this.transformCanvas.props = [\r\n                this.transformCanvas.sx,\r\n                0,\r\n                0,\r\n                0,\r\n                0,\r\n                this.transformCanvas.sy,\r\n                0,\r\n                0,\r\n                0,\r\n                0,\r\n                1,\r\n                0,\r\n                this.transformCanvas.tx,\r\n                this.transformCanvas.ty,\r\n                0,\r\n                1,\r\n              ]),\r\n                this.ctxTransform(this.transformCanvas.props),\r\n                this.canvasContext.beginPath(),\r\n                this.canvasContext.rect(\r\n                  0,\r\n                  0,\r\n                  this.transformCanvas.w,\r\n                  this.transformCanvas.h\r\n                ),\r\n                this.canvasContext.closePath(),\r\n                this.canvasContext.clip(),\r\n                this.renderFrame(this.renderedFrame, !0);\r\n            }),\r\n            (CanvasRendererBase.prototype.destroy = function () {\r\n              var t;\r\n              for (\r\n                this.renderConfig.clearCanvas &&\r\n                  this.animationItem.wrapper &&\r\n                  (this.animationItem.wrapper.innerText = \"\"),\r\n                  t = (this.layers ? this.layers.length : 0) - 1;\r\n                t >= 0;\r\n                t -= 1\r\n              )\r\n                this.elements[t] &&\r\n                  this.elements[t].destroy &&\r\n                  this.elements[t].destroy();\r\n              (this.elements.length = 0),\r\n                (this.globalData.canvasContext = null),\r\n                (this.animationItem.container = null),\r\n                (this.destroyed = !0);\r\n            }),\r\n            (CanvasRendererBase.prototype.renderFrame = function (t, e) {\r\n              if (\r\n                (this.renderedFrame !== t ||\r\n                  !0 !== this.renderConfig.clearCanvas ||\r\n                  e) &&\r\n                !this.destroyed &&\r\n                -1 !== t\r\n              ) {\r\n                var i;\r\n                (this.renderedFrame = t),\r\n                  (this.globalData.frameNum =\r\n                    t - this.animationItem._isFirstFrame),\r\n                  (this.globalData.frameId += 1),\r\n                  (this.globalData._mdf = !this.renderConfig.clearCanvas || e),\r\n                  (this.globalData.projectInterface.currentFrame = t);\r\n                var r = this.layers.length;\r\n                for (\r\n                  this.completeLayers || this.checkLayers(t), i = r - 1;\r\n                  i >= 0;\r\n                  i -= 1\r\n                )\r\n                  (this.completeLayers || this.elements[i]) &&\r\n                    this.elements[i].prepareFrame(t - this.layers[i].st);\r\n                if (this.globalData._mdf) {\r\n                  for (\r\n                    !0 === this.renderConfig.clearCanvas\r\n                      ? this.canvasContext.clearRect(\r\n                          0,\r\n                          0,\r\n                          this.transformCanvas.w,\r\n                          this.transformCanvas.h\r\n                        )\r\n                      : this.save(),\r\n                      i = r - 1;\r\n                    i >= 0;\r\n                    i -= 1\r\n                  )\r\n                    (this.completeLayers || this.elements[i]) &&\r\n                      this.elements[i].renderFrame();\r\n                  !0 !== this.renderConfig.clearCanvas && this.restore();\r\n                }\r\n              }\r\n            }),\r\n            (CanvasRendererBase.prototype.buildItem = function (t) {\r\n              var e = this.elements;\r\n              if (!e[t] && 99 !== this.layers[t].ty) {\r\n                var i = this.createItem(this.layers[t], this, this.globalData);\r\n                (e[t] = i), i.initExpressions();\r\n              }\r\n            }),\r\n            (CanvasRendererBase.prototype.checkPendingElements = function () {\r\n              for (; this.pendingElements.length; ) {\r\n                this.pendingElements.pop().checkParenting();\r\n              }\r\n            }),\r\n            (CanvasRendererBase.prototype.hide = function () {\r\n              this.animationItem.container.style.display = \"none\";\r\n            }),\r\n            (CanvasRendererBase.prototype.show = function () {\r\n              this.animationItem.container.style.display = \"block\";\r\n            }),\r\n            (CVContextData.prototype.duplicate = function () {\r\n              var t = 2 * this._length,\r\n                e = 0;\r\n              for (e = this._length; e < t; e += 1)\r\n                this.stack[e] = new CanvasContext();\r\n              this._length = t;\r\n            }),\r\n            (CVContextData.prototype.reset = function () {\r\n              (this.cArrPos = 0),\r\n                this.cTr.reset(),\r\n                (this.stack[this.cArrPos].opacity = 1);\r\n            }),\r\n            (CVContextData.prototype.restore = function (t) {\r\n              this.cArrPos -= 1;\r\n              var e,\r\n                i = this.stack[this.cArrPos],\r\n                r = i.transform,\r\n                s = this.cTr.props;\r\n              for (e = 0; e < 16; e += 1) s[e] = r[e];\r\n              if (t) {\r\n                this.nativeContext.restore();\r\n                var a = this.stack[this.cArrPos + 1];\r\n                (this.appliedFillStyle = a.fillStyle),\r\n                  (this.appliedStrokeStyle = a.strokeStyle),\r\n                  (this.appliedLineWidth = a.lineWidth),\r\n                  (this.appliedLineCap = a.lineCap),\r\n                  (this.appliedLineJoin = a.lineJoin),\r\n                  (this.appliedMiterLimit = a.miterLimit);\r\n              }\r\n              this.nativeContext.setTransform(\r\n                r[0],\r\n                r[1],\r\n                r[4],\r\n                r[5],\r\n                r[12],\r\n                r[13]\r\n              ),\r\n                (t ||\r\n                  (-1 !== i.opacity && this.currentOpacity !== i.opacity)) &&\r\n                  ((this.nativeContext.globalAlpha = i.opacity),\r\n                  (this.currentOpacity = i.opacity)),\r\n                (this.currentFillStyle = i.fillStyle),\r\n                (this.currentStrokeStyle = i.strokeStyle),\r\n                (this.currentLineWidth = i.lineWidth),\r\n                (this.currentLineCap = i.lineCap),\r\n                (this.currentLineJoin = i.lineJoin),\r\n                (this.currentMiterLimit = i.miterLimit);\r\n            }),\r\n            (CVContextData.prototype.save = function (t) {\r\n              t && this.nativeContext.save();\r\n              var e = this.cTr.props;\r\n              this._length <= this.cArrPos && this.duplicate();\r\n              var i,\r\n                r = this.stack[this.cArrPos];\r\n              for (i = 0; i < 16; i += 1) r.transform[i] = e[i];\r\n              this.cArrPos += 1;\r\n              var s = this.stack[this.cArrPos];\r\n              (s.opacity = r.opacity),\r\n                (s.fillStyle = r.fillStyle),\r\n                (s.strokeStyle = r.strokeStyle),\r\n                (s.lineWidth = r.lineWidth),\r\n                (s.lineCap = r.lineCap),\r\n                (s.lineJoin = r.lineJoin),\r\n                (s.miterLimit = r.miterLimit);\r\n            }),\r\n            (CVContextData.prototype.setOpacity = function (t) {\r\n              this.stack[this.cArrPos].opacity = t;\r\n            }),\r\n            (CVContextData.prototype.setContext = function (t) {\r\n              this.nativeContext = t;\r\n            }),\r\n            (CVContextData.prototype.fillStyle = function (t) {\r\n              this.stack[this.cArrPos].fillStyle !== t &&\r\n                ((this.currentFillStyle = t),\r\n                (this.stack[this.cArrPos].fillStyle = t));\r\n            }),\r\n            (CVContextData.prototype.strokeStyle = function (t) {\r\n              this.stack[this.cArrPos].strokeStyle !== t &&\r\n                ((this.currentStrokeStyle = t),\r\n                (this.stack[this.cArrPos].strokeStyle = t));\r\n            }),\r\n            (CVContextData.prototype.lineWidth = function (t) {\r\n              this.stack[this.cArrPos].lineWidth !== t &&\r\n                ((this.currentLineWidth = t),\r\n                (this.stack[this.cArrPos].lineWidth = t));\r\n            }),\r\n            (CVContextData.prototype.lineCap = function (t) {\r\n              this.stack[this.cArrPos].lineCap !== t &&\r\n                ((this.currentLineCap = t),\r\n                (this.stack[this.cArrPos].lineCap = t));\r\n            }),\r\n            (CVContextData.prototype.lineJoin = function (t) {\r\n              this.stack[this.cArrPos].lineJoin !== t &&\r\n                ((this.currentLineJoin = t),\r\n                (this.stack[this.cArrPos].lineJoin = t));\r\n            }),\r\n            (CVContextData.prototype.miterLimit = function (t) {\r\n              this.stack[this.cArrPos].miterLimit !== t &&\r\n                ((this.currentMiterLimit = t),\r\n                (this.stack[this.cArrPos].miterLimit = t));\r\n            }),\r\n            (CVContextData.prototype.transform = function (t) {\r\n              this.transformMat.cloneFromProps(t);\r\n              var e = this.cTr;\r\n              this.transformMat.multiply(e),\r\n                e.cloneFromProps(this.transformMat.props);\r\n              var i = e.props;\r\n              this.nativeContext.setTransform(\r\n                i[0],\r\n                i[1],\r\n                i[4],\r\n                i[5],\r\n                i[12],\r\n                i[13]\r\n              );\r\n            }),\r\n            (CVContextData.prototype.opacity = function (t) {\r\n              var e = this.stack[this.cArrPos].opacity;\r\n              (e *= t < 0 ? 0 : t),\r\n                this.stack[this.cArrPos].opacity !== e &&\r\n                  (this.currentOpacity !== t &&\r\n                    ((this.nativeContext.globalAlpha = t),\r\n                    (this.currentOpacity = t)),\r\n                  (this.stack[this.cArrPos].opacity = e));\r\n            }),\r\n            (CVContextData.prototype.fill = function (t) {\r\n              this.appliedFillStyle !== this.currentFillStyle &&\r\n                ((this.appliedFillStyle = this.currentFillStyle),\r\n                (this.nativeContext.fillStyle = this.appliedFillStyle)),\r\n                this.nativeContext.fill(t);\r\n            }),\r\n            (CVContextData.prototype.fillRect = function (t, e, i, r) {\r\n              this.appliedFillStyle !== this.currentFillStyle &&\r\n                ((this.appliedFillStyle = this.currentFillStyle),\r\n                (this.nativeContext.fillStyle = this.appliedFillStyle)),\r\n                this.nativeContext.fillRect(t, e, i, r);\r\n            }),\r\n            (CVContextData.prototype.stroke = function () {\r\n              this.appliedStrokeStyle !== this.currentStrokeStyle &&\r\n                ((this.appliedStrokeStyle = this.currentStrokeStyle),\r\n                (this.nativeContext.strokeStyle = this.appliedStrokeStyle)),\r\n                this.appliedLineWidth !== this.currentLineWidth &&\r\n                  ((this.appliedLineWidth = this.currentLineWidth),\r\n                  (this.nativeContext.lineWidth = this.appliedLineWidth)),\r\n                this.appliedLineCap !== this.currentLineCap &&\r\n                  ((this.appliedLineCap = this.currentLineCap),\r\n                  (this.nativeContext.lineCap = this.appliedLineCap)),\r\n                this.appliedLineJoin !== this.currentLineJoin &&\r\n                  ((this.appliedLineJoin = this.currentLineJoin),\r\n                  (this.nativeContext.lineJoin = this.appliedLineJoin)),\r\n                this.appliedMiterLimit !== this.currentMiterLimit &&\r\n                  ((this.appliedMiterLimit = this.currentMiterLimit),\r\n                  (this.nativeContext.miterLimit = this.appliedMiterLimit)),\r\n                this.nativeContext.stroke();\r\n            }),\r\n            extendPrototype(\r\n              [CanvasRendererBase, ICompElement, CVBaseElement],\r\n              CVCompElement\r\n            ),\r\n            (CVCompElement.prototype.renderInnerContent = function () {\r\n              var t,\r\n                e = this.canvasContext;\r\n              for (\r\n                e.beginPath(),\r\n                  e.moveTo(0, 0),\r\n                  e.lineTo(this.data.w, 0),\r\n                  e.lineTo(this.data.w, this.data.h),\r\n                  e.lineTo(0, this.data.h),\r\n                  e.lineTo(0, 0),\r\n                  e.clip(),\r\n                  t = this.layers.length - 1;\r\n                t >= 0;\r\n                t -= 1\r\n              )\r\n                (this.completeLayers || this.elements[t]) &&\r\n                  this.elements[t].renderFrame();\r\n            }),\r\n            (CVCompElement.prototype.destroy = function () {\r\n              var t;\r\n              for (t = this.layers.length - 1; t >= 0; t -= 1)\r\n                this.elements[t] && this.elements[t].destroy();\r\n              (this.layers = null), (this.elements = null);\r\n            }),\r\n            (CVCompElement.prototype.createComp = function (t) {\r\n              return new CVCompElement(t, this.globalData, this);\r\n            }),\r\n            extendPrototype([CanvasRendererBase], CanvasRenderer),\r\n            (CanvasRenderer.prototype.createComp = function (t) {\r\n              return new CVCompElement(t, this.globalData, this);\r\n            }),\r\n            (HBaseElement.prototype = {\r\n              checkBlendMode: function () {},\r\n              initRendererElement: function () {\r\n                (this.baseElement = createTag(this.data.tg || \"div\")),\r\n                  this.data.hasMask\r\n                    ? ((this.svgElement = createNS(\"svg\")),\r\n                      (this.layerElement = createNS(\"g\")),\r\n                      (this.maskedElement = this.layerElement),\r\n                      this.svgElement.appendChild(this.layerElement),\r\n                      this.baseElement.appendChild(this.svgElement))\r\n                    : (this.layerElement = this.baseElement),\r\n                  styleDiv(this.baseElement);\r\n              },\r\n              createContainerElements: function () {\r\n                (this.renderableEffectsManager = new CVEffects(this)),\r\n                  (this.transformedElement = this.baseElement),\r\n                  (this.maskedElement = this.layerElement),\r\n                  this.data.ln &&\r\n                    this.layerElement.setAttribute(\"id\", this.data.ln),\r\n                  this.data.cl &&\r\n                    this.layerElement.setAttribute(\"class\", this.data.cl),\r\n                  0 !== this.data.bm && this.setBlendMode();\r\n              },\r\n              renderElement: function () {\r\n                var t = this.transformedElement\r\n                  ? this.transformedElement.style\r\n                  : {};\r\n                if (this.finalTransform._matMdf) {\r\n                  var e = this.finalTransform.mat.toCSS();\r\n                  (t.transform = e), (t.webkitTransform = e);\r\n                }\r\n                this.finalTransform._opMdf &&\r\n                  (t.opacity = this.finalTransform.mProp.o.v);\r\n              },\r\n              renderFrame: function () {\r\n                this.data.hd ||\r\n                  this.hidden ||\r\n                  (this.renderTransform(),\r\n                  this.renderRenderable(),\r\n                  this.renderElement(),\r\n                  this.renderInnerContent(),\r\n                  this._isFirstFrame && (this._isFirstFrame = !1));\r\n              },\r\n              destroy: function () {\r\n                (this.layerElement = null),\r\n                  (this.transformedElement = null),\r\n                  this.matteElement && (this.matteElement = null),\r\n                  this.maskManager &&\r\n                    (this.maskManager.destroy(), (this.maskManager = null));\r\n              },\r\n              createRenderableComponents: function () {\r\n                this.maskManager = new MaskElement(\r\n                  this.data,\r\n                  this,\r\n                  this.globalData\r\n                );\r\n              },\r\n              addEffects: function () {},\r\n              setMatte: function () {},\r\n            }),\r\n            (HBaseElement.prototype.getBaseElement =\r\n              SVGBaseElement.prototype.getBaseElement),\r\n            (HBaseElement.prototype.destroyBaseElement =\r\n              HBaseElement.prototype.destroy),\r\n            (HBaseElement.prototype.buildElementParenting =\r\n              BaseRenderer.prototype.buildElementParenting),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                HBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableDOMElement,\r\n              ],\r\n              HSolidElement\r\n            ),\r\n            (HSolidElement.prototype.createContent = function () {\r\n              var t;\r\n              this.data.hasMask\r\n                ? ((t = createNS(\"rect\")).setAttribute(\"width\", this.data.sw),\r\n                  t.setAttribute(\"height\", this.data.sh),\r\n                  t.setAttribute(\"fill\", this.data.sc),\r\n                  this.svgElement.setAttribute(\"width\", this.data.sw),\r\n                  this.svgElement.setAttribute(\"height\", this.data.sh))\r\n                : (((t = createTag(\"div\")).style.width = this.data.sw + \"px\"),\r\n                  (t.style.height = this.data.sh + \"px\"),\r\n                  (t.style.backgroundColor = this.data.sc)),\r\n                this.layerElement.appendChild(t);\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                HSolidElement,\r\n                SVGShapeElement,\r\n                HBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableElement,\r\n              ],\r\n              HShapeElement\r\n            ),\r\n            (HShapeElement.prototype._renderShapeFrame =\r\n              HShapeElement.prototype.renderInnerContent),\r\n            (HShapeElement.prototype.createContent = function () {\r\n              var t;\r\n              if (((this.baseElement.style.fontSize = 0), this.data.hasMask))\r\n                this.layerElement.appendChild(this.shapesContainer),\r\n                  (t = this.svgElement);\r\n              else {\r\n                t = createNS(\"svg\");\r\n                var e = this.comp.data\r\n                  ? this.comp.data\r\n                  : this.globalData.compSize;\r\n                t.setAttribute(\"width\", e.w),\r\n                  t.setAttribute(\"height\", e.h),\r\n                  t.appendChild(this.shapesContainer),\r\n                  this.layerElement.appendChild(t);\r\n              }\r\n              this.searchShapes(\r\n                this.shapesData,\r\n                this.itemsData,\r\n                this.prevViewData,\r\n                this.shapesContainer,\r\n                0,\r\n                [],\r\n                !0\r\n              ),\r\n                this.filterUniqueShapes(),\r\n                (this.shapeCont = t);\r\n            }),\r\n            (HShapeElement.prototype.getTransformedPoint = function (t, e) {\r\n              var i,\r\n                r = t.length;\r\n              for (i = 0; i < r; i += 1)\r\n                e = t[i].mProps.v.applyToPointArray(e[0], e[1], 0);\r\n              return e;\r\n            }),\r\n            (HShapeElement.prototype.calculateShapeBoundingBox = function (\r\n              t,\r\n              e\r\n            ) {\r\n              var i,\r\n                r,\r\n                s,\r\n                a,\r\n                n,\r\n                o = t.sh.v,\r\n                h = t.transformers,\r\n                l = o._length;\r\n              if (!(l <= 1)) {\r\n                for (i = 0; i < l - 1; i += 1)\r\n                  (r = this.getTransformedPoint(h, o.v[i])),\r\n                    (s = this.getTransformedPoint(h, o.o[i])),\r\n                    (a = this.getTransformedPoint(h, o.i[i + 1])),\r\n                    (n = this.getTransformedPoint(h, o.v[i + 1])),\r\n                    this.checkBounds(r, s, a, n, e);\r\n                o.c &&\r\n                  ((r = this.getTransformedPoint(h, o.v[i])),\r\n                  (s = this.getTransformedPoint(h, o.o[i])),\r\n                  (a = this.getTransformedPoint(h, o.i[0])),\r\n                  (n = this.getTransformedPoint(h, o.v[0])),\r\n                  this.checkBounds(r, s, a, n, e));\r\n              }\r\n            }),\r\n            (HShapeElement.prototype.checkBounds = function (t, e, i, r, s) {\r\n              this.getBoundsOfCurve(t, e, i, r);\r\n              var a = this.shapeBoundingBox;\r\n              (s.x = bmMin(a.left, s.x)),\r\n                (s.xMax = bmMax(a.right, s.xMax)),\r\n                (s.y = bmMin(a.top, s.y)),\r\n                (s.yMax = bmMax(a.bottom, s.yMax));\r\n            }),\r\n            (HShapeElement.prototype.shapeBoundingBox = {\r\n              left: 0,\r\n              right: 0,\r\n              top: 0,\r\n              bottom: 0,\r\n            }),\r\n            (HShapeElement.prototype.tempBoundingBox = {\r\n              x: 0,\r\n              xMax: 0,\r\n              y: 0,\r\n              yMax: 0,\r\n              width: 0,\r\n              height: 0,\r\n            }),\r\n            (HShapeElement.prototype.getBoundsOfCurve = function (t, e, i, r) {\r\n              for (\r\n                var s,\r\n                  a,\r\n                  n,\r\n                  o,\r\n                  h,\r\n                  l,\r\n                  p,\r\n                  f = [\r\n                    [t[0], r[0]],\r\n                    [t[1], r[1]],\r\n                  ],\r\n                  m = 0;\r\n                m < 2;\r\n                ++m\r\n              )\r\n                (a = 6 * t[m] - 12 * e[m] + 6 * i[m]),\r\n                  (s = -3 * t[m] + 9 * e[m] - 9 * i[m] + 3 * r[m]),\r\n                  (n = 3 * e[m] - 3 * t[m]),\r\n                  (a |= 0),\r\n                  (n |= 0),\r\n                  (0 === (s |= 0) && 0 === a) ||\r\n                    (0 === s\r\n                      ? (o = -n \/ a) > 0 &&\r\n                        o < 1 &&\r\n                        f[m].push(this.calculateF(o, t, e, i, r, m))\r\n                      : (h = a * a - 4 * n * s) >= 0 &&\r\n                        ((l = (-a + bmSqrt(h)) \/ (2 * s)) > 0 &&\r\n                          l < 1 &&\r\n                          f[m].push(this.calculateF(l, t, e, i, r, m)),\r\n                        (p = (-a - bmSqrt(h)) \/ (2 * s)) > 0 &&\r\n                          p < 1 &&\r\n                          f[m].push(this.calculateF(p, t, e, i, r, m))));\r\n              (this.shapeBoundingBox.left = bmMin.apply(null, f[0])),\r\n                (this.shapeBoundingBox.top = bmMin.apply(null, f[1])),\r\n                (this.shapeBoundingBox.right = bmMax.apply(null, f[0])),\r\n                (this.shapeBoundingBox.bottom = bmMax.apply(null, f[1]));\r\n            }),\r\n            (HShapeElement.prototype.calculateF = function (t, e, i, r, s, a) {\r\n              return (\r\n                bmPow(1 - t, 3) * e[a] +\r\n                3 * bmPow(1 - t, 2) * t * i[a] +\r\n                3 * (1 - t) * bmPow(t, 2) * r[a] +\r\n                bmPow(t, 3) * s[a]\r\n              );\r\n            }),\r\n            (HShapeElement.prototype.calculateBoundingBox = function (t, e) {\r\n              var i,\r\n                r = t.length;\r\n              for (i = 0; i < r; i += 1)\r\n                t[i] && t[i].sh\r\n                  ? this.calculateShapeBoundingBox(t[i], e)\r\n                  : t[i] && t[i].it\r\n                  ? this.calculateBoundingBox(t[i].it, e)\r\n                  : t[i] &&\r\n                    t[i].style &&\r\n                    t[i].w &&\r\n                    this.expandStrokeBoundingBox(t[i].w, e);\r\n            }),\r\n            (HShapeElement.prototype.expandStrokeBoundingBox = function (t, e) {\r\n              var i = 0;\r\n              if (t.keyframes) {\r\n                for (var r = 0; r < t.keyframes.length; r += 1) {\r\n                  var s = t.keyframes[r].s;\r\n                  s > i && (i = s);\r\n                }\r\n                i *= t.mult;\r\n              } else i = t.v * t.mult;\r\n              (e.x -= i), (e.xMax += i), (e.y -= i), (e.yMax += i);\r\n            }),\r\n            (HShapeElement.prototype.currentBoxContains = function (t) {\r\n              return (\r\n                this.currentBBox.x <= t.x &&\r\n                this.currentBBox.y <= t.y &&\r\n                this.currentBBox.width + this.currentBBox.x >= t.x + t.width &&\r\n                this.currentBBox.height + this.currentBBox.y >= t.y + t.height\r\n              );\r\n            }),\r\n            (HShapeElement.prototype.renderInnerContent = function () {\r\n              if (\r\n                (this._renderShapeFrame(),\r\n                !this.hidden && (this._isFirstFrame || this._mdf))\r\n              ) {\r\n                var t = this.tempBoundingBox,\r\n                  e = 999999;\r\n                if (\r\n                  ((t.x = e),\r\n                  (t.xMax = -e),\r\n                  (t.y = e),\r\n                  (t.yMax = -e),\r\n                  this.calculateBoundingBox(this.itemsData, t),\r\n                  (t.width = t.xMax < t.x ? 0 : t.xMax - t.x),\r\n                  (t.height = t.yMax < t.y ? 0 : t.yMax - t.y),\r\n                  this.currentBoxContains(t))\r\n                )\r\n                  return;\r\n                var i = !1;\r\n                if (\r\n                  (this.currentBBox.w !== t.width &&\r\n                    ((this.currentBBox.w = t.width),\r\n                    this.shapeCont.setAttribute(\"width\", t.width),\r\n                    (i = !0)),\r\n                  this.currentBBox.h !== t.height &&\r\n                    ((this.currentBBox.h = t.height),\r\n                    this.shapeCont.setAttribute(\"height\", t.height),\r\n                    (i = !0)),\r\n                  i || this.currentBBox.x !== t.x || this.currentBBox.y !== t.y)\r\n                ) {\r\n                  (this.currentBBox.w = t.width),\r\n                    (this.currentBBox.h = t.height),\r\n                    (this.currentBBox.x = t.x),\r\n                    (this.currentBBox.y = t.y),\r\n                    this.shapeCont.setAttribute(\r\n                      \"viewBox\",\r\n                      this.currentBBox.x +\r\n                        \" \" +\r\n                        this.currentBBox.y +\r\n                        \" \" +\r\n                        this.currentBBox.w +\r\n                        \" \" +\r\n                        this.currentBBox.h\r\n                    );\r\n                  var r = this.shapeCont.style,\r\n                    s =\r\n                      \"translate(\" +\r\n                      this.currentBBox.x +\r\n                      \"px,\" +\r\n                      this.currentBBox.y +\r\n                      \"px)\";\r\n                  (r.transform = s), (r.webkitTransform = s);\r\n                }\r\n              }\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                HBaseElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableDOMElement,\r\n                ITextElement,\r\n              ],\r\n              HTextElement\r\n            ),\r\n            (HTextElement.prototype.createContent = function () {\r\n              if (((this.isMasked = this.checkMasks()), this.isMasked)) {\r\n                (this.renderType = \"svg\"),\r\n                  (this.compW = this.comp.data.w),\r\n                  (this.compH = this.comp.data.h),\r\n                  this.svgElement.setAttribute(\"width\", this.compW),\r\n                  this.svgElement.setAttribute(\"height\", this.compH);\r\n                var t = createNS(\"g\");\r\n                this.maskedElement.appendChild(t), (this.innerElem = t);\r\n              } else\r\n                (this.renderType = \"html\"),\r\n                  (this.innerElem = this.layerElement);\r\n              this.checkParenting();\r\n            }),\r\n            (HTextElement.prototype.buildNewText = function () {\r\n              var t = this.textProperty.currentData;\r\n              this.renderedLetters = createSizedArray(t.l ? t.l.length : 0);\r\n              var e = this.innerElem.style,\r\n                i = t.fc ? this.buildColor(t.fc) : \"rgba(0,0,0,0)\";\r\n              (e.fill = i),\r\n                (e.color = i),\r\n                t.sc &&\r\n                  ((e.stroke = this.buildColor(t.sc)),\r\n                  (e.strokeWidth = t.sw + \"px\"));\r\n              var r,\r\n                s,\r\n                a = this.globalData.fontManager.getFontByName(t.f);\r\n              if (!this.globalData.fontManager.chars)\r\n                if (\r\n                  ((e.fontSize = t.finalSize + \"px\"),\r\n                  (e.lineHeight = t.finalSize + \"px\"),\r\n                  a.fClass)\r\n                )\r\n                  this.innerElem.className = a.fClass;\r\n                else {\r\n                  e.fontFamily = a.fFamily;\r\n                  var n = t.fWeight,\r\n                    o = t.fStyle;\r\n                  (e.fontStyle = o), (e.fontWeight = n);\r\n                }\r\n              var h,\r\n                l,\r\n                p,\r\n                f = t.l;\r\n              s = f.length;\r\n              var m,\r\n                c = this.mHelper,\r\n                d = \"\",\r\n                u = 0;\r\n              for (r = 0; r < s; r += 1) {\r\n                if (\r\n                  (this.globalData.fontManager.chars\r\n                    ? (this.textPaths[u]\r\n                        ? (h = this.textPaths[u])\r\n                        : ((h = createNS(\"path\")).setAttribute(\r\n                            \"stroke-linecap\",\r\n                            lineCapEnum[1]\r\n                          ),\r\n                          h.setAttribute(\"stroke-linejoin\", lineJoinEnum[2]),\r\n                          h.setAttribute(\"stroke-miterlimit\", \"4\")),\r\n                      this.isMasked ||\r\n                        (this.textSpans[u]\r\n                          ? (p = (l = this.textSpans[u]).children[0])\r\n                          : (((l = createTag(\"div\")).style.lineHeight = 0),\r\n                            (p = createNS(\"svg\")).appendChild(h),\r\n                            styleDiv(l))))\r\n                    : this.isMasked\r\n                    ? (h = this.textPaths[u]\r\n                        ? this.textPaths[u]\r\n                        : createNS(\"text\"))\r\n                    : this.textSpans[u]\r\n                    ? ((l = this.textSpans[u]), (h = this.textPaths[u]))\r\n                    : (styleDiv((l = createTag(\"span\"))),\r\n                      styleDiv((h = createTag(\"span\"))),\r\n                      l.appendChild(h)),\r\n                  this.globalData.fontManager.chars)\r\n                ) {\r\n                  var y,\r\n                    g = this.globalData.fontManager.getCharData(\r\n                      t.finalText[r],\r\n                      a.fStyle,\r\n                      this.globalData.fontManager.getFontByName(t.f).fFamily\r\n                    );\r\n                  if (\r\n                    ((y = g ? g.data : null),\r\n                    c.reset(),\r\n                    y &&\r\n                      y.shapes &&\r\n                      y.shapes.length &&\r\n                      ((m = y.shapes[0].it),\r\n                      c.scale(t.finalSize \/ 100, t.finalSize \/ 100),\r\n                      (d = this.createPathShape(c, m)),\r\n                      h.setAttribute(\"d\", d)),\r\n                    this.isMasked)\r\n                  )\r\n                    this.innerElem.appendChild(h);\r\n                  else {\r\n                    if ((this.innerElem.appendChild(l), y && y.shapes)) {\r\n                      document.body.appendChild(p);\r\n                      var v = p.getBBox();\r\n                      p.setAttribute(\"width\", v.width + 2),\r\n                        p.setAttribute(\"height\", v.height + 2),\r\n                        p.setAttribute(\r\n                          \"viewBox\",\r\n                          v.x -\r\n                            1 +\r\n                            \" \" +\r\n                            (v.y - 1) +\r\n                            \" \" +\r\n                            (v.width + 2) +\r\n                            \" \" +\r\n                            (v.height + 2)\r\n                        );\r\n                      var b = p.style,\r\n                        x =\r\n                          \"translate(\" + (v.x - 1) + \"px,\" + (v.y - 1) + \"px)\";\r\n                      (b.transform = x),\r\n                        (b.webkitTransform = x),\r\n                        (f[r].yOffset = v.y - 1);\r\n                    } else\r\n                      p.setAttribute(\"width\", 1), p.setAttribute(\"height\", 1);\r\n                    l.appendChild(p);\r\n                  }\r\n                } else if (\r\n                  ((h.textContent = f[r].val),\r\n                  h.setAttributeNS(\r\n                    \"http:\/\/www.w3.org\/XML\/1998\/namespace\",\r\n                    \"xml:space\",\r\n                    \"preserve\"\r\n                  ),\r\n                  this.isMasked)\r\n                )\r\n                  this.innerElem.appendChild(h);\r\n                else {\r\n                  this.innerElem.appendChild(l);\r\n                  var P = h.style,\r\n                    E = \"translate3d(0,\" + -t.finalSize \/ 1.2 + \"px,0)\";\r\n                  (P.transform = E), (P.webkitTransform = E);\r\n                }\r\n                this.isMasked\r\n                  ? (this.textSpans[u] = h)\r\n                  : (this.textSpans[u] = l),\r\n                  (this.textSpans[u].style.display = \"block\"),\r\n                  (this.textPaths[u] = h),\r\n                  (u += 1);\r\n              }\r\n              for (; u < this.textSpans.length; )\r\n                (this.textSpans[u].style.display = \"none\"), (u += 1);\r\n            }),\r\n            (HTextElement.prototype.renderInnerContent = function () {\r\n              var t;\r\n              if ((this.validateText(), this.data.singleShape)) {\r\n                if (!this._isFirstFrame && !this.lettersChangedFlag) return;\r\n                if (this.isMasked && this.finalTransform._matMdf) {\r\n                  this.svgElement.setAttribute(\r\n                    \"viewBox\",\r\n                    -this.finalTransform.mProp.p.v[0] +\r\n                      \" \" +\r\n                      -this.finalTransform.mProp.p.v[1] +\r\n                      \" \" +\r\n                      this.compW +\r\n                      \" \" +\r\n                      this.compH\r\n                  ),\r\n                    (t = this.svgElement.style);\r\n                  var e =\r\n                    \"translate(\" +\r\n                    -this.finalTransform.mProp.p.v[0] +\r\n                    \"px,\" +\r\n                    -this.finalTransform.mProp.p.v[1] +\r\n                    \"px)\";\r\n                  (t.transform = e), (t.webkitTransform = e);\r\n                }\r\n              }\r\n              if (\r\n                (this.textAnimator.getMeasures(\r\n                  this.textProperty.currentData,\r\n                  this.lettersChangedFlag\r\n                ),\r\n                this.lettersChangedFlag || this.textAnimator.lettersChangedFlag)\r\n              ) {\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a,\r\n                  n,\r\n                  o = 0,\r\n                  h = this.textAnimator.renderedLetters,\r\n                  l = this.textProperty.currentData.l;\r\n                for (r = l.length, i = 0; i < r; i += 1)\r\n                  l[i].n\r\n                    ? (o += 1)\r\n                    : ((a = this.textSpans[i]),\r\n                      (n = this.textPaths[i]),\r\n                      (s = h[o]),\r\n                      (o += 1),\r\n                      s._mdf.m &&\r\n                        (this.isMasked\r\n                          ? a.setAttribute(\"transform\", s.m)\r\n                          : ((a.style.webkitTransform = s.m),\r\n                            (a.style.transform = s.m))),\r\n                      (a.style.opacity = s.o),\r\n                      s.sw && s._mdf.sw && n.setAttribute(\"stroke-width\", s.sw),\r\n                      s.sc && s._mdf.sc && n.setAttribute(\"stroke\", s.sc),\r\n                      s.fc &&\r\n                        s._mdf.fc &&\r\n                        (n.setAttribute(\"fill\", s.fc), (n.style.color = s.fc)));\r\n                if (\r\n                  this.innerElem.getBBox &&\r\n                  !this.hidden &&\r\n                  (this._isFirstFrame || this._mdf)\r\n                ) {\r\n                  var p = this.innerElem.getBBox();\r\n                  this.currentBBox.w !== p.width &&\r\n                    ((this.currentBBox.w = p.width),\r\n                    this.svgElement.setAttribute(\"width\", p.width)),\r\n                    this.currentBBox.h !== p.height &&\r\n                      ((this.currentBBox.h = p.height),\r\n                      this.svgElement.setAttribute(\"height\", p.height));\r\n                  if (\r\n                    this.currentBBox.w !== p.width + 2 ||\r\n                    this.currentBBox.h !== p.height + 2 ||\r\n                    this.currentBBox.x !== p.x - 1 ||\r\n                    this.currentBBox.y !== p.y - 1\r\n                  ) {\r\n                    (this.currentBBox.w = p.width + 2),\r\n                      (this.currentBBox.h = p.height + 2),\r\n                      (this.currentBBox.x = p.x - 1),\r\n                      (this.currentBBox.y = p.y - 1),\r\n                      this.svgElement.setAttribute(\r\n                        \"viewBox\",\r\n                        this.currentBBox.x +\r\n                          \" \" +\r\n                          this.currentBBox.y +\r\n                          \" \" +\r\n                          this.currentBBox.w +\r\n                          \" \" +\r\n                          this.currentBBox.h\r\n                      ),\r\n                      (t = this.svgElement.style);\r\n                    var f =\r\n                      \"translate(\" +\r\n                      this.currentBBox.x +\r\n                      \"px,\" +\r\n                      this.currentBBox.y +\r\n                      \"px)\";\r\n                    (t.transform = f), (t.webkitTransform = f);\r\n                  }\r\n                }\r\n              }\r\n            }),\r\n            extendPrototype(\r\n              [BaseElement, FrameElement, HierarchyElement],\r\n              HCameraElement\r\n            ),\r\n            (HCameraElement.prototype.setup = function () {\r\n              var t,\r\n                e,\r\n                i,\r\n                r,\r\n                s = this.comp.threeDElements.length;\r\n              for (t = 0; t < s; t += 1)\r\n                if (\"3d\" === (e = this.comp.threeDElements[t]).type) {\r\n                  (i = e.perspectiveElem.style), (r = e.container.style);\r\n                  var a = this.pe.v + \"px\",\r\n                    n = \"0px 0px 0px\",\r\n                    o = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\r\n                  (i.perspective = a),\r\n                    (i.webkitPerspective = a),\r\n                    (r.transformOrigin = n),\r\n                    (r.mozTransformOrigin = n),\r\n                    (r.webkitTransformOrigin = n),\r\n                    (i.transform = o),\r\n                    (i.webkitTransform = o);\r\n                }\r\n            }),\r\n            (HCameraElement.prototype.createElements = function () {}),\r\n            (HCameraElement.prototype.hide = function () {}),\r\n            (HCameraElement.prototype.renderFrame = function () {\r\n              var t,\r\n                e,\r\n                i = this._isFirstFrame;\r\n              if (this.hierarchy)\r\n                for (e = this.hierarchy.length, t = 0; t < e; t += 1)\r\n                  i = this.hierarchy[t].finalTransform.mProp._mdf || i;\r\n              if (\r\n                i ||\r\n                this.pe._mdf ||\r\n                (this.p && this.p._mdf) ||\r\n                (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) ||\r\n                this.rx._mdf ||\r\n                this.ry._mdf ||\r\n                this.rz._mdf ||\r\n                this.or._mdf ||\r\n                (this.a && this.a._mdf)\r\n              ) {\r\n                if ((this.mat.reset(), this.hierarchy))\r\n                  for (t = e = this.hierarchy.length - 1; t >= 0; t -= 1) {\r\n                    var r = this.hierarchy[t].finalTransform.mProp;\r\n                    this.mat.translate(-r.p.v[0], -r.p.v[1], r.p.v[2]),\r\n                      this.mat\r\n                        .rotateX(-r.or.v[0])\r\n                        .rotateY(-r.or.v[1])\r\n                        .rotateZ(r.or.v[2]),\r\n                      this.mat\r\n                        .rotateX(-r.rx.v)\r\n                        .rotateY(-r.ry.v)\r\n                        .rotateZ(r.rz.v),\r\n                      this.mat.scale(1 \/ r.s.v[0], 1 \/ r.s.v[1], 1 \/ r.s.v[2]),\r\n                      this.mat.translate(r.a.v[0], r.a.v[1], r.a.v[2]);\r\n                  }\r\n                if (\r\n                  (this.p\r\n                    ? this.mat.translate(\r\n                        -this.p.v[0],\r\n                        -this.p.v[1],\r\n                        this.p.v[2]\r\n                      )\r\n                    : this.mat.translate(-this.px.v, -this.py.v, this.pz.v),\r\n                  this.a)\r\n                ) {\r\n                  var s;\r\n                  s = this.p\r\n                    ? [\r\n                        this.p.v[0] - this.a.v[0],\r\n                        this.p.v[1] - this.a.v[1],\r\n                        this.p.v[2] - this.a.v[2],\r\n                      ]\r\n                    : [\r\n                        this.px.v - this.a.v[0],\r\n                        this.py.v - this.a.v[1],\r\n                        this.pz.v - this.a.v[2],\r\n                      ];\r\n                  var a = Math.sqrt(\r\n                      Math.pow(s[0], 2) + Math.pow(s[1], 2) + Math.pow(s[2], 2)\r\n                    ),\r\n                    n = [s[0] \/ a, s[1] \/ a, s[2] \/ a],\r\n                    o = Math.sqrt(n[2] * n[2] + n[0] * n[0]),\r\n                    h = Math.atan2(n[1], o),\r\n                    l = Math.atan2(n[0], -n[2]);\r\n                  this.mat.rotateY(l).rotateX(-h);\r\n                }\r\n                this.mat\r\n                  .rotateX(-this.rx.v)\r\n                  .rotateY(-this.ry.v)\r\n                  .rotateZ(this.rz.v),\r\n                  this.mat\r\n                    .rotateX(-this.or.v[0])\r\n                    .rotateY(-this.or.v[1])\r\n                    .rotateZ(this.or.v[2]),\r\n                  this.mat.translate(\r\n                    this.globalData.compSize.w \/ 2,\r\n                    this.globalData.compSize.h \/ 2,\r\n                    0\r\n                  ),\r\n                  this.mat.translate(0, 0, this.pe.v);\r\n                var p = !this._prevMat.equals(this.mat);\r\n                if ((p || this.pe._mdf) && this.comp.threeDElements) {\r\n                  var f, m, c;\r\n                  for (\r\n                    e = this.comp.threeDElements.length, t = 0;\r\n                    t < e;\r\n                    t += 1\r\n                  )\r\n                    if (\"3d\" === (f = this.comp.threeDElements[t]).type) {\r\n                      if (p) {\r\n                        var d = this.mat.toCSS();\r\n                        ((c = f.container.style).transform = d),\r\n                          (c.webkitTransform = d);\r\n                      }\r\n                      this.pe._mdf &&\r\n                        (((m = f.perspectiveElem.style).perspective =\r\n                          this.pe.v + \"px\"),\r\n                        (m.webkitPerspective = this.pe.v + \"px\"));\r\n                    }\r\n                  this.mat.clone(this._prevMat);\r\n                }\r\n              }\r\n              this._isFirstFrame = !1;\r\n            }),\r\n            (HCameraElement.prototype.prepareFrame = function (t) {\r\n              this.prepareProperties(t, !0);\r\n            }),\r\n            (HCameraElement.prototype.destroy = function () {}),\r\n            (HCameraElement.prototype.getBaseElement = function () {\r\n              return null;\r\n            }),\r\n            extendPrototype(\r\n              [\r\n                BaseElement,\r\n                TransformElement,\r\n                HBaseElement,\r\n                HSolidElement,\r\n                HierarchyElement,\r\n                FrameElement,\r\n                RenderableElement,\r\n              ],\r\n              HImageElement\r\n            ),\r\n            (HImageElement.prototype.createContent = function () {\r\n              var t = this.globalData.getAssetsPath(this.assetData),\r\n                e = new Image();\r\n              this.data.hasMask\r\n                ? ((this.imageElem = createNS(\"image\")),\r\n                  this.imageElem.setAttribute(\"width\", this.assetData.w + \"px\"),\r\n                  this.imageElem.setAttribute(\r\n                    \"height\",\r\n                    this.assetData.h + \"px\"\r\n                  ),\r\n                  this.imageElem.setAttributeNS(\r\n                    \"http:\/\/www.w3.org\/1999\/xlink\",\r\n                    \"href\",\r\n                    t\r\n                  ),\r\n                  this.layerElement.appendChild(this.imageElem),\r\n                  this.baseElement.setAttribute(\"width\", this.assetData.w),\r\n                  this.baseElement.setAttribute(\"height\", this.assetData.h))\r\n                : this.layerElement.appendChild(e),\r\n                (e.crossOrigin = \"anonymous\"),\r\n                (e.src = t),\r\n                this.data.ln &&\r\n                  this.baseElement.setAttribute(\"id\", this.data.ln);\r\n            }),\r\n            extendPrototype([BaseRenderer], HybridRendererBase),\r\n            (HybridRendererBase.prototype.buildItem =\r\n              SVGRenderer.prototype.buildItem),\r\n            (HybridRendererBase.prototype.checkPendingElements = function () {\r\n              for (; this.pendingElements.length; ) {\r\n                this.pendingElements.pop().checkParenting();\r\n              }\r\n            }),\r\n            (HybridRendererBase.prototype.appendElementInPos = function (t, e) {\r\n              var i = t.getBaseElement();\r\n              if (i) {\r\n                var r = this.layers[e];\r\n                if (r.ddd && this.supports3d) this.addTo3dContainer(i, e);\r\n                else if (this.threeDElements) this.addTo3dContainer(i, e);\r\n                else {\r\n                  for (var s, a, n = 0; n < e; )\r\n                    this.elements[n] &&\r\n                      !0 !== this.elements[n] &&\r\n                      this.elements[n].getBaseElement &&\r\n                      ((a = this.elements[n]),\r\n                      (s =\r\n                        (this.layers[n].ddd\r\n                          ? this.getThreeDContainerByPos(n)\r\n                          : a.getBaseElement()) || s)),\r\n                      (n += 1);\r\n                  s\r\n                    ? (r.ddd && this.supports3d) ||\r\n                      this.layerElement.insertBefore(i, s)\r\n                    : (r.ddd && this.supports3d) ||\r\n                      this.layerElement.appendChild(i);\r\n                }\r\n              }\r\n            }),\r\n            (HybridRendererBase.prototype.createShape = function (t) {\r\n              return this.supports3d\r\n                ? new HShapeElement(t, this.globalData, this)\r\n                : new SVGShapeElement(t, this.globalData, this);\r\n            }),\r\n            (HybridRendererBase.prototype.createText = function (t) {\r\n              return this.supports3d\r\n                ? new HTextElement(t, this.globalData, this)\r\n                : new SVGTextLottieElement(t, this.globalData, this);\r\n            }),\r\n            (HybridRendererBase.prototype.createCamera = function (t) {\r\n              return (\r\n                (this.camera = new HCameraElement(t, this.globalData, this)),\r\n                this.camera\r\n              );\r\n            }),\r\n            (HybridRendererBase.prototype.createImage = function (t) {\r\n              return this.supports3d\r\n                ? new HImageElement(t, this.globalData, this)\r\n                : new IImageElement(t, this.globalData, this);\r\n            }),\r\n            (HybridRendererBase.prototype.createSolid = function (t) {\r\n              return this.supports3d\r\n                ? new HSolidElement(t, this.globalData, this)\r\n                : new ISolidElement(t, this.globalData, this);\r\n            }),\r\n            (HybridRendererBase.prototype.createNull =\r\n              SVGRenderer.prototype.createNull),\r\n            (HybridRendererBase.prototype.getThreeDContainerByPos = function (\r\n              t\r\n            ) {\r\n              for (var e = 0, i = this.threeDElements.length; e < i; ) {\r\n                if (\r\n                  this.threeDElements[e].startPos <= t &&\r\n                  this.threeDElements[e].endPos >= t\r\n                )\r\n                  return this.threeDElements[e].perspectiveElem;\r\n                e += 1;\r\n              }\r\n              return null;\r\n            }),\r\n            (HybridRendererBase.prototype.createThreeDContainer = function (\r\n              t,\r\n              e\r\n            ) {\r\n              var i,\r\n                r,\r\n                s = createTag(\"div\");\r\n              styleDiv(s);\r\n              var a = createTag(\"div\");\r\n              if ((styleDiv(a), \"3d\" === e)) {\r\n                ((i = s.style).width = this.globalData.compSize.w + \"px\"),\r\n                  (i.height = this.globalData.compSize.h + \"px\");\r\n                var n = \"50% 50%\";\r\n                (i.webkitTransformOrigin = n),\r\n                  (i.mozTransformOrigin = n),\r\n                  (i.transformOrigin = n);\r\n                var o = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\r\n                ((r = a.style).transform = o), (r.webkitTransform = o);\r\n              }\r\n              s.appendChild(a);\r\n              var h = {\r\n                container: a,\r\n                perspectiveElem: s,\r\n                startPos: t,\r\n                endPos: t,\r\n                type: e,\r\n              };\r\n              return this.threeDElements.push(h), h;\r\n            }),\r\n            (HybridRendererBase.prototype.build3dContainers = function () {\r\n              var t,\r\n                e,\r\n                i = this.layers.length,\r\n                r = \"\";\r\n              for (t = 0; t < i; t += 1)\r\n                this.layers[t].ddd && 3 !== this.layers[t].ty\r\n                  ? (\"3d\" !== r &&\r\n                      ((r = \"3d\"), (e = this.createThreeDContainer(t, \"3d\"))),\r\n                    (e.endPos = Math.max(e.endPos, t)))\r\n                  : (\"2d\" !== r &&\r\n                      ((r = \"2d\"), (e = this.createThreeDContainer(t, \"2d\"))),\r\n                    (e.endPos = Math.max(e.endPos, t)));\r\n              for (t = (i = this.threeDElements.length) - 1; t >= 0; t -= 1)\r\n                this.resizerElem.appendChild(\r\n                  this.threeDElements[t].perspectiveElem\r\n                );\r\n            }),\r\n            (HybridRendererBase.prototype.addTo3dContainer = function (t, e) {\r\n              for (var i = 0, r = this.threeDElements.length; i < r; ) {\r\n                if (e <= this.threeDElements[i].endPos) {\r\n                  for (var s, a = this.threeDElements[i].startPos; a < e; )\r\n                    this.elements[a] &&\r\n                      this.elements[a].getBaseElement &&\r\n                      (s = this.elements[a].getBaseElement()),\r\n                      (a += 1);\r\n                  s\r\n                    ? this.threeDElements[i].container.insertBefore(t, s)\r\n                    : this.threeDElements[i].container.appendChild(t);\r\n                  break;\r\n                }\r\n                i += 1;\r\n              }\r\n            }),\r\n            (HybridRendererBase.prototype.configAnimation = function (t) {\r\n              var e = createTag(\"div\"),\r\n                i = this.animationItem.wrapper,\r\n                r = e.style;\r\n              (r.width = t.w + \"px\"),\r\n                (r.height = t.h + \"px\"),\r\n                (this.resizerElem = e),\r\n                styleDiv(e),\r\n                (r.transformStyle = \"flat\"),\r\n                (r.mozTransformStyle = \"flat\"),\r\n                (r.webkitTransformStyle = \"flat\"),\r\n                this.renderConfig.className &&\r\n                  e.setAttribute(\"class\", this.renderConfig.className),\r\n                i.appendChild(e),\r\n                (r.overflow = \"hidden\");\r\n              var s = createNS(\"svg\");\r\n              s.setAttribute(\"width\", \"1\"),\r\n                s.setAttribute(\"height\", \"1\"),\r\n                styleDiv(s),\r\n                this.resizerElem.appendChild(s);\r\n              var a = createNS(\"defs\");\r\n              s.appendChild(a),\r\n                (this.data = t),\r\n                this.setupGlobalData(t, s),\r\n                (this.globalData.defs = a),\r\n                (this.layers = t.layers),\r\n                (this.layerElement = this.resizerElem),\r\n                this.build3dContainers(),\r\n                this.updateContainerSize();\r\n            }),\r\n            (HybridRendererBase.prototype.destroy = function () {\r\n              var t;\r\n              this.animationItem.wrapper &&\r\n                (this.animationItem.wrapper.innerText = \"\"),\r\n                (this.animationItem.container = null),\r\n                (this.globalData.defs = null);\r\n              var e = this.layers ? this.layers.length : 0;\r\n              for (t = 0; t < e; t += 1)\r\n                this.elements[t] &&\r\n                  this.elements[t].destroy &&\r\n                  this.elements[t].destroy();\r\n              (this.elements.length = 0),\r\n                (this.destroyed = !0),\r\n                (this.animationItem = null);\r\n            }),\r\n            (HybridRendererBase.prototype.updateContainerSize = function () {\r\n              var t,\r\n                e,\r\n                i,\r\n                r,\r\n                s = this.animationItem.wrapper.offsetWidth,\r\n                a = this.animationItem.wrapper.offsetHeight,\r\n                n = s \/ a;\r\n              this.globalData.compSize.w \/ this.globalData.compSize.h > n\r\n                ? ((t = s \/ this.globalData.compSize.w),\r\n                  (e = s \/ this.globalData.compSize.w),\r\n                  (i = 0),\r\n                  (r =\r\n                    (a -\r\n                      this.globalData.compSize.h *\r\n                        (s \/ this.globalData.compSize.w)) \/\r\n                    2))\r\n                : ((t = a \/ this.globalData.compSize.h),\r\n                  (e = a \/ this.globalData.compSize.h),\r\n                  (i =\r\n                    (s -\r\n                      this.globalData.compSize.w *\r\n                        (a \/ this.globalData.compSize.h)) \/\r\n                    2),\r\n                  (r = 0));\r\n              var o = this.resizerElem.style;\r\n              (o.webkitTransform =\r\n                \"matrix3d(\" +\r\n                t +\r\n                \",0,0,0,0,\" +\r\n                e +\r\n                \",0,0,0,0,1,0,\" +\r\n                i +\r\n                \",\" +\r\n                r +\r\n                \",0,1)\"),\r\n                (o.transform = o.webkitTransform);\r\n            }),\r\n            (HybridRendererBase.prototype.renderFrame =\r\n              SVGRenderer.prototype.renderFrame),\r\n            (HybridRendererBase.prototype.hide = function () {\r\n              this.resizerElem.style.display = \"none\";\r\n            }),\r\n            (HybridRendererBase.prototype.show = function () {\r\n              this.resizerElem.style.display = \"block\";\r\n            }),\r\n            (HybridRendererBase.prototype.initItems = function () {\r\n              if ((this.buildAllItems(), this.camera)) this.camera.setup();\r\n              else {\r\n                var t,\r\n                  e = this.globalData.compSize.w,\r\n                  i = this.globalData.compSize.h,\r\n                  r = this.threeDElements.length;\r\n                for (t = 0; t < r; t += 1) {\r\n                  var s = this.threeDElements[t].perspectiveElem.style;\r\n                  (s.webkitPerspective =\r\n                    Math.sqrt(Math.pow(e, 2) + Math.pow(i, 2)) + \"px\"),\r\n                    (s.perspective = s.webkitPerspective);\r\n                }\r\n              }\r\n            }),\r\n            (HybridRendererBase.prototype.searchExtraCompositions = function (\r\n              t\r\n            ) {\r\n              var e,\r\n                i = t.length,\r\n                r = createTag(\"div\");\r\n              for (e = 0; e < i; e += 1)\r\n                if (t[e].xt) {\r\n                  var s = this.createComp(t[e], r, this.globalData.comp, null);\r\n                  s.initExpressions(),\r\n                    this.globalData.projectInterface.registerComposition(s);\r\n                }\r\n            }),\r\n            extendPrototype(\r\n              [HybridRendererBase, ICompElement, HBaseElement],\r\n              HCompElement\r\n            ),\r\n            (HCompElement.prototype._createBaseContainerElements =\r\n              HCompElement.prototype.createContainerElements),\r\n            (HCompElement.prototype.createContainerElements = function () {\r\n              this._createBaseContainerElements(),\r\n                this.data.hasMask\r\n                  ? (this.svgElement.setAttribute(\"width\", this.data.w),\r\n                    this.svgElement.setAttribute(\"height\", this.data.h),\r\n                    (this.transformedElement = this.baseElement))\r\n                  : (this.transformedElement = this.layerElement);\r\n            }),\r\n            (HCompElement.prototype.addTo3dContainer = function (t, e) {\r\n              for (var i, r = 0; r < e; )\r\n                this.elements[r] &&\r\n                  this.elements[r].getBaseElement &&\r\n                  (i = this.elements[r].getBaseElement()),\r\n                  (r += 1);\r\n              i\r\n                ? this.layerElement.insertBefore(t, i)\r\n                : this.layerElement.appendChild(t);\r\n            }),\r\n            (HCompElement.prototype.createComp = function (t) {\r\n              return this.supports3d\r\n                ? new HCompElement(t, this.globalData, this)\r\n                : new SVGCompElement(t, this.globalData, this);\r\n            }),\r\n            extendPrototype([HybridRendererBase], HybridRenderer),\r\n            (HybridRenderer.prototype.createComp = function (t) {\r\n              return this.supports3d\r\n                ? new HCompElement(t, this.globalData, this)\r\n                : new SVGCompElement(t, this.globalData, this);\r\n            });\r\n          var CompExpressionInterface = function (t) {\r\n            function e(e) {\r\n              for (var i = 0, r = t.layers.length; i < r; ) {\r\n                if (t.layers[i].nm === e || t.layers[i].ind === e)\r\n                  return t.elements[i].layerInterface;\r\n                i += 1;\r\n              }\r\n              return null;\r\n            }\r\n            return (\r\n              Object.defineProperty(e, \"_name\", { value: t.data.nm }),\r\n              (e.layer = e),\r\n              (e.pixelAspect = 1),\r\n              (e.height = t.data.h || t.globalData.compSize.h),\r\n              (e.width = t.data.w || t.globalData.compSize.w),\r\n              (e.pixelAspect = 1),\r\n              (e.frameDuration = 1 \/ t.globalData.frameRate),\r\n              (e.displayStartTime = 0),\r\n              (e.numLayers = t.layers.length),\r\n              e\r\n            );\r\n          };\r\n          function _typeof$2(t) {\r\n            return (\r\n              (_typeof$2 =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof$2(t)\r\n            );\r\n          }\r\n          function seedRandom(t, e) {\r\n            var i,\r\n              r = this,\r\n              s = 256,\r\n              a = e.pow(s, 6),\r\n              n = e.pow(2, 52),\r\n              o = 2 * n,\r\n              h = 255;\r\n            function l(t) {\r\n              var e,\r\n                i = t.length,\r\n                r = this,\r\n                a = 0,\r\n                n = (r.i = r.j = 0),\r\n                o = (r.S = []);\r\n              for (i || (t = [i++]); a < s; ) o[a] = a++;\r\n              for (a = 0; a < s; a++)\r\n                (o[a] = o[(n = h & (n + t[a % i] + (e = o[a])))]), (o[n] = e);\r\n              r.g = function (t) {\r\n                for (var e, i = 0, a = r.i, n = r.j, o = r.S; t--; )\r\n                  (e = o[(a = h & (a + 1))]),\r\n                    (i =\r\n                      i * s +\r\n                      o[h & ((o[a] = o[(n = h & (n + e))]) + (o[n] = e))]);\r\n                return (r.i = a), (r.j = n), i;\r\n              };\r\n            }\r\n            function p(t, e) {\r\n              return (e.i = t.i), (e.j = t.j), (e.S = t.S.slice()), e;\r\n            }\r\n            function f(t, e) {\r\n              var i,\r\n                r = [],\r\n                s = _typeof$2(t);\r\n              if (e && \"object\" == s)\r\n                for (i in t)\r\n                  try {\r\n                    r.push(f(t[i], e - 1));\r\n                  } catch (t) {}\r\n              return r.length ? r : \"string\" == s ? t : t + \"\\0\";\r\n            }\r\n            function m(t, e) {\r\n              for (var i, r = t + \"\", s = 0; s < r.length; )\r\n                e[h & s] = h & ((i ^= 19 * e[h & s]) + r.charCodeAt(s++));\r\n              return c(e);\r\n            }\r\n            function c(t) {\r\n              return String.fromCharCode.apply(0, t);\r\n            }\r\n            (e.seedrandom = function (h, d, u) {\r\n              var y = [],\r\n                g = m(\r\n                  f(\r\n                    (d = !0 === d ? { entropy: !0 } : d || {}).entropy\r\n                      ? [h, c(t)]\r\n                      : null === h\r\n                      ? (function () {\r\n                          try {\r\n                            i;\r\n                            var e = new Uint8Array(s);\r\n                            return (\r\n                              (r.crypto || r.msCrypto).getRandomValues(e), c(e)\r\n                            );\r\n                          } catch (e) {\r\n                            var a = r.navigator,\r\n                              n = a && a.plugins;\r\n                            return [+new Date(), r, n, r.screen, c(t)];\r\n                          }\r\n                        })()\r\n                      : h,\r\n                    3\r\n                  ),\r\n                  y\r\n                ),\r\n                v = new l(y),\r\n                b = function () {\r\n                  for (var t = v.g(6), e = a, i = 0; t < n; )\r\n                    (t = (t + i) * s), (e *= s), (i = v.g(1));\r\n                  for (; t >= o; ) (t \/= 2), (e \/= 2), (i >>>= 1);\r\n                  return (t + i) \/ e;\r\n                };\r\n              return (\r\n                (b.int32 = function () {\r\n                  return 0 | v.g(4);\r\n                }),\r\n                (b.quick = function () {\r\n                  return v.g(4) \/ 4294967296;\r\n                }),\r\n                (b.double = b),\r\n                m(c(v.S), t),\r\n                (\r\n                  d.pass ||\r\n                  u ||\r\n                  function (t, i, r, s) {\r\n                    return (\r\n                      s &&\r\n                        (s.S && p(s, v),\r\n                        (t.state = function () {\r\n                          return p(v, {});\r\n                        })),\r\n                      r ? ((e.random = t), i) : t\r\n                    );\r\n                  }\r\n                )(b, g, \"global\" in d ? d.global : this == e, d.state)\r\n              );\r\n            }),\r\n              m(e.random(), t);\r\n          }\r\n          function initialize$2(t) {\r\n            seedRandom([], t);\r\n          }\r\n          var propTypes = { SHAPE: \"shape\" };\r\n          function _typeof$1(t) {\r\n            return (\r\n              (_typeof$1 =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof$1(t)\r\n            );\r\n          }\r\n          var ExpressionManager = (function () {\r\n              var ob = {},\r\n                Math = BMMath,\r\n                window = null,\r\n                document = null,\r\n                XMLHttpRequest = null,\r\n                fetch = null,\r\n                frames = null,\r\n                _lottieGlobal = {};\r\n              function resetFrame() {\r\n                _lottieGlobal = {};\r\n              }\r\n              function $bm_isInstanceOfArray(t) {\r\n                return (\r\n                  t.constructor === Array || t.constructor === Float32Array\r\n                );\r\n              }\r\n              function isNumerable(t, e) {\r\n                return (\r\n                  \"number\" === t ||\r\n                  e instanceof Number ||\r\n                  \"boolean\" === t ||\r\n                  \"string\" === t\r\n                );\r\n              }\r\n              function $bm_neg(t) {\r\n                var e = _typeof$1(t);\r\n                if (\"number\" === e || t instanceof Number || \"boolean\" === e)\r\n                  return -t;\r\n                if ($bm_isInstanceOfArray(t)) {\r\n                  var i,\r\n                    r = t.length,\r\n                    s = [];\r\n                  for (i = 0; i < r; i += 1) s[i] = -t[i];\r\n                  return s;\r\n                }\r\n                return t.propType ? t.v : -t;\r\n              }\r\n              initialize$2(BMMath);\r\n              var easeInBez = BezierFactory.getBezierEasing(\r\n                  0.333,\r\n                  0,\r\n                  0.833,\r\n                  0.833,\r\n                  \"easeIn\"\r\n                ).get,\r\n                easeOutBez = BezierFactory.getBezierEasing(\r\n                  0.167,\r\n                  0.167,\r\n                  0.667,\r\n                  1,\r\n                  \"easeOut\"\r\n                ).get,\r\n                easeInOutBez = BezierFactory.getBezierEasing(\r\n                  0.33,\r\n                  0,\r\n                  0.667,\r\n                  1,\r\n                  \"easeInOut\"\r\n                ).get;\r\n              function sum(t, e) {\r\n                var i = _typeof$1(t),\r\n                  r = _typeof$1(e);\r\n                if (\r\n                  (isNumerable(i, t) && isNumerable(r, e)) ||\r\n                  \"string\" === i ||\r\n                  \"string\" === r\r\n                )\r\n                  return t + e;\r\n                if ($bm_isInstanceOfArray(t) && isNumerable(r, e))\r\n                  return ((t = t.slice(0))[0] += e), t;\r\n                if (isNumerable(i, t) && $bm_isInstanceOfArray(e))\r\n                  return ((e = e.slice(0))[0] = t + e[0]), e;\r\n                if ($bm_isInstanceOfArray(t) && $bm_isInstanceOfArray(e)) {\r\n                  for (\r\n                    var s = 0, a = t.length, n = e.length, o = [];\r\n                    s < a || s < n;\r\n\r\n                  )\r\n                    (\"number\" == typeof t[s] || t[s] instanceof Number) &&\r\n                    (\"number\" == typeof e[s] || e[s] instanceof Number)\r\n                      ? (o[s] = t[s] + e[s])\r\n                      : (o[s] = void 0 === e[s] ? t[s] : t[s] || e[s]),\r\n                      (s += 1);\r\n                  return o;\r\n                }\r\n                return 0;\r\n              }\r\n              var add = sum;\r\n              function sub(t, e) {\r\n                var i = _typeof$1(t),\r\n                  r = _typeof$1(e);\r\n                if (isNumerable(i, t) && isNumerable(r, e))\r\n                  return (\r\n                    \"string\" === i && (t = parseInt(t, 10)),\r\n                    \"string\" === r && (e = parseInt(e, 10)),\r\n                    t - e\r\n                  );\r\n                if ($bm_isInstanceOfArray(t) && isNumerable(r, e))\r\n                  return ((t = t.slice(0))[0] -= e), t;\r\n                if (isNumerable(i, t) && $bm_isInstanceOfArray(e))\r\n                  return ((e = e.slice(0))[0] = t - e[0]), e;\r\n                if ($bm_isInstanceOfArray(t) && $bm_isInstanceOfArray(e)) {\r\n                  for (\r\n                    var s = 0, a = t.length, n = e.length, o = [];\r\n                    s < a || s < n;\r\n\r\n                  )\r\n                    (\"number\" == typeof t[s] || t[s] instanceof Number) &&\r\n                    (\"number\" == typeof e[s] || e[s] instanceof Number)\r\n                      ? (o[s] = t[s] - e[s])\r\n                      : (o[s] = void 0 === e[s] ? t[s] : t[s] || e[s]),\r\n                      (s += 1);\r\n                  return o;\r\n                }\r\n                return 0;\r\n              }\r\n              function mul(t, e) {\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a = _typeof$1(t),\r\n                  n = _typeof$1(e);\r\n                if (isNumerable(a, t) && isNumerable(n, e)) return t * e;\r\n                if ($bm_isInstanceOfArray(t) && isNumerable(n, e)) {\r\n                  for (\r\n                    s = t.length, i = createTypedArray(\"float32\", s), r = 0;\r\n                    r < s;\r\n                    r += 1\r\n                  )\r\n                    i[r] = t[r] * e;\r\n                  return i;\r\n                }\r\n                if (isNumerable(a, t) && $bm_isInstanceOfArray(e)) {\r\n                  for (\r\n                    s = e.length, i = createTypedArray(\"float32\", s), r = 0;\r\n                    r < s;\r\n                    r += 1\r\n                  )\r\n                    i[r] = t * e[r];\r\n                  return i;\r\n                }\r\n                return 0;\r\n              }\r\n              function div(t, e) {\r\n                var i,\r\n                  r,\r\n                  s,\r\n                  a = _typeof$1(t),\r\n                  n = _typeof$1(e);\r\n                if (isNumerable(a, t) && isNumerable(n, e)) return t \/ e;\r\n                if ($bm_isInstanceOfArray(t) && isNumerable(n, e)) {\r\n                  for (\r\n                    s = t.length, i = createTypedArray(\"float32\", s), r = 0;\r\n                    r < s;\r\n                    r += 1\r\n                  )\r\n                    i[r] = t[r] \/ e;\r\n                  return i;\r\n                }\r\n                if (isNumerable(a, t) && $bm_isInstanceOfArray(e)) {\r\n                  for (\r\n                    s = e.length, i = createTypedArray(\"float32\", s), r = 0;\r\n                    r < s;\r\n                    r += 1\r\n                  )\r\n                    i[r] = t \/ e[r];\r\n                  return i;\r\n                }\r\n                return 0;\r\n              }\r\n              function mod(t, e) {\r\n                return (\r\n                  \"string\" == typeof t && (t = parseInt(t, 10)),\r\n                  \"string\" == typeof e && (e = parseInt(e, 10)),\r\n                  t % e\r\n                );\r\n              }\r\n              var $bm_sum = sum,\r\n                $bm_sub = sub,\r\n                $bm_mul = mul,\r\n                $bm_div = div,\r\n                $bm_mod = mod;\r\n              function clamp(t, e, i) {\r\n                if (e > i) {\r\n                  var r = i;\r\n                  (i = e), (e = r);\r\n                }\r\n                return Math.min(Math.max(t, e), i);\r\n              }\r\n              function radiansToDegrees(t) {\r\n                return t \/ degToRads;\r\n              }\r\n              var radians_to_degrees = radiansToDegrees;\r\n              function degreesToRadians(t) {\r\n                return t * degToRads;\r\n              }\r\n              var degrees_to_radians = radiansToDegrees,\r\n                helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n              function length(t, e) {\r\n                if (\"number\" == typeof t || t instanceof Number)\r\n                  return (e = e || 0), Math.abs(t - e);\r\n                var i;\r\n                e || (e = helperLengthArray);\r\n                var r = Math.min(t.length, e.length),\r\n                  s = 0;\r\n                for (i = 0; i < r; i += 1) s += Math.pow(e[i] - t[i], 2);\r\n                return Math.sqrt(s);\r\n              }\r\n              function normalize(t) {\r\n                return div(t, length(t));\r\n              }\r\n              function rgbToHsl(t) {\r\n                var e,\r\n                  i,\r\n                  r = t[0],\r\n                  s = t[1],\r\n                  a = t[2],\r\n                  n = Math.max(r, s, a),\r\n                  o = Math.min(r, s, a),\r\n                  h = (n + o) \/ 2;\r\n                if (n === o) (e = 0), (i = 0);\r\n                else {\r\n                  var l = n - o;\r\n                  switch (((i = h > 0.5 ? l \/ (2 - n - o) : l \/ (n + o)), n)) {\r\n                    case r:\r\n                      e = (s - a) \/ l + (s < a ? 6 : 0);\r\n                      break;\r\n                    case s:\r\n                      e = (a - r) \/ l + 2;\r\n                      break;\r\n                    case a:\r\n                      e = (r - s) \/ l + 4;\r\n                  }\r\n                  e \/= 6;\r\n                }\r\n                return [e, i, h, t[3]];\r\n              }\r\n              function hue2rgb(t, e, i) {\r\n                return (\r\n                  i < 0 && (i += 1),\r\n                  i > 1 && (i -= 1),\r\n                  i < 1 \/ 6\r\n                    ? t + 6 * (e - t) * i\r\n                    : i < 0.5\r\n                    ? e\r\n                    : i < 2 \/ 3\r\n                    ? t + (e - t) * (2 \/ 3 - i) * 6\r\n                    : t\r\n                );\r\n              }\r\n              function hslToRgb(t) {\r\n                var e,\r\n                  i,\r\n                  r,\r\n                  s = t[0],\r\n                  a = t[1],\r\n                  n = t[2];\r\n                if (0 === a) (e = n), (r = n), (i = n);\r\n                else {\r\n                  var o = n < 0.5 ? n * (1 + a) : n + a - n * a,\r\n                    h = 2 * n - o;\r\n                  (e = hue2rgb(h, o, s + 1 \/ 3)),\r\n                    (i = hue2rgb(h, o, s)),\r\n                    (r = hue2rgb(h, o, s - 1 \/ 3));\r\n                }\r\n                return [e, i, r, t[3]];\r\n              }\r\n              function linear(t, e, i, r, s) {\r\n                if (\r\n                  ((void 0 !== r && void 0 !== s) ||\r\n                    ((r = e), (s = i), (e = 0), (i = 1)),\r\n                  i < e)\r\n                ) {\r\n                  var a = i;\r\n                  (i = e), (e = a);\r\n                }\r\n                if (t <= e) return r;\r\n                if (t >= i) return s;\r\n                var n,\r\n                  o = i === e ? 0 : (t - e) \/ (i - e);\r\n                if (!r.length) return r + (s - r) * o;\r\n                var h = r.length,\r\n                  l = createTypedArray(\"float32\", h);\r\n                for (n = 0; n < h; n += 1) l[n] = r[n] + (s[n] - r[n]) * o;\r\n                return l;\r\n              }\r\n              function random(t, e) {\r\n                if (\r\n                  (void 0 === e &&\r\n                    (void 0 === t\r\n                      ? ((t = 0), (e = 1))\r\n                      : ((e = t), (t = void 0))),\r\n                  e.length)\r\n                ) {\r\n                  var i,\r\n                    r = e.length;\r\n                  t || (t = createTypedArray(\"float32\", r));\r\n                  var s = createTypedArray(\"float32\", r),\r\n                    a = BMMath.random();\r\n                  for (i = 0; i < r; i += 1) s[i] = t[i] + a * (e[i] - t[i]);\r\n                  return s;\r\n                }\r\n                return void 0 === t && (t = 0), t + BMMath.random() * (e - t);\r\n              }\r\n              function createPath(t, e, i, r) {\r\n                var s,\r\n                  a = t.length,\r\n                  n = shapePool.newElement();\r\n                n.setPathData(!!r, a);\r\n                var o,\r\n                  h,\r\n                  l = [0, 0];\r\n                for (s = 0; s < a; s += 1)\r\n                  (o = e && e[s] ? e[s] : l),\r\n                    (h = i && i[s] ? i[s] : l),\r\n                    n.setTripleAt(\r\n                      t[s][0],\r\n                      t[s][1],\r\n                      h[0] + t[s][0],\r\n                      h[1] + t[s][1],\r\n                      o[0] + t[s][0],\r\n                      o[1] + t[s][1],\r\n                      s,\r\n                      !0\r\n                    );\r\n                return n;\r\n              }\r\n              function initiateExpression(elem, data, property) {\r\n                function noOp(t) {\r\n                  return t;\r\n                }\r\n                if (!elem.globalData.renderConfig.runExpressions) return noOp;\r\n                var val = data.x,\r\n                  needsVelocity = \/velocity(?![\\w\\d])\/.test(val),\r\n                  _needsRandom = -1 !== val.indexOf(\"random\"),\r\n                  elemType = elem.data.ty,\r\n                  transform,\r\n                  $bm_transform,\r\n                  content,\r\n                  effect,\r\n                  thisProperty = property;\r\n                (thisProperty.valueAtTime = thisProperty.getValueAtTime),\r\n                  Object.defineProperty(thisProperty, \"value\", {\r\n                    get: function () {\r\n                      return thisProperty.v;\r\n                    },\r\n                  }),\r\n                  (elem.comp.frameDuration =\r\n                    1 \/ elem.comp.globalData.frameRate),\r\n                  (elem.comp.displayStartTime = 0);\r\n                var inPoint = elem.data.ip \/ elem.comp.globalData.frameRate,\r\n                  outPoint = elem.data.op \/ elem.comp.globalData.frameRate,\r\n                  width = elem.data.sw ? elem.data.sw : 0,\r\n                  height = elem.data.sh ? elem.data.sh : 0,\r\n                  name = elem.data.nm,\r\n                  loopIn,\r\n                  loop_in,\r\n                  loopOut,\r\n                  loop_out,\r\n                  smooth,\r\n                  toWorld,\r\n                  fromWorld,\r\n                  fromComp,\r\n                  toComp,\r\n                  fromCompToSurface,\r\n                  position,\r\n                  rotation,\r\n                  anchorPoint,\r\n                  scale,\r\n                  thisLayer,\r\n                  thisComp,\r\n                  mask,\r\n                  valueAtTime,\r\n                  velocityAtTime,\r\n                  scoped_bm_rt,\r\n                  expression_function = eval(\r\n                    \"[function _expression_function(){\" +\r\n                      val +\r\n                      \";scoped_bm_rt=$bm_rt}]\"\r\n                  )[0],\r\n                  numKeys = property.kf ? data.k.length : 0,\r\n                  active = !this.data || !0 !== this.data.hd,\r\n                  wiggle = function (t, e) {\r\n                    var i,\r\n                      r,\r\n                      s = this.pv.length ? this.pv.length : 1,\r\n                      a = createTypedArray(\"float32\", s);\r\n                    var n = Math.floor(5 * time);\r\n                    for (i = 0, r = 0; i < n; ) {\r\n                      for (r = 0; r < s; r += 1)\r\n                        a[r] += -e + 2 * e * BMMath.random();\r\n                      i += 1;\r\n                    }\r\n                    var o = 5 * time,\r\n                      h = o - Math.floor(o),\r\n                      l = createTypedArray(\"float32\", s);\r\n                    if (s > 1) {\r\n                      for (r = 0; r < s; r += 1)\r\n                        l[r] =\r\n                          this.pv[r] +\r\n                          a[r] +\r\n                          (-e + 2 * e * BMMath.random()) * h;\r\n                      return l;\r\n                    }\r\n                    return this.pv + a[0] + (-e + 2 * e * BMMath.random()) * h;\r\n                  }.bind(this);\r\n                function loopInDuration(t, e) {\r\n                  return loopIn(t, e, !0);\r\n                }\r\n                function loopOutDuration(t, e) {\r\n                  return loopOut(t, e, !0);\r\n                }\r\n                thisProperty.loopIn &&\r\n                  ((loopIn = thisProperty.loopIn.bind(thisProperty)),\r\n                  (loop_in = loopIn)),\r\n                  thisProperty.loopOut &&\r\n                    ((loopOut = thisProperty.loopOut.bind(thisProperty)),\r\n                    (loop_out = loopOut)),\r\n                  thisProperty.smooth &&\r\n                    (smooth = thisProperty.smooth.bind(thisProperty)),\r\n                  this.getValueAtTime &&\r\n                    (valueAtTime = this.getValueAtTime.bind(this)),\r\n                  this.getVelocityAtTime &&\r\n                    (velocityAtTime = this.getVelocityAtTime.bind(this));\r\n                var comp = elem.comp.globalData.projectInterface.bind(\r\n                    elem.comp.globalData.projectInterface\r\n                  ),\r\n                  time,\r\n                  velocity,\r\n                  value,\r\n                  text,\r\n                  textIndex,\r\n                  textTotal,\r\n                  selectorValue;\r\n                function lookAt(t, e) {\r\n                  var i = [e[0] - t[0], e[1] - t[1], e[2] - t[2]],\r\n                    r =\r\n                      Math.atan2(i[0], Math.sqrt(i[1] * i[1] + i[2] * i[2])) \/\r\n                      degToRads;\r\n                  return [-Math.atan2(i[1], i[2]) \/ degToRads, r, 0];\r\n                }\r\n                function easeOut(t, e, i, r, s) {\r\n                  return applyEase(easeOutBez, t, e, i, r, s);\r\n                }\r\n                function easeIn(t, e, i, r, s) {\r\n                  return applyEase(easeInBez, t, e, i, r, s);\r\n                }\r\n                function ease(t, e, i, r, s) {\r\n                  return applyEase(easeInOutBez, t, e, i, r, s);\r\n                }\r\n                function applyEase(t, e, i, r, s, a) {\r\n                  void 0 === s ? ((s = i), (a = r)) : (e = (e - i) \/ (r - i)),\r\n                    e > 1 ? (e = 1) : e < 0 && (e = 0);\r\n                  var n = t(e);\r\n                  if ($bm_isInstanceOfArray(s)) {\r\n                    var o,\r\n                      h = s.length,\r\n                      l = createTypedArray(\"float32\", h);\r\n                    for (o = 0; o < h; o += 1) l[o] = (a[o] - s[o]) * n + s[o];\r\n                    return l;\r\n                  }\r\n                  return (a - s) * n + s;\r\n                }\r\n                function nearestKey(t) {\r\n                  var e,\r\n                    i,\r\n                    r,\r\n                    s = data.k.length;\r\n                  if (data.k.length && \"number\" != typeof data.k[0])\r\n                    if (\r\n                      ((i = -1),\r\n                      (t *= elem.comp.globalData.frameRate) < data.k[0].t)\r\n                    )\r\n                      (i = 1), (r = data.k[0].t);\r\n                    else {\r\n                      for (e = 0; e < s - 1; e += 1) {\r\n                        if (t === data.k[e].t) {\r\n                          (i = e + 1), (r = data.k[e].t);\r\n                          break;\r\n                        }\r\n                        if (t > data.k[e].t && t < data.k[e + 1].t) {\r\n                          t - data.k[e].t > data.k[e + 1].t - t\r\n                            ? ((i = e + 2), (r = data.k[e + 1].t))\r\n                            : ((i = e + 1), (r = data.k[e].t));\r\n                          break;\r\n                        }\r\n                      }\r\n                      -1 === i && ((i = e + 1), (r = data.k[e].t));\r\n                    }\r\n                  else (i = 0), (r = 0);\r\n                  var a = {};\r\n                  return (\r\n                    (a.index = i),\r\n                    (a.time = r \/ elem.comp.globalData.frameRate),\r\n                    a\r\n                  );\r\n                }\r\n                function key(t) {\r\n                  var e, i, r;\r\n                  if (!data.k.length || \"number\" == typeof data.k[0])\r\n                    throw new Error(\r\n                      \"The property has no keyframe at index \" + t\r\n                    );\r\n                  (t -= 1),\r\n                    (e = {\r\n                      time: data.k[t].t \/ elem.comp.globalData.frameRate,\r\n                      value: [],\r\n                    });\r\n                  var s = Object.prototype.hasOwnProperty.call(data.k[t], \"s\")\r\n                    ? data.k[t].s\r\n                    : data.k[t - 1].e;\r\n                  for (r = s.length, i = 0; i < r; i += 1)\r\n                    (e[i] = s[i]), (e.value[i] = s[i]);\r\n                  return e;\r\n                }\r\n                function framesToTime(t, e) {\r\n                  return e || (e = elem.comp.globalData.frameRate), t \/ e;\r\n                }\r\n                function timeToFrames(t, e) {\r\n                  return (\r\n                    t || 0 === t || (t = time),\r\n                    e || (e = elem.comp.globalData.frameRate),\r\n                    t * e\r\n                  );\r\n                }\r\n                function seedRandom(t) {\r\n                  BMMath.seedrandom(randSeed + t);\r\n                }\r\n                function sourceRectAtTime() {\r\n                  return elem.sourceRectAtTime();\r\n                }\r\n                function substring(t, e) {\r\n                  return \"string\" == typeof value\r\n                    ? void 0 === e\r\n                      ? value.substring(t)\r\n                      : value.substring(t, e)\r\n                    : \"\";\r\n                }\r\n                function substr(t, e) {\r\n                  return \"string\" == typeof value\r\n                    ? void 0 === e\r\n                      ? value.substr(t)\r\n                      : value.substr(t, e)\r\n                    : \"\";\r\n                }\r\n                function posterizeTime(t) {\r\n                  (time = 0 === t ? 0 : Math.floor(time * t) \/ t),\r\n                    (value = valueAtTime(time));\r\n                }\r\n                var index = elem.data.ind,\r\n                  hasParent = !(!elem.hierarchy || !elem.hierarchy.length),\r\n                  parent,\r\n                  randSeed = Math.floor(1e6 * Math.random()),\r\n                  globalData = elem.globalData;\r\n                function executeExpression(t) {\r\n                  return (\r\n                    (value = t),\r\n                    this.frameExpressionId === elem.globalData.frameId &&\r\n                    \"textSelector\" !== this.propType\r\n                      ? value\r\n                      : (\"textSelector\" === this.propType &&\r\n                          ((textIndex = this.textIndex),\r\n                          (textTotal = this.textTotal),\r\n                          (selectorValue = this.selectorValue)),\r\n                        thisLayer ||\r\n                          ((text = elem.layerInterface.text),\r\n                          (thisLayer = elem.layerInterface),\r\n                          (thisComp = elem.comp.compInterface),\r\n                          (toWorld = thisLayer.toWorld.bind(thisLayer)),\r\n                          (fromWorld = thisLayer.fromWorld.bind(thisLayer)),\r\n                          (fromComp = thisLayer.fromComp.bind(thisLayer)),\r\n                          (toComp = thisLayer.toComp.bind(thisLayer)),\r\n                          (mask = thisLayer.mask\r\n                            ? thisLayer.mask.bind(thisLayer)\r\n                            : null),\r\n                          (fromCompToSurface = fromComp)),\r\n                        transform ||\r\n                          ((transform = elem.layerInterface(\r\n                            \"ADBE Transform Group\"\r\n                          )),\r\n                          ($bm_transform = transform),\r\n                          transform && (anchorPoint = transform.anchorPoint)),\r\n                        4 !== elemType ||\r\n                          content ||\r\n                          (content = thisLayer(\"ADBE Root Vectors Group\")),\r\n                        effect || (effect = thisLayer(4)),\r\n                        (hasParent = !(\r\n                          !elem.hierarchy || !elem.hierarchy.length\r\n                        )) &&\r\n                          !parent &&\r\n                          (parent = elem.hierarchy[0].layerInterface),\r\n                        (time =\r\n                          this.comp.renderedFrame \/\r\n                          this.comp.globalData.frameRate),\r\n                        _needsRandom && seedRandom(randSeed + time),\r\n                        needsVelocity && (velocity = velocityAtTime(time)),\r\n                        expression_function(),\r\n                        (this.frameExpressionId = elem.globalData.frameId),\r\n                        (scoped_bm_rt =\r\n                          scoped_bm_rt.propType === propTypes.SHAPE\r\n                            ? scoped_bm_rt.v\r\n                            : scoped_bm_rt))\r\n                  );\r\n                }\r\n                return (\r\n                  (executeExpression.__preventDeadCodeRemoval = [\r\n                    $bm_transform,\r\n                    anchorPoint,\r\n                    time,\r\n                    velocity,\r\n                    inPoint,\r\n                    outPoint,\r\n                    width,\r\n                    height,\r\n                    name,\r\n                    loop_in,\r\n                    loop_out,\r\n                    smooth,\r\n                    toComp,\r\n                    fromCompToSurface,\r\n                    toWorld,\r\n                    fromWorld,\r\n                    mask,\r\n                    position,\r\n                    rotation,\r\n                    scale,\r\n                    thisComp,\r\n                    numKeys,\r\n                    active,\r\n                    wiggle,\r\n                    loopInDuration,\r\n                    loopOutDuration,\r\n                    comp,\r\n                    lookAt,\r\n                    easeOut,\r\n                    easeIn,\r\n                    ease,\r\n                    nearestKey,\r\n                    key,\r\n                    text,\r\n                    textIndex,\r\n                    textTotal,\r\n                    selectorValue,\r\n                    framesToTime,\r\n                    timeToFrames,\r\n                    sourceRectAtTime,\r\n                    substring,\r\n                    substr,\r\n                    posterizeTime,\r\n                    index,\r\n                    globalData,\r\n                  ]),\r\n                  executeExpression\r\n                );\r\n              }\r\n              return (\r\n                (ob.initiateExpression = initiateExpression),\r\n                (ob.__preventDeadCodeRemoval = [\r\n                  window,\r\n                  document,\r\n                  XMLHttpRequest,\r\n                  fetch,\r\n                  frames,\r\n                  $bm_neg,\r\n                  add,\r\n                  $bm_sum,\r\n                  $bm_sub,\r\n                  $bm_mul,\r\n                  $bm_div,\r\n                  $bm_mod,\r\n                  clamp,\r\n                  radians_to_degrees,\r\n                  degreesToRadians,\r\n                  degrees_to_radians,\r\n                  normalize,\r\n                  rgbToHsl,\r\n                  hslToRgb,\r\n                  linear,\r\n                  random,\r\n                  createPath,\r\n                  _lottieGlobal,\r\n                ]),\r\n                (ob.resetFrame = resetFrame),\r\n                ob\r\n              );\r\n            })(),\r\n            Expressions = (function () {\r\n              var t = {};\r\n              return (\r\n                (t.initExpressions = function (t) {\r\n                  var e = 0,\r\n                    i = [];\r\n                  (t.renderer.compInterface = CompExpressionInterface(\r\n                    t.renderer\r\n                  )),\r\n                    t.renderer.globalData.projectInterface.registerComposition(\r\n                      t.renderer\r\n                    ),\r\n                    (t.renderer.globalData.pushExpression = function () {\r\n                      e += 1;\r\n                    }),\r\n                    (t.renderer.globalData.popExpression = function () {\r\n                      0 == (e -= 1) &&\r\n                        (function () {\r\n                          var t,\r\n                            e = i.length;\r\n                          for (t = 0; t < e; t += 1) i[t].release();\r\n                          i.length = 0;\r\n                        })();\r\n                    }),\r\n                    (t.renderer.globalData.registerExpressionProperty =\r\n                      function (t) {\r\n                        -1 === i.indexOf(t) && i.push(t);\r\n                      });\r\n                }),\r\n                (t.resetFrame = ExpressionManager.resetFrame),\r\n                t\r\n              );\r\n            })(),\r\n            MaskManagerInterface = (function () {\r\n              function t(t, e) {\r\n                (this._mask = t), (this._data = e);\r\n              }\r\n              Object.defineProperty(t.prototype, \"maskPath\", {\r\n                get: function () {\r\n                  return (\r\n                    this._mask.prop.k && this._mask.prop.getValue(),\r\n                    this._mask.prop\r\n                  );\r\n                },\r\n              }),\r\n                Object.defineProperty(t.prototype, \"maskOpacity\", {\r\n                  get: function () {\r\n                    return (\r\n                      this._mask.op.k && this._mask.op.getValue(),\r\n                      100 * this._mask.op.v\r\n                    );\r\n                  },\r\n                });\r\n              return function (e) {\r\n                var i,\r\n                  r = createSizedArray(e.viewData.length),\r\n                  s = e.viewData.length;\r\n                for (i = 0; i < s; i += 1)\r\n                  r[i] = new t(e.viewData[i], e.masksProperties[i]);\r\n                return function (t) {\r\n                  for (i = 0; i < s; ) {\r\n                    if (e.masksProperties[i].nm === t) return r[i];\r\n                    i += 1;\r\n                  }\r\n                  return null;\r\n                };\r\n              };\r\n            })(),\r\n            ExpressionPropertyInterface = (function () {\r\n              var t = { pv: 0, v: 0, mult: 1 },\r\n                e = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\r\n              function i(t, e, i) {\r\n                Object.defineProperty(t, \"velocity\", {\r\n                  get: function () {\r\n                    return e.getVelocityAtTime(e.comp.currentFrame);\r\n                  },\r\n                }),\r\n                  (t.numKeys = e.keyframes ? e.keyframes.length : 0),\r\n                  (t.key = function (r) {\r\n                    if (!t.numKeys) return 0;\r\n                    var s = \"\";\r\n                    s =\r\n                      \"s\" in e.keyframes[r - 1]\r\n                        ? e.keyframes[r - 1].s\r\n                        : \"e\" in e.keyframes[r - 2]\r\n                        ? e.keyframes[r - 2].e\r\n                        : e.keyframes[r - 2].s;\r\n                    var a =\r\n                      \"unidimensional\" === i\r\n                        ? new Number(s)\r\n                        : Object.assign({}, s);\r\n                    return (\r\n                      (a.time =\r\n                        e.keyframes[r - 1].t \/\r\n                        e.elem.comp.globalData.frameRate),\r\n                      (a.value = \"unidimensional\" === i ? s[0] : s),\r\n                      a\r\n                    );\r\n                  }),\r\n                  (t.valueAtTime = e.getValueAtTime),\r\n                  (t.speedAtTime = e.getSpeedAtTime),\r\n                  (t.velocityAtTime = e.getVelocityAtTime),\r\n                  (t.propertyGroup = e.propertyGroup);\r\n              }\r\n              function r() {\r\n                return t;\r\n              }\r\n              return function (s) {\r\n                return s\r\n                  ? \"unidimensional\" === s.propType\r\n                    ? (function (e) {\r\n                        (e && \"pv\" in e) || (e = t);\r\n                        var r = 1 \/ e.mult,\r\n                          s = e.pv * r,\r\n                          a = new Number(s);\r\n                        return (\r\n                          (a.value = s),\r\n                          i(a, e, \"unidimensional\"),\r\n                          function () {\r\n                            return (\r\n                              e.k && e.getValue(),\r\n                              (s = e.v * r),\r\n                              a.value !== s &&\r\n                                (((a = new Number(s)).value = s),\r\n                                i(a, e, \"unidimensional\")),\r\n                              a\r\n                            );\r\n                          }\r\n                        );\r\n                      })(s)\r\n                    : (function (t) {\r\n                        (t && \"pv\" in t) || (t = e);\r\n                        var r = 1 \/ t.mult,\r\n                          s = (t.data && t.data.l) || t.pv.length,\r\n                          a = createTypedArray(\"float32\", s),\r\n                          n = createTypedArray(\"float32\", s);\r\n                        return (\r\n                          (a.value = n),\r\n                          i(a, t, \"multidimensional\"),\r\n                          function () {\r\n                            t.k && t.getValue();\r\n                            for (var e = 0; e < s; e += 1)\r\n                              (n[e] = t.v[e] * r), (a[e] = n[e]);\r\n                            return a;\r\n                          }\r\n                        );\r\n                      })(s)\r\n                  : r;\r\n              };\r\n            })(),\r\n            TransformExpressionInterface = function (t) {\r\n              function e(t) {\r\n                switch (t) {\r\n                  case \"scale\":\r\n                  case \"Scale\":\r\n                  case \"ADBE Scale\":\r\n                  case 6:\r\n                    return e.scale;\r\n                  case \"rotation\":\r\n                  case \"Rotation\":\r\n                  case \"ADBE Rotation\":\r\n                  case \"ADBE Rotate Z\":\r\n                  case 10:\r\n                    return e.rotation;\r\n                  case \"ADBE Rotate X\":\r\n                    return e.xRotation;\r\n                  case \"ADBE Rotate Y\":\r\n                    return e.yRotation;\r\n                  case \"position\":\r\n                  case \"Position\":\r\n                  case \"ADBE Position\":\r\n                  case 2:\r\n                    return e.position;\r\n                  case \"ADBE Position_0\":\r\n                    return e.xPosition;\r\n                  case \"ADBE Position_1\":\r\n                    return e.yPosition;\r\n                  case \"ADBE Position_2\":\r\n                    return e.zPosition;\r\n                  case \"anchorPoint\":\r\n                  case \"AnchorPoint\":\r\n                  case \"Anchor Point\":\r\n                  case \"ADBE AnchorPoint\":\r\n                  case 1:\r\n                    return e.anchorPoint;\r\n                  case \"opacity\":\r\n                  case \"Opacity\":\r\n                  case 11:\r\n                    return e.opacity;\r\n                  default:\r\n                    return null;\r\n                }\r\n              }\r\n              var i, r, s, a;\r\n              return (\r\n                Object.defineProperty(e, \"rotation\", {\r\n                  get: ExpressionPropertyInterface(t.r || t.rz),\r\n                }),\r\n                Object.defineProperty(e, \"zRotation\", {\r\n                  get: ExpressionPropertyInterface(t.rz || t.r),\r\n                }),\r\n                Object.defineProperty(e, \"xRotation\", {\r\n                  get: ExpressionPropertyInterface(t.rx),\r\n                }),\r\n                Object.defineProperty(e, \"yRotation\", {\r\n                  get: ExpressionPropertyInterface(t.ry),\r\n                }),\r\n                Object.defineProperty(e, \"scale\", {\r\n                  get: ExpressionPropertyInterface(t.s),\r\n                }),\r\n                t.p\r\n                  ? (a = ExpressionPropertyInterface(t.p))\r\n                  : ((i = ExpressionPropertyInterface(t.px)),\r\n                    (r = ExpressionPropertyInterface(t.py)),\r\n                    t.pz && (s = ExpressionPropertyInterface(t.pz))),\r\n                Object.defineProperty(e, \"position\", {\r\n                  get: function () {\r\n                    return t.p ? a() : [i(), r(), s ? s() : 0];\r\n                  },\r\n                }),\r\n                Object.defineProperty(e, \"xPosition\", {\r\n                  get: ExpressionPropertyInterface(t.px),\r\n                }),\r\n                Object.defineProperty(e, \"yPosition\", {\r\n                  get: ExpressionPropertyInterface(t.py),\r\n                }),\r\n                Object.defineProperty(e, \"zPosition\", {\r\n                  get: ExpressionPropertyInterface(t.pz),\r\n                }),\r\n                Object.defineProperty(e, \"anchorPoint\", {\r\n                  get: ExpressionPropertyInterface(t.a),\r\n                }),\r\n                Object.defineProperty(e, \"opacity\", {\r\n                  get: ExpressionPropertyInterface(t.o),\r\n                }),\r\n                Object.defineProperty(e, \"skew\", {\r\n                  get: ExpressionPropertyInterface(t.sk),\r\n                }),\r\n                Object.defineProperty(e, \"skewAxis\", {\r\n                  get: ExpressionPropertyInterface(t.sa),\r\n                }),\r\n                Object.defineProperty(e, \"orientation\", {\r\n                  get: ExpressionPropertyInterface(t.or),\r\n                }),\r\n                e\r\n              );\r\n            },\r\n            LayerExpressionInterface = (function () {\r\n              function t(t) {\r\n                var e = new Matrix();\r\n                void 0 !== t\r\n                  ? this._elem.finalTransform.mProp.getValueAtTime(t).clone(e)\r\n                  : this._elem.finalTransform.mProp.applyToMatrix(e);\r\n                return e;\r\n              }\r\n              function e(t, e) {\r\n                var i = this.getMatrix(e);\r\n                return (\r\n                  (i.props[12] = 0),\r\n                  (i.props[13] = 0),\r\n                  (i.props[14] = 0),\r\n                  this.applyPoint(i, t)\r\n                );\r\n              }\r\n              function i(t, e) {\r\n                var i = this.getMatrix(e);\r\n                return this.applyPoint(i, t);\r\n              }\r\n              function r(t, e) {\r\n                var i = this.getMatrix(e);\r\n                return (\r\n                  (i.props[12] = 0),\r\n                  (i.props[13] = 0),\r\n                  (i.props[14] = 0),\r\n                  this.invertPoint(i, t)\r\n                );\r\n              }\r\n              function s(t, e) {\r\n                var i = this.getMatrix(e);\r\n                return this.invertPoint(i, t);\r\n              }\r\n              function a(t, e) {\r\n                if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n                  var i,\r\n                    r = this._elem.hierarchy.length;\r\n                  for (i = 0; i < r; i += 1)\r\n                    this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(\r\n                      t\r\n                    );\r\n                }\r\n                return t.applyToPointArray(e[0], e[1], e[2] || 0);\r\n              }\r\n              function n(t, e) {\r\n                if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n                  var i,\r\n                    r = this._elem.hierarchy.length;\r\n                  for (i = 0; i < r; i += 1)\r\n                    this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(\r\n                      t\r\n                    );\r\n                }\r\n                return t.inversePoint(e);\r\n              }\r\n              function o(t) {\r\n                var e = new Matrix();\r\n                if (\r\n                  (e.reset(),\r\n                  this._elem.finalTransform.mProp.applyToMatrix(e),\r\n                  this._elem.hierarchy && this._elem.hierarchy.length)\r\n                ) {\r\n                  var i,\r\n                    r = this._elem.hierarchy.length;\r\n                  for (i = 0; i < r; i += 1)\r\n                    this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(\r\n                      e\r\n                    );\r\n                  return e.inversePoint(t);\r\n                }\r\n                return e.inversePoint(t);\r\n              }\r\n              function h() {\r\n                return [1, 1, 1, 1];\r\n              }\r\n              return function (l) {\r\n                var p;\r\n                function f(t) {\r\n                  switch (t) {\r\n                    case \"ADBE Root Vectors Group\":\r\n                    case \"Contents\":\r\n                    case 2:\r\n                      return f.shapeInterface;\r\n                    case 1:\r\n                    case 6:\r\n                    case \"Transform\":\r\n                    case \"transform\":\r\n                    case \"ADBE Transform Group\":\r\n                      return p;\r\n                    case 4:\r\n                    case \"ADBE Effect Parade\":\r\n                    case \"effects\":\r\n                    case \"Effects\":\r\n                      return f.effect;\r\n                    case \"ADBE Text Properties\":\r\n                      return f.textInterface;\r\n                    default:\r\n                      return null;\r\n                  }\r\n                }\r\n                (f.getMatrix = t),\r\n                  (f.invertPoint = n),\r\n                  (f.applyPoint = a),\r\n                  (f.toWorld = i),\r\n                  (f.toWorldVec = e),\r\n                  (f.fromWorld = s),\r\n                  (f.fromWorldVec = r),\r\n                  (f.toComp = i),\r\n                  (f.fromComp = o),\r\n                  (f.sampleImage = h),\r\n                  (f.sourceRectAtTime = l.sourceRectAtTime.bind(l)),\r\n                  (f._elem = l);\r\n                var m = getDescriptor(\r\n                  (p = TransformExpressionInterface(l.finalTransform.mProp)),\r\n                  \"anchorPoint\"\r\n                );\r\n                return (\r\n                  Object.defineProperties(f, {\r\n                    hasParent: {\r\n                      get: function () {\r\n                        return l.hierarchy.length;\r\n                      },\r\n                    },\r\n                    parent: {\r\n                      get: function () {\r\n                        return l.hierarchy[0].layerInterface;\r\n                      },\r\n                    },\r\n                    rotation: getDescriptor(p, \"rotation\"),\r\n                    scale: getDescriptor(p, \"scale\"),\r\n                    position: getDescriptor(p, \"position\"),\r\n                    opacity: getDescriptor(p, \"opacity\"),\r\n                    anchorPoint: m,\r\n                    anchor_point: m,\r\n                    transform: {\r\n                      get: function () {\r\n                        return p;\r\n                      },\r\n                    },\r\n                    active: {\r\n                      get: function () {\r\n                        return l.isInRange;\r\n                      },\r\n                    },\r\n                  }),\r\n                  (f.startTime = l.data.st),\r\n                  (f.index = l.data.ind),\r\n                  (f.source = l.data.refId),\r\n                  (f.height = 0 === l.data.ty ? l.data.h : 100),\r\n                  (f.width = 0 === l.data.ty ? l.data.w : 100),\r\n                  (f.inPoint = l.data.ip \/ l.comp.globalData.frameRate),\r\n                  (f.outPoint = l.data.op \/ l.comp.globalData.frameRate),\r\n                  (f._name = l.data.nm),\r\n                  (f.registerMaskInterface = function (t) {\r\n                    f.mask = new MaskManagerInterface(t, l);\r\n                  }),\r\n                  (f.registerEffectsInterface = function (t) {\r\n                    f.effect = t;\r\n                  }),\r\n                  f\r\n                );\r\n              };\r\n            })(),\r\n            propertyGroupFactory = function (t, e) {\r\n              return function (i) {\r\n                return (i = void 0 === i ? 1 : i) <= 0 ? t : e(i - 1);\r\n              };\r\n            },\r\n            PropertyInterface = function (t, e) {\r\n              var i = { _name: t };\r\n              return function (t) {\r\n                return (t = void 0 === t ? 1 : t) <= 0 ? i : e(t - 1);\r\n              };\r\n            },\r\n            EffectsExpressionInterface = (function () {\r\n              function t(i, r, s, a) {\r\n                function n(t) {\r\n                  for (var e = i.ef, r = 0, s = e.length; r < s; ) {\r\n                    if (t === e[r].nm || t === e[r].mn || t === e[r].ix)\r\n                      return 5 === e[r].ty ? l[r] : l[r]();\r\n                    r += 1;\r\n                  }\r\n                  throw new Error();\r\n                }\r\n                var o,\r\n                  h = propertyGroupFactory(n, s),\r\n                  l = [],\r\n                  p = i.ef.length;\r\n                for (o = 0; o < p; o += 1)\r\n                  5 === i.ef[o].ty\r\n                    ? l.push(\r\n                        t(\r\n                          i.ef[o],\r\n                          r.effectElements[o],\r\n                          r.effectElements[o].propertyGroup,\r\n                          a\r\n                        )\r\n                      )\r\n                    : l.push(e(r.effectElements[o], i.ef[o].ty, a, h));\r\n                return (\r\n                  \"ADBE Color Control\" === i.mn &&\r\n                    Object.defineProperty(n, \"color\", {\r\n                      get: function () {\r\n                        return l[0]();\r\n                      },\r\n                    }),\r\n                  Object.defineProperties(n, {\r\n                    numProperties: {\r\n                      get: function () {\r\n                        return i.np;\r\n                      },\r\n                    },\r\n                    _name: { value: i.nm },\r\n                    propertyGroup: { value: h },\r\n                  }),\r\n                  (n.enabled = 0 !== i.en),\r\n                  (n.active = n.enabled),\r\n                  n\r\n                );\r\n              }\r\n              function e(t, e, i, r) {\r\n                var s = ExpressionPropertyInterface(t.p);\r\n                return (\r\n                  t.p.setGroupProperty &&\r\n                    t.p.setGroupProperty(PropertyInterface(\"\", r)),\r\n                  function () {\r\n                    return 10 === e ? i.comp.compInterface(t.p.v) : s();\r\n                  }\r\n                );\r\n              }\r\n              return {\r\n                createEffectsInterface: function (e, i) {\r\n                  if (e.effectsManager) {\r\n                    var r,\r\n                      s = [],\r\n                      a = e.data.ef,\r\n                      n = e.effectsManager.effectElements.length;\r\n                    for (r = 0; r < n; r += 1)\r\n                      s.push(t(a[r], e.effectsManager.effectElements[r], i, e));\r\n                    var o = e.data.ef || [],\r\n                      h = function (t) {\r\n                        for (r = 0, n = o.length; r < n; ) {\r\n                          if (t === o[r].nm || t === o[r].mn || t === o[r].ix)\r\n                            return s[r];\r\n                          r += 1;\r\n                        }\r\n                        return null;\r\n                      };\r\n                    return (\r\n                      Object.defineProperty(h, \"numProperties\", {\r\n                        get: function () {\r\n                          return o.length;\r\n                        },\r\n                      }),\r\n                      h\r\n                    );\r\n                  }\r\n                  return null;\r\n                },\r\n              };\r\n            })(),\r\n            ShapePathInterface = function (t, e, i) {\r\n              var r = e.sh;\r\n              function s(t) {\r\n                return \"Shape\" === t ||\r\n                  \"shape\" === t ||\r\n                  \"Path\" === t ||\r\n                  \"path\" === t ||\r\n                  \"ADBE Vector Shape\" === t ||\r\n                  2 === t\r\n                  ? s.path\r\n                  : null;\r\n              }\r\n              var a = propertyGroupFactory(s, i);\r\n              return (\r\n                r.setGroupProperty(PropertyInterface(\"Path\", a)),\r\n                Object.defineProperties(s, {\r\n                  path: {\r\n                    get: function () {\r\n                      return r.k && r.getValue(), r;\r\n                    },\r\n                  },\r\n                  shape: {\r\n                    get: function () {\r\n                      return r.k && r.getValue(), r;\r\n                    },\r\n                  },\r\n                  _name: { value: t.nm },\r\n                  ix: { value: t.ix },\r\n                  propertyIndex: { value: t.ix },\r\n                  mn: { value: t.mn },\r\n                  propertyGroup: { value: i },\r\n                }),\r\n                s\r\n              );\r\n            },\r\n            ShapeExpressionInterface = (function () {\r\n              function t(t, o, c) {\r\n                var d,\r\n                  u = [],\r\n                  y = t ? t.length : 0;\r\n                for (d = 0; d < y; d += 1)\r\n                  \"gr\" === t[d].ty\r\n                    ? u.push(e(t[d], o[d], c))\r\n                    : \"fl\" === t[d].ty\r\n                    ? u.push(i(t[d], o[d], c))\r\n                    : \"st\" === t[d].ty\r\n                    ? u.push(a(t[d], o[d], c))\r\n                    : \"tm\" === t[d].ty\r\n                    ? u.push(n(t[d], o[d], c))\r\n                    : \"tr\" === t[d].ty ||\r\n                      (\"el\" === t[d].ty\r\n                        ? u.push(h(t[d], o[d], c))\r\n                        : \"sr\" === t[d].ty\r\n                        ? u.push(l(t[d], o[d], c))\r\n                        : \"sh\" === t[d].ty\r\n                        ? u.push(ShapePathInterface(t[d], o[d], c))\r\n                        : \"rc\" === t[d].ty\r\n                        ? u.push(p(t[d], o[d], c))\r\n                        : \"rd\" === t[d].ty\r\n                        ? u.push(f(t[d], o[d], c))\r\n                        : \"rp\" === t[d].ty\r\n                        ? u.push(m(t[d], o[d], c))\r\n                        : \"gf\" === t[d].ty\r\n                        ? u.push(r(t[d], o[d], c))\r\n                        : u.push(s(t[d], o[d])));\r\n                return u;\r\n              }\r\n              function e(e, i, r) {\r\n                var s = function (t) {\r\n                  switch (t) {\r\n                    case \"ADBE Vectors Group\":\r\n                    case \"Contents\":\r\n                    case 2:\r\n                      return s.content;\r\n                    default:\r\n                      return s.transform;\r\n                  }\r\n                };\r\n                s.propertyGroup = propertyGroupFactory(s, r);\r\n                var a = (function (e, i, r) {\r\n                    var s,\r\n                      a = function (t) {\r\n                        for (var e = 0, i = s.length; e < i; ) {\r\n                          if (\r\n                            s[e]._name === t ||\r\n                            s[e].mn === t ||\r\n                            s[e].propertyIndex === t ||\r\n                            s[e].ix === t ||\r\n                            s[e].ind === t\r\n                          )\r\n                            return s[e];\r\n                          e += 1;\r\n                        }\r\n                        return \"number\" == typeof t ? s[t - 1] : null;\r\n                      };\r\n                    (a.propertyGroup = propertyGroupFactory(a, r)),\r\n                      (s = t(e.it, i.it, a.propertyGroup)),\r\n                      (a.numProperties = s.length);\r\n                    var n = o(\r\n                      e.it[e.it.length - 1],\r\n                      i.it[i.it.length - 1],\r\n                      a.propertyGroup\r\n                    );\r\n                    return (\r\n                      (a.transform = n),\r\n                      (a.propertyIndex = e.cix),\r\n                      (a._name = e.nm),\r\n                      a\r\n                    );\r\n                  })(e, i, s.propertyGroup),\r\n                  n = o(\r\n                    e.it[e.it.length - 1],\r\n                    i.it[i.it.length - 1],\r\n                    s.propertyGroup\r\n                  );\r\n                return (\r\n                  (s.content = a),\r\n                  (s.transform = n),\r\n                  Object.defineProperty(s, \"_name\", {\r\n                    get: function () {\r\n                      return e.nm;\r\n                    },\r\n                  }),\r\n                  (s.numProperties = e.np),\r\n                  (s.propertyIndex = e.ix),\r\n                  (s.nm = e.nm),\r\n                  (s.mn = e.mn),\r\n                  s\r\n                );\r\n              }\r\n              function i(t, e, i) {\r\n                function r(t) {\r\n                  return \"Color\" === t || \"color\" === t\r\n                    ? r.color\r\n                    : \"Opacity\" === t || \"opacity\" === t\r\n                    ? r.opacity\r\n                    : null;\r\n                }\r\n                return (\r\n                  Object.defineProperties(r, {\r\n                    color: { get: ExpressionPropertyInterface(e.c) },\r\n                    opacity: { get: ExpressionPropertyInterface(e.o) },\r\n                    _name: { value: t.nm },\r\n                    mn: { value: t.mn },\r\n                  }),\r\n                  e.c.setGroupProperty(PropertyInterface(\"Color\", i)),\r\n                  e.o.setGroupProperty(PropertyInterface(\"Opacity\", i)),\r\n                  r\r\n                );\r\n              }\r\n              function r(t, e, i) {\r\n                function r(t) {\r\n                  return \"Start Point\" === t || \"start point\" === t\r\n                    ? r.startPoint\r\n                    : \"End Point\" === t || \"end point\" === t\r\n                    ? r.endPoint\r\n                    : \"Opacity\" === t || \"opacity\" === t\r\n                    ? r.opacity\r\n                    : null;\r\n                }\r\n                return (\r\n                  Object.defineProperties(r, {\r\n                    startPoint: { get: ExpressionPropertyInterface(e.s) },\r\n                    endPoint: { get: ExpressionPropertyInterface(e.e) },\r\n                    opacity: { get: ExpressionPropertyInterface(e.o) },\r\n                    type: {\r\n                      get: function () {\r\n                        return \"a\";\r\n                      },\r\n                    },\r\n                    _name: { value: t.nm },\r\n                    mn: { value: t.mn },\r\n                  }),\r\n                  e.s.setGroupProperty(PropertyInterface(\"Start Point\", i)),\r\n                  e.e.setGroupProperty(PropertyInterface(\"End Point\", i)),\r\n                  e.o.setGroupProperty(PropertyInterface(\"Opacity\", i)),\r\n                  r\r\n                );\r\n              }\r\n              function s() {\r\n                return function () {\r\n                  return null;\r\n                };\r\n              }\r\n              function a(t, e, i) {\r\n                var r,\r\n                  s = propertyGroupFactory(l, i),\r\n                  a = propertyGroupFactory(h, s);\r\n                function n(i) {\r\n                  Object.defineProperty(h, t.d[i].nm, {\r\n                    get: ExpressionPropertyInterface(e.d.dataProps[i].p),\r\n                  });\r\n                }\r\n                var o = t.d ? t.d.length : 0,\r\n                  h = {};\r\n                for (r = 0; r < o; r += 1)\r\n                  n(r), e.d.dataProps[r].p.setGroupProperty(a);\r\n                function l(t) {\r\n                  return \"Color\" === t || \"color\" === t\r\n                    ? l.color\r\n                    : \"Opacity\" === t || \"opacity\" === t\r\n                    ? l.opacity\r\n                    : \"Stroke Width\" === t || \"stroke width\" === t\r\n                    ? l.strokeWidth\r\n                    : null;\r\n                }\r\n                return (\r\n                  Object.defineProperties(l, {\r\n                    color: { get: ExpressionPropertyInterface(e.c) },\r\n                    opacity: { get: ExpressionPropertyInterface(e.o) },\r\n                    strokeWidth: { get: ExpressionPropertyInterface(e.w) },\r\n                    dash: {\r\n                      get: function () {\r\n                        return h;\r\n                      },\r\n                    },\r\n                    _name: { value: t.nm },\r\n                    mn: { value: t.mn },\r\n                  }),\r\n                  e.c.setGroupProperty(PropertyInterface(\"Color\", s)),\r\n                  e.o.setGroupProperty(PropertyInterface(\"Opacity\", s)),\r\n                  e.w.setGroupProperty(PropertyInterface(\"Stroke Width\", s)),\r\n                  l\r\n                );\r\n              }\r\n              function n(t, e, i) {\r\n                function r(e) {\r\n                  return e === t.e.ix || \"End\" === e || \"end\" === e\r\n                    ? r.end\r\n                    : e === t.s.ix\r\n                    ? r.start\r\n                    : e === t.o.ix\r\n                    ? r.offset\r\n                    : null;\r\n                }\r\n                var s = propertyGroupFactory(r, i);\r\n                return (\r\n                  (r.propertyIndex = t.ix),\r\n                  e.s.setGroupProperty(PropertyInterface(\"Start\", s)),\r\n                  e.e.setGroupProperty(PropertyInterface(\"End\", s)),\r\n                  e.o.setGroupProperty(PropertyInterface(\"Offset\", s)),\r\n                  (r.propertyIndex = t.ix),\r\n                  (r.propertyGroup = i),\r\n                  Object.defineProperties(r, {\r\n                    start: { get: ExpressionPropertyInterface(e.s) },\r\n                    end: { get: ExpressionPropertyInterface(e.e) },\r\n                    offset: { get: ExpressionPropertyInterface(e.o) },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.mn = t.mn),\r\n                  r\r\n                );\r\n              }\r\n              function o(t, e, i) {\r\n                function r(e) {\r\n                  return t.a.ix === e || \"Anchor Point\" === e\r\n                    ? r.anchorPoint\r\n                    : t.o.ix === e || \"Opacity\" === e\r\n                    ? r.opacity\r\n                    : t.p.ix === e || \"Position\" === e\r\n                    ? r.position\r\n                    : t.r.ix === e ||\r\n                      \"Rotation\" === e ||\r\n                      \"ADBE Vector Rotation\" === e\r\n                    ? r.rotation\r\n                    : t.s.ix === e || \"Scale\" === e\r\n                    ? r.scale\r\n                    : (t.sk && t.sk.ix === e) || \"Skew\" === e\r\n                    ? r.skew\r\n                    : (t.sa && t.sa.ix === e) || \"Skew Axis\" === e\r\n                    ? r.skewAxis\r\n                    : null;\r\n                }\r\n                var s = propertyGroupFactory(r, i);\r\n                return (\r\n                  e.transform.mProps.o.setGroupProperty(\r\n                    PropertyInterface(\"Opacity\", s)\r\n                  ),\r\n                  e.transform.mProps.p.setGroupProperty(\r\n                    PropertyInterface(\"Position\", s)\r\n                  ),\r\n                  e.transform.mProps.a.setGroupProperty(\r\n                    PropertyInterface(\"Anchor Point\", s)\r\n                  ),\r\n                  e.transform.mProps.s.setGroupProperty(\r\n                    PropertyInterface(\"Scale\", s)\r\n                  ),\r\n                  e.transform.mProps.r.setGroupProperty(\r\n                    PropertyInterface(\"Rotation\", s)\r\n                  ),\r\n                  e.transform.mProps.sk &&\r\n                    (e.transform.mProps.sk.setGroupProperty(\r\n                      PropertyInterface(\"Skew\", s)\r\n                    ),\r\n                    e.transform.mProps.sa.setGroupProperty(\r\n                      PropertyInterface(\"Skew Angle\", s)\r\n                    )),\r\n                  e.transform.op.setGroupProperty(\r\n                    PropertyInterface(\"Opacity\", s)\r\n                  ),\r\n                  Object.defineProperties(r, {\r\n                    opacity: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.o),\r\n                    },\r\n                    position: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.p),\r\n                    },\r\n                    anchorPoint: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.a),\r\n                    },\r\n                    scale: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.s),\r\n                    },\r\n                    rotation: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.r),\r\n                    },\r\n                    skew: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.sk),\r\n                    },\r\n                    skewAxis: {\r\n                      get: ExpressionPropertyInterface(e.transform.mProps.sa),\r\n                    },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.ty = \"tr\"),\r\n                  (r.mn = t.mn),\r\n                  (r.propertyGroup = i),\r\n                  r\r\n                );\r\n              }\r\n              function h(t, e, i) {\r\n                function r(e) {\r\n                  return t.p.ix === e\r\n                    ? r.position\r\n                    : t.s.ix === e\r\n                    ? r.size\r\n                    : null;\r\n                }\r\n                var s = propertyGroupFactory(r, i);\r\n                r.propertyIndex = t.ix;\r\n                var a = \"tm\" === e.sh.ty ? e.sh.prop : e.sh;\r\n                return (\r\n                  a.s.setGroupProperty(PropertyInterface(\"Size\", s)),\r\n                  a.p.setGroupProperty(PropertyInterface(\"Position\", s)),\r\n                  Object.defineProperties(r, {\r\n                    size: { get: ExpressionPropertyInterface(a.s) },\r\n                    position: { get: ExpressionPropertyInterface(a.p) },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.mn = t.mn),\r\n                  r\r\n                );\r\n              }\r\n              function l(t, e, i) {\r\n                function r(e) {\r\n                  return t.p.ix === e\r\n                    ? r.position\r\n                    : t.r.ix === e\r\n                    ? r.rotation\r\n                    : t.pt.ix === e\r\n                    ? r.points\r\n                    : t.or.ix === e || \"ADBE Vector Star Outer Radius\" === e\r\n                    ? r.outerRadius\r\n                    : t.os.ix === e\r\n                    ? r.outerRoundness\r\n                    : !t.ir ||\r\n                      (t.ir.ix !== e && \"ADBE Vector Star Inner Radius\" !== e)\r\n                    ? t.is && t.is.ix === e\r\n                      ? r.innerRoundness\r\n                      : null\r\n                    : r.innerRadius;\r\n                }\r\n                var s = propertyGroupFactory(r, i),\r\n                  a = \"tm\" === e.sh.ty ? e.sh.prop : e.sh;\r\n                return (\r\n                  (r.propertyIndex = t.ix),\r\n                  a.or.setGroupProperty(PropertyInterface(\"Outer Radius\", s)),\r\n                  a.os.setGroupProperty(\r\n                    PropertyInterface(\"Outer Roundness\", s)\r\n                  ),\r\n                  a.pt.setGroupProperty(PropertyInterface(\"Points\", s)),\r\n                  a.p.setGroupProperty(PropertyInterface(\"Position\", s)),\r\n                  a.r.setGroupProperty(PropertyInterface(\"Rotation\", s)),\r\n                  t.ir &&\r\n                    (a.ir.setGroupProperty(\r\n                      PropertyInterface(\"Inner Radius\", s)\r\n                    ),\r\n                    a.is.setGroupProperty(\r\n                      PropertyInterface(\"Inner Roundness\", s)\r\n                    )),\r\n                  Object.defineProperties(r, {\r\n                    position: { get: ExpressionPropertyInterface(a.p) },\r\n                    rotation: { get: ExpressionPropertyInterface(a.r) },\r\n                    points: { get: ExpressionPropertyInterface(a.pt) },\r\n                    outerRadius: { get: ExpressionPropertyInterface(a.or) },\r\n                    outerRoundness: { get: ExpressionPropertyInterface(a.os) },\r\n                    innerRadius: { get: ExpressionPropertyInterface(a.ir) },\r\n                    innerRoundness: { get: ExpressionPropertyInterface(a.is) },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.mn = t.mn),\r\n                  r\r\n                );\r\n              }\r\n              function p(t, e, i) {\r\n                function r(e) {\r\n                  return t.p.ix === e\r\n                    ? r.position\r\n                    : t.r.ix === e\r\n                    ? r.roundness\r\n                    : t.s.ix === e ||\r\n                      \"Size\" === e ||\r\n                      \"ADBE Vector Rect Size\" === e\r\n                    ? r.size\r\n                    : null;\r\n                }\r\n                var s = propertyGroupFactory(r, i),\r\n                  a = \"tm\" === e.sh.ty ? e.sh.prop : e.sh;\r\n                return (\r\n                  (r.propertyIndex = t.ix),\r\n                  a.p.setGroupProperty(PropertyInterface(\"Position\", s)),\r\n                  a.s.setGroupProperty(PropertyInterface(\"Size\", s)),\r\n                  a.r.setGroupProperty(PropertyInterface(\"Rotation\", s)),\r\n                  Object.defineProperties(r, {\r\n                    position: { get: ExpressionPropertyInterface(a.p) },\r\n                    roundness: { get: ExpressionPropertyInterface(a.r) },\r\n                    size: { get: ExpressionPropertyInterface(a.s) },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.mn = t.mn),\r\n                  r\r\n                );\r\n              }\r\n              function f(t, e, i) {\r\n                function r(e) {\r\n                  return t.r.ix === e || \"Round Corners 1\" === e\r\n                    ? r.radius\r\n                    : null;\r\n                }\r\n                var s = propertyGroupFactory(r, i),\r\n                  a = e;\r\n                return (\r\n                  (r.propertyIndex = t.ix),\r\n                  a.rd.setGroupProperty(PropertyInterface(\"Radius\", s)),\r\n                  Object.defineProperties(r, {\r\n                    radius: { get: ExpressionPropertyInterface(a.rd) },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.mn = t.mn),\r\n                  r\r\n                );\r\n              }\r\n              function m(t, e, i) {\r\n                function r(e) {\r\n                  return t.c.ix === e || \"Copies\" === e\r\n                    ? r.copies\r\n                    : t.o.ix === e || \"Offset\" === e\r\n                    ? r.offset\r\n                    : null;\r\n                }\r\n                var s = propertyGroupFactory(r, i),\r\n                  a = e;\r\n                return (\r\n                  (r.propertyIndex = t.ix),\r\n                  a.c.setGroupProperty(PropertyInterface(\"Copies\", s)),\r\n                  a.o.setGroupProperty(PropertyInterface(\"Offset\", s)),\r\n                  Object.defineProperties(r, {\r\n                    copies: { get: ExpressionPropertyInterface(a.c) },\r\n                    offset: { get: ExpressionPropertyInterface(a.o) },\r\n                    _name: { value: t.nm },\r\n                  }),\r\n                  (r.mn = t.mn),\r\n                  r\r\n                );\r\n              }\r\n              return function (e, i, r) {\r\n                var s;\r\n                function a(t) {\r\n                  if (\"number\" == typeof t)\r\n                    return 0 === (t = void 0 === t ? 1 : t) ? r : s[t - 1];\r\n                  for (var e = 0, i = s.length; e < i; ) {\r\n                    if (s[e]._name === t) return s[e];\r\n                    e += 1;\r\n                  }\r\n                  return null;\r\n                }\r\n                return (\r\n                  (a.propertyGroup = propertyGroupFactory(a, function () {\r\n                    return r;\r\n                  })),\r\n                  (s = t(e, i, a.propertyGroup)),\r\n                  (a.numProperties = s.length),\r\n                  (a._name = \"Contents\"),\r\n                  a\r\n                );\r\n              };\r\n            })(),\r\n            TextExpressionInterface = function (t) {\r\n              var e;\r\n              function i(t) {\r\n                return \"ADBE Text Document\" === t ? i.sourceText : null;\r\n              }\r\n              return (\r\n                Object.defineProperty(i, \"sourceText\", {\r\n                  get: function () {\r\n                    t.textProperty.getValue();\r\n                    var i = t.textProperty.currentData.t;\r\n                    return (\r\n                      (e && i === e.value) ||\r\n                        (((e = new String(i)).value = i || new String(i)),\r\n                        Object.defineProperty(e, \"style\", {\r\n                          get: function () {\r\n                            return { fillColor: t.textProperty.currentData.fc };\r\n                          },\r\n                        })),\r\n                      e\r\n                    );\r\n                  },\r\n                }),\r\n                i\r\n              );\r\n            };\r\n          function _typeof(t) {\r\n            return (\r\n              (_typeof =\r\n                \"function\" == typeof Symbol &&\r\n                \"symbol\" == typeof Symbol.iterator\r\n                  ? function (t) {\r\n                      return typeof t;\r\n                    }\r\n                  : function (t) {\r\n                      return t &&\r\n                        \"function\" == typeof Symbol &&\r\n                        t.constructor === Symbol &&\r\n                        t !== Symbol.prototype\r\n                        ? \"symbol\"\r\n                        : typeof t;\r\n                    }),\r\n              _typeof(t)\r\n            );\r\n          }\r\n          var FootageInterface =\r\n              ((dataInterfaceFactory = function (t) {\r\n                function e(t) {\r\n                  return \"Outline\" === t ? e.outlineInterface() : null;\r\n                }\r\n                return (\r\n                  (e._name = \"Outline\"),\r\n                  (e.outlineInterface = (function (t) {\r\n                    var e = \"\",\r\n                      i = t.getFootageData();\r\n                    function r(t) {\r\n                      if (i[t])\r\n                        return (\r\n                          (e = t), \"object\" === _typeof((i = i[t])) ? r : i\r\n                        );\r\n                      var s = t.indexOf(e);\r\n                      if (-1 !== s) {\r\n                        var a = parseInt(t.substr(s + e.length), 10);\r\n                        return \"object\" === _typeof((i = i[a])) ? r : i;\r\n                      }\r\n                      return \"\";\r\n                    }\r\n                    return function () {\r\n                      return (e = \"\"), (i = t.getFootageData()), r;\r\n                    };\r\n                  })(t)),\r\n                  e\r\n                );\r\n              }),\r\n              function (t) {\r\n                function e(t) {\r\n                  return \"Data\" === t ? e.dataInterface : null;\r\n                }\r\n                return (\r\n                  (e._name = \"Data\"),\r\n                  (e.dataInterface = dataInterfaceFactory(t)),\r\n                  e\r\n                );\r\n              }),\r\n            dataInterfaceFactory,\r\n            interfaces = {\r\n              layer: LayerExpressionInterface,\r\n              effects: EffectsExpressionInterface,\r\n              comp: CompExpressionInterface,\r\n              shape: ShapeExpressionInterface,\r\n              text: TextExpressionInterface,\r\n              footage: FootageInterface,\r\n            };\r\n          function getInterface(t) {\r\n            return interfaces[t] || null;\r\n          }\r\n          var expressionHelpers = {\r\n            searchExpressions: function (t, e, i) {\r\n              e.x &&\r\n                ((i.k = !0),\r\n                (i.x = !0),\r\n                (i.initiateExpression = ExpressionManager.initiateExpression),\r\n                i.effectsSequence.push(i.initiateExpression(t, e, i).bind(i)));\r\n            },\r\n            getSpeedAtTime: function (t) {\r\n              var e = this.getValueAtTime(t),\r\n                i = this.getValueAtTime(t + -0.01),\r\n                r = 0;\r\n              if (e.length) {\r\n                var s;\r\n                for (s = 0; s < e.length; s += 1) r += Math.pow(i[s] - e[s], 2);\r\n                r = 100 * Math.sqrt(r);\r\n              } else r = 0;\r\n              return r;\r\n            },\r\n            getVelocityAtTime: function (t) {\r\n              if (void 0 !== this.vel) return this.vel;\r\n              var e,\r\n                i,\r\n                r = -0.001,\r\n                s = this.getValueAtTime(t),\r\n                a = this.getValueAtTime(t + r);\r\n              if (s.length)\r\n                for (\r\n                  e = createTypedArray(\"float32\", s.length), i = 0;\r\n                  i < s.length;\r\n                  i += 1\r\n                )\r\n                  e[i] = (a[i] - s[i]) \/ r;\r\n              else e = (a - s) \/ r;\r\n              return e;\r\n            },\r\n            getValueAtTime: function (t) {\r\n              return (\r\n                (t *= this.elem.globalData.frameRate),\r\n                (t -= this.offsetTime) !== this._cachingAtTime.lastFrame &&\r\n                  ((this._cachingAtTime.lastIndex =\r\n                    this._cachingAtTime.lastFrame < t\r\n                      ? this._cachingAtTime.lastIndex\r\n                      : 0),\r\n                  (this._cachingAtTime.value = this.interpolateValue(\r\n                    t,\r\n                    this._cachingAtTime\r\n                  )),\r\n                  (this._cachingAtTime.lastFrame = t)),\r\n                this._cachingAtTime.value\r\n              );\r\n            },\r\n            getStaticValueAtTime: function () {\r\n              return this.pv;\r\n            },\r\n            setGroupProperty: function (t) {\r\n              this.propertyGroup = t;\r\n            },\r\n          };\r\n          function addPropertyDecorator() {\r\n            function t(t, e, i) {\r\n              if (!this.k || !this.keyframes) return this.pv;\r\n              t = t ? t.toLowerCase() : \"\";\r\n              var r,\r\n                s,\r\n                a,\r\n                n,\r\n                o,\r\n                h = this.comp.renderedFrame,\r\n                l = this.keyframes,\r\n                p = l[l.length - 1].t;\r\n              if (h <= p) return this.pv;\r\n              if (\r\n                (i\r\n                  ? (s =\r\n                      p -\r\n                      (r = e\r\n                        ? Math.abs(p - this.elem.comp.globalData.frameRate * e)\r\n                        : Math.max(0, p - this.elem.data.ip)))\r\n                  : ((!e || e > l.length - 1) && (e = l.length - 1),\r\n                    (r = p - (s = l[l.length - 1 - e].t))),\r\n                \"pingpong\" === t)\r\n              ) {\r\n                if (Math.floor((h - s) \/ r) % 2 != 0)\r\n                  return this.getValueAtTime(\r\n                    (r - ((h - s) % r) + s) \/ this.comp.globalData.frameRate,\r\n                    0\r\n                  );\r\n              } else {\r\n                if (\"offset\" === t) {\r\n                  var f = this.getValueAtTime(\r\n                      s \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    m = this.getValueAtTime(\r\n                      p \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    c = this.getValueAtTime(\r\n                      (((h - s) % r) + s) \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    d = Math.floor((h - s) \/ r);\r\n                  if (this.pv.length) {\r\n                    for (\r\n                      n = (o = new Array(f.length)).length, a = 0;\r\n                      a < n;\r\n                      a += 1\r\n                    )\r\n                      o[a] = (m[a] - f[a]) * d + c[a];\r\n                    return o;\r\n                  }\r\n                  return (m - f) * d + c;\r\n                }\r\n                if (\"continue\" === t) {\r\n                  var u = this.getValueAtTime(\r\n                      p \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    y = this.getValueAtTime(\r\n                      (p - 0.001) \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    );\r\n                  if (this.pv.length) {\r\n                    for (\r\n                      n = (o = new Array(u.length)).length, a = 0;\r\n                      a < n;\r\n                      a += 1\r\n                    )\r\n                      o[a] =\r\n                        u[a] +\r\n                        ((u[a] - y[a]) *\r\n                          ((h - p) \/ this.comp.globalData.frameRate)) \/\r\n                          5e-4;\r\n                    return o;\r\n                  }\r\n                  return u + ((h - p) \/ 0.001) * (u - y);\r\n                }\r\n              }\r\n              return this.getValueAtTime(\r\n                (((h - s) % r) + s) \/ this.comp.globalData.frameRate,\r\n                0\r\n              );\r\n            }\r\n            function e(t, e, i) {\r\n              if (!this.k) return this.pv;\r\n              t = t ? t.toLowerCase() : \"\";\r\n              var r,\r\n                s,\r\n                a,\r\n                n,\r\n                o,\r\n                h = this.comp.renderedFrame,\r\n                l = this.keyframes,\r\n                p = l[0].t;\r\n              if (h >= p) return this.pv;\r\n              if (\r\n                (i\r\n                  ? (s =\r\n                      p +\r\n                      (r = e\r\n                        ? Math.abs(this.elem.comp.globalData.frameRate * e)\r\n                        : Math.max(0, this.elem.data.op - p)))\r\n                  : ((!e || e > l.length - 1) && (e = l.length - 1),\r\n                    (r = (s = l[e].t) - p)),\r\n                \"pingpong\" === t)\r\n              ) {\r\n                if (Math.floor((p - h) \/ r) % 2 == 0)\r\n                  return this.getValueAtTime(\r\n                    (((p - h) % r) + p) \/ this.comp.globalData.frameRate,\r\n                    0\r\n                  );\r\n              } else {\r\n                if (\"offset\" === t) {\r\n                  var f = this.getValueAtTime(\r\n                      p \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    m = this.getValueAtTime(\r\n                      s \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    c = this.getValueAtTime(\r\n                      (r - ((p - h) % r) + p) \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    d = Math.floor((p - h) \/ r) + 1;\r\n                  if (this.pv.length) {\r\n                    for (\r\n                      n = (o = new Array(f.length)).length, a = 0;\r\n                      a < n;\r\n                      a += 1\r\n                    )\r\n                      o[a] = c[a] - (m[a] - f[a]) * d;\r\n                    return o;\r\n                  }\r\n                  return c - (m - f) * d;\r\n                }\r\n                if (\"continue\" === t) {\r\n                  var u = this.getValueAtTime(\r\n                      p \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    ),\r\n                    y = this.getValueAtTime(\r\n                      (p + 0.001) \/ this.comp.globalData.frameRate,\r\n                      0\r\n                    );\r\n                  if (this.pv.length) {\r\n                    for (\r\n                      n = (o = new Array(u.length)).length, a = 0;\r\n                      a < n;\r\n                      a += 1\r\n                    )\r\n                      o[a] = u[a] + ((u[a] - y[a]) * (p - h)) \/ 0.001;\r\n                    return o;\r\n                  }\r\n                  return u + ((u - y) * (p - h)) \/ 0.001;\r\n                }\r\n              }\r\n              return this.getValueAtTime(\r\n                (r - (((p - h) % r) + p)) \/ this.comp.globalData.frameRate,\r\n                0\r\n              );\r\n            }\r\n            function i(t, e) {\r\n              if (!this.k) return this.pv;\r\n              if (((t = 0.5 * (t || 0.4)), (e = Math.floor(e || 5)) <= 1))\r\n                return this.pv;\r\n              var i,\r\n                r,\r\n                s = this.comp.renderedFrame \/ this.comp.globalData.frameRate,\r\n                a = s - t,\r\n                n = e > 1 ? (s + t - a) \/ (e - 1) : 1,\r\n                o = 0,\r\n                h = 0;\r\n              for (\r\n                i = this.pv.length\r\n                  ? createTypedArray(\"float32\", this.pv.length)\r\n                  : 0;\r\n                o < e;\r\n\r\n              ) {\r\n                if (((r = this.getValueAtTime(a + o * n)), this.pv.length))\r\n                  for (h = 0; h < this.pv.length; h += 1) i[h] += r[h];\r\n                else i += r;\r\n                o += 1;\r\n              }\r\n              if (this.pv.length)\r\n                for (h = 0; h < this.pv.length; h += 1) i[h] \/= e;\r\n              else i \/= e;\r\n              return i;\r\n            }\r\n            function r(t) {\r\n              this._transformCachingAtTime ||\r\n                (this._transformCachingAtTime = { v: new Matrix() });\r\n              var e = this._transformCachingAtTime.v;\r\n              if (\r\n                (e.cloneFromProps(this.pre.props),\r\n                this.appliedTransformations < 1)\r\n              ) {\r\n                var i = this.a.getValueAtTime(t);\r\n                e.translate(\r\n                  -i[0] * this.a.mult,\r\n                  -i[1] * this.a.mult,\r\n                  i[2] * this.a.mult\r\n                );\r\n              }\r\n              if (this.appliedTransformations < 2) {\r\n                var r = this.s.getValueAtTime(t);\r\n                e.scale(\r\n                  r[0] * this.s.mult,\r\n                  r[1] * this.s.mult,\r\n                  r[2] * this.s.mult\r\n                );\r\n              }\r\n              if (this.sk && this.appliedTransformations < 3) {\r\n                var s = this.sk.getValueAtTime(t),\r\n                  a = this.sa.getValueAtTime(t);\r\n                e.skewFromAxis(-s * this.sk.mult, a * this.sa.mult);\r\n              }\r\n              if (this.r && this.appliedTransformations < 4) {\r\n                var n = this.r.getValueAtTime(t);\r\n                e.rotate(-n * this.r.mult);\r\n              } else if (!this.r && this.appliedTransformations < 4) {\r\n                var o = this.rz.getValueAtTime(t),\r\n                  h = this.ry.getValueAtTime(t),\r\n                  l = this.rx.getValueAtTime(t),\r\n                  p = this.or.getValueAtTime(t);\r\n                e.rotateZ(-o * this.rz.mult)\r\n                  .rotateY(h * this.ry.mult)\r\n                  .rotateX(l * this.rx.mult)\r\n                  .rotateZ(-p[2] * this.or.mult)\r\n                  .rotateY(p[1] * this.or.mult)\r\n                  .rotateX(p[0] * this.or.mult);\r\n              }\r\n              if (this.data.p && this.data.p.s) {\r\n                var f = this.px.getValueAtTime(t),\r\n                  m = this.py.getValueAtTime(t);\r\n                if (this.data.p.z) {\r\n                  var c = this.pz.getValueAtTime(t);\r\n                  e.translate(\r\n                    f * this.px.mult,\r\n                    m * this.py.mult,\r\n                    -c * this.pz.mult\r\n                  );\r\n                } else e.translate(f * this.px.mult, m * this.py.mult, 0);\r\n              } else {\r\n                var d = this.p.getValueAtTime(t);\r\n                e.translate(\r\n                  d[0] * this.p.mult,\r\n                  d[1] * this.p.mult,\r\n                  -d[2] * this.p.mult\r\n                );\r\n              }\r\n              return e;\r\n            }\r\n            function s() {\r\n              return this.v.clone(new Matrix());\r\n            }\r\n            var a = TransformPropertyFactory.getTransformProperty;\r\n            TransformPropertyFactory.getTransformProperty = function (t, e, i) {\r\n              var n = a(t, e, i);\r\n              return (\r\n                n.dynamicProperties.length\r\n                  ? (n.getValueAtTime = r.bind(n))\r\n                  : (n.getValueAtTime = s.bind(n)),\r\n                (n.setGroupProperty = expressionHelpers.setGroupProperty),\r\n                n\r\n              );\r\n            };\r\n            var n = PropertyFactory.getProp;\r\n            PropertyFactory.getProp = function (r, s, a, o, h) {\r\n              var l = n(r, s, a, o, h);\r\n              l.kf\r\n                ? (l.getValueAtTime = expressionHelpers.getValueAtTime.bind(l))\r\n                : (l.getValueAtTime =\r\n                    expressionHelpers.getStaticValueAtTime.bind(l)),\r\n                (l.setGroupProperty = expressionHelpers.setGroupProperty),\r\n                (l.loopOut = t),\r\n                (l.loopIn = e),\r\n                (l.smooth = i),\r\n                (l.getVelocityAtTime =\r\n                  expressionHelpers.getVelocityAtTime.bind(l)),\r\n                (l.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(l)),\r\n                (l.numKeys = 1 === s.a ? s.k.length : 0),\r\n                (l.propertyIndex = s.ix);\r\n              var p = 0;\r\n              return (\r\n                0 !== a &&\r\n                  (p = createTypedArray(\r\n                    \"float32\",\r\n                    1 === s.a ? s.k[0].s.length : s.k.length\r\n                  )),\r\n                (l._cachingAtTime = {\r\n                  lastFrame: initialDefaultFrame,\r\n                  lastIndex: 0,\r\n                  value: p,\r\n                }),\r\n                expressionHelpers.searchExpressions(r, s, l),\r\n                l.k && h.addDynamicProperty(l),\r\n                l\r\n              );\r\n            };\r\n            var o = ShapePropertyFactory.getConstructorFunction(),\r\n              h = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n            function l() {}\r\n            (l.prototype = {\r\n              vertices: function (t, e) {\r\n                this.k && this.getValue();\r\n                var i,\r\n                  r = this.v;\r\n                void 0 !== e && (r = this.getValueAtTime(e, 0));\r\n                var s = r._length,\r\n                  a = r[t],\r\n                  n = r.v,\r\n                  o = createSizedArray(s);\r\n                for (i = 0; i < s; i += 1)\r\n                  o[i] =\r\n                    \"i\" === t || \"o\" === t\r\n                      ? [a[i][0] - n[i][0], a[i][1] - n[i][1]]\r\n                      : [a[i][0], a[i][1]];\r\n                return o;\r\n              },\r\n              points: function (t) {\r\n                return this.vertices(\"v\", t);\r\n              },\r\n              inTangents: function (t) {\r\n                return this.vertices(\"i\", t);\r\n              },\r\n              outTangents: function (t) {\r\n                return this.vertices(\"o\", t);\r\n              },\r\n              isClosed: function () {\r\n                return this.v.c;\r\n              },\r\n              pointOnPath: function (t, e) {\r\n                var i = this.v;\r\n                void 0 !== e && (i = this.getValueAtTime(e, 0)),\r\n                  this._segmentsLength ||\r\n                    (this._segmentsLength = bez.getSegmentsLength(i));\r\n                for (\r\n                  var r,\r\n                    s = this._segmentsLength,\r\n                    a = s.lengths,\r\n                    n = s.totalLength * t,\r\n                    o = 0,\r\n                    h = a.length,\r\n                    l = 0;\r\n                  o < h;\r\n\r\n                ) {\r\n                  if (l + a[o].addedLength > n) {\r\n                    var p = o,\r\n                      f = i.c && o === h - 1 ? 0 : o + 1,\r\n                      m = (n - l) \/ a[o].addedLength;\r\n                    r = bez.getPointInSegment(\r\n                      i.v[p],\r\n                      i.v[f],\r\n                      i.o[p],\r\n                      i.i[f],\r\n                      m,\r\n                      a[o]\r\n                    );\r\n                    break;\r\n                  }\r\n                  (l += a[o].addedLength), (o += 1);\r\n                }\r\n                return (\r\n                  r ||\r\n                    (r = i.c\r\n                      ? [i.v[0][0], i.v[0][1]]\r\n                      : [i.v[i._length - 1][0], i.v[i._length - 1][1]]),\r\n                  r\r\n                );\r\n              },\r\n              vectorOnPath: function (t, e, i) {\r\n                1 == t ? (t = this.v.c) : 0 == t && (t = 0.999);\r\n                var r = this.pointOnPath(t, e),\r\n                  s = this.pointOnPath(t + 0.001, e),\r\n                  a = s[0] - r[0],\r\n                  n = s[1] - r[1],\r\n                  o = Math.sqrt(Math.pow(a, 2) + Math.pow(n, 2));\r\n                return 0 === o\r\n                  ? [0, 0]\r\n                  : \"tangent\" === i\r\n                  ? [a \/ o, n \/ o]\r\n                  : [-n \/ o, a \/ o];\r\n              },\r\n              tangentOnPath: function (t, e) {\r\n                return this.vectorOnPath(t, e, \"tangent\");\r\n              },\r\n              normalOnPath: function (t, e) {\r\n                return this.vectorOnPath(t, e, \"normal\");\r\n              },\r\n              setGroupProperty: expressionHelpers.setGroupProperty,\r\n              getValueAtTime: expressionHelpers.getStaticValueAtTime,\r\n            }),\r\n              extendPrototype([l], o),\r\n              extendPrototype([l], h),\r\n              (h.prototype.getValueAtTime = function (t) {\r\n                return (\r\n                  this._cachingAtTime ||\r\n                    (this._cachingAtTime = {\r\n                      shapeValue: shapePool.clone(this.pv),\r\n                      lastIndex: 0,\r\n                      lastTime: initialDefaultFrame,\r\n                    }),\r\n                  (t *= this.elem.globalData.frameRate),\r\n                  (t -= this.offsetTime) !== this._cachingAtTime.lastTime &&\r\n                    ((this._cachingAtTime.lastIndex =\r\n                      this._cachingAtTime.lastTime < t\r\n                        ? this._caching.lastIndex\r\n                        : 0),\r\n                    (this._cachingAtTime.lastTime = t),\r\n                    this.interpolateShape(\r\n                      t,\r\n                      this._cachingAtTime.shapeValue,\r\n                      this._cachingAtTime\r\n                    )),\r\n                  this._cachingAtTime.shapeValue\r\n                );\r\n              }),\r\n              (h.prototype.initiateExpression =\r\n                ExpressionManager.initiateExpression);\r\n            var p = ShapePropertyFactory.getShapeProp;\r\n            ShapePropertyFactory.getShapeProp = function (t, e, i, r, s) {\r\n              var a = p(t, e, i, r, s);\r\n              return (\r\n                (a.propertyIndex = e.ix),\r\n                (a.lock = !1),\r\n                3 === i\r\n                  ? expressionHelpers.searchExpressions(t, e.pt, a)\r\n                  : 4 === i && expressionHelpers.searchExpressions(t, e.ks, a),\r\n                a.k && t.addDynamicProperty(a),\r\n                a\r\n              );\r\n            };\r\n          }\r\n          function initialize$1() {\r\n            addPropertyDecorator();\r\n          }\r\n          function addDecorator() {\r\n            (TextProperty.prototype.getExpressionValue = function (t, e) {\r\n              var i = this.calculateExpression(e);\r\n              if (t.t !== i) {\r\n                var r = {};\r\n                return (\r\n                  this.copyData(r, t),\r\n                  (r.t = i.toString()),\r\n                  (r.__complete = !1),\r\n                  r\r\n                );\r\n              }\r\n              return t;\r\n            }),\r\n              (TextProperty.prototype.searchProperty = function () {\r\n                var t = this.searchKeyframes(),\r\n                  e = this.searchExpressions();\r\n                return (this.kf = t || e), this.kf;\r\n              }),\r\n              (TextProperty.prototype.searchExpressions = function () {\r\n                return this.data.d.x\r\n                  ? ((this.calculateExpression =\r\n                      ExpressionManager.initiateExpression.bind(this)(\r\n                        this.elem,\r\n                        this.data.d,\r\n                        this\r\n                      )),\r\n                    this.addEffect(this.getExpressionValue.bind(this)),\r\n                    !0)\r\n                  : null;\r\n              });\r\n          }\r\n          function initialize() {\r\n            addDecorator();\r\n          }\r\n          function SVGComposableEffect() {}\r\n          SVGComposableEffect.prototype = {\r\n            createMergeNode: function (t, e) {\r\n              var i,\r\n                r,\r\n                s = createNS(\"feMerge\");\r\n              for (s.setAttribute(\"result\", t), r = 0; r < e.length; r += 1)\r\n                (i = createNS(\"feMergeNode\")).setAttribute(\"in\", e[r]),\r\n                  s.appendChild(i),\r\n                  s.appendChild(i);\r\n              return s;\r\n            },\r\n          };\r\n          var linearFilterValue =\r\n            \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0\";\r\n          function SVGTintFilter(t, e, i, r, s) {\r\n            this.filterManager = e;\r\n            var a = createNS(\"feColorMatrix\");\r\n            a.setAttribute(\"type\", \"matrix\"),\r\n              a.setAttribute(\"color-interpolation-filters\", \"linearRGB\"),\r\n              a.setAttribute(\"values\", linearFilterValue + \" 1 0\"),\r\n              (this.linearFilter = a),\r\n              a.setAttribute(\"result\", r + \"_tint_1\"),\r\n              t.appendChild(a),\r\n              (a = createNS(\"feColorMatrix\")).setAttribute(\"type\", \"matrix\"),\r\n              a.setAttribute(\"color-interpolation-filters\", \"sRGB\"),\r\n              a.setAttribute(\r\n                \"values\",\r\n                \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"\r\n              ),\r\n              a.setAttribute(\"result\", r + \"_tint_2\"),\r\n              t.appendChild(a),\r\n              (this.matrixFilter = a);\r\n            var n = this.createMergeNode(r, [s, r + \"_tint_1\", r + \"_tint_2\"]);\r\n            t.appendChild(n);\r\n          }\r\n          function SVGFillFilter(t, e, i, r) {\r\n            this.filterManager = e;\r\n            var s = createNS(\"feColorMatrix\");\r\n            s.setAttribute(\"type\", \"matrix\"),\r\n              s.setAttribute(\"color-interpolation-filters\", \"sRGB\"),\r\n              s.setAttribute(\r\n                \"values\",\r\n                \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"\r\n              ),\r\n              s.setAttribute(\"result\", r),\r\n              t.appendChild(s),\r\n              (this.matrixFilter = s);\r\n          }\r\n          function SVGStrokeEffect(t, e, i) {\r\n            (this.initialized = !1),\r\n              (this.filterManager = e),\r\n              (this.elem = i),\r\n              (this.paths = []);\r\n          }\r\n          function SVGTritoneFilter(t, e, i, r) {\r\n            this.filterManager = e;\r\n            var s = createNS(\"feColorMatrix\");\r\n            s.setAttribute(\"type\", \"matrix\"),\r\n              s.setAttribute(\"color-interpolation-filters\", \"linearRGB\"),\r\n              s.setAttribute(\r\n                \"values\",\r\n                \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"\r\n              ),\r\n              t.appendChild(s);\r\n            var a = createNS(\"feComponentTransfer\");\r\n            a.setAttribute(\"color-interpolation-filters\", \"sRGB\"),\r\n              a.setAttribute(\"result\", r),\r\n              (this.matrixFilter = a);\r\n            var n = createNS(\"feFuncR\");\r\n            n.setAttribute(\"type\", \"table\"),\r\n              a.appendChild(n),\r\n              (this.feFuncR = n);\r\n            var o = createNS(\"feFuncG\");\r\n            o.setAttribute(\"type\", \"table\"),\r\n              a.appendChild(o),\r\n              (this.feFuncG = o);\r\n            var h = createNS(\"feFuncB\");\r\n            h.setAttribute(\"type\", \"table\"),\r\n              a.appendChild(h),\r\n              (this.feFuncB = h),\r\n              t.appendChild(a);\r\n          }\r\n          function SVGProLevelsFilter(t, e, i, r) {\r\n            this.filterManager = e;\r\n            var s = this.filterManager.effectElements,\r\n              a = createNS(\"feComponentTransfer\");\r\n            (s[10].p.k ||\r\n              0 !== s[10].p.v ||\r\n              s[11].p.k ||\r\n              1 !== s[11].p.v ||\r\n              s[12].p.k ||\r\n              1 !== s[12].p.v ||\r\n              s[13].p.k ||\r\n              0 !== s[13].p.v ||\r\n              s[14].p.k ||\r\n              1 !== s[14].p.v) &&\r\n              (this.feFuncR = this.createFeFunc(\"feFuncR\", a)),\r\n              (s[17].p.k ||\r\n                0 !== s[17].p.v ||\r\n                s[18].p.k ||\r\n                1 !== s[18].p.v ||\r\n                s[19].p.k ||\r\n                1 !== s[19].p.v ||\r\n                s[20].p.k ||\r\n                0 !== s[20].p.v ||\r\n                s[21].p.k ||\r\n                1 !== s[21].p.v) &&\r\n                (this.feFuncG = this.createFeFunc(\"feFuncG\", a)),\r\n              (s[24].p.k ||\r\n                0 !== s[24].p.v ||\r\n                s[25].p.k ||\r\n                1 !== s[25].p.v ||\r\n                s[26].p.k ||\r\n                1 !== s[26].p.v ||\r\n                s[27].p.k ||\r\n                0 !== s[27].p.v ||\r\n                s[28].p.k ||\r\n                1 !== s[28].p.v) &&\r\n                (this.feFuncB = this.createFeFunc(\"feFuncB\", a)),\r\n              (s[31].p.k ||\r\n                0 !== s[31].p.v ||\r\n                s[32].p.k ||\r\n                1 !== s[32].p.v ||\r\n                s[33].p.k ||\r\n                1 !== s[33].p.v ||\r\n                s[34].p.k ||\r\n                0 !== s[34].p.v ||\r\n                s[35].p.k ||\r\n                1 !== s[35].p.v) &&\r\n                (this.feFuncA = this.createFeFunc(\"feFuncA\", a)),\r\n              (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) &&\r\n                (a.setAttribute(\"color-interpolation-filters\", \"sRGB\"),\r\n                t.appendChild(a)),\r\n              (s[3].p.k ||\r\n                0 !== s[3].p.v ||\r\n                s[4].p.k ||\r\n                1 !== s[4].p.v ||\r\n                s[5].p.k ||\r\n                1 !== s[5].p.v ||\r\n                s[6].p.k ||\r\n                0 !== s[6].p.v ||\r\n                s[7].p.k ||\r\n                1 !== s[7].p.v) &&\r\n                ((a = createNS(\"feComponentTransfer\")).setAttribute(\r\n                  \"color-interpolation-filters\",\r\n                  \"sRGB\"\r\n                ),\r\n                a.setAttribute(\"result\", r),\r\n                t.appendChild(a),\r\n                (this.feFuncRComposed = this.createFeFunc(\"feFuncR\", a)),\r\n                (this.feFuncGComposed = this.createFeFunc(\"feFuncG\", a)),\r\n                (this.feFuncBComposed = this.createFeFunc(\"feFuncB\", a)));\r\n          }\r\n          function SVGDropShadowEffect(t, e, i, r, s) {\r\n            var a = e.container.globalData.renderConfig.filterSize,\r\n              n = e.data.fs || a;\r\n            t.setAttribute(\"x\", n.x || a.x),\r\n              t.setAttribute(\"y\", n.y || a.y),\r\n              t.setAttribute(\"width\", n.width || a.width),\r\n              t.setAttribute(\"height\", n.height || a.height),\r\n              (this.filterManager = e);\r\n            var o = createNS(\"feGaussianBlur\");\r\n            o.setAttribute(\"in\", \"SourceAlpha\"),\r\n              o.setAttribute(\"result\", r + \"_drop_shadow_1\"),\r\n              o.setAttribute(\"stdDeviation\", \"0\"),\r\n              (this.feGaussianBlur = o),\r\n              t.appendChild(o);\r\n            var h = createNS(\"feOffset\");\r\n            h.setAttribute(\"dx\", \"25\"),\r\n              h.setAttribute(\"dy\", \"0\"),\r\n              h.setAttribute(\"in\", r + \"_drop_shadow_1\"),\r\n              h.setAttribute(\"result\", r + \"_drop_shadow_2\"),\r\n              (this.feOffset = h),\r\n              t.appendChild(h);\r\n            var l = createNS(\"feFlood\");\r\n            l.setAttribute(\"flood-color\", \"#00ff00\"),\r\n              l.setAttribute(\"flood-opacity\", \"1\"),\r\n              l.setAttribute(\"result\", r + \"_drop_shadow_3\"),\r\n              (this.feFlood = l),\r\n              t.appendChild(l);\r\n            var p = createNS(\"feComposite\");\r\n            p.setAttribute(\"in\", r + \"_drop_shadow_3\"),\r\n              p.setAttribute(\"in2\", r + \"_drop_shadow_2\"),\r\n              p.setAttribute(\"operator\", \"in\"),\r\n              p.setAttribute(\"result\", r + \"_drop_shadow_4\"),\r\n              t.appendChild(p);\r\n            var f = this.createMergeNode(r, [r + \"_drop_shadow_4\", s]);\r\n            t.appendChild(f);\r\n          }\r\n          extendPrototype([SVGComposableEffect], SVGTintFilter),\r\n            (SVGTintFilter.prototype.renderFrame = function (t) {\r\n              if (t || this.filterManager._mdf) {\r\n                var e = this.filterManager.effectElements[0].p.v,\r\n                  i = this.filterManager.effectElements[1].p.v,\r\n                  r = this.filterManager.effectElements[2].p.v \/ 100;\r\n                this.linearFilter.setAttribute(\r\n                  \"values\",\r\n                  linearFilterValue + \" \" + r + \" 0\"\r\n                ),\r\n                  this.matrixFilter.setAttribute(\r\n                    \"values\",\r\n                    i[0] -\r\n                      e[0] +\r\n                      \" 0 0 0 \" +\r\n                      e[0] +\r\n                      \" \" +\r\n                      (i[1] - e[1]) +\r\n                      \" 0 0 0 \" +\r\n                      e[1] +\r\n                      \" \" +\r\n                      (i[2] - e[2]) +\r\n                      \" 0 0 0 \" +\r\n                      e[2] +\r\n                      \" 0 0 0 1 0\"\r\n                  );\r\n              }\r\n            }),\r\n            (SVGFillFilter.prototype.renderFrame = function (t) {\r\n              if (t || this.filterManager._mdf) {\r\n                var e = this.filterManager.effectElements[2].p.v,\r\n                  i = this.filterManager.effectElements[6].p.v;\r\n                this.matrixFilter.setAttribute(\r\n                  \"values\",\r\n                  \"0 0 0 0 \" +\r\n                    e[0] +\r\n                    \" 0 0 0 0 \" +\r\n                    e[1] +\r\n                    \" 0 0 0 0 \" +\r\n                    e[2] +\r\n                    \" 0 0 0 \" +\r\n                    i +\r\n                    \" 0\"\r\n                );\r\n              }\r\n            }),\r\n            (SVGStrokeEffect.prototype.initialize = function () {\r\n              var t,\r\n                e,\r\n                i,\r\n                r,\r\n                s =\r\n                  this.elem.layerElement.children ||\r\n                  this.elem.layerElement.childNodes;\r\n              for (\r\n                1 === this.filterManager.effectElements[1].p.v\r\n                  ? ((r = this.elem.maskManager.masksProperties.length),\r\n                    (i = 0))\r\n                  : (r =\r\n                      (i = this.filterManager.effectElements[0].p.v - 1) + 1),\r\n                  (e = createNS(\"g\")).setAttribute(\"fill\", \"none\"),\r\n                  e.setAttribute(\"stroke-linecap\", \"round\"),\r\n                  e.setAttribute(\"stroke-dashoffset\", 1);\r\n                i < r;\r\n                i += 1\r\n              )\r\n                (t = createNS(\"path\")),\r\n                  e.appendChild(t),\r\n                  this.paths.push({ p: t, m: i });\r\n              if (3 === this.filterManager.effectElements[10].p.v) {\r\n                var a = createNS(\"mask\"),\r\n                  n = createElementID();\r\n                a.setAttribute(\"id\", n),\r\n                  a.setAttribute(\"mask-type\", \"alpha\"),\r\n                  a.appendChild(e),\r\n                  this.elem.globalData.defs.appendChild(a);\r\n                var o = createNS(\"g\");\r\n                for (\r\n                  o.setAttribute(\r\n                    \"mask\",\r\n                    \"url(\" + getLocationHref() + \"#\" + n + \")\"\r\n                  );\r\n                  s[0];\r\n\r\n                )\r\n                  o.appendChild(s[0]);\r\n                this.elem.layerElement.appendChild(o),\r\n                  (this.masker = a),\r\n                  e.setAttribute(\"stroke\", \"#fff\");\r\n              } else if (\r\n                1 === this.filterManager.effectElements[10].p.v ||\r\n                2 === this.filterManager.effectElements[10].p.v\r\n              ) {\r\n                if (2 === this.filterManager.effectElements[10].p.v)\r\n                  for (\r\n                    s =\r\n                      this.elem.layerElement.children ||\r\n                      this.elem.layerElement.childNodes;\r\n                    s.length;\r\n\r\n                  )\r\n                    this.elem.layerElement.removeChild(s[0]);\r\n                this.elem.layerElement.appendChild(e),\r\n                  this.elem.layerElement.removeAttribute(\"mask\"),\r\n                  e.setAttribute(\"stroke\", \"#fff\");\r\n              }\r\n              (this.initialized = !0), (this.pathMasker = e);\r\n            }),\r\n            (SVGStrokeEffect.prototype.renderFrame = function (t) {\r\n              var e;\r\n              this.initialized || this.initialize();\r\n              var i,\r\n                r,\r\n                s = this.paths.length;\r\n              for (e = 0; e < s; e += 1)\r\n                if (\r\n                  -1 !== this.paths[e].m &&\r\n                  ((i = this.elem.maskManager.viewData[this.paths[e].m]),\r\n                  (r = this.paths[e].p),\r\n                  (t || this.filterManager._mdf || i.prop._mdf) &&\r\n                    r.setAttribute(\"d\", i.lastPath),\r\n                  t ||\r\n                    this.filterManager.effectElements[9].p._mdf ||\r\n                    this.filterManager.effectElements[4].p._mdf ||\r\n                    this.filterManager.effectElements[7].p._mdf ||\r\n                    this.filterManager.effectElements[8].p._mdf ||\r\n                    i.prop._mdf)\r\n                ) {\r\n                  var a;\r\n                  if (\r\n                    0 !== this.filterManager.effectElements[7].p.v ||\r\n                    100 !== this.filterManager.effectElements[8].p.v\r\n                  ) {\r\n                    var n =\r\n                        0.01 *\r\n                        Math.min(\r\n                          this.filterManager.effectElements[7].p.v,\r\n                          this.filterManager.effectElements[8].p.v\r\n                        ),\r\n                      o =\r\n                        0.01 *\r\n                        Math.max(\r\n                          this.filterManager.effectElements[7].p.v,\r\n                          this.filterManager.effectElements[8].p.v\r\n                        ),\r\n                      h = r.getTotalLength();\r\n                    a = \"0 0 0 \" + h * n + \" \";\r\n                    var l,\r\n                      p = h * (o - n),\r\n                      f =\r\n                        1 +\r\n                        2 *\r\n                          this.filterManager.effectElements[4].p.v *\r\n                          this.filterManager.effectElements[9].p.v *\r\n                          0.01,\r\n                      m = Math.floor(p \/ f);\r\n                    for (l = 0; l < m; l += 1)\r\n                      a +=\r\n                        \"1 \" +\r\n                        2 *\r\n                          this.filterManager.effectElements[4].p.v *\r\n                          this.filterManager.effectElements[9].p.v *\r\n                          0.01 +\r\n                        \" \";\r\n                    a += \"0 \" + 10 * h + \" 0 0\";\r\n                  } else\r\n                    a =\r\n                      \"1 \" +\r\n                      2 *\r\n                        this.filterManager.effectElements[4].p.v *\r\n                        this.filterManager.effectElements[9].p.v *\r\n                        0.01;\r\n                  r.setAttribute(\"stroke-dasharray\", a);\r\n                }\r\n              if (\r\n                ((t || this.filterManager.effectElements[4].p._mdf) &&\r\n                  this.pathMasker.setAttribute(\r\n                    \"stroke-width\",\r\n                    2 * this.filterManager.effectElements[4].p.v\r\n                  ),\r\n                (t || this.filterManager.effectElements[6].p._mdf) &&\r\n                  this.pathMasker.setAttribute(\r\n                    \"opacity\",\r\n                    this.filterManager.effectElements[6].p.v\r\n                  ),\r\n                (1 === this.filterManager.effectElements[10].p.v ||\r\n                  2 === this.filterManager.effectElements[10].p.v) &&\r\n                  (t || this.filterManager.effectElements[3].p._mdf))\r\n              ) {\r\n                var c = this.filterManager.effectElements[3].p.v;\r\n                this.pathMasker.setAttribute(\r\n                  \"stroke\",\r\n                  \"rgb(\" +\r\n                    bmFloor(255 * c[0]) +\r\n                    \",\" +\r\n                    bmFloor(255 * c[1]) +\r\n                    \",\" +\r\n                    bmFloor(255 * c[2]) +\r\n                    \")\"\r\n                );\r\n              }\r\n            }),\r\n            (SVGTritoneFilter.prototype.renderFrame = function (t) {\r\n              if (t || this.filterManager._mdf) {\r\n                var e = this.filterManager.effectElements[0].p.v,\r\n                  i = this.filterManager.effectElements[1].p.v,\r\n                  r = this.filterManager.effectElements[2].p.v,\r\n                  s = r[0] + \" \" + i[0] + \" \" + e[0],\r\n                  a = r[1] + \" \" + i[1] + \" \" + e[1],\r\n                  n = r[2] + \" \" + i[2] + \" \" + e[2];\r\n                this.feFuncR.setAttribute(\"tableValues\", s),\r\n                  this.feFuncG.setAttribute(\"tableValues\", a),\r\n                  this.feFuncB.setAttribute(\"tableValues\", n);\r\n              }\r\n            }),\r\n            (SVGProLevelsFilter.prototype.createFeFunc = function (t, e) {\r\n              var i = createNS(t);\r\n              return i.setAttribute(\"type\", \"table\"), e.appendChild(i), i;\r\n            }),\r\n            (SVGProLevelsFilter.prototype.getTableValue = function (\r\n              t,\r\n              e,\r\n              i,\r\n              r,\r\n              s\r\n            ) {\r\n              for (\r\n                var a,\r\n                  n,\r\n                  o = 0,\r\n                  h = Math.min(t, e),\r\n                  l = Math.max(t, e),\r\n                  p = Array.call(null, { length: 256 }),\r\n                  f = 0,\r\n                  m = s - r,\r\n                  c = e - t;\r\n                o <= 256;\r\n\r\n              )\r\n                (n =\r\n                  (a = o \/ 256) <= h\r\n                    ? c < 0\r\n                      ? s\r\n                      : r\r\n                    : a >= l\r\n                    ? c < 0\r\n                      ? r\r\n                      : s\r\n                    : r + m * Math.pow((a - t) \/ c, 1 \/ i)),\r\n                  (p[f] = n),\r\n                  (f += 1),\r\n                  (o += 256 \/ 255);\r\n              return p.join(\" \");\r\n            }),\r\n            (SVGProLevelsFilter.prototype.renderFrame = function (t) {\r\n              if (t || this.filterManager._mdf) {\r\n                var e,\r\n                  i = this.filterManager.effectElements;\r\n                this.feFuncRComposed &&\r\n                  (t ||\r\n                    i[3].p._mdf ||\r\n                    i[4].p._mdf ||\r\n                    i[5].p._mdf ||\r\n                    i[6].p._mdf ||\r\n                    i[7].p._mdf) &&\r\n                  ((e = this.getTableValue(\r\n                    i[3].p.v,\r\n                    i[4].p.v,\r\n                    i[5].p.v,\r\n                    i[6].p.v,\r\n                    i[7].p.v\r\n                  )),\r\n                  this.feFuncRComposed.setAttribute(\"tableValues\", e),\r\n                  this.feFuncGComposed.setAttribute(\"tableValues\", e),\r\n                  this.feFuncBComposed.setAttribute(\"tableValues\", e)),\r\n                  this.feFuncR &&\r\n                    (t ||\r\n                      i[10].p._mdf ||\r\n                      i[11].p._mdf ||\r\n                      i[12].p._mdf ||\r\n                      i[13].p._mdf ||\r\n                      i[14].p._mdf) &&\r\n                    ((e = this.getTableValue(\r\n                      i[10].p.v,\r\n                      i[11].p.v,\r\n                      i[12].p.v,\r\n                      i[13].p.v,\r\n                      i[14].p.v\r\n                    )),\r\n                    this.feFuncR.setAttribute(\"tableValues\", e)),\r\n                  this.feFuncG &&\r\n                    (t ||\r\n                      i[17].p._mdf ||\r\n                      i[18].p._mdf ||\r\n                      i[19].p._mdf ||\r\n                      i[20].p._mdf ||\r\n                      i[21].p._mdf) &&\r\n                    ((e = this.getTableValue(\r\n                      i[17].p.v,\r\n                      i[18].p.v,\r\n                      i[19].p.v,\r\n                      i[20].p.v,\r\n                      i[21].p.v\r\n                    )),\r\n                    this.feFuncG.setAttribute(\"tableValues\", e)),\r\n                  this.feFuncB &&\r\n                    (t ||\r\n                      i[24].p._mdf ||\r\n                      i[25].p._mdf ||\r\n                      i[26].p._mdf ||\r\n                      i[27].p._mdf ||\r\n                      i[28].p._mdf) &&\r\n                    ((e = this.getTableValue(\r\n                      i[24].p.v,\r\n                      i[25].p.v,\r\n                      i[26].p.v,\r\n                      i[27].p.v,\r\n                      i[28].p.v\r\n                    )),\r\n                    this.feFuncB.setAttribute(\"tableValues\", e)),\r\n                  this.feFuncA &&\r\n                    (t ||\r\n                      i[31].p._mdf ||\r\n                      i[32].p._mdf ||\r\n                      i[33].p._mdf ||\r\n                      i[34].p._mdf ||\r\n                      i[35].p._mdf) &&\r\n                    ((e = this.getTableValue(\r\n                      i[31].p.v,\r\n                      i[32].p.v,\r\n                      i[33].p.v,\r\n                      i[34].p.v,\r\n                      i[35].p.v\r\n                    )),\r\n                    this.feFuncA.setAttribute(\"tableValues\", e));\r\n              }\r\n            }),\r\n            extendPrototype([SVGComposableEffect], SVGDropShadowEffect),\r\n            (SVGDropShadowEffect.prototype.renderFrame = function (t) {\r\n              if (t || this.filterManager._mdf) {\r\n                if (\r\n                  ((t || this.filterManager.effectElements[4].p._mdf) &&\r\n                    this.feGaussianBlur.setAttribute(\r\n                      \"stdDeviation\",\r\n                      this.filterManager.effectElements[4].p.v \/ 4\r\n                    ),\r\n                  t || this.filterManager.effectElements[0].p._mdf)\r\n                ) {\r\n                  var e = this.filterManager.effectElements[0].p.v;\r\n                  this.feFlood.setAttribute(\r\n                    \"flood-color\",\r\n                    rgbToHex(\r\n                      Math.round(255 * e[0]),\r\n                      Math.round(255 * e[1]),\r\n                      Math.round(255 * e[2])\r\n                    )\r\n                  );\r\n                }\r\n                if (\r\n                  ((t || this.filterManager.effectElements[1].p._mdf) &&\r\n                    this.feFlood.setAttribute(\r\n                      \"flood-opacity\",\r\n                      this.filterManager.effectElements[1].p.v \/ 255\r\n                    ),\r\n                  t ||\r\n                    this.filterManager.effectElements[2].p._mdf ||\r\n                    this.filterManager.effectElements[3].p._mdf)\r\n                ) {\r\n                  var i = this.filterManager.effectElements[3].p.v,\r\n                    r =\r\n                      (this.filterManager.effectElements[2].p.v - 90) *\r\n                      degToRads,\r\n                    s = i * Math.cos(r),\r\n                    a = i * Math.sin(r);\r\n                  this.feOffset.setAttribute(\"dx\", s),\r\n                    this.feOffset.setAttribute(\"dy\", a);\r\n                }\r\n              }\r\n            });\r\n          var _svgMatteSymbols = [];\r\n          function SVGMatte3Effect(t, e, i) {\r\n            (this.initialized = !1),\r\n              (this.filterManager = e),\r\n              (this.filterElem = t),\r\n              (this.elem = i),\r\n              (i.matteElement = createNS(\"g\")),\r\n              i.matteElement.appendChild(i.layerElement),\r\n              i.matteElement.appendChild(i.transformedElement),\r\n              (i.baseElement = i.matteElement);\r\n          }\r\n          function SVGGaussianBlurEffect(t, e, i, r) {\r\n            t.setAttribute(\"x\", \"-100%\"),\r\n              t.setAttribute(\"y\", \"-100%\"),\r\n              t.setAttribute(\"width\", \"300%\"),\r\n              t.setAttribute(\"height\", \"300%\"),\r\n              (this.filterManager = e);\r\n            var s = createNS(\"feGaussianBlur\");\r\n            s.setAttribute(\"result\", r),\r\n              t.appendChild(s),\r\n              (this.feGaussianBlur = s);\r\n          }\r\n          function TransformEffect() {}\r\n          function SVGTransformEffect(t, e) {\r\n            this.init(e);\r\n          }\r\n          function CVTransformEffect(t) {\r\n            this.init(t);\r\n          }\r\n          return (\r\n            (SVGMatte3Effect.prototype.findSymbol = function (t) {\r\n              for (var e = 0, i = _svgMatteSymbols.length; e < i; ) {\r\n                if (_svgMatteSymbols[e] === t) return _svgMatteSymbols[e];\r\n                e += 1;\r\n              }\r\n              return null;\r\n            }),\r\n            (SVGMatte3Effect.prototype.replaceInParent = function (t, e) {\r\n              var i = t.layerElement.parentNode;\r\n              if (i) {\r\n                for (\r\n                  var r, s = i.children, a = 0, n = s.length;\r\n                  a < n && s[a] !== t.layerElement;\r\n\r\n                )\r\n                  a += 1;\r\n                a <= n - 2 && (r = s[a + 1]);\r\n                var o = createNS(\"use\");\r\n                o.setAttribute(\"href\", \"#\" + e),\r\n                  r ? i.insertBefore(o, r) : i.appendChild(o);\r\n              }\r\n            }),\r\n            (SVGMatte3Effect.prototype.setElementAsMask = function (t, e) {\r\n              if (!this.findSymbol(e)) {\r\n                var i = createElementID(),\r\n                  r = createNS(\"mask\");\r\n                r.setAttribute(\"id\", e.layerId),\r\n                  r.setAttribute(\"mask-type\", \"alpha\"),\r\n                  _svgMatteSymbols.push(e);\r\n                var s = t.globalData.defs;\r\n                s.appendChild(r);\r\n                var a = createNS(\"symbol\");\r\n                a.setAttribute(\"id\", i),\r\n                  this.replaceInParent(e, i),\r\n                  a.appendChild(e.layerElement),\r\n                  s.appendChild(a);\r\n                var n = createNS(\"use\");\r\n                n.setAttribute(\"href\", \"#\" + i),\r\n                  r.appendChild(n),\r\n                  (e.data.hd = !1),\r\n                  e.show();\r\n              }\r\n              t.setMatte(e.layerId);\r\n            }),\r\n            (SVGMatte3Effect.prototype.initialize = function () {\r\n              for (\r\n                var t = this.filterManager.effectElements[0].p.v,\r\n                  e = this.elem.comp.elements,\r\n                  i = 0,\r\n                  r = e.length;\r\n                i < r;\r\n\r\n              )\r\n                e[i] &&\r\n                  e[i].data.ind === t &&\r\n                  this.setElementAsMask(this.elem, e[i]),\r\n                  (i += 1);\r\n              this.initialized = !0;\r\n            }),\r\n            (SVGMatte3Effect.prototype.renderFrame = function () {\r\n              this.initialized || this.initialize();\r\n            }),\r\n            (SVGGaussianBlurEffect.prototype.renderFrame = function (t) {\r\n              if (t || this.filterManager._mdf) {\r\n                var e = 0.3 * this.filterManager.effectElements[0].p.v,\r\n                  i = this.filterManager.effectElements[1].p.v,\r\n                  r = 3 == i ? 0 : e,\r\n                  s = 2 == i ? 0 : e;\r\n                this.feGaussianBlur.setAttribute(\"stdDeviation\", r + \" \" + s);\r\n                var a =\r\n                  1 == this.filterManager.effectElements[2].p.v\r\n                    ? \"wrap\"\r\n                    : \"duplicate\";\r\n                this.feGaussianBlur.setAttribute(\"edgeMode\", a);\r\n              }\r\n            }),\r\n            (TransformEffect.prototype.init = function (t) {\r\n              (this.effectsManager = t),\r\n                (this.type = effectTypes.TRANSFORM_EFFECT),\r\n                (this.matrix = new Matrix()),\r\n                (this.opacity = -1),\r\n                (this._mdf = !1),\r\n                (this._opMdf = !1);\r\n            }),\r\n            (TransformEffect.prototype.renderFrame = function (t) {\r\n              if (\r\n                ((this._opMdf = !1),\r\n                (this._mdf = !1),\r\n                t || this.effectsManager._mdf)\r\n              ) {\r\n                var e = this.effectsManager.effectElements,\r\n                  i = e[0].p.v,\r\n                  r = e[1].p.v,\r\n                  s = 1 === e[2].p.v,\r\n                  a = e[3].p.v,\r\n                  n = s ? a : e[4].p.v,\r\n                  o = e[5].p.v,\r\n                  h = e[6].p.v,\r\n                  l = e[7].p.v;\r\n                this.matrix.reset(),\r\n                  this.matrix.translate(-i[0], -i[1], i[2]),\r\n                  this.matrix.scale(0.01 * n, 0.01 * a, 1),\r\n                  this.matrix.rotate(-l * degToRads),\r\n                  this.matrix.skewFromAxis(\r\n                    -o * degToRads,\r\n                    (h + 90) * degToRads\r\n                  ),\r\n                  this.matrix.translate(r[0], r[1], 0),\r\n                  (this._mdf = !0),\r\n                  this.opacity !== e[8].p.v &&\r\n                    ((this.opacity = e[8].p.v), (this._opMdf = !0));\r\n              }\r\n            }),\r\n            extendPrototype([TransformEffect], SVGTransformEffect),\r\n            extendPrototype([TransformEffect], CVTransformEffect),\r\n            registerRenderer(\"canvas\", CanvasRenderer),\r\n            registerRenderer(\"html\", HybridRenderer),\r\n            registerRenderer(\"svg\", SVGRenderer),\r\n            ShapeModifiers.registerModifier(\"tm\", TrimModifier),\r\n            ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier),\r\n            ShapeModifiers.registerModifier(\"rp\", RepeaterModifier),\r\n            ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier),\r\n            ShapeModifiers.registerModifier(\"zz\", ZigZagModifier),\r\n            ShapeModifiers.registerModifier(\"op\", OffsetPathModifier),\r\n            setExpressionsPlugin(Expressions),\r\n            setExpressionInterfaces(getInterface),\r\n            initialize$1(),\r\n            initialize(),\r\n            registerEffect$1(20, SVGTintFilter, !0),\r\n            registerEffect$1(21, SVGFillFilter, !0),\r\n            registerEffect$1(22, SVGStrokeEffect, !1),\r\n            registerEffect$1(23, SVGTritoneFilter, !0),\r\n            registerEffect$1(24, SVGProLevelsFilter, !0),\r\n            registerEffect$1(25, SVGDropShadowEffect, !0),\r\n            registerEffect$1(28, SVGMatte3Effect, !1),\r\n            registerEffect$1(29, SVGGaussianBlurEffect, !0),\r\n            registerEffect$1(35, SVGTransformEffect, !1),\r\n            registerEffect(35, CVTransformEffect),\r\n            lottie\r\n          );\r\n        });\r\n    <\/script>\r\n    \r\n    \r\n    <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d23fd84 navigation_panel_section link-box elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d23fd84\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-53ddc18 navigation-panel\" data-id=\"53ddc18\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0f32ceb elementor-widget elementor-widget-heading\" data-id=\"0f32ceb\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Navigation<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f8e4ae icon-list elementor-mobile-align-left elementor-tablet-align-center elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"9f8e4ae\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/staging.aisuperior.com\/wp-content\/plugins\/elementor\/assets\/css\/widget-icon-list.min.css\">\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#value\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Services und L\u00f6sungen f\u00fcr k\u00fcnstliche Intelligenz helfen Ihnen, einen gr\u00f6\u00dferen Mehrwert zu erschlie\u00dfen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#business\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Positive Auswirkungen von Diensten und L\u00f6sungen der k\u00fcnstlichen Intelligenz im Unternehmen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#why-choose\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Warum AI Superior w\u00e4hlen?<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#build\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">KI-L\u00f6sungen, die wir f\u00fcr Ihr Projekt entwickeln k\u00f6nnen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#industry\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Branchen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#work-process\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Unser Arbeitsprozess<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#customer\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Entdecken Sie unsere Kundenf\u00e4lle<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#awards\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"> Unsere Auszeichnungen und Anerkennungen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#faq\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">FAQs<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#insight\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Schauen Sie sich den AI Insights Hub von AI Superior an<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/#discuss\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Lassen Sie uns \u00fcber Ihr n\u00e4chstes KI-Projekt sprechen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-339e3e0 services-solutions\" data-id=\"339e3e0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-28232d4 elementor-widget elementor-widget-heading\" data-id=\"28232d4\" data-element_type=\"widget\" id=\"value\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Dienstleistungen und L\u00f6sungen f\u00fcr k\u00fcnstliche Intelligenz <span style=\"color:#4665A4;\">um Ihnen zu helfen, einen gr\u00f6\u00dferen Mehrwert zu erschlie\u00dfen<\/span><\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08e6b80 elementor-widget elementor-widget-text-editor\" data-id=\"08e6b80\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 29-01-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<div class=\"fl-col fl-node-tmdjs64yvng8\" data-node=\"tmdjs64yvng8\"><div class=\"fl-col-content fl-node-content\"><div id=\"how-we-work\" class=\"fl-module fl-module-rich-text fl-node-3hu07b49pcwi parag\" data-node=\"3hu07b49pcwi\"><div class=\"fl-module-content fl-node-content\"><div class=\"fl-rich-text\"><p>AI Superior ist ein in Deutschland ans\u00e4ssiges KI-Dienstleistungsunternehmen, das sich auf die durchg\u00e4ngige Entwicklung von KI-basierten Anwendungen und KI-Beratung konzentriert. Wir entwerfen und erstellen Web- und mobile Apps sowie kundenspezifische Softwareprodukte, die auf komplexen Modellen und Algorithmen f\u00fcr maschinelles Lernen und KI basieren. Unsere promovierten Datenwissenschaftler und Softwareentwickler sind bereit, Sie bei der Erstellung Ihrer Erfolgsgeschichte zu unterst\u00fctzen.<\/p><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1df53f4 elementor-testimonial--layout-image_above elementor-testimonial--align-left carousl home-slider elementor-testimonial--skin-default elementor-arrows-yes elementor-widget elementor-widget-testimonial-carousel\" data-id=\"1df53f4\" data-element_type=\"widget\" data-settings=\"{&quot;slides_per_view&quot;:&quot;2&quot;,&quot;slides_to_scroll&quot;:&quot;2&quot;,&quot;slides_per_view_tablet&quot;:&quot;2&quot;,&quot;slides_to_scroll_tablet&quot;:&quot;2&quot;,&quot;show_arrows&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;space_between&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;space_between_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;space_between_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]}}\" data-widget_type=\"testimonial-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/staging.aisuperior.com\/wp-content\/plugins\/elementor-pro\/assets\/css\/widget-carousel.min.css\">\t\t<div class=\"elementor-swiper\">\n\t\t\t<div class=\"elementor-main-swiper swiper\">\n\t\t\t\t<div class=\"swiper-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\tMa\u00dfgeschneiderte Entwicklung KI-gest\u00fctzter Softwarel\u00f6sungen, die auf Ihre spezifischen Gesch\u00e4ftsanforderungen und -ziele zugeschnitten sind. \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><span><a style=\"color:#18276A;\" href=\"https:\/\/staging.aisuperior.com\/de\/services\/ai-software-development\/\">KI-Softwareentwicklung<\/a><\/span><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/12\/AISD_icon.svg\" alt=\"&lt;span&gt;&lt;a style=&quot;color:#18276A;&quot; href=&quot;https:\/\/staging.aisuperior.com\/de\/services\/ai-software-development\/&quot;&gt;KI-Softwareentwicklung&lt;\/a&gt;&lt;\/span&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\tUmfassende Schulungsprogramme, die Einzelpersonen und Teams das n\u00f6tige Wissen und die F\u00e4higkeiten vermitteln, um KI effektiv zu nutzen\t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><span><a style=\"color:#18276A;\" href=\"https:\/\/staging.aisuperior.com\/de\/services\/artificial-intelligence-training\/\">Schulung zu k\u00fcnstlicher Intelligenz<\/a><\/span><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/12\/AIT_icon.svg\" alt=\"&lt;span&gt;&lt;a style=&quot;color:#18276A;&quot; href=&quot;https:\/\/staging.aisuperior.com\/de\/services\/artificial-intelligence-training\/&quot;&gt;Schulung zu k&uuml;nstlicher Intelligenz&lt;\/a&gt;&lt;\/span&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\tWir unterst\u00fctzen Sie dabei, potenzielle Anwendungsgebiete f\u00fcr Data Science, Machine Learning und K\u00fcnstliche Intelligenz zu erkennen, zu bewerten, zu priorisieren und zu definieren. \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><span><a style=\"color:#18276A;\" href=\"https:\/\/staging.aisuperior.com\/de\/services\/artificial-intelligence-consulting\/\">Beratung zur k\u00fcnstlichen Intelligenz <\/a><\/span><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/icon-cutting-edge.png\" alt=\"&lt;span&gt;&lt;a style=&quot;color:#18276A;&quot; href=&quot;https:\/\/staging.aisuperior.com\/de\/services\/artificial-intelligence-consulting\/&quot;&gt;Beratung zur k&uuml;nstlichen Intelligenz &lt;\/a&gt;&lt;\/span&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\tWir bieten Beratung und Unterst\u00fctzung bei der F\u00f6rderung einer datengesteuerten Denk- und Verhaltenseinstellung in Ihrem Unternehmen und entwickeln eine Kultur, die Daten und KI wertsch\u00e4tzt und akzeptiert.\t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><span><a style=\"color:#18276A;\" href=\"https:\/\/staging.aisuperior.com\/de\/services\/research-and-development\/\">Forschung und Entwicklung im Bereich k\u00fcnstliche Intelligenz<\/a><\/span><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/12\/Ai_RD_icon.svg\" alt=\"&lt;span&gt;&lt;a style=&quot;color:#18276A;&quot; href=&quot;https:\/\/staging.aisuperior.com\/de\/services\/research-and-development\/&quot;&gt;Forschung und Entwicklung im Bereich k&uuml;nstliche Intelligenz&lt;\/a&gt;&lt;\/span&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-left\"><\/i>\t\t\t\t\t\t\t<span class=\"elementor-screen-only\">Vorherige<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-right\"><\/i>\t\t\t\t\t\t\t<span class=\"elementor-screen-only\">N\u00e4chste<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-9e5b5b2 image-side-block\" data-id=\"9e5b5b2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5498dfe image-box elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"5498dfe\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 29-01-2024 *\/\n.elementor-widget-image-box .elementor-image-box-content{width:100%}@media (min-width:768px){.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper,.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{display:flex}.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{text-align:right;flex-direction:row-reverse}.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper{text-align:left;flex-direction:row}.elementor-widget-image-box.elementor-position-top .elementor-image-box-img{margin:auto}.elementor-widget-image-box.elementor-vertical-align-top .elementor-image-box-wrapper{align-items:flex-start}.elementor-widget-image-box.elementor-vertical-align-middle .elementor-image-box-wrapper{align-items:center}.elementor-widget-image-box.elementor-vertical-align-bottom .elementor-image-box-wrapper{align-items:flex-end}}@media (max-width:767px){.elementor-widget-image-box .elementor-image-box-img{margin-left:auto!important;margin-right:auto!important;margin-bottom:15px}}.elementor-widget-image-box .elementor-image-box-img{display:inline-block}.elementor-widget-image-box .elementor-image-box-title a{color:inherit}.elementor-widget-image-box .elementor-image-box-wrapper{text-align:center}.elementor-widget-image-box .elementor-image-box-description{margin:0}<\/style><div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img decoding=\"async\" width=\"218\" height=\"218\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Framejourney-img.png\" class=\"attachment-full size-full wp-image-109\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Framejourney-img.png 218w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Framejourney-img-150x150.png 150w\" sizes=\"(max-width: 218px) 100vw, 218px\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Starten Sie Ihre Daten<br> Reise<\/h3><p class=\"elementor-image-box-description\"><a href=\"https:\/\/staging.aisuperior.com\/de\/artificial-intelligence-consulting\/\">Loslegen<\/a><\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d05dcde elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d05dcde\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ed25dda\" data-id=\"ed25dda\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4b482c7 elementor-widget elementor-widget-heading\" data-id=\"4b482c7\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Vertrauen von<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8f3964 image_carousl elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel\" data-id=\"b8f3964\" data-element_type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;5&quot;,&quot;slides_to_scroll&quot;:&quot;5&quot;,&quot;slides_to_show_mobile&quot;:&quot;2&quot;,&quot;slides_to_scroll_mobile&quot;:&quot;2&quot;,&quot;slides_to_scroll_tablet&quot;:&quot;4&quot;,&quot;slides_to_show_tablet&quot;:&quot;4&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 29-01-2024 *\/\n.elementor-widget-image-carousel .swiper,.elementor-widget-image-carousel .swiper-container{position:static}.elementor-widget-image-carousel .swiper-container .swiper-slide figure,.elementor-widget-image-carousel .swiper .swiper-slide figure{line-height:inherit}.elementor-widget-image-carousel .swiper-slide{text-align:center}.elementor-image-carousel-wrapper:not(.swiper-container-initialized):not(.swiper-initialized) .swiper-slide{max-width:calc(100% \/ var(--e-image-carousel-slides-to-show, 3))}<\/style>\t\t<div class=\"elementor-image-carousel-wrapper swiper\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-1-1-1-qohhcvbhxoq6jd6ofdiwcbdnxk61j6u8z0t7u4cywq.webp\" alt=\"Karussell-1-1-1\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl_002-qohhcoqmluh6a3g8hsoicv1frv2h1b44m48th6mq4a.webp\" alt=\"karussell_002\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl_004-qohhcoqmluh6a3g8hsoicv1frv2h1b44m48th6mq4a.webp\" alt=\"karussell_004\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-005-qohhcoqmluh6a3g8hsoicv1frv2h1b44m48th6mq4a.png\" alt=\"Karussell-005\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl_006-qohhcoqmluh6a3g8hsoicv1frv2h1b44m48th6mq4a.webp\" alt=\"karussell_006\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-07-qohhcnssf0fvyhhlna9vsd9z6h73tm0e9zlbzwo4ai.png\" alt=\"Karussell-07\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"7 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-08-qohhcnssf0fvyhhlna9vsd9z6h73tm0e9zlbzwo4ai.png\" alt=\"Karussell-08\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"8 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-09-qohhcoqmluh6a3g8hsoicv1frv2h1b44m48th6mq4a.png\" alt=\"Karussell-09\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"9 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-01000-qohhcnssf0fvyhhlna9vsd9z6h73tm0e9zlbzwo4ai.png\" alt=\"Karussell-01000\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"10 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-003-qohhcnssf0fvyhhlna9vsd9z6h73tm0e9zlbzwo4ai.webp\" alt=\"Karussell-003\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"11 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/elementor\/thumbs\/carousl-011-qohhcnssf0fvyhhlna9vsd9z6h73tm0e9zlbzwo4ai.png\" alt=\"Karussell-011\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-left\"><\/i>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-right\"><\/i>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b27629 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b27629\" data-element_type=\"section\" id=\"business\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0019099\" data-id=\"0019099\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d04dfd0 elementor-widget elementor-widget-heading\" data-id=\"d04dfd0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Vorteilhaft <span style=\"color:#4665A4;\">Ergebnisse von k\u00fcnstlichen Intelligenzdiensten<\/span>   und L\u00f6sungen im Business<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-a605c6b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a605c6b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-d6e1dd5\" data-id=\"d6e1dd5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-161c20f elementor-widget elementor-widget-heading\" data-id=\"161c20f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">75%<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a06083 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"8a06083\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>der F\u00fchrungskr\u00e4fte glauben, dass KI zur Entscheidungsfindung beitr\u00e4gt und einen Wettbewerbsvorteil verschafft.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-d758750\" data-id=\"d758750\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d68115c elementor-widget elementor-widget-heading\" data-id=\"d68115c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">45%<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8157510 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"8157510\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>der T\u00e4tigkeiten in verschiedenen Branchen k\u00f6nnen mit Hilfe von KI automatisiert werden.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-1a00353 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1a00353\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1ba7980\" data-id=\"1ba7980\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-383e227 elementor-widget elementor-widget-heading\" data-id=\"383e227\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">72%<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ea6925 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"0ea6925\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>der Kunden erwarten von Unternehmen eine personalisierte Interaktion, die mit Hilfe von KI erreicht werden kann.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-4e7056f\" data-id=\"4e7056f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-142b9ea elementor-widget elementor-widget-heading\" data-id=\"142b9ea\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">40%<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e42a0d7 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"e42a0d7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Verringerung der finanziellen Verluste bei Organisationen, die KI zur Betrugserkennung nutzen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-35c742a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"35c742a\" data-element_type=\"section\" id=\"why-choose\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-174ffa0\" data-id=\"174ffa0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9bc62db elementor-widget elementor-widget-heading\" data-id=\"9bc62db\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Warum w\u00e4hlen <span style=\"color:#4665A4;\">AI Superior als Ihre k\u00fcnstliche Intelligenz<\/span> <br>Servicepartner<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6bd5e33 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6bd5e33\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-6a2d718\" data-id=\"6a2d718\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-54fac17 img-text elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"54fac17\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img decoding=\"async\" width=\"101\" height=\"101\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/icon-experienced-professionals.png\" class=\"attachment-full size-full wp-image-371\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><span class=\"elementor-image-box-title\">Team aus erfahrenen Fachleuten<\/span><p class=\"elementor-image-box-description\">Unser Team aus hochqualifizierten Beratern, von denen viele einen Doktortitel in KI oder verwandten Bereichen haben, verf\u00fcgt \u00fcber umfassendes Wissen und praktische Erfahrung mit verschiedenen Arten von KI-Projekten. Wir haben KI-gesteuerte L\u00f6sungen f\u00fcr verschiedene Branchen entwickelt, von Versicherungen, Bauwesen und Finanzen bis hin zu Pharmazie und Immobilien.<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-861c7ed\" data-id=\"861c7ed\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2aaa3b8 img-text elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"2aaa3b8\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img decoding=\"async\" width=\"101\" height=\"101\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/icon-cutting-edge.png\" class=\"attachment-full size-full wp-image-377\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><span class=\"elementor-image-box-title\">Einsatz modernster Technologie<\/span><p class=\"elementor-image-box-description\">Neben jahrelanger Erfahrung und tiefgreifendem Fachwissen in der KI-Entwicklung sind wir stolz darauf, die neuesten Tools und Technologien zu verwenden. Egal, ob Sie KI zum ersten Mal einsetzen, vorhandene KI-Systeme pr\u00fcfen oder Ihre KI-Systeme skalieren m\u00f6chten, wir k\u00f6nnen Ihnen helfen!<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-cc9c745 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cc9c745\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-9139100\" data-id=\"9139100\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-65565a7 img-text elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"65565a7\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img loading=\"lazy\" decoding=\"async\" width=\"101\" height=\"101\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/icon-guaranteed.png\" class=\"attachment-full size-full wp-image-378\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><span class=\"elementor-image-box-title\">Garantierte Zuverl\u00e4ssigkeit und Flexibilit\u00e4t<\/span><p class=\"elementor-image-box-description\">Transparenz und kontinuierliche Kommunikation sind f\u00fcr den Erfolg jedes KI-Projekts oder jeder KI-L\u00f6sung von gr\u00f6\u00dfter Bedeutung. Bei AI Superior legen wir Wert auf eine enge Zusammenarbeit mit unseren Kunden und stellen sicher, dass sie den Wert jedes einzelnen Schritts auf dem Weg verstehen. Unser flexibler Ansatz erm\u00f6glicht es uns, uns an Ihre Projektziele und -anforderungen anzupassen, sodass Sie beruhigt sein k\u00f6nnen. <\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-a025b6a\" data-id=\"a025b6a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8f683c9 img-text elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"8f683c9\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img loading=\"lazy\" decoding=\"async\" width=\"101\" height=\"101\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/icon-new-heights.png\" class=\"attachment-full size-full wp-image-379\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><span class=\"elementor-image-box-title\">Bringen Sie Ihr Unternehmen auf ein neues Niveau<\/span><p class=\"elementor-image-box-description\">Als vertrauensw\u00fcrdiges Dienstleistungsunternehmen f\u00fcr k\u00fcnstliche Intelligenz integrieren wir KI in verschiedene Prozesse, um die langfristige Effizienz zu steigern und die Gesch\u00e4ftskontinuit\u00e4t sicherzustellen. Durch sorgf\u00e4ltige Analyse identifizieren wir Bereiche und Abl\u00e4ufe, in denen KI-gest\u00fctzte L\u00f6sungen Ihrem Unternehmen einen erheblichen Mehrwert bieten k\u00f6nnen, sodass Sie das volle Potenzial der KI nutzen k\u00f6nnen.<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c4980e elementor-align-center elementor-widget elementor-widget-button\" data-id=\"5c4980e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/calendar.google.com\/calendar\/u\/0\/appointments\/AcZssZ2w-4m_KyZRw3Kam88rgTqHINI-Z1BTtDS7vh4=\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Anruf vereinbaren<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2819e63 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2819e63\" data-element_type=\"section\" id=\"build\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5c5ed2c\" data-id=\"5c5ed2c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a4be2d8 elementor-widget elementor-widget-heading\" data-id=\"a4be2d8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">KI-L\u00f6sungen <span style=\"color: #4665a4;\"> Wir k\u00f6nnen bauen<\/span>  f\u00fcr Ihr Projekt<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5eeeb6a elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"5eeeb6a\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/computer-vision-and-image-analysis\/\" tabindex=\"-1\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/ai-icon-1.png\" class=\"attachment-full size-full wp-image-406\" alt=\"\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/computer-vision-and-image-analysis\/\">Computer Vision und Bildverarbeitung<\/a><\/h3><p class=\"elementor-image-box-description\">Nutzen Sie die Leistungsf\u00e4higkeit der Computervision, um wirkungsvolle Bildanalysen und -verarbeitungen durchzuf\u00fchren, das Wachstum zu steigern und gesch\u00e4ftliche Herausforderungen zu l\u00f6sen. Unsere Computervision-Technologie, die Videoanalyse, Objekterkennung und Bildanalyse umfasst, kann Ihnen dabei helfen, aus Videos und Bildern aussagekr\u00e4ftige Informationen zu extrahieren und diese in umsetzbare Erkenntnisse umzuwandeln. Egal, ob Sie nach Bildsegmentierung, emotionaler Analyse, optischer Zeichenerkennung, Gesichtserkennung oder kontextbezogener Bildklassifizierung suchen, AI Superior hat die L\u00f6sung f\u00fcr Sie.<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dcdd541 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"dcdd541\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/natural-language-processing-machine-learning\/\" tabindex=\"-1\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/5.png\" class=\"attachment-full size-full wp-image-2164\" alt=\"\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/natural-language-processing-machine-learning\/\">Verarbeitung nat\u00fcrlicher Sprache<\/a><\/h3><p class=\"elementor-image-box-description\">Jede Kundeninteraktion, sei es \u00fcber soziale Medien, E-Mail oder Kundensupport-Chat, generiert jede Sekunde eine gro\u00dfe Menge unstrukturierter Textdaten, die f\u00fcr das Gesch\u00e4ft wertvoll sein k\u00f6nnen. Mit unseren Diensten zur Verarbeitung nat\u00fcrlicher Sprache k\u00f6nnen Sie aus diesen Daten wertvolle Erkenntnisse gewinnen, verschiedene Textanalyseprobleme wie die Stimmungsanalyse l\u00f6sen und in Sekundenschnelle aussagekr\u00e4ftige Informationen finden. Unsere Experten k\u00f6nnen auch bei der Entwicklung robuster NLP-Apps mit Funktionen wie Fragenbeantwortung, Spracherkennung, semantischer Suche, maschineller \u00dcbersetzung, Spam-Kontrolle und emotionaler Bedeutung helfen.  <\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a1fffe elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"7a1fffe\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/6.png\" class=\"attachment-full size-full wp-image-2165\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Pr\u00e4diktive Analytik<\/h3><p class=\"elementor-image-box-description\">Aufgrund der sich st\u00e4ndig \u00e4ndernden Gesch\u00e4ftslandschaft reichen historische Daten nicht mehr aus, um einen profitablen ROI zu erzielen. Hier kann Predictive Analytics helfen. Es sind sowohl aktuelle als auch historische Daten erforderlich, um Trends und Erkenntnisse \u00fcber die Zukunft zu liefern und so eine bessere datengesteuerte Entscheidungsfindung zu erm\u00f6glichen. Die Predictive Analytics-Dienste von AI Superior k\u00f6nnen Ihnen dabei helfen, Ma\u00dfnahmen basierend auf Kundenverhalten und prognostizierten Markttrends zu ergreifen. Von der Betrugserkennung und der Vorhersage von Ger\u00e4teausf\u00e4llen bis hin zur Prognose von Markttrends garantieren wir zuverl\u00e4ssige und genaue Vorhersagemodelle, die das Gesch\u00e4ft ankurbeln k\u00f6nnen. <\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-513b3fc elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"513b3fc\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/business-intelligence-and-statistical-analysis\/\" tabindex=\"-1\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/2.png\" class=\"attachment-full size-full wp-image-2166\" alt=\"\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/business-intelligence-and-statistical-analysis\/\">BI-L\u00f6sungen<\/a><\/h3><p class=\"elementor-image-box-description\">Treffen Sie mit unseren BI-L\u00f6sungen intelligentere Entscheidungen auf der Grundlage von Gesch\u00e4ftsdaten. Wir k\u00f6nnen Ihnen helfen, Verbesserungsbereiche, organisatorische Probleme und neue Gesch\u00e4ftsm\u00f6glichkeiten zu identifizieren, indem wir rohe, unstrukturierte Daten unterschiedlicher Herkunft nutzen. Unsere BI-L\u00f6sungen k\u00f6nnen dazu beitragen, die betriebliche Effizienz zu verbessern und \u00fcberzeugende Visualisierungen f\u00fcr datengesteuerte Entscheidungen und Strategien bereitzustellen.<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5baa7d elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"e5baa7d\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/3.png\" class=\"attachment-full size-full wp-image-2167\" alt=\"\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Big Data-Analyse<\/h3><p class=\"elementor-image-box-description\">Beschleunigen und verbessern Sie die Entscheidungsfindung mit Big Data Analytics in Echtzeit. Mit unserer Expertise in Big Data Analytics k\u00f6nnen wir Ihnen helfen, Analysefunktionen zu implementieren, mit denen Sie gesch\u00e4ftliche Herausforderungen l\u00f6sen, zuk\u00fcnftige Ergebnisse vorhersagen und neue umsetzbare Erkenntnisse und Muster gewinnen k\u00f6nnen, die Ihr Unternehmen effizienter machen. Sie k\u00f6nnen auch Daten aus verschiedenen Quellen analysieren, darunter Protokolle, Transaktionsanwendungen und Sensoren, um M\u00f6glichkeiten zur Entwicklung neuer Dienste und Produkte zu identifizieren und potenzielle Risiken und Kundenbed\u00fcrfnisse einzusch\u00e4tzen. <\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9e959bf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9e959bf\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3a5f5b1\" data-id=\"3a5f5b1\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c43dd44 elementor-widget elementor-widget-heading\" data-id=\"c43dd44\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Sie fragen sich, ob Ihr Problem mit KI gel\u00f6st werden kann?<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2a723f2 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"2a723f2\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">KI-Bewertung starten<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0443c11 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0443c11\" data-element_type=\"section\" id=\"industry\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-45cecd3\" data-id=\"45cecd3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-da0ca49 elementor-widget elementor-widget-heading\" data-id=\"da0ca49\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Branchen<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72eeb5b elementor-widget elementor-widget-text-editor\" data-id=\"72eeb5b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Erstellen preisgekr\u00f6nter KI-L\u00f6sungen f\u00fcr mehrere Gesch\u00e4ftsbereiche.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8475937 elementor-testimonial--layout-image_above elementor-testimonial--align-left carousl industries elementor-testimonial--skin-default elementor-arrows-yes elementor-widget elementor-widget-testimonial-carousel\" data-id=\"8475937\" data-element_type=\"widget\" data-settings=\"{&quot;slides_per_view&quot;:&quot;4&quot;,&quot;slides_to_scroll&quot;:&quot;4&quot;,&quot;space_between&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;slides_per_view_tablet&quot;:&quot;4&quot;,&quot;slides_to_scroll_tablet&quot;:&quot;3&quot;,&quot;space_between_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;show_arrows&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;autoplay&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;space_between_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]}}\" data-widget_type=\"testimonial-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-swiper\">\n\t\t\t<div class=\"elementor-main-swiper swiper\">\n\t\t\t\t<div class=\"swiper-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-finance\/\">Finanzen<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/finance.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-finance\/&quot;&gt;Finanzen&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-government-sector\/\">Regierung<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/government.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-government-sector\/&quot;&gt;Regierung&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-internet-industry-and-tech-start-ups\/\">Internet- und Technologie-Startups<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/internet.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-internet-industry-and-tech-start-ups\/&quot;&gt;Internet- und Technologie-Startups&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-media-and-entertainment\/\">Medien<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/media.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-media-and-entertainment\/&quot;&gt;Medien&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-construction\/\">Konstruktion<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Group-2.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-construction\/&quot;&gt;Konstruktion&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-oil-and-gas-industry\/\">\u00d6l und Gas<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Group-3515.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-oil-and-gas-industry\/&quot;&gt;&Ouml;l und Gas&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-pharma\/\">Pharmazeutika<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Vector.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-pharma\/&quot;&gt;Pharmazeutika&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-real-estate\/\">Immobilie<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Vector-1.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-real-estate\/&quot;&gt;Immobilie&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-space-industry\/\">Raum<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/1.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-space-industry\/&quot;&gt;Raum&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-software-development-for-ngos-npos-and-ncos\/\">NGOs, NPOs, NCOs<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/Group-3516.png\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-software-development-for-ngos-npos-and-ncos\/&quot;&gt;NGOs, NPOs, NCOs&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t \t\t\t\t\t<\/div>\n\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\"><a href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-insurance\/\">Versicherung<\/a><\/span><\/cite>\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial__image\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Insurance-Ico.svg\" alt=\"&lt;a href=&quot;https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-in-insurance\/&quot;&gt;Versicherung&lt;\/a&gt;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-left\"><\/i>\t\t\t\t\t\t\t<span class=\"elementor-screen-only\">Vorherige<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-right\"><\/i>\t\t\t\t\t\t\t<span class=\"elementor-screen-only\">N\u00e4chste<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c17cc78 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"c17cc78\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Ihre Branche<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1fb4a09 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1fb4a09\" data-element_type=\"section\" id=\"work-process\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-21f20f7\" data-id=\"21f20f7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-45a02ca elementor-widget elementor-widget-heading\" data-id=\"45a02ca\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Unser <span style=\"color:#4665A4;\">Arbeitsprozess<\/span><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-0d30bba elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0d30bba\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1f0c6c1 work-process-left\" data-id=\"1f0c6c1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f97b207 elementor-widget elementor-widget-text-editor\" data-id=\"f97b207\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Bei AI Superior verfolgen wir bei allen KI-Entwicklungsprojekten einen systematischen Ansatz. Wenn Sie uns als Partner w\u00e4hlen, k\u00f6nnen Sie Folgendes erwarten:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea1d58d elementor-align-left elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"ea1d58d\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Lass uns reden<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-3e0946d work-process-right\" data-id=\"3e0946d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-857ae7a work-image-box elementor-widget elementor-widget-image-box\" data-id=\"857ae7a\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Entdeckungsphase:<\/h3><p class=\"elementor-image-box-description\">Wir beginnen damit, das Problem, das Sie l\u00f6sen m\u00f6chten, gr\u00fcndlich zu verstehen. Durch enge Zusammenarbeit sammeln wir Erkenntnisse und definieren die allgemeine Richtung und Vorgehensweise f\u00fcr die L\u00f6sung. Wir erstellen hochrangige Sch\u00e4tzungen, damit Sie den Projektumfang und die erwarteten Ergebnisse klar verstehen.<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb2bc3d work-image-box elementor-widget elementor-widget-image-box\" data-id=\"bb2bc3d\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Ersteinrichtung:<\/h3><p class=\"elementor-image-box-description\">Sobald wir Ihre Anforderungen verstanden haben, gehen wir tiefer in das Verst\u00e4ndnis Ihres Teams und der f\u00fcr ein erfolgreiches Projekt erforderlichen Daten ein. Wir bewerten den verf\u00fcgbaren Datensatz, um festzustellen, ob KI die optimale L\u00f6sung f\u00fcr das vorliegende Problem ist.\n\n<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-68eda40 work-image-box elementor-widget elementor-widget-image-box\" data-id=\"68eda40\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">MVP erstellen:<\/h3><p class=\"elementor-image-box-description\">Wir verfolgen einen inkrementellen Ansatz, indem wir klein anfangen und den verf\u00fcgbaren Datensatz nutzen, um die Realisierbarkeit unserer Idee zu testen. Auf diese Weise k\u00f6nnen wir die Wirksamkeit der vorgeschlagenen L\u00f6sung bestimmen und beurteilen, ob sich weitere Investitionen lohnen.\n\n<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6c88f0 work-image-box elementor-widget elementor-widget-image-box\" data-id=\"d6c88f0\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Skalierung und Integration:<\/h3><p class=\"elementor-image-box-description\">Nach der erfolgreichen Entwicklung und Erprobung eines Prototyps konzentrieren wir uns auf die Integration der KI-L\u00f6sung in Ihr bestehendes System. Wir sorgen f\u00fcr eine nahtlose Kompatibilit\u00e4t mit Ihren Daten, optimieren die Modelle und nehmen bei Bedarf die erforderlichen Anpassungen vor.\n\n<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a346e8 work-image-box elementor-widget elementor-widget-image-box\" data-id=\"7a346e8\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Ergebnisse auswerten:<\/h3><p class=\"elementor-image-box-description\">Wir arbeiten eng mit Ihnen zusammen, um die Ergebnisse der implementierten KI-Integration umfassend auszuwerten. Unser Ziel ist es, wertvolle Erkenntnisse zu liefern und deren genaue Interpretation sicherzustellen, damit Sie den maximalen Nutzen aus der KI-L\u00f6sung ziehen k\u00f6nnen.\n\n<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0078507 CTA elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0078507\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-63a2fbd\" data-id=\"63a2fbd\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ac2f881 paragraph elementor-widget elementor-widget-text-editor\" data-id=\"ac2f881\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default elementor-inline-editing pen\" style=\"font-size: 22px; font-style: normal; font-weight: 500; margin-bottom: 0px; color: #293350; line-height: 36px;\" data-elementor-setting-key=\"title\" data-pen-placeholder=\"Type Here...\">Durch Befolgen dieses Prozesses stellen wir w\u00e4hrend des gesamten Projekts Transparenz, Zusammenarbeit und ein umfassendes Verst\u00e4ndnis Ihrer Anforderungen sicher. Das Ergebnis sind erfolgreiche KI-Implementierungen, die zu greifbaren Gesch\u00e4ftsergebnissen f\u00fchren.<\/span>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3040132 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3040132\" data-element_type=\"section\" id=\"customer\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5dd7ac1\" data-id=\"5dd7ac1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-13840db elementor-widget elementor-widget-heading\" data-id=\"13840db\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Kunde <span style=\"color:#4665A4;\">Erfolgsgeschichten<\/span><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cff292a loop_carousl elementor-arrows-position-inside elementor-widget elementor-widget-loop-carousel\" data-id=\"cff292a\" data-element_type=\"widget\" data-settings=\"{&quot;template_id&quot;:&quot;1030&quot;,&quot;slides_to_show&quot;:&quot;1&quot;,&quot;slides_to_show_tablet&quot;:&quot;1&quot;,&quot;_skin&quot;:&quot;post&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;.elementor-widget-container&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;offset_sides&quot;:&quot;none&quot;,&quot;arrows&quot;:&quot;yes&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-carousel.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/staging.aisuperior.com\/wp-content\/plugins\/elementor-pro\/assets\/css\/widget-loop-builder.min.css\">\t\t<div class=\"swiper elementor-loop-container elementor-grid\" dir=\"ltr\">\n\t\t\t\t<div class=\"swiper-wrapper\" aria-live=\"off\">\n\t\t<style id=\"loop-1030\">.elementor-1030 .elementor-element.elementor-element-f3336f6 > .elementor-container{max-width:1400px;}.elementor-1030 .elementor-element.elementor-element-190cfd9:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1030 .elementor-element.elementor-element-190cfd9 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-1030 .elementor-element.elementor-element-190cfd9 > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:70px 70px 70px 50px;}.elementor-1030 .elementor-element.elementor-element-190cfd9 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-bottom:calc(0px\/2);}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-top:calc(0px\/2);}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-right:calc(0px\/2);margin-left:calc(0px\/2);}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-items.elementor-inline-items{margin-right:calc(-0px\/2);margin-left:calc(-0px\/2);}body.rtl .elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{left:calc(-0px\/2);}body:not(.rtl) .elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{right:calc(-0px\/2);}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-icon{width:14px;}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-icon i{font-size:14px;}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-text, .elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-text a{color:#4665A4;}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-item{font-family:\"Poppins\", Sans-serif;font-size:18px;font-weight:400;}.elementor-1030 .elementor-element.elementor-element-3e440a2 .elementor-heading-title{color:#293350;font-family:\"Poppins\", Sans-serif;font-size:36px;font-weight:500;line-height:40px;}.elementor-1030 .elementor-element.elementor-element-3e440a2 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-08fcd96 .elementor-widget-container{color:var( --e-global-color-secondary );font-family:\"Poppins\", Sans-serif;font-size:16px;font-weight:400;}.elementor-1030 .elementor-element.elementor-element-08fcd96 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-a7539f1 .elementor-button{font-family:\"Poppins\", Sans-serif;font-size:16px;font-weight:bold;letter-spacing:1.69px;fill:#252E5A;color:#252E5A;background-color:#FFFFFF00;border-radius:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-a7539f1 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(max-width:1024px){.elementor-1030 .elementor-element.elementor-element-190cfd9 > .elementor-element-populated{margin:20px 20px 20px 20px;--e-column-margin-right:20px;--e-column-margin-left:20px;}.elementor-1030 .elementor-element.elementor-element-3e440a2 .elementor-heading-title{font-size:30px;}.elementor-1030 .elementor-element.elementor-element-c2959d0 > .elementor-element-populated{margin:20px 20px 20px 20px;--e-column-margin-right:20px;--e-column-margin-left:20px;}.elementor-1030 .elementor-element.elementor-element-faceeb4 > .elementor-widget-container{margin:20px 20px 20px 20px;}}@media(max-width:767px){.elementor-1030 .elementor-element.elementor-element-f3336f6{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-190cfd9 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-1030 .elementor-element.elementor-element-190cfd9 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:40px 20px 40px 20px;}.elementor-1030 .elementor-element.elementor-element-37318c1 .elementor-icon-list-item{font-size:16px;}.elementor-1030 .elementor-element.elementor-element-37318c1 > .elementor-widget-container{margin:20px 0px 20px 0px;padding:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-3e440a2 .elementor-heading-title{font-size:26px;}.elementor-1030 .elementor-element.elementor-element-3e440a2 > .elementor-widget-container{margin:0px 0px 20px 0px;padding:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-08fcd96 .elementor-widget-container{font-size:14px;}.elementor-1030 .elementor-element.elementor-element-08fcd96 > .elementor-widget-container{margin:0px 0px 16px 0px;padding:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-a7539f1 .elementor-button{font-size:14px;}.elementor-1030 .elementor-element.elementor-element-a7539f1 > .elementor-widget-container{margin:30px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1030 .elementor-element.elementor-element-c2959d0 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-1030 .elementor-element.elementor-element-c2959d0 > .elementor-element-populated{margin:0px 0px 25px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:20px 20px 0px 20px;}.elementor-1030 .elementor-element.elementor-element-faceeb4 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}}@media(max-width:1024px) and (min-width:768px){.elementor-1030 .elementor-element.elementor-element-190cfd9{width:100%;}.elementor-1030 .elementor-element.elementor-element-c2959d0{width:100%;}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1030\" class=\"elementor elementor-1030 swiper-slide e-loop-item e-loop-item-16597 post-16597 projects type-projects status-publish has-post-thumbnail hentry project_categories-nlp-technology project_categories-other\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f3336f6 stories-carousl elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f3336f6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-190cfd9 stories-column-left\" data-id=\"190cfd9\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37318c1 elementor-widget elementor-widget-post-info\" data-id=\"37318c1\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/staging.aisuperior.com\/wp-content\/plugins\/elementor-pro\/assets\/css\/widget-theme-elements.min.css\">\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-33d207a elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/nlp-technologie\/\" class=\"elementor-post-info__terms-list-item\">NLP<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/andere\/\" class=\"elementor-post-info__terms-list-item\">Andere<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e440a2 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"3e440a2\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/projects\/starkung-von-organisationen-mit-masgeschneiderten-llm-fahigen-chatbot-losungen\/\">St\u00e4rkung von Organisationen mit benutzerdefinierten LLM-f\u00e4higen Chatbot-L\u00f6sungen<\/a><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fcd96 elementor-widget elementor-widget-theme-post-excerpt\" data-id=\"08fcd96\" data-element_type=\"widget\" data-widget_type=\"theme-post-excerpt.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>Das AI Superior-Team hat eine Webanwendung entwickelt, die es Benutzern erm\u00f6glicht, \u00fcber eine Chatbot-Schnittstelle mit einem benutzerdefinierten LLM zu kommunizieren. Diese Innovation erm\u00f6glicht es Organisationen, private, gehostete\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7539f1 elementor-button-info elementor-widget elementor-widget-button\" data-id=\"a7539f1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/projects\/starkung-von-organisationen-mit-masgeschneiderten-llm-fahigen-chatbot-losungen\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c2959d0 elementor-hidden-mobile\" data-id=\"c2959d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-faceeb4 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"faceeb4\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 29-01-2024 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"624\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2021\/11\/Group-3015.svg\" class=\"attachment-large size-large wp-image-12052\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1030\" class=\"elementor elementor-1030 swiper-slide e-loop-item e-loop-item-14651 post-14651 projects type-projects status-publish has-post-thumbnail hentry project_categories-cv project_categories-internet\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f3336f6 stories-carousl elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f3336f6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-190cfd9 stories-column-left\" data-id=\"190cfd9\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37318c1 elementor-widget elementor-widget-post-info\" data-id=\"37318c1\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-33d207a elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/lebenslauf\/\" class=\"elementor-post-info__terms-list-item\">Lebenslauf<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/internet\/\" class=\"elementor-post-info__terms-list-item\">Internet<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e440a2 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"3e440a2\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/projects\/enhancing-workplace-hygiene-with-ai-powered-object-detection\/\">Verbesserung der Arbeitsplatzhygiene durch KI-gest\u00fctzte Objekterkennung<\/a><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fcd96 elementor-widget elementor-widget-theme-post-excerpt\" data-id=\"08fcd96\" data-element_type=\"widget\" data-widget_type=\"theme-post-excerpt.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>Ein Unternehmen f\u00fcr Arbeitsplatzhygiene trat mit einer einzigartigen Aufgabe an AI Superior heran: Es sollte ein System entwickelt werden, das selbstst\u00e4ndig erkennt, wann ein Bereich gereinigt werden muss, um den Bedarf an\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7539f1 elementor-button-info elementor-widget elementor-widget-button\" data-id=\"a7539f1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/projects\/enhancing-workplace-hygiene-with-ai-powered-object-detection\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c2959d0 elementor-hidden-mobile\" data-id=\"c2959d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-faceeb4 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"faceeb4\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"624\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2021\/11\/Group-3015.svg\" class=\"attachment-large size-large wp-image-12052\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1030\" class=\"elementor elementor-1030 swiper-slide e-loop-item e-loop-item-10765 post-10765 projects type-projects status-publish has-post-thumbnail hentry project_categories-core-machine-learning project_categories-cv project_categories-real-estate\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f3336f6 stories-carousl elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f3336f6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-190cfd9 stories-column-left\" data-id=\"190cfd9\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37318c1 elementor-widget elementor-widget-post-info\" data-id=\"37318c1\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-33d207a elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/kern-des-maschinellen-lernens\/\" class=\"elementor-post-info__terms-list-item\">Grundlegendes maschinelles Lernen<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/lebenslauf\/\" class=\"elementor-post-info__terms-list-item\">Lebenslauf<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/immobilie\/\" class=\"elementor-post-info__terms-list-item\">Immobilie<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e440a2 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"3e440a2\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/projects\/harnessing-deep-learning-for-urban-zone-pricing-analysis\/\">Nutzung von Deep Learning f\u00fcr die Preisanalyse in st\u00e4dtischen Zonen<\/a><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fcd96 elementor-widget elementor-widget-theme-post-excerpt\" data-id=\"08fcd96\" data-element_type=\"widget\" data-widget_type=\"theme-post-excerpt.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>Auf dem heutigen dynamischen Immobilienmarkt ist die genaue Einsch\u00e4tzung der Preise verschiedener Zonen innerhalb einer Stadt f\u00fcr Immobilienprofis von entscheidender Bedeutung. Diese Aufgabe war jedoch traditionell eine Herausforderung\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7539f1 elementor-button-info elementor-widget elementor-widget-button\" data-id=\"a7539f1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/projects\/harnessing-deep-learning-for-urban-zone-pricing-analysis\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c2959d0 elementor-hidden-mobile\" data-id=\"c2959d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-faceeb4 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"faceeb4\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-1024x1024.png\" class=\"attachment-large size-large wp-image-10766\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-1024x1024.png 1024w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-300x300.png 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-150x150.png 150w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-768x768.png 768w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-1536x1536.png 1536w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/MAP@3x-2048x2048.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1030\" class=\"elementor elementor-1030 swiper-slide e-loop-item e-loop-item-10764 post-10764 projects type-projects status-publish has-post-thumbnail hentry project_categories-core-machine-learning project_categories-cv project_categories-medical\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f3336f6 stories-carousl elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f3336f6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-190cfd9 stories-column-left\" data-id=\"190cfd9\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37318c1 elementor-widget elementor-widget-post-info\" data-id=\"37318c1\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-33d207a elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/kern-des-maschinellen-lernens\/\" class=\"elementor-post-info__terms-list-item\">Grundlegendes maschinelles Lernen<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/lebenslauf\/\" class=\"elementor-post-info__terms-list-item\">Lebenslauf<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/medizinisch\/\" class=\"elementor-post-info__terms-list-item\">Medizinisch<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e440a2 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"3e440a2\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/projects\/from-scans-to-insights-using-deep-learning-to-estimate-fat-and-muscle-volume-of-human-eyes\/\">Von Scans zu Erkenntnissen: Verwendung von Deep Learning zur Sch\u00e4tzung des Fett- und Muskelvolumens menschlicher Augen<\/a><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fcd96 elementor-widget elementor-widget-theme-post-excerpt\" data-id=\"08fcd96\" data-element_type=\"widget\" data-widget_type=\"theme-post-excerpt.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>AI Superior hat in Zusammenarbeit mit einem Zentrum f\u00fcr Augenheilkunde ein fortschrittliches Deep-Learning-Modell entwickelt, um das Fett- und Muskelvolumen in menschlichen Augen mithilfe von CT und\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7539f1 elementor-button-info elementor-widget elementor-widget-button\" data-id=\"a7539f1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/projects\/from-scans-to-insights-using-deep-learning-to-estimate-fat-and-muscle-volume-of-human-eyes\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c2959d0 elementor-hidden-mobile\" data-id=\"c2959d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-faceeb4 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"faceeb4\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"720\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/brain.png\" class=\"attachment-large size-large wp-image-11299\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/brain.png 720w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/brain-300x300.png 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/brain-150x150.png 150w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1030\" class=\"elementor elementor-1030 swiper-slide e-loop-item e-loop-item-10763 post-10763 projects type-projects status-publish has-post-thumbnail hentry project_categories-core-machine-learning project_categories-insurance\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f3336f6 stories-carousl elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f3336f6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-190cfd9 stories-column-left\" data-id=\"190cfd9\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37318c1 elementor-widget elementor-widget-post-info\" data-id=\"37318c1\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-33d207a elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/kern-des-maschinellen-lernens\/\" class=\"elementor-post-info__terms-list-item\">Grundlegendes maschinelles Lernen<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/versicherung\/\" class=\"elementor-post-info__terms-list-item\">Versicherung<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e440a2 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"3e440a2\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/projects\/data-driven-insurance-ai-superiors-breakthrough-in-usage-based-insurance\/\">Datengesteuerte Versicherung: Deep-Learning-L\u00f6sung f\u00fcr nutzungsbasierte Versicherung<\/a><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fcd96 elementor-widget elementor-widget-theme-post-excerpt\" data-id=\"08fcd96\" data-element_type=\"widget\" data-widget_type=\"theme-post-excerpt.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>AI Superior hat eine innovative L\u00f6sung f\u00fcr eine Versicherungsgesellschaft entwickelt, die ihren Kunden nutzungsbasierte Versicherungen anbieten wollte. Unter Einsatz von Deep-Learning-Algorithmen hat AI Superior\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7539f1 elementor-button-info elementor-widget elementor-widget-button\" data-id=\"a7539f1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/projects\/data-driven-insurance-ai-superiors-breakthrough-in-usage-based-insurance\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c2959d0 elementor-hidden-mobile\" data-id=\"c2959d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-faceeb4 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"faceeb4\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"720\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/Artboard-4-1.png\" class=\"attachment-large size-large wp-image-11300\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/Artboard-4-1.png 720w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/Artboard-4-1-300x300.png 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/06\/Artboard-4-1-150x150.png 150w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1030\" class=\"elementor elementor-1030 swiper-slide e-loop-item e-loop-item-10761 post-10761 projects type-projects status-publish has-post-thumbnail hentry project_categories-cv project_categories-government\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f3336f6 stories-carousl elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f3336f6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-190cfd9 stories-column-left\" data-id=\"190cfd9\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37318c1 elementor-widget elementor-widget-post-info\" data-id=\"37318c1\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-33d207a elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/lebenslauf\/\" class=\"elementor-post-info__terms-list-item\">Lebenslauf<\/a>, <a href=\"https:\/\/staging.aisuperior.com\/de\/project_categories\/regierung\/\" class=\"elementor-post-info__terms-list-item\">Regierung<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e440a2 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"3e440a2\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/projects\/ai-superiors-advanced-graffiti-detection-system\/\">Fortschrittliches Graffiti-Erkennungssystem von AI Superior<\/a><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fcd96 elementor-widget elementor-widget-theme-post-excerpt\" data-id=\"08fcd96\" data-element_type=\"widget\" data-widget_type=\"theme-post-excerpt.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>AI Superior hat eine innovative L\u00f6sung f\u00fcr Kommunen entwickelt, mit der Graffiti in ihren St\u00e4dten mithilfe modernster Deep-Learning-Algorithmen schnell erkannt und lokalisiert werden k\u00f6nnen. Dieses Echtzeit-System zur hochpr\u00e4zisen Graffiti-Erkennung\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7539f1 elementor-button-info elementor-widget elementor-widget-button\" data-id=\"a7539f1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/projects\/ai-superiors-advanced-graffiti-detection-system\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c2959d0 elementor-hidden-mobile\" data-id=\"c2959d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-faceeb4 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"faceeb4\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"720\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Artboard-6-1.png\" class=\"attachment-large size-large wp-image-10762\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Artboard-6-1.png 720w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Artboard-6-1-300x300.png 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Artboard-6-1-150x150.png 150w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-left\"><\/i>\t\t\t<\/div>\n\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-right\"><\/i>\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-889eb36 development-packages elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"889eb36\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d1b3bcf\" data-id=\"d1b3bcf\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-85aeed3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"85aeed3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-d69b521 faq_tab_s\" data-id=\"d69b521\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c578612 elementor-widget__width-initial packages-accordion elementor-widget elementor-widget-eael-adv-accordion\" data-id=\"c578612\" data-element_type=\"widget\" data-widget_type=\"eael-adv-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t        <div class=\"eael-adv-accordion\" id=\"eael-adv-accordion-c578612\" data-scroll-on-click=\"no\" data-scroll-speed=\"300\" data-accordion-id=\"c578612\" data-accordion-type=\"accordion\" data-toogle-speed=\"300\">\n    <div class=\"eael-accordion-list\">\n                <div id=\"proof-of-concept-poc\" class=\"elementor-tab-title eael-accordion-header active-default\" tabindex=\"0\" data-tab=\"1\" aria-controls=\"elementor-tab-content-2071\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Konzeptnachweis (PoC)<\/span><\/div><div id=\"elementor-tab-content-2071\" class=\"eael-accordion-content clearfix active-default\" data-tab=\"1\" aria-labelledby=\"proof-of-concept-poc\">Wir helfen Ihnen, Ihre Produktidee zu testen<\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"minimum-viable-product-mvp\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"2\" aria-controls=\"elementor-tab-content-2072\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Minimal funktionsf\u00e4higes Produkt (MVP)<\/span><\/div><div id=\"elementor-tab-content-2072\" class=\"eael-accordion-content clearfix\" data-tab=\"2\" aria-labelledby=\"minimum-viable-product-mvp\">Wir unterst\u00fctzen Sie bei der Validierung Ihres Gesch\u00e4ftsmodells mit einem Minimum Viable Product Fit<\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"product\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"3\" aria-controls=\"elementor-tab-content-2073\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Produkt<\/span><\/div><div id=\"elementor-tab-content-2073\" class=\"eael-accordion-content clearfix\" data-tab=\"3\" aria-labelledby=\"product\">Wir unterst\u00fctzen Sie bei der Skalierung vom MVP zum vollwertigen Produkt<\/div>\n                <\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-09ab30f\" data-id=\"09ab30f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4695938 elementor-widget elementor-widget-heading\" data-id=\"4695938\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">KI-Entwicklung  <span style=\"color:#4665A4;\">Pakete <br> f\u00fcr Startups<\/span><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49396b0 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"49396b0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"fl-module fl-module-rich-text fl-node-ghjx869v4zdr\" data-node=\"ghjx869v4zdr\"><div class=\"fl-module-content fl-node-content\"><div class=\"fl-rich-text\"><p>AI Superior bietet feste KI-Entwicklungspl\u00e4ne, die darauf zugeschnitten sind, Startups in jeder Phase des Softwareentwicklungsprozesses zu unterst\u00fctzen. Vom KI-Proof of Concept (PoC) bis hin zu vollst\u00e4ndig skalierbaren Produkten, die fortschrittliche KI-Modelle nutzen, gew\u00e4hrleisten unsere Pl\u00e4ne ein garantiertes Ergebnis zu einem vordefinierten Preis.<\/p><\/div><\/div><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b3b238 elementor-align-left elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"1b3b238\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/packages-for-startups\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Mehr sehen<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2f21c27 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2f21c27\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c90bac4\" data-id=\"c90bac4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1287c11 elementor-widget elementor-widget-html\" data-id=\"1287c11\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/widget.clutch.co\/static\/js\/widget.js\" defer=\"\"><\/script> <div class=\"clutch-widget\" data-url=\"https:\/\/widget.clutch.co\" data-widget-type=\"12\" data-height=\"375\" data-nofollow=\"true\" data-expandifr=\"true\" data-reviews=\"2147394,2119222,2087670,1883392,1880654,1875690,1830410,1787327,1776687,1765743,1677732\" data-clutchcompany-id=\"1557153\"><iframe id=\"iframe-0.8757677658569052\" width=\"100%\" src=\"https:\/\/widget.clutch.co\/widgets\/get\/12?ref_domain=staging.aisuperior.com&amp;uid=1557153&amp;rel_nofollow=true&amp;reviews=2147394%2C2119222%2C2087670%2C1883392%2C1880654%2C1875690%2C1830410%2C1787327%2C1776687%2C1765743%2C1677732&amp;ref_path=\/\" height=\"375px\" scrolling=\"no\" data-lf-yt-playback-inspected-dzlr5a5jvlw8boq2=\"true\" data-lf-vimeo-playback-inspected-dzlr5a5jvlw8boq2=\"true\" style=\"border: none; overflow: hidden; display: block; height: 357px;\" title=\"[iFrameSizer]iframe-0.8757677658569052:0:0:mouseleave:639:35112\"><\/iframe><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a52323a elementor-section-content-middle bg-cta elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a52323a\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-f50c437\" data-id=\"f50c437\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c3ab447 elementor-widget__width-initial para elementor-widget elementor-widget-text-editor\" data-id=\"c3ab447\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\tWir sind vertrauensw\u00fcrdige Partner von NGOs, NPOs und NCOs\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-f5ca965\" data-id=\"f5ca965\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9ca3806 elementor-align-left elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"9ca3806\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/staging.aisuperior.com\/de\/industry\/artificial-intelligence-software-development-for-ngos-npos-and-ncos\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Erfahren Sie mehr \u00fcber unseren Ansatz<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3cee353 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3cee353\" data-element_type=\"section\" id=\"awards\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f4cf495\" data-id=\"f4cf495\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2f94cfc elementor-widget elementor-widget-heading\" data-id=\"2f94cfc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Unser <span style=\"color: #4665a4;\">Auszeichnungen und Anerkennungen<\/span><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc4c32c awards-carousl elementor-arrows-position-outside elementor-widget elementor-widget-image-carousel\" data-id=\"bc4c32c\" data-element_type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;4&quot;,&quot;slides_to_scroll&quot;:&quot;4&quot;,&quot;slides_to_show_mobile&quot;:&quot;2&quot;,&quot;slides_to_scroll_mobile&quot;:&quot;2&quot;,&quot;slides_to_show_tablet&quot;:&quot;4&quot;,&quot;slides_to_scroll_tablet&quot;:&quot;4&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-1.png\" alt=\"Kupplung-1\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-3.png\" alt=\"Kupplung-3\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-4.png\" alt=\"Kupplung-4\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-6.jpg\" alt=\"Kupplung-6\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-7.png\" alt=\"Kupplung-7\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-8.png\" alt=\"Kupplung-8\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"7 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-9.png\" alt=\"Kupplung-9\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"8 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/cluch-10.png\" alt=\"Kupplung-10\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"9 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/11\/Champion-Badge-2023-Fall-s.png\" alt=\"Champion-Badge-2023-Fall-s\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"10 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/11\/Global-Badge-2023-Fall-s.png\" alt=\"Global-Badge-2023-Fall-s\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"11 von 11\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/11\/staff_aug_award-3.png\" alt=\"staff_aug_award (3)\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-left\"><\/i>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-right\"><\/i>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fd18cb7 faq-section elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fd18cb7\" data-element_type=\"section\" id=\"faq\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-edf0902\" data-id=\"edf0902\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-05ffaf6 elementor-widget elementor-widget-heading\" data-id=\"05ffaf6\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Immer noch unsicher \u00fcber <span style=\"color:#4665A4;\">Wie kann ein KI-Dienstleistungsunternehmen Ihrem Unternehmen helfen?<\/span>  Lesen Sie die FAQs, um die Antworten zu finden: <\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e738400 elementor-widget__width-initial elementor-widget elementor-widget-eael-adv-accordion\" data-id=\"e738400\" data-element_type=\"widget\" data-widget_type=\"eael-adv-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t        <div class=\"eael-adv-accordion\" id=\"eael-adv-accordion-e738400\" data-scroll-on-click=\"no\" data-scroll-speed=\"300\" data-accordion-id=\"e738400\" data-accordion-type=\"accordion\" data-toogle-speed=\"300\">\n    <div class=\"eael-accordion-list\">\n                <div id=\"what-are-typical-ai-services\" class=\"elementor-tab-title eael-accordion-header active-default\" tabindex=\"0\" data-tab=\"1\" aria-controls=\"elementor-tab-content-2421\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Was sind typische KI-Dienste?<\/span><\/div><div id=\"elementor-tab-content-2421\" class=\"eael-accordion-content clearfix active-default\" data-tab=\"1\" aria-labelledby=\"what-are-typical-ai-services\">Wir bieten eine Reihe von KI-Diensten an, die Unternehmen dabei helfen, das wahre Potenzial der KI auszusch\u00f6pfen. Einige typische KI-Dienste umfassen:<br><br>\n\n<strong>Ma\u00dfgeschneiderte KI-L\u00f6sungen:<\/strong> Wir entwickeln KI-L\u00f6sungen, die auf die Bed\u00fcrfnisse und Herausforderungen Ihres Unternehmens zugeschnitten sind. Unsere KI-Experten arbeiten eng mit Ihnen zusammen, um Ihre individuellen Anforderungen zu verstehen und KI-Systeme zu entwickeln, die Ihren Anforderungen gerecht werden, die Effizienz steigern, Ihnen einen Vorsprung vor der Konkurrenz verschaffen und Innovationen vorantreiben.<br><br>\n\n<strong>KI-Beratung: <\/strong> Wir sind darauf spezialisiert, Unternehmen, die KI einf\u00fchren m\u00f6chten, um ihr Wachstum voranzutreiben und ihre Betriebsabl\u00e4ufe zu verbessern, strategische Beratung zu bieten. Experten von AI Superior bewerten Ihre Gesch\u00e4ftsanforderungen, identifizieren KI-Chancen und entwickeln eine Strategie f\u00fcr die Entwicklung und Implementierung von KI.<br><br>\n\n<strong>Implementierung: <\/strong> Sobald ein Plan vorliegt und eine KI-L\u00f6sung als machbar erachtet wird, arbeitet das KI-Beratungsunternehmen an der Umsetzung des Projekts. Dazu geh\u00f6rt der Aufbau des erforderlichen Rahmens, die Auswahl und Anpassung des Modells sowie die Integration der KI-L\u00f6sung in das vorhandene System.<br><br>\n\n<strong>KI-Schulung und -Ausbildung:<\/strong> Wir bieten Schulungsmodule, Workshops und Vortr\u00e4ge f\u00fcr Unternehmen an, die die F\u00e4higkeiten ihrer Mitarbeiter im Bereich KI verbessern m\u00f6chten. Von Programmierregeln bis hin zu Schulungen f\u00fcr Data-Science-Teams und von Workshops zu maschinellem Lernen und Data Mining bis hin zu Vortr\u00e4gen zur Entwicklung von KI-Software sind wir bestrebt, f\u00fchrende KI-F\u00e4higkeiten zu vermitteln, die Ihr Unternehmen in der sich st\u00e4ndig ver\u00e4ndernden Gesch\u00e4ftslandschaft von heute relevant halten k\u00f6nnen.<br><br>\n\n<strong>KI-Integration und -Bereitstellung: <\/strong> Bei AI Superior helfen wir Unternehmen, KI in ihre bestehenden Altsysteme und Arbeitsabl\u00e4ufe zu integrieren. Unsere Experten k\u00f6nnen KI in bestehende Softwareanwendungen integrieren, Modelle und Algorithmen f\u00fcr eine schnellere Leistung optimieren und sie nahtlos in Ihre bestehenden Prozesse integrieren.<br><br>\n\n<strong>Datenanalyse: <\/strong> Die Experten von AI Superior helfen Unternehmen, mithilfe von KI wertvolle Informationen aus Rohdaten zu extrahieren. Wir k\u00f6nnen Ihnen dabei helfen, Trends und Muster zu erkennen und umsetzbare Erkenntnisse f\u00fcr datengesteuerte Entscheidungen bereitzustellen.<\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"how-can-businesses-benefit-from-ai-services-and-solutions\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"2\" aria-controls=\"elementor-tab-content-2422\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Wie k\u00f6nnen Unternehmen von KI-Diensten und -L\u00f6sungen profitieren?<\/span><\/div><div id=\"elementor-tab-content-2422\" class=\"eael-accordion-content clearfix\" data-tab=\"2\" aria-labelledby=\"how-can-businesses-benefit-from-ai-services-and-solutions\">Mit der Weiterentwicklung der KI kommen Unternehmen in den Genuss weiterer Vorteile \u2013 h\u00f6herer Kundenzufriedenheit, gesteigerter Mitarbeiterproduktivit\u00e4t und verbesserter Gesch\u00e4ftsabl\u00e4ufe.<br><br>\n\nDer Einsatz von KI zur Analyse des Kundenverhaltens und der Kundenpr\u00e4ferenzen sowie zur Bereitstellung personalisierter Erlebnisse und ma\u00dfgeschneiderter Empfehlungen kann zu einer h\u00f6heren Kundenzufriedenheit, h\u00f6heren Konversionsraten sowie mehr Engagement und Loyalit\u00e4t f\u00fchren, was sich letztlich positiv auf das Gesch\u00e4ft auswirkt.<br><br>\n\nKI kann auch allt\u00e4gliche und sich wiederholende Aufgaben automatisieren, sodass sich Ihre Mitarbeiter mehr auf Innovationen als auf Routineaufgaben konzentrieren k\u00f6nnen. Sie kann auch gro\u00dfe Datenmengen schnell und effizient verarbeiten und komplexe Berechnungen durchf\u00fchren, was zu einer verbesserten Produktivit\u00e4t, weniger menschlichen Fehlern und einer h\u00f6heren Effizienz f\u00fchrt. Dar\u00fcber hinaus hilft die Automatisierung sich wiederholender Aufgaben Unternehmen, Ressourcen und Zeit zu sparen.<br><br>\n\nDurch die umfassende Nutzung von KI k\u00f6nnen Sie Ihren Mitbewerbern auch einen Schritt voraus sein, da Unternehmen dadurch neue Chancen erkennen, rasch auf Marktver\u00e4nderungen reagieren und schneller Innovationen hervorbringen k\u00f6nnen.<\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"what-is-ai-as-a-service\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"3\" aria-controls=\"elementor-tab-content-2423\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Was ist KI als Dienstleistung?<\/span><\/div><div id=\"elementor-tab-content-2423\" class=\"eael-accordion-content clearfix\" data-tab=\"3\" aria-labelledby=\"what-is-ai-as-a-service\">KI als Service ist ein Cloud-basierter Service, der es Ihnen erm\u00f6glicht, in der Cloud vorkonfigurierte KI-L\u00f6sungen und -Services zu nutzen. Dabei wird ein Pay-as-you-go-Modell verwendet, mit dem Sie mit KI experimentieren und sicherstellen k\u00f6nnen, dass sie Ihrem Unternehmen einen Mehrwert bietet, bevor Sie eine Investition t\u00e4tigen. Unternehmen k\u00f6nnen KI auch ohne gro\u00dfe Vorabinvestitionen und mit geringem Risiko und h\u00f6herer Geschwindigkeit in der Produktion einsetzen.<br><br>\n\nZahlreiche Plattformen bieten KI als Service an und erm\u00f6glichen Ihnen, mit ihren ML-Algorithmen und -Diensten zu experimentieren. Wir bei AI Superior verstehen, dass es \u00fcberw\u00e4ltigend sein kann, auf dem heutigen, st\u00e4ndig wachsenden Markt die richtigen Tools und Plattformen auszuw\u00e4hlen, die Ihren Anforderungen vollst\u00e4ndig entsprechen, aber unsere KI-Berater k\u00f6nnen Ihnen helfen. Unsere Experten k\u00f6nnen Sie durch den Auswahlprozess f\u00fchren und Ihnen helfen, alle erforderlichen Tools in Ihr Projekt zu integrieren.<\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"how-much-do-ai-services-cost\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"4\" aria-controls=\"elementor-tab-content-2424\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Wie viel kosten KI-Dienste?<\/span><\/div><div id=\"elementor-tab-content-2424\" class=\"eael-accordion-content clearfix\" data-tab=\"4\" aria-labelledby=\"how-much-do-ai-services-cost\">Da jedes KI-Projekt einzigartig ist, k\u00f6nnen die Kosten f\u00fcr KI-Dienste variieren und von einer Reihe von Faktoren abh\u00e4ngen, darunter die Komplexit\u00e4t des Projekts, die Verf\u00fcgbarkeit von Daten, \u00dcberlegungen zur Bereitstellung und Anpassungsbedarf. Obwohl wir ohne Kenntnis der Projektdetails keine genauen Zahlen nennen k\u00f6nnen, arbeiten wir eng mit unseren Kunden zusammen, um ihre Bed\u00fcrfnisse zu ermitteln und personalisierte L\u00f6sungen bereitzustellen, die zu ihrem Budget passen. Nehmen Sie noch heute Kontakt mit uns auf und wir erstellen Ihnen gerne ein individuelles Angebot basierend auf Ihrem Projekt.<\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"what-ai-solutions-are-the-most-common-in-business-use\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"5\" aria-controls=\"elementor-tab-content-2425\"><span class=\"eael-advanced-accordion-icon-closed\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-plus\"><\/i><\/span><span class=\"eael-advanced-accordion-icon-opened\"><i aria-hidden=\"true\" class=\"fa-accordion-icon fas fa-minus\"><\/i><\/span><span class=\"eael-accordion-tab-title\">Welche KI-L\u00f6sungen werden in Unternehmen am h\u00e4ufigsten eingesetzt?<\/span><\/div><div id=\"elementor-tab-content-2425\" class=\"eael-accordion-content clearfix\" data-tab=\"5\" aria-labelledby=\"what-ai-solutions-are-the-most-common-in-business-use\">Von Betrieb und Marketing bis hin zum Kundenservice wird KI in vielen Gesch\u00e4ftsbereichen eingesetzt. Einige g\u00e4ngige Anwendungsf\u00e4lle sind:<br><br>\n\n<strong>Chatbots f\u00fcr besseren Kundenservice: <\/strong> Unternehmen k\u00f6nnen ihre Kundendienstprozesse mit Chatbots optimieren und verbessern und ihre Kundendienstmitarbeiter f\u00fcr Probleme freistellen, die menschliches Eingreifen erfordern. Chatbots k\u00f6nnen Kunden auch an Mitarbeiter weiterleiten, die ihre Fragen besser beantworten k\u00f6nnen und rund um die Uhr zur Verf\u00fcgung stehen, um Kundenanfragen zu l\u00f6sen.<br><br>\n\n<strong>Personalisierte Empfehlungen:<\/strong> KI kann das Kundenverhalten analysieren und Produkte empfehlen, die den Interessen des Benutzers entsprechen. Dies ist besonders bei E-Commerce- und Streaming-Websites beliebt. Durch die Analyse der Arten von Sendungen und Filmen, die Sie am h\u00e4ufigsten sehen, oder der Produkte, nach denen Sie am h\u00e4ufigsten suchen, kann die KI Ihnen \u00e4hnliche Titel pr\u00e4sentieren, damit Sie l\u00e4nger auf der Plattform bleiben.<br><br>\n\n<strong>Zielgruppensegmentierung f\u00fcr gezielte Kampagnen:<\/strong> KI wird in der Werbebranche eingesetzt, um Benutzer zu segmentieren und gezielte Kampagnen zur Steigerung des Umsatzes durchzuf\u00fchren, insbesondere in Branchen mit hohem Wettbewerb.<br><br>\n\n<strong>Sentimentanalyse zur Kundenzufriedenheit: <\/strong> Mithilfe der Stimmungsanalyse mithilfe von KI k\u00f6nnen Unternehmen Kundenreaktionen messen und Erkenntnisse dar\u00fcber gewinnen, wie Kunden ihre Marke sehen, indem sie Bewertungen, Rezensionen und Posts durchsuchen, in denen die Marke erw\u00e4hnt wird. Diese Erkenntnisse helfen Unternehmen dabei, Bereiche zu identifizieren, die verbessert werden k\u00f6nnen, um einen besseren Kundenservice zu gew\u00e4hrleisten.<br><br>\n\n<strong>Entdeckung eines Betruges: <\/strong> Unternehmen nutzen KI, um Betrug zu erkennen, darauf zu reagieren und Cyberkriminalit\u00e4t zu verhindern. Verschiedene Algorithmen des maschinellen Lernens werden verwendet, um verd\u00e4chtige Transaktionen zu identifizieren. Wenn ein Betrugsrisiko besteht, wird die Transaktion gestoppt und die betroffenen Parteien werden \u00fcber das Risiko informiert.<br><br>\n\n<strong>Optimierung der Lieferkette:<\/strong> KI ist auch f\u00fcr Unternehmen hilfreich, die Probleme haben, Produkte p\u00fcnktlich auszuliefern. Sie kann dabei helfen, die Material- und Versandkosten vorherzusagen und die Zeit abzusch\u00e4tzen, die die Produkte ben\u00f6tigen, um die Lieferkette zu durchlaufen. Dadurch k\u00f6nnen Unternehmen bessere Entscheidungen \u00fcber die optimale Versandart von Produkten treffen. KI wird auch h\u00e4ufig verwendet, um schnellere Routen zu finden und so den Zustellern zu helfen.<\/div>\n                <\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-87f7ceb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"87f7ceb\" data-element_type=\"section\" id=\"insight\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-097b455\" data-id=\"097b455\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-275b47c elementor-widget elementor-widget-heading\" data-id=\"275b47c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Schauen Sie sich den AI Insights Hub von AI Superior an<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6071f28 blog-loop-carousl elementor-arrows-position-inside elementor-widget elementor-widget-loop-carousel\" data-id=\"6071f28\" data-element_type=\"widget\" data-settings=\"{&quot;template_id&quot;:&quot;976&quot;,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;_skin&quot;:&quot;post&quot;,&quot;slides_to_show&quot;:&quot;3&quot;,&quot;slides_to_show_tablet&quot;:&quot;2&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;.elementor-widget-container&quot;,&quot;speed&quot;:500,&quot;arrows&quot;:&quot;yes&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-carousel.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"swiper elementor-loop-container elementor-grid\" dir=\"ltr\">\n\t\t\t\t<div class=\"swiper-wrapper\" aria-live=\"polite\">\n\t\t<style id=\"loop-976\">\r\n\r\n@media(max-width:767px){\r\n.elementor-image-box-wrapper {\r\n    align-items: flex-start !important;\r\n}\r\n.elementor-image-box-wrapper figure {\r\n    min-width: 40px;\r\n}\r\n}\r\n.elementor-976 .elementor-element.elementor-element-dd086a0 > .elementor-container{max-width:1400px;}.elementor-976 .elementor-element.elementor-element-dd086a0:not(.elementor-motion-effects-element-type-background), .elementor-976 .elementor-element.elementor-element-dd086a0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#23B6CE;}.elementor-976 .elementor-element.elementor-element-dd086a0{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:20px 20px 20px 20px;}.elementor-976 .elementor-element.elementor-element-dd086a0 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-bc-flex-widget .elementor-976 .elementor-element.elementor-element-386490e.elementor-column .elementor-widget-wrap{align-items:center;}.elementor-976 .elementor-element.elementor-element-386490e.elementor-column.elementor-element[data-element_type=\"column\"] > .elementor-widget-wrap.elementor-element-populated{align-content:center;align-items:center;}.elementor-976 .elementor-element.elementor-element-386490e.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-976 .elementor-element.elementor-element-386490e > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:20px 0px 20px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 0px 0px 0px;}.elementor-976 .elementor-element.elementor-element-386490e > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-976 .elementor-element.elementor-element-d257254{text-align:center;}.elementor-976 .elementor-element.elementor-element-d257254 img{width:100%;max-width:359px;height:179px;object-fit:cover;object-position:center center;}.elementor-976 .elementor-element.elementor-element-d257254 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-976 .elementor-element.elementor-element-45ae849 .elementor-heading-title{color:#FFFFFF;font-family:\"Poppins\", Sans-serif;font-size:20px;font-weight:500;line-height:30px;}.elementor-976 .elementor-element.elementor-element-45ae849 > .elementor-widget-container{margin:0px 0px 20px 0px;padding:0px 0px 0px 0px;}.elementor-976 .elementor-element.elementor-element-e2e5c2e{text-align:left;color:#FFFFFF;font-family:\"Poppins\", Sans-serif;font-size:15px;font-weight:300;line-height:24px;}.elementor-976 .elementor-element.elementor-element-e2e5c2e > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 15px 0px 0px;}.elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-icon{width:14px;}.elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-icon i{font-size:14px;}.elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-text, .elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-text a{color:#FFFFFF;}.elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-item{font-family:\"Poppins\", Sans-serif;font-size:14px;font-weight:400;}.elementor-976 .elementor-element.elementor-element-a81df6f > .elementor-widget-container{margin:0px 20px 0px 0px;}@media(max-width:1024px) and (min-width:768px){.elementor-976 .elementor-element.elementor-element-386490e{width:100%;}}@media(max-width:1024px){.elementor-976 .elementor-element.elementor-element-dd086a0{margin-top:80px;margin-bottom:80px;padding:0px 25px 0px 25px;}.elementor-976 .elementor-element.elementor-element-386490e > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 0px 0px 0px;}.elementor-976 .elementor-element.elementor-element-d257254 > .elementor-widget-container{margin:25px 0px 0px 0px;padding:0px 0px 0px 0px;}}@media(max-width:767px){.elementor-976 .elementor-element.elementor-element-dd086a0{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-976 .elementor-element.elementor-element-386490e > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-976 .elementor-element.elementor-element-386490e > .elementor-element-populated{margin:30px 0px 30px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 30px 0px 30px;}.elementor-976 .elementor-element.elementor-element-d257254 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-976 .elementor-element.elementor-element-45ae849 > .elementor-widget-container{margin:20px 0px 20px 0px;padding:10px 0px 10px 0px;}.elementor-976 .elementor-element.elementor-element-e2e5c2e > .elementor-widget-container{margin:0px 0px 0px 0px;padding:10px 30px 0px 10px;}.elementor-976 .elementor-element.elementor-element-a81df6f .elementor-icon-list-item{font-size:16px;}.elementor-976 .elementor-element.elementor-element-a81df6f > .elementor-widget-container{margin:0px 0px 0px 0px;padding:10px 10px 10px 0px;}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"976\" class=\"elementor elementor-976 swiper-slide e-loop-item e-loop-item-12276 post-12276 blog type-blog status-publish has-post-thumbnail hentry category-ai blog_category-ai\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd086a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd086a0\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-386490e\" data-id=\"386490e\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d257254 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"d257254\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"864\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/10\/AdobeStock_309676324-1536x864-1.jpg\" class=\"attachment-full size-full wp-image-12277\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/10\/AdobeStock_309676324-1536x864-1.jpg 1536w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/10\/AdobeStock_309676324-1536x864-1-300x169.jpg 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/10\/AdobeStock_309676324-1536x864-1-1024x576.jpg 1024w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/10\/AdobeStock_309676324-1536x864-1-768x432.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ae849 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"45ae849\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/blog\/ai-in-space-how-ml-is-revolutionizing-space-exploration\/\">KI im Weltraum: Wie ML die Weltraumforschung revolutioniert<\/a><\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2e5c2e post-content-block blogs-para elementor-widget elementor-widget-theme-post-content\" data-id=\"e2e5c2e\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>Die Erforschung des Weltraums hat schon immer die Aufmerksamkeit der Menschheit auf sich gezogen. Das Streben, den Kosmos zu verstehen, seine Geheimnisse zu entschl\u00fcsseln und neue Grenzen zu entdecken, ist zweifellos faszinierend, doch diese Reise bringt auch ihre Herausforderungen mit sich. Die Unendlichkeit des Weltraums, die rauen Bedingungen und die enorme Entfernung von der Erde machen die Erforschung des Weltraums zu einem gewaltigen Unterfangen.<\/p>\n<p>Doch mit den neuesten Fortschritten in der k\u00fcnstlichen Intelligenz (KI) konnte die Menschheit die Grenzen des M\u00f6glichen in der letzten Grenzregion verschieben. Von autonomen Rovern bis hin zur Datenanalyse und dem Betrieb von Satelliten hilft uns k\u00fcnstliche Intelligenz, die Geheimnisse unseres Universums zu verstehen.<\/p>\n<p>In diesem Blogbeitrag tauchen wir in die spannende Welt der KI in der Weltraumforschung ein und entdecken, wie sie die Zukunft der interstellaren Entdeckung gestaltet.<\/p>\n<h3><span class=\"wp-block-heading\">5 M\u00f6glichkeiten, wie KI in der Weltraumforschung eingesetzt wird<\/span><\/h3>\n<h3>Autonome Rover<\/h3>\n<p>KI spielt eine immer wichtigere Rolle bei der Weltraumforschung, vor allem durch den Einsatz autonomer Fahrzeuge. Rover wie Curiosity und Perseverance der NASA f\u00fchren seit Jahren autonome Navigationsmissionen durch das Marsgel\u00e4nde durch. Diese Rover sind mit Sensoren ausgestattet, die darauf ausgelegt sind, Umweltgefahren wie Felsen, Krater und verschiedene Gel\u00e4ndemerkmale zu erkennen. Anschlie\u00dfend analysiert ein KI-gesteuertes System die Daten, um den besten Weg nach vorne zu bestimmen, sodass die Rover die Marslandschaft sicher durchqueren und das Risiko von Kollisionen verringern k\u00f6nnen. Dar\u00fcber hinaus ist Perseverance der NASA mit einer KI-Software ausgestattet, die als Autonomous Exploration for Gathering Increased Science bekannt ist (<a href=\"https:\/\/mars.nasa.gov\/resources\/26782\/perseverances-supercam-uses-aegis-for-the-first-time\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u00c4GIDE)<\/a>. AEGIS erm\u00f6glicht es Perseverance, wertvolle Daten \u00fcber die verschiedenen Gesteinsarten und andere Merkmale des Mars zu sammeln, die es bei seiner Fahrt \u00fcber die Marsoberfl\u00e4che entdeckt. Diese F\u00e4higkeit wiederum erm\u00f6glicht es uns, mehr \u00fcber die Zusammensetzung des Planeten zu erfahren.<\/p>\n<h3>Satellitenbetrieb<\/h3>\n<p>Ein weiterer Weg, auf dem KI die Weltraumforschung revolutioniert, ist der Satellitenbetrieb. KI kann effizientere und schnellere L\u00f6sungen f\u00fcr die Verwaltung des Satellitenbetriebs bieten, einschlie\u00dflich kritischer Man\u00f6ver zur Kollisionsvermeidung. Nehmen wir zum Beispiel die Starlink-Satelliten von SpaceX, die ein autonomes, KI-gesteuertes Kollisionsvermeidungssystem nutzen. Dieses System ist darauf ausgelegt, das Vorhandensein von Weltraumschrott und anderen Gefahren in der N\u00e4he in Echtzeit zu erkennen und durch Anpassung der Geschwindigkeit und Flugbahn des Satelliten schnell Ausweichman\u00f6ver einzuleiten. Diese Anpassungsma\u00dfnahmen stellen sicher, dass der Satellit sicher seinen Weg navigiert und Kollisionen vermeidet, die seine Mission oder die Sicherheit anderer Weltraumressourcen gef\u00e4hrden k\u00f6nnten.<\/p>\n<h3><strong>Datenanalyse<\/strong><\/h3>\n<p>KI spielt eine zentrale Rolle bei der Datenanalyse in der Weltraumforschung und bietet pr\u00e4zisere und effizientere Methoden zur Analyse von Daten, die bei Weltraummissionen erfasst werden. Satelliten, Sonden und andere Weltraumforschungsinstrumente erfassen und sammeln riesige Datenmengen, und KI-Algorithmen spielen eine entscheidende Rolle bei der Analyse und Interpretation dieser Daten. Insbesondere Modelle des maschinellen Lernens zeigen eine bemerkenswerte F\u00e4higkeit, Muster zu erkennen, Himmelsobjekte zu klassifizieren, Anomalien zu erkennen und sich sogar in den Bereich der pr\u00e4diktiven Analyse zu wagen. Indem sie die Leistungsf\u00e4higkeit der KI nutzen, k\u00f6nnen Wissenschaftler nun tiefere Einblicke in den Kosmos gewinnen und unser Verst\u00e4ndnis des Universums beschleunigen.<\/p>\n<h3>Raketenlandung<\/h3>\n<p>Die Raketenlandung ist ein komplexer und kritischer Aspekt der Weltraumforschung. Die sichere und pr\u00e4zise R\u00fcckkehr von Raketen zur Erde oder ihre kontrollierte Landung auf anderen Himmelsk\u00f6rpern ist f\u00fcr den Missionserfolg von entscheidender Bedeutung. In den letzten Jahren hat die Integration k\u00fcnstlicher Intelligenz die Funktionsweise von Raketen deutlich verbessert.<br \/>\nSpaceX beispielsweise verwendet ein KI-gesteuertes System, um Daten von Raketensensoren und -kameras zu analysieren. Dieses KI-System berechnet und passt dann die Flugbahn der Rakete in Echtzeit an, wobei es Variablen wie Wind und Atmosph\u00e4re ber\u00fccksichtigt und so eine optimale Landeposition gew\u00e4hrleistet.<\/p>\n<h3>Galaxienkartierung<\/h3>\n<p>KI hat eine neue \u00c4ra der Pr\u00e4zision bei der Kartierung von Sternen und Galaxien eingel\u00e4utet und erm\u00f6glicht es Astronomen, Sterne und Galaxien im Weltraum genau zu identifizieren und sogar ihre physikalischen Eigenschaften (wie Masse und Alter) zu verstehen. Durch KI-basierte Algorithmen k\u00f6nnen Astronomen jetzt Muster in Sternhaufen erkennen, klassifizieren und klassifizieren, die entfernte Nebel bilden, und andere Merkmale klassifizieren, die im Weltraum erkannt werden.<br \/>\nEin Beispiel hierf\u00fcr ist das Kepler-Teleskop der NASA, das mithilfe k\u00fcnstlicher Intelligenz subtile Schwankungen im von Sternen ausgestrahlten Licht erkennt. Diese Schwankungen weisen auf die Existenz von Planeten hin und helfen Wissenschaftlern, deren wahrscheinliche Position zu bestimmen. Die Vorhersagekraft der KI kann auch genutzt werden, um das Verhalten von Sternen und Galaxien im Laufe der Zeit vorherzusagen. So k\u00f6nnen Wissenschaftler wertvolle Erkenntnisse gewinnen, die f\u00fcr zuk\u00fcnftige Kartierungs- und Erkundungsmissionen von Nutzen sein k\u00f6nnen.<\/p>\n<h3><span class=\"wp-block-heading\">Abschluss<\/span><\/h3>\n<p>K\u00fcnstliche Intelligenz ver\u00e4ndert die Weltraumforschung auf eine Art und Weise, die man fr\u00fcher f\u00fcr unm\u00f6glich gehalten h\u00e4tte. Sie erm\u00f6glicht es uns, tiefer in den Weltraum vorzudringen, mehr Daten zu sammeln und bahnbrechende Entdeckungen zu machen. Da sich die KI weiterentwickelt, k\u00f6nnen wir noch spannendere Entwicklungen im Bereich der Weltraumforschung erwarten. Ob es um die Erforschung ferner Planeten, die Entschl\u00fcsselung der Geheimnisse schwarzer L\u00f6cher oder das Verst\u00e4ndnis der Urspr\u00fcnge unseres Universums geht, KI erweist sich als unsch\u00e4tzbares Werkzeug bei unserem Bestreben, den Kosmos zu erforschen.<\/p>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81df6f elementor-widget elementor-widget-post-info\" data-id=\"a81df6f\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6f968e4 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/category\/ki\/\" class=\"elementor-post-info__terms-list-item\">KI, Data Science und maschinelles Lernen<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"976\" class=\"elementor elementor-976 swiper-slide e-loop-item e-loop-item-12134 post-12134 blog type-blog status-publish has-post-thumbnail hentry category-nlp blog_category-nlp\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd086a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd086a0\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-386490e\" data-id=\"386490e\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d257254 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"d257254\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_415754534-1024x583-1.jpeg\" class=\"attachment-full size-full wp-image-12135\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_415754534-1024x583-1.jpeg 1024w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_415754534-1024x583-1-300x171.jpeg 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_415754534-1024x583-1-768x437.jpeg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ae849 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"45ae849\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/blog\/how-can-sentiment-analysis-be-used-to-improve-customer-experience\/\">Wie kann die Stimmungsanalyse zur Verbesserung des Kundenerlebnisses genutzt werden?<\/a><\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2e5c2e post-content-block blogs-para elementor-widget elementor-widget-theme-post-content\" data-id=\"e2e5c2e\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>In der heutigen, hart umk\u00e4mpften Gesch\u00e4ftswelt ist das Kundenerlebnis zu einem entscheidenden Faktor f\u00fcr den Erfolg eines Unternehmens geworden. Zu verstehen, wie Kunden \u00fcber Ihre Produkte, Dienstleistungen und Ihre Marke denken, ist von unsch\u00e4tzbarem Wert, um fundierte Entscheidungen zu treffen, die zu Verbesserungen f\u00fchren k\u00f6nnen. Hier kommt die Sentimentanalyse oder Meinungsforschung ins Spiel. In diesem Artikel untersuchen wir, was Sentimentanalyse ist, welche verschiedenen Arten es gibt und warum sie f\u00fcr Unternehmen, die das Kundenerlebnis verbessern m\u00f6chten, so wichtig ist.<\/p>\n<h3><span class=\"wp-block-heading\">Was ist Sentimentanalyse?<\/span><\/h3>\n<p>Bei der Sentimentanalyse oder dem Sentiment Mining handelt es sich um eine Technik der nat\u00fcrlichen Sprachverarbeitung (NLP), die zur Ermittlung des emotionalen Tons oder der zum Ausdruck gebrachten Stimmung (positiv, negativ oder neutral) in Texten wie Kundenrezensionen, Social-Media-Posts oder Umfrageantworten verwendet wird.<\/p>\n<h3><span class=\"wp-block-heading\">Arten der Stimmungsanalyse<\/span><\/h3>\n<p><strong>Emotionserkennung und Stimmungsanalyse:\u00a0<\/strong>Emotionserkennung hilft, wie der Begriff schon sagt, dabei, die in Texten ausgedr\u00fcckten Emotionen zu identifizieren. Sie kann Emotionen wie Freude, Wut, Trauer, Angst und \u00dcberraschung erkennen und so tiefere Einblicke in die Gef\u00fchle des Kunden liefern. Emotionserkennungssysteme basieren h\u00e4ufig auf Lexika, also Zusammenstellungen von W\u00f6rtern, die mit bestimmten Gef\u00fchlszust\u00e4nden verbunden sind.<\/p>\n<p><strong>Detaillierte Stimmungsanalyse:\u00a0<\/strong>Eine feink\u00f6rnige Stimmungsanalyse erm\u00f6glicht ein differenzierteres Verst\u00e4ndnis der Stimmung. Sie bewertet die Polarit\u00e4t der Meinung, die von einer einfachen bin\u00e4ren Klassifizierung positiver und negativer Stimmung bis hin zu detaillierteren Spezifikationen wie sehr positiv, positiv, neutral, negativ und sehr negativ reichen kann. Diese Detailliertheit erm\u00f6glicht es Unternehmen, bestimmte Bereiche zu identifizieren, in denen Verbesserungen erforderlich sind.<\/p>\n<p><strong>Aspektbasierte Stimmungsanalyse:<\/strong>\u00a0Die aspektbasierte Stimmungsanalyse befasst sich mit den Besonderheiten des Kundenfeedbacks, indem sie die Stimmung in Bezug auf verschiedene Aspekte eines Produkts oder einer Dienstleistung identifiziert und kategorisiert. Stellen Sie sich beispielsweise vor, Sie betreiben ein Restaurant und sto\u00dfen auf eine Kundenbewertung, in der es hei\u00dft: \u201eDas Essen war ausgezeichnet, aber der Service war langsam.\u201c Mithilfe der aspektbasierten Stimmungsanalyse k\u00f6nnen Sie feststellen, dass der Kunde eine \u201epositive\u201c Stimmung gegen\u00fcber dem \u201eEssen\u201c, aber eine \u201enegative\u201c Stimmung gegen\u00fcber dem \u201eService\u201c hatte. Diese Art der Analyse hilft Unternehmen, die Kundenwahrnehmung ihrer Produkte und Dienstleistungen zu \u00fcberwachen und ihre St\u00e4rken und Schw\u00e4chen zu identifizieren.<\/p>\n<p><strong>Absichtsbasierte Stimmungsanalyse:<\/strong> Bei der absichtsbasierten Stimmungsanalyse geht es darum, die zugrunde liegenden Absichten oder Ziele von Kunden zu verstehen, wenn diese ihre Stimmung ausdr\u00fccken. Sie hilft Unternehmen dabei, zu erkennen, ob Kunden Informationen suchen, eine Beschwerde einreichen oder ihre Zufriedenheit ausdr\u00fccken, und erm\u00f6glicht so ma\u00dfgeschneiderte Antworten.<\/p>\n<h3><span class=\"wp-block-heading\">U<strong>Sentimentanalyse zur Verbesserung der Kundenerfahrung<\/strong><\/span><\/h3>\n<p>Die Stimmungsanalyse ist nicht nur ein passives Instrument zum Verst\u00e4ndnis der Kundenstimmung; sie kann auch wertvolle Erkenntnisse liefern, die es Unternehmen erm\u00f6glichen, ihren Kundenservice zu verbessern und das allgemeine Kundenerlebnis zu optimieren. Und so funktioniert es:<\/p>\n<p><strong>Ma\u00dfgeschneiderte Empfehlungen<\/strong>: Durch die Analyse der Stimmung hinter Kundenbewertungen und Feedback k\u00f6nnen Unternehmen deren Pr\u00e4ferenzen besser verstehen. Stimmungsanalysen k\u00f6nnen dabei helfen, Produkte oder Dienstleistungen zu empfehlen, die den individuellen Kundenpr\u00e4ferenzen entsprechen, und so die Wahrscheinlichkeit von Folgeauftr\u00e4gen erh\u00f6hen.<\/p>\n<p><strong>Proaktive Probleml\u00f6sung<\/strong>: Mithilfe der Stimmungsanalyse k\u00f6nnen Unternehmen aufkommende Probleme oder negative Stimmungstrends erkennen. Wenn negative Stimmungen erkannt werden, k\u00f6nnen Unternehmen schnell Ma\u00dfnahmen ergreifen, um Probleme zu l\u00f6sen und weitere Kundenunzufriedenheit zu verhindern. Dieser proaktive Ansatz zeigt, dass Sie sich f\u00fcr die Kundenzufriedenheit einsetzen.<\/p>\n<p><strong>Feedbackschleife f\u00fcr die Produktentwicklung<\/strong>: Die Stimmungsanalyse kann direkt in den Produktentwicklungsprozess einflie\u00dfen. Unternehmen k\u00f6nnen Kundenfeedback, insbesondere eine detaillierte und aspektbasierte Stimmungsanalyse, nutzen, um Funktionsverbesserungen, Fehlerbehebungen und die Entwicklung neuer Produkte zu priorisieren, die den Bed\u00fcrfnissen und W\u00fcnschen der Kunden entsprechen.<\/p>\n<p><strong>Verbesserte Marketingkampagnen<\/strong>: Das Verst\u00e4ndnis der Stimmungslage vergangener Marketingkampagnen hilft dabei, k\u00fcnftige Kampagnen effektiver zu gestalten. Durch die Analyse der emotionalen Tonlage der Kundenreaktionen auf Marketingmaterialien k\u00f6nnen Unternehmen ihre Botschaften und Zielgruppen optimieren, um bei ihrer Zielgruppe besser anzukommen.<\/p>\n<p><strong>Sentimentgesteuertes A\/B-Testing<\/strong>: Unternehmen k\u00f6nnen mithilfe der Stimmungsanalyse die Auswirkungen von \u00c4nderungen an ihren Produkten, Dienstleistungen oder Richtlinien messen. Durch die Durchf\u00fchrung von A\/B-Tests und den Vergleich der Stimmung von Kunden in verschiedenen Gruppen k\u00f6nnen Organisationen datengesteuerte Entscheidungen dar\u00fcber treffen, welche \u00c4nderungen zu einer verbesserten Kundenzufriedenheit f\u00fchren.<\/p>\n<p><strong>Mitarbeiterschulung und Feedback<\/strong>: Die Stimmungsanalyse ist nicht auf Kundenfeedback beschr\u00e4nkt. Sie kann auch auf die interne Kommunikation und das Feedback von Mitarbeitern angewendet werden. Das Verst\u00e4ndnis der Stimmung der Mitarbeiter kann zu Verbesserungen der Teamdynamik, der Arbeitskultur und der Qualit\u00e4t des Kundendienstes f\u00fchren.<\/p>\n<p>Durch die Einbeziehung der Stimmungsanalyse in diese Aspekte Ihres Unternehmens k\u00f6nnen Sie einen st\u00e4rker kundenorientierten Ansatz erzielen, der wiederum zu einer st\u00e4rkeren Kundentreue, h\u00f6heren Kundenzufriedenheit und letztlich zu einem verbesserten Kundenerlebnis f\u00fchrt.<\/p>\n<h3><span class=\"wp-block-heading\">Abschluss<\/span><\/h3>\n<p>Die Stimmungsanalyse ist ein leistungsstarkes Tool, das \u00fcber das blo\u00dfe Verstehen der Kundenstimmung hinausgeht; sie tr\u00e4gt aktiv zur Verbesserung des gesamten Kundenerlebnisses bei. Durch die Nutzung der Erkenntnisse aus der Stimmungsanalyse k\u00f6nnen Unternehmen fundierte Entscheidungen treffen, personalisierte Erlebnisse bieten und ihre Produkte und Dienstleistungen kontinuierlich verbessern, um die Erwartungen der Kunden zu erf\u00fcllen und zu \u00fcbertreffen. Dieser proaktive Ansatz kommt nicht nur den Kunden zugute, sondern st\u00e4rkt auch den Ruf und die Wettbewerbsf\u00e4higkeit der Marke auf dem Markt.<\/p>\n<p>Sind Sie bereit, den n\u00e4chsten Schritt zu unternehmen und das Potenzial der Stimmungsanalyse voll auszusch\u00f6pfen?\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kontaktiere uns<\/a>\u00a0heute, und wir beraten Sie gerne \u00fcber\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/natural-language-processing-machine-learning\/\" target=\"_blank\" rel=\"noreferrer noopener\">Verarbeitung nat\u00fcrlicher Sprache (NLP)<\/a>\u00a0und Entwicklung von L\u00f6sungen zur Stimmungsanalyse, die auf Ihre individuellen Gesch\u00e4ftsanforderungen zugeschnitten sind.<\/p>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81df6f elementor-widget elementor-widget-post-info\" data-id=\"a81df6f\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6f968e4 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/category\/nlp\/\" class=\"elementor-post-info__terms-list-item\">NLP<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"976\" class=\"elementor elementor-976 swiper-slide e-loop-item e-loop-item-12136 post-12136 blog type-blog status-publish has-post-thumbnail hentry category-ai blog_category-ai\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd086a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd086a0\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-386490e\" data-id=\"386490e\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d257254 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"d257254\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_620699445-1024x683-1.jpeg\" class=\"attachment-full size-full wp-image-12138\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_620699445-1024x683-1.jpeg 1024w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_620699445-1024x683-1-300x200.jpeg 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/AdobeStock_620699445-1024x683-1-768x512.jpeg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ae849 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"45ae849\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/blog\/large-language-models-applications-in-business\/\">Anwendungen gro\u00dfer Sprachmodelle in Unternehmen<\/a><\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2e5c2e post-content-block blogs-para elementor-widget elementor-widget-theme-post-content\" data-id=\"e2e5c2e\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>In der heutigen, sich rasch entwickelnden technologischen Landschaft haben sich gro\u00dfe Sprachmodelle (LLMs) als bahnbrechende Neuerungen erwiesen, die die Art und Weise ver\u00e4ndern, wie Unternehmen arbeiten und mit ihren Kunden interagieren. In diesem Artikel werden wir die Welt der LLMs erkunden und zeigen, wie diese Technologie jedes Unternehmen verbessern kann.<\/p>\n<h3><span class=\"wp-block-heading\">Was sind Large Language Models (LLMs)?<\/span><\/h3>\n<p>Gro\u00dfe Sprachmodelle sind eine Art Deep-Learning-Modell, das speziell zum Verstehen, Verarbeiten und Generieren menschlicher Sprache entwickelt wurde. Diese Modelle k\u00f6nnen verschiedene sprachbezogene Aufgaben ausf\u00fchren, von der Beantwortung von Fragen im Gespr\u00e4ch und der Zusammenfassung von Texten bis hin zur Sprach\u00fcbersetzung, Inhaltsgenerierung, Stimmungsanalyse und mehr.<\/p>\n<h3><span class=\"wp-block-heading\">Wie werden gro\u00dfe Sprachmodelle trainiert?<\/span><\/h3>\n<p>LLMs werden anhand riesiger Datenmengen vorab trainiert und verwenden selbst\u00fcberwachte Lerntechniken, um das n\u00e4chste Token in einem Satz vorherzusagen. Mit jeder Iteration verfeinert das Modell sein Sprachverst\u00e4ndnis und seine Generierungsf\u00e4higkeiten und erreicht so ein h\u00f6heres Ma\u00df an Pr\u00e4zision.<\/p>\n<h3><span class=\"wp-block-heading\">Liste der f\u00fchrenden LLMs<\/span><\/h3>\n<p>Aufgrund ihrer beeindruckenden F\u00e4higkeiten haben in den letzten Jahren mehrere LLMs an Bedeutung gewonnen. Zu den bemerkenswertesten Beispielen z\u00e4hlen GPT-3 und GPT-4 von OpenAI, wobei letzteres fortgeschritteneres Sprachverst\u00e4ndnis und -generierung bietet. Auch Google hat mit Modellen wie PaLM-2, BERT, T5 und LaMDA bedeutende Beitr\u00e4ge geleistet. Meta, fr\u00fcher bekannt als Facebook, hat LLaMA und RoBERTa entwickelt, w\u00e4hrend Anthropic Claude eingef\u00fchrt hat.<\/p>\n<h3><span class=\"wp-block-heading\">Gesch\u00e4ftsanwendungen gro\u00dfer Sprachmodelle<\/span><\/h3>\n<p>LLMs finden in zahlreichen Branchen Anwendung und revolutionieren die Art und Weise, wie Unternehmen mit ihrem Publikum interagieren. Einige dynamische Anwendungsgebiete von LLMs sind:<\/p>\n<h3>Kundendienst:<\/h3>\n<p>Unternehmen k\u00f6nnen die Reaktionszeit verk\u00fcrzen und die Kundenzufriedenheit steigern, indem sie LLM-basierte Chatbots nutzen. Diese virtuellen Assistenten k\u00f6nnen mehrere Kundenanfragen gleichzeitig bearbeiten, sofortige Informationen bereitstellen und das allgemeine Benutzererlebnis verbessern, w\u00e4hrend menschliche Mitarbeiter f\u00fcr komplexere Aufgaben frei werden.<\/p>\n<h3>Inhaltserstellung:<\/h3>\n<p>LLMs sind Experten im Erstellen hochwertiger Artikel, Blogbeitr\u00e4ge, Produktbeschreibungen und Marketingmaterialien.<\/p>\n<p>LLMs k\u00f6nnen dabei helfen, die Inhaltserstellung zu optimieren, Zeit zu sparen und gleichzeitig qualitativ hochwertige Inhalte zu erstellen. Von Artikeln und Blogbeitr\u00e4gen bis hin zu Marketingmaterial und Produktbeschreibungen k\u00f6nnen Large Language Models Unternehmen dabei helfen, Ressourcen zu sparen und gleichzeitig einen einheitlichen Stil und Ton beizubehalten.<\/p>\n<h3>\u00dcbersetzung und Lokalisierung:<\/h3>\n<p>LLMs k\u00f6nnen helfen, Sprachbarrieren zu \u00fcberwinden, indem sie eine nahtlose Sprach\u00fcbersetzung erm\u00f6glichen. Durch den Einsatz von LLMs k\u00f6nnen Unternehmen ihre Reichweite auf ein globales Publikum ausdehnen. LLMs k\u00f6nnen sogar Echtzeit\u00fcbersetzungen sowohl geschriebener als auch gesprochener Sprache f\u00fcr Echtzeit-Kundensupport bereitstellen.<\/p>\n<h3>Stimmungsanalyse:<\/h3>\n<p>Gro\u00dfe Sprachmodelle k\u00f6nnen Unternehmen dabei helfen, Einblicke in die Kundenzufriedenheit zu gewinnen und Strategien entsprechend anzupassen. LLMs k\u00f6nnen Textdaten wie Bewertungen und Social-Media-Posts analysieren, um die Stimmung und Meinungen der Kunden zu ermitteln. So k\u00f6nnen Unternehmen ihre Strategien verfeinern, ein sinnvolles Engagement sicherstellen und das allgemeine Benutzererlebnis optimieren.<\/p>\n<h3>Marktforschung:<\/h3>\n<p>LL.M.-Absolventen k\u00f6nnen riesige Datenmengen durchforsten, um neue Trends, Marktver\u00e4nderungen und Verbraucherpr\u00e4ferenzen zu erkennen. So k\u00f6nnen sie Unternehmen dabei unterst\u00fctzen, fundierte Entscheidungen zu treffen und ihre Strategien auf der Grundlage von Echtzeiterkenntnissen anzupassen.<\/p>\n<h3>Rechtliche und Compliance-Unterst\u00fctzung:<\/h3>\n<p>LLMs k\u00f6nnen wichtige Informationen schnell extrahieren, ohne das Verst\u00e4ndnis zu beeintr\u00e4chtigen. Durch den Einsatz von LLMs k\u00f6nnen Rechtsexperten Vertragspr\u00fcfungen automatisieren, potenzielle Risiken identifizieren und die Einhaltung von Vorschriften sicherstellen sowie die Erstellung juristischer Dokumente automatisieren. So k\u00f6nnen sich Anw\u00e4lte auf strategischere Aspekte ihrer Arbeit konzentrieren und gleichzeitig Zeit sparen.<\/p>\n<h3><span class=\"wp-block-heading\">Abschluss<\/span><\/h3>\n<p>Da sich Unternehmen weiterhin an eine zunehmend digitale Welt anpassen, werden die Einsatzm\u00f6glichkeiten von LLMs immer offensichtlicher und unverzichtbarer. Diese KI-gest\u00fctzten Tools erschlie\u00dfen neue Ebenen der Effizienz, des Engagements und der Innovation, sodass Unternehmen bessere Dienstleistungen anbieten, ein breiteres Publikum erreichen und sich einen Wettbewerbsvorteil verschaffen k\u00f6nnen.<\/p>\n<p>Durch eine Partnerschaft mit einem zuverl\u00e4ssigen Experten, der ma\u00dfgeschneiderte generative KI-L\u00f6sungen erstellen und bereitstellen kann, k\u00f6nnen Unternehmen das Potenzial dieser Technologie nutzen, um Innovationen zu f\u00f6rdern und neue Expansionsm\u00f6glichkeiten zu erschlie\u00dfen.<\/p>\n<p>Um die transformative Kraft von LLMs zu nutzen, sind Sie bei AI Superior genau richtig. Von der Beratung zu gro\u00dfen Sprachmodellen und strategischer Planung bis hin zur nahtlosen Integration und Wartung k\u00f6nnen Ihnen die LLM-Entwicklungsdienste von AI Superior dabei helfen, die Leistungsf\u00e4higkeit von LLMs zu nutzen, um Ihr Gesch\u00e4ft zu verbessern.<\/p>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81df6f elementor-widget elementor-widget-post-info\" data-id=\"a81df6f\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6f968e4 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/category\/ki\/\" class=\"elementor-post-info__terms-list-item\">KI, Data Science und maschinelles Lernen<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"976\" class=\"elementor elementor-976 swiper-slide e-loop-item e-loop-item-12139 post-12139 blog type-blog status-publish has-post-thumbnail hentry category-ai blog_category-ai\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd086a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd086a0\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-386490e\" data-id=\"386490e\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d257254 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"d257254\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Untitled-design-1024x576-1.png\" class=\"attachment-full size-full wp-image-12140\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Untitled-design-1024x576-1.png 1024w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Untitled-design-1024x576-1-300x169.png 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Untitled-design-1024x576-1-768x432.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ae849 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"45ae849\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/blog\/exploring-the-transformative-power-of-generative-ai-applications-for-businesses\/\">Die transformative Kraft generativer KI-Anwendungen f\u00fcr Unternehmen erkunden<\/a><\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2e5c2e post-content-block blogs-para elementor-widget elementor-widget-theme-post-content\" data-id=\"e2e5c2e\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>In der heutigen, sich rasch entwickelnden Technologielandschaft sind Unternehmen st\u00e4ndig auf der Suche nach innovativen M\u00f6glichkeiten, um sich einen Wettbewerbsvorteil zu verschaffen. Generative k\u00fcnstliche Intelligenz (KI) hat sich in j\u00fcngster Zeit als bahnbrechende Technologie herausgestellt, die das Potenzial hat, verschiedene Aspekte des Gesch\u00e4ftsbetriebs zu revolutionieren. In diesem Artikel werden wir das Konzept der generativen KI und ihre wichtigsten Anwendungen in verschiedenen Branchen untersuchen.<\/p>\n<h3><span class=\"wp-block-heading\">Was ist generative KI?<\/span><\/h3>\n<p>Generative k\u00fcnstliche Intelligenz (KI) bezieht sich auf Algorithmen, die es Benutzern erm\u00f6glichen, neue Inhalte auf der Grundlage einer Vielzahl von Eingaben zu generieren. Dazu geh\u00f6ren Bilder, Text, Audio, Code und mehr. Im Gegensatz zu herk\u00f6mmlichen KI-Modellen k\u00f6nnen generative KI-Modelle aus vorhandenen Daten lernen und auf der Grundlage dieser Informationen neue Ausgaben generieren.<\/p>\n<h3><span class=\"wp-block-heading\">Wie funktioniert generative KI?<\/span><\/h3>\n<p>Generative KI<strong>\u00a0<\/strong>Zum Aufbau von Modellen werden h\u00e4ufig neuronale Netzwerke verwendet, eine Teilmenge des maschinellen Lernens, die vom menschlichen Gehirn inspiriert ist und versucht, die Art und Weise nachzuahmen, wie biologische Neuronen einander Signale \u00fcbermitteln.<\/p>\n<p>Generative KI beginnt mit der Verwendung einer vorgegebenen Eingabeaufforderung, beispielsweise Text, Bild, Video oder jede andere Eingabe, die das System verarbeiten kann. Anschlie\u00dfend generieren verschiedene KI-Algorithmen als Reaktion auf die bereitgestellte Eingabeaufforderung neue Inhalte.<\/p>\n<h3><span class=\"wp-block-heading\">Top-Anwendungen generativer KI f\u00fcr Unternehmen<\/span><br \/>\nInhaltserstellung<\/h3>\n<p>Generative KI hat die Art und Weise, wie Unternehmen Inhalte erstellen, ver\u00e4ndert, indem sie den Prozess der Generierung von Text, Bildern, Audio, Videos und mehr automatisiert. Diese Technologie kann eingesetzt werden, um \u00fcberzeugende Marketingtexte zu verfassen, personalisierte E-Mail-Inhalte zu generieren und sogar Social-Media-Beitr\u00e4ge zu erstellen. Dank ihr sparen Unternehmen nicht nur Zeit und Ressourcen, sondern sorgen auch f\u00fcr einen konsistenten Inhaltsfluss.<\/p>\n<h3>Produktdesign und Prototyping<\/h3>\n<p>In Branchen wie der Mode- und Fertigungsindustrie kann generative KI bei Produktdesign und Prototyping helfen. Durch die Analyse vorhandener Designs und Benutzerpr\u00e4ferenzen k\u00f6nnen KI-Modelle neue Designkonzepte generieren und Unternehmen dabei helfen, schneller zu innovieren und zu iterieren. Dadurch kann die Zeit, die erforderlich ist, um neue Produkte auf den Markt zu bringen, erheblich verk\u00fcrzt werden.<\/p>\n<h3>Kundendienst<\/h3>\n<p>Virtuelle Assistenten und Chatbots mit generativer KI werden immer ausgefeilter bei der Simulation menschlicher Gespr\u00e4che. Diese KI-gest\u00fctzten Gespr\u00e4chsagenten k\u00f6nnen Benutzeranfragen verstehen und beantworten und Kunden auf Websites, Apps und Messaging-Plattformen in Echtzeit unterst\u00fctzen. Diese Technologie optimiert den Kundensupport, verbessert das Benutzererlebnis und ist rund um die Uhr einsatzbereit.<\/p>\n<h3>Kunst und Inhaltserstellung<\/h3>\n<p>F\u00fcr Unternehmen in kreativen Branchen bietet generative KI eine neuartige M\u00f6glichkeit, Kunst und Multimedia-Inhalte zu produzieren. Kreative k\u00f6nnen die Leistungsf\u00e4higkeit der KI nutzen, um einzigartige Werke zu schaffen und dabei menschliche Kreativit\u00e4t mit maschinengenerierten Ideen zu verbinden. Musiker k\u00f6nnen KI nutzen, um Melodien zu komponieren, und Filmemacher k\u00f6nnen neue visuelle Effekte und Animationen ausprobieren.<\/p>\n<h3>Datenerweiterung und -analyse<\/h3>\n<p>Generative KI kann Unternehmen dabei helfen, synthetische Daten zu generieren, um ihre Datens\u00e4tze f\u00fcr das Training von Modellen des maschinellen Lernens zu erweitern, was bei begrenzter Datenverf\u00fcgbarkeit praktisch ist. Dar\u00fcber hinaus k\u00f6nnen KI-Modelle auch bei der Analyse gro\u00dfer Datenmengen helfen und Erkenntnisse und Muster extrahieren, die strategische Entscheidungen unterst\u00fctzen k\u00f6nnen.<\/p>\n<h3>Software-Entwicklung<\/h3>\n<p>IT-Abteilungen k\u00f6nnen generative KI nutzen, um kleine technische Aufgaben zu erledigen, beispielsweise die Automatisierung der Codegenerierung, des Debuggens und des Systemtests. Dieser Ansatz kann den Entwicklungsprozess beschleunigen und Programmierern helfen, effizientere und robustere Softwareanwendungen zu erstellen.<\/p>\n<h3><span class=\"wp-block-heading\">Abschluss<\/span><\/h3>\n<p>Generative KI ist eine transformative Technologie mit einem breiten Anwendungsspektrum. Von der Inhaltserstellung \u00fcber Produktdesign, Kundensupport, Softwareentwicklung bis hin zur Datenanalyse ist ihr Potenzial, Abl\u00e4ufe zu rationalisieren, die Kreativit\u00e4t zu steigern und das Kundenerlebnis zu verbessern, unbestreitbar. Da Unternehmen die digitale Transformation weiter vorantreiben, kann die Integration generativer KI in ihre Strategien zu mehr Effizienz, Innovation und einem Wettbewerbsvorteil auf dem Markt f\u00fchren.<\/p>\n<p>Bei AI Superior sind wir f\u00fchrend bei\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/services\/generative-ai-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Generative KI-Entwicklungsdienste<\/a>, und hilft Unternehmen, die Leistungsf\u00e4higkeit dieser Technologie zu nutzen, um ihre Ziele zu erreichen. Mit unserer Unterst\u00fctzung k\u00f6nnen Sie die Herausforderungen und Chancen der generativen KI meistern und eine verantwortungsvolle Implementierung und optimale Ergebnisse sicherstellen.<\/p>\n<p><a href=\"https:\/\/staging.aisuperior.com\/de\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kontaktiere uns\u00a0<\/a>um die M\u00f6glichkeiten der generativen KI f\u00fcr Ihr Unternehmen zu erkunden.<\/p>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81df6f elementor-widget elementor-widget-post-info\" data-id=\"a81df6f\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6f968e4 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/category\/ki\/\" class=\"elementor-post-info__terms-list-item\">KI, Data Science und maschinelles Lernen<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"976\" class=\"elementor elementor-976 swiper-slide e-loop-item e-loop-item-12141 post-12141 blog type-blog status-publish has-post-thumbnail hentry category-ai blog_category-ai\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd086a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd086a0\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-386490e\" data-id=\"386490e\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d257254 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"d257254\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Businesses-Harness-ChatGPT-for-Commercial-Success.jpg\" class=\"attachment-full size-full wp-image-12142\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Businesses-Harness-ChatGPT-for-Commercial-Success.jpg 800w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Businesses-Harness-ChatGPT-for-Commercial-Success-300x169.jpg 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Businesses-Harness-ChatGPT-for-Commercial-Success-768x432.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ae849 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"45ae849\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/blog\/how-can-businesses-harness-chatgpt-for-commercial-success\/\">Wie k\u00f6nnen Unternehmen ChatGPT f\u00fcr ihren gesch\u00e4ftlichen Erfolg nutzen?<\/a><\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2e5c2e post-content-block blogs-para elementor-widget elementor-widget-theme-post-content\" data-id=\"e2e5c2e\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>In den letzten Jahren hat sich die Entwicklung der k\u00fcnstlichen Intelligenz (KI)\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/technology\/natural-language-processing-machine-learning\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sprachmodelle<\/a>\u00a0hat die Arbeitsweise von Unternehmen grundlegend ver\u00e4ndert, da sie sich schnell zu einer der besten L\u00f6sungen entwickelt hat, um verschiedene Aufgaben, einschlie\u00dflich sich wiederholender Aktivit\u00e4ten, zu automatisieren und die Gesamteffizienz zu steigern.<\/p>\n<p>Unter den bemerkenswerten verf\u00fcgbaren KI-Sprachmodellen hat sich ChatGPT von OpenAI als au\u00dfergew\u00f6hnliches Tool zur Generierung hochwertiger Ergebnisse durch nahtlosen Dialog erwiesen. Aber wie k\u00f6nnen Unternehmen davon profitieren und welche Einschr\u00e4nkungen sollten Unternehmen beachten?<\/p>\n<p>In diesem Artikel untersuchen wir, wie Unternehmen das Potenzial von KI-Sprachmodellen wie Chat GPT f\u00fcr verschiedene Anwendungen wie Inhaltserstellung, Kundenservice und mehr nutzen k\u00f6nnen.<\/p>\n<h3><span class=\"wp-block-heading\">ChatGPT f\u00fcr Gesch\u00e4ftsanwendungen nutzen<\/span><\/h3>\n<p>Unternehmen k\u00f6nnen ChatGPT f\u00fcr verschiedene kommerzielle Anwendungen nutzen. Zu den beliebtesten Anwendungen geh\u00f6ren:<\/p>\n<h3>Inhaltserstellung<\/h3>\n<p>Die Erstellung \u00fcberzeugender und ansprechender Inhalte ist f\u00fcr Unternehmen von entscheidender Bedeutung, um Kunden zu gewinnen und zu binden.\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/services\/generative-ai-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Generative KI<\/a>\u00a0Das Modell ChatGPT zeichnet sich durch die schnelle Erstellung riesiger Mengen an Textinhalten aus und revolutioniert damit die Art und Weise, wie Unternehmen an die Inhaltserstellung herangehen.<\/p>\n<p>Mit dem entsprechenden Input k\u00f6nnen Unternehmen auf hocheffiziente Weise ansprechende und qualitativ hochwertige Inhalte f\u00fcr ihre Blogs, Websites, Social-Media-Plattformen und E-Mail-Marketingkampagnen erstellen.<\/p>\n<h3>Marktforschung<\/h3>\n<p>Das Verst\u00e4ndnis von Markttrends, Kundenpr\u00e4ferenzen und Strategien der Konkurrenz ist entscheidend f\u00fcr fundierte Gesch\u00e4ftsentscheidungen. Chat GPT kann bei der Marktforschung und -analyse helfen, indem es \u00f6ffentlich verf\u00fcgbare Daten sammelt und pr\u00e4sentiert, Informationen \u00fcber die Konkurrenz analysiert, um Unternehmen dabei zu helfen, auf dem Markt die Nase vorn zu behalten und ihre Strategien entsprechend anzupassen, und sogar dazu beitr\u00e4gt, Zielgruppenpers\u00f6nlichkeiten f\u00fcr eine bessere Zielgruppenansprache und Marketingbem\u00fchungen zu entwickeln.<\/p>\n<h3>Kundendienst<\/h3>\n<p>Chat GPT kann auch das Kundenserviceerlebnis f\u00fcr Unternehmen deutlich verbessern. Als R\u00fcckgrat von KI-gest\u00fctzten Chatbots erm\u00f6glicht es Echtzeitinteraktionen mit Kunden, beantwortet h\u00e4ufig gestellte Fragen und l\u00f6st Probleme. Mit seinem kontextbezogenen Verst\u00e4ndnis sorgt Chat GPT f\u00fcr schnellere und genauere Antworten auf Kundenanfragen, was zu k\u00fcrzeren Wartezeiten und h\u00f6herer Kundenzufriedenheit f\u00fchrt. Dar\u00fcber hinaus sorgt Chat GPT mit der F\u00e4higkeit, eine unbegrenzte Anzahl von Kunden zu betreuen, daf\u00fcr, dass Unternehmen ihren Kunden rund um die Uhr kontinuierlichen und nahtlosen Support bieten k\u00f6nnen.<br \/>\n<span class=\"wp-block-heading has-medium-font-size\">Einschr\u00e4nkungen bei der Verwendung von ChatGPT f\u00fcr kommerzielle Zwecke<\/span><br \/>\nChatGPT ist zwar ein leistungsstarkes Tool mit zahlreichen Vorteilen, es bringt jedoch auch bestimmte Einschr\u00e4nkungen mit sich, die Unternehmen beachten sollten, wenn sie eine kommerzielle Nutzung in Erw\u00e4gung ziehen:<\/p>\n<h3>Kontextuelles Verst\u00e4ndnis<\/h3>\n<p>Obwohl Chat GPT ein beeindruckendes Kontextverst\u00e4ndnis gezeigt hat, kann es dennoch Antworten liefern, die kontextuell falsch oder unsinnig sind. Diese Einschr\u00e4nkung k\u00f6nnte m\u00f6glicherweise zu Missverst\u00e4ndnissen bei Kundenserviceinteraktionen f\u00fchren.<\/p>\n<h3>Ethische Bedenken<\/h3>\n<p>Wie jedes KI-System kann Chat GPT voreingenommene Inhalte generieren, wenn es w\u00e4hrend des Trainings voreingenommenen Daten ausgesetzt wird. Unternehmen sollten sich dessen bewusst sein und sicherstellen, dass die Ergebnisse von Chat GPT ihren ethischen Standards entsprechen.<\/p>\n<h3>Datenschutz und Sicherheit<\/h3>\n<p>Die Integration von Chat GPT in Gesch\u00e4ftsprozesse erfordert die Weitergabe von Daten an Dienste von Drittanbietern, was Bedenken hinsichtlich Datenschutz und -sicherheit aufwirft. Aus diesem Grund m\u00fcssen Unternehmen Kundendaten und vertrauliche Informationen sch\u00fctzen.<\/p>\n<h3>Kosten<\/h3>\n<p>Um kommerzielles ChatGPT in ihren Betrieb zu integrieren, ben\u00f6tigen Unternehmen ein kostenpflichtiges Abonnement der API von OpenAI. Unternehmen m\u00fcssen diese Kosten in ihre Budgetplanung einbeziehen und sich dar\u00fcber im Klaren sein, dass sie f\u00fcr den fortlaufenden Zugriff und Support auf Dienste von Drittanbietern angewiesen sind.<\/p>\n<h3>Abschluss<\/h3>\n<p>Zusammenfassend l\u00e4sst sich sagen, dass Unternehmen zwar enorm von der kommerziellen Nutzung von ChatGPT profitieren k\u00f6nnen, um jedoch das volle Potenzial der App auszusch\u00f6pfen, sollten sie in Erw\u00e4gung ziehen, in API-Zugriff und auf ihre spezifischen Anforderungen zugeschnittene Modelle zu investieren.<\/p>\n<p>Der erste Schritt hierzu besteht darin, das richtige KI-Unternehmen als Partner zu finden. Bei AI Superior sind wir auf die Integration von KI in die internen Strukturen von Unternehmen spezialisiert. Wenn Sie\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/services\/generative-ai-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Generative KI-L\u00f6sungen\u00a0<\/a>in Ihre Abl\u00e4ufe einbinden, z\u00f6gern Sie nicht,\u00a0<a href=\"https:\/\/staging.aisuperior.com\/de\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">kontaktiere uns.<\/a>\u00a0Unser Team wird eng mit Ihnen zusammenarbeiten, um eine Integration zu entwickeln, die sich nahtlos in die Ziele und Abl\u00e4ufe Ihres Unternehmens einf\u00fcgt.<\/p>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81df6f elementor-widget elementor-widget-post-info\" data-id=\"a81df6f\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6f968e4 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/category\/ki\/\" class=\"elementor-post-info__terms-list-item\">KI, Data Science und maschinelles Lernen<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"976\" class=\"elementor elementor-976 swiper-slide e-loop-item e-loop-item-12143 post-12143 blog type-blog status-publish has-post-thumbnail hentry category-ai blog_category-ai\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd086a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd086a0\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-386490e\" data-id=\"386490e\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d257254 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"d257254\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"418\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Demystifying-Explainable-AI.png\" class=\"attachment-full size-full wp-image-12144\" alt=\"\" srcset=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Demystifying-Explainable-AI.png 785w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Demystifying-Explainable-AI-300x160.png 300w, https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/09\/Demystifying-Explainable-AI-768x409.png 768w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ae849 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"45ae849\" data-element_type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/staging.aisuperior.com\/de\/blog\/demystifying-explainable-ai-shedding-light-on-transparent-decision-making\/\">Erkl\u00e4rbare KI entmystifizieren: Licht in transparente Entscheidungsfindung bringen<\/a><\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2e5c2e post-content-block blogs-para elementor-widget elementor-widget-theme-post-content\" data-id=\"e2e5c2e\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<p>K\u00fcnstliche Intelligenz (KI) ist zu einem integralen Bestandteil unseres Lebens geworden und beeinflusst verschiedene Bereiche vom Gesundheitswesen \u00fcber Finanzen bis hin zum Transportwesen. In den letzten Jahren hat die zunehmende Komplexit\u00e4t von KI-Systemen jedoch Bedenken hinsichtlich ihrer Entscheidungsprozesse geweckt. Das Verst\u00e4ndnis der Gr\u00fcnde f\u00fcr Entscheidungen oder Vorhersagen von KI-Systemen ist f\u00fcr Organisationen und Benutzer von KI-gest\u00fctzten Systemen von gro\u00dfer Bedeutung geworden. In diesem Zusammenhang entsteht erkl\u00e4rbare k\u00fcnstliche Intelligenz (XAI) als aufstrebendes Feld, das darauf abzielt, diese Fragen zu l\u00f6sen und KI-Modelle transparent und Interpretierbarkeit zu bringen.<\/p>\n<h3><span class=\"wp-block-heading\">Was ist erkl\u00e4rbare KI (XAI)?:<\/span><\/h3>\n<p>Erkl\u00e4rbare KI bezieht sich auf die Entwicklung von KI-Modellen, die es menschlichen Benutzern erm\u00f6glichen, die von KI-Modellen erstellten Ergebnisse und Ausgaben zu verstehen. Herk\u00f6mmliche Modelle des maschinellen Lernens funktionieren oft als \u201eBlack Boxes\u201c, was es f\u00fcr Menschen schwierig macht, zu verstehen, wie sie zu ihren Schlussfolgerungen gelangen. Dieser Mangel an Transparenz kann ein Hindernis f\u00fcr Vertrauen und Akzeptanz sein, insbesondere in kritischen Bereichen, in denen Entscheidungen weitreichende Konsequenzen haben. Erkl\u00e4rbare KI hilft Benutzern, die Gr\u00fcnde f\u00fcr Entscheidungen von KI-Modellen und deren m\u00f6gliche Voreingenommenheit zu verstehen.<\/p>\n<h3><span class=\"wp-block-heading\">Warum ist erkl\u00e4rbare KI (XAI) wichtig?:<\/span><\/h3>\n<p><strong>Transparenz und Vertrauen:\u00a0<\/strong>XAI \u00fcberbr\u00fcckt die L\u00fccke zwischen menschlichen Benutzern und KI-Systemen und schafft Vertrauen, indem es klare Erkl\u00e4rungen f\u00fcr die Gr\u00fcnde hinter Entscheidungen liefert. Diese Transparenz ist von entscheidender Bedeutung, insbesondere in Sektoren wie dem Gesundheitswesen, wo Leben auf dem Spiel stehen, oder im Finanzwesen, wo algorithmische Verzerrungen zu unfairen Ergebnissen f\u00fchren k\u00f6nnen.<\/p>\n<p><strong>Einhaltung gesetzlicher Vorschriften und Rechenschaftspflicht:<\/strong>\u00a0Angesichts der zunehmenden Kontrolle von KI-Technologien fordern Regulierungsbeh\u00f6rden und ethische Richtlinien mehr Transparenz. Erkl\u00e4rbare KI hilft Unternehmen, Vorschriften einzuhalten und gleichzeitig die Verantwortung f\u00fcr die Entscheidungen ihrer KI-Systeme zu \u00fcbernehmen.<\/p>\n<p><strong>Voreingenommenheit und Fairness:\u00a0<\/strong>KI-Modelle k\u00f6nnen unbeabsichtigt Verzerrungen in den Daten verewigen, mit denen sie trainiert werden. Erkl\u00e4rbare KI-Techniken erm\u00f6glichen die Identifizierung und Eind\u00e4mmung von Verzerrungen, sodass die Beteiligten unfaire oder diskriminierende Praktiken verstehen und korrigieren k\u00f6nnen.<\/p>\n<p><strong>Fehlererkennung und -verbesserung:\u00a0<\/strong>Transparente KI-Modelle erleichtern das Erkennen von Fehlern oder unerwartetem Verhalten. Durch die Bereitstellung interpretierbarer Erkl\u00e4rungen k\u00f6nnen Entwickler Fehler lokalisieren und beheben und so die Gesamtleistung und Zuverl\u00e4ssigkeit von KI-Systemen verbessern.<\/p>\n<h3><span class=\"wp-block-heading\">Erkundung von Techniken der erkl\u00e4rbaren KI:<\/span><\/h3>\n<p>Es gibt mehrere Techniken oder Methoden, die zur Erkl\u00e4rbarkeit von KI-Modellen beitragen, darunter die folgenden f\u00fcnf:<\/p>\n<p><strong>Schichtweise Relevanzausbreitung (LRP):\u00a0<\/strong>LRP ist eine Technik, die haupts\u00e4chlich in neuronalen Netzwerken verwendet wird, um einzelnen Eingabemerkmalen oder Neuronen Relevanz oder Bedeutung zuzuschreiben. Ziel ist es, den Beitrag jedes Merkmals oder Neurons im Netzwerk zur endg\u00fcltigen Vorhersage zu erkl\u00e4ren. LRP propagiert die Relevanz r\u00fcckw\u00e4rts durch das Netzwerk und weist verschiedenen Schichten und Neuronen Relevanzwerte zu.<\/p>\n<p><strong>Kontrafaktische Methode:<\/strong>\u00a0Bei der kontrafaktischen Methode werden kontrafaktische Beispiele generiert, also modifizierte Instanzen von Eingabedaten, die zu unterschiedlichen Modellvorhersagen f\u00fchren. Durch die Untersuchung der \u00c4nderungen, die zum Erreichen eines gew\u00fcnschten Ergebnisses erforderlich sind, bieten kontrafaktische Beispiele Einblicke in den Entscheidungsprozess von KI-Modellen. Sie helfen dabei, die einflussreichsten Merkmale oder Faktoren zu identifizieren, die sich auf Vorhersagen auswirken, und k\u00f6nnen f\u00fcr die Erkl\u00e4rbarkeits- und Fairnessanalyse n\u00fctzlich sein.<\/p>\n<p><strong>Lokal interpretierbare modellagnostische Erkl\u00e4rungen (LIME)<\/strong>: LIME ist eine modellunabh\u00e4ngige Methode, die lokale Erkl\u00e4rungen f\u00fcr einzelne Vorhersagen jedes maschinellen Lernmodells liefert. Sie generiert ein vereinfachtes Ersatzmodell um eine bestimmte Instanz herum und sch\u00e4tzt die Bedeutung der Eingabefunktionen f\u00fcr die Vorhersage des Modells ab. LIME erstellt lokal interpretierbare Erkl\u00e4rungen und hilft so, das Verhalten des Modells bei bestimmten Instanzen zu verstehen.<\/p>\n<p><strong>Verallgemeinertes additives Modell (GAM)<\/strong>: GAM ist ein Typ statistisches Modell, das die lineare Regression erweitert, indem es nichtlineare Beziehungen zwischen Pr\u00e4diktoren und der Zielvariable zul\u00e4sst. GAMs bieten Interpretierbarkeit, indem sie die Zielvariable als Summe glatter Funktionen der Eingabefunktionen modellieren. Diese glatten Funktionen erm\u00f6glichen Einblicke in die Auswirkungen einzelner Funktionen auf die Zielvariable und ber\u00fccksichtigen gleichzeitig potenzielle Nichtlinearit\u00e4ten.<\/p>\n<p><strong>Rationalisierung<\/strong>: Rationalisierung bezieht sich auf den Prozess der Generierung von Erkl\u00e4rungen oder Begr\u00fcndungen f\u00fcr KI-Modellentscheidungen. Ziel ist es, verst\u00e4ndliche und koh\u00e4rente Begr\u00fcndungen f\u00fcr die vom Modell erzeugten Ergebnisse zu liefern. Rationalisierungstechniken konzentrieren sich auf die Generierung von f\u00fcr Menschen lesbaren Erkl\u00e4rungen, um die Transparenz und das Benutzervertrauen in KI-Systeme zu erh\u00f6hen.<\/p>\n<h3><span class=\"wp-block-heading\">Die Zukunft der erkl\u00e4rbaren KI:<\/span><\/h3>\n<p>W\u00e4hrend sich die KI weiterentwickelt, tut dies auch der Bereich der erkl\u00e4rbaren KI. Forscher arbeiten aktiv an der Entwicklung neuer Methoden und Techniken, um die Interpretierbarkeit und Transparenz von KI-Systemen zu verbessern. Dar\u00fcber hinaus gewinnt die Einf\u00fchrung erkl\u00e4rbarer KI branchen\u00fcbergreifend an Bedeutung. Regulierungsbeh\u00f6rden stellen Anforderungen an die Erkl\u00e4rbarkeit und Organisationen erkennen den Wert transparenter Entscheidungsfindung, um das Vertrauen der Benutzer zu gewinnen und ethischen Verpflichtungen nachzukommen.<\/p>\n<p>Erkl\u00e4rbare KI ist ein entscheidender Forschungs- und Entwicklungsbereich, der sich mit dem Bedarf an Transparenz, Verantwortlichkeit und Vertrauen in KI-Systeme befasst. Indem sie den Entscheidungsprozess entmystifizieren, \u00fcberbr\u00fccken erkl\u00e4rbare KI-Modelle die Kluft zwischen Mensch und Maschine und erm\u00f6glichen es uns, das volle Potenzial der KI auszusch\u00f6pfen.<\/p>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81df6f elementor-widget elementor-widget-post-info\" data-id=\"a81df6f\" data-element_type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6f968e4 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/staging.aisuperior.com\/de\/category\/ki\/\" class=\"elementor-post-info__terms-list-item\">KI, Data Science und maschinelles Lernen<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-left\"><\/i>\t\t\t<\/div>\n\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-chevron-right\"><\/i>\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-df5d878 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"df5d878\" data-element_type=\"section\" id=\"discuss\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2cdfac9\" data-id=\"2cdfac9\" data-element_type=\"column\" id=\"lets-discuss-ai\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-3a3110b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3a3110b\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-8acdff1 form-left-section\" data-id=\"8acdff1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-04d158d elementor-widget elementor-widget-heading\" data-id=\"04d158d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Lassen Sie uns \u00fcber Ihr n\u00e4chstes KI-Projekt sprechen<\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b220c6 elementor-button-align-start elementor-widget elementor-widget-form\" data-id=\"9b220c6\" data-element_type=\"widget\" id=\"form\" data-settings=\"{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor-pro - v3.19.0 - 29-01-2024 *\/\n.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:flex;flex-wrap:wrap}.e-form__buttons{flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:flex}.e-form__indicators{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators__indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:flex;justify-content:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:flex;justify-content:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#babfc5}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) \/ 2 - var(--e-form-steps-divider-width, 1px) \/ 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-field-type-tel input{direction:inherit}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{order:3}.elementor-form .elementor-button>span{display:flex;justify-content:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}.elementor-select-wrapper .select-caret-down-wrapper{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:10px;pointer-events:none;font-size:11px}.elementor-select-wrapper .select-caret-down-wrapper svg{display:unset;width:1em;aspect-ratio:unset;fill:currentColor}.elementor-select-wrapper .select-caret-down-wrapper i{font-size:19px;line-height:2}.elementor-select-wrapper.remove-before:before{content:\"\"!important}<\/style>\t\t<form class=\"elementor-form\" method=\"post\" id=\"home_form\" name=\"New Form\" action=\"\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"11\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"9b220c6\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"aisuperior\" \/>\n\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-name elementor-col-50 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-name\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tName\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[name]\" id=\"form-field-name\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Name\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-email elementor-field-group elementor-column elementor-field-group-field_6691c5f elementor-col-50 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"email\" name=\"form_fields[field_6691c5f]\" id=\"form-field-field_6691c5f\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Email\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-tel elementor-field-group elementor-column elementor-field-group-field_d30b8cb elementor-col-50 elementor-field-required\">\n\t\t\t\t\t\t\t<input size=\"1\" type=\"tel\" name=\"form_fields[field_d30b8cb]\" id=\"form-field-field_d30b8cb\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Telefonnummer\" required=\"required\" aria-required=\"true\" pattern=\"[0-9()#&amp;+*-=.]+\" title=\"Es werden nur Zahlen und Telefonzeichen (#, -, * usw.) akzeptiert.\">\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-field_15699d4 elementor-col-50 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[field_15699d4]\" id=\"form-field-field_15699d4\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Unternehmen\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-textarea elementor-field-group elementor-column elementor-field-group-field_069a1b8 elementor-col-100 elementor-field-required\">\n\t\t\t\t\t<textarea class=\"elementor-field-textual elementor-field  elementor-size-sm\" name=\"form_fields[field_069a1b8]\" id=\"form-field-field_069a1b8\" rows=\"4\" placeholder=\"Nachricht\" required=\"required\" aria-required=\"true\"><\/textarea>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-recaptcha elementor-field-group elementor-column elementor-field-group-field_0e961de elementor-col-100\">\n\t\t\t\t\t<div class=\"elementor-field\" id=\"form-field-field_0e961de\"><div class=\"elementor-g-recaptcha\" data-sitekey=\"6Lfv7_woAAAAAHftMvnJQOSIRh1BddYiT75kTwWo\" data-type=\"v2_checkbox\" data-theme=\"light\" data-size=\"normal\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button type=\"submit\" class=\"elementor-button elementor-size-sm\">\n\t\t\t\t\t\t<span >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Einreichen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"de\"\/><\/form>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad4b8f5 disclaimer-txt elementor-widget elementor-widget-text-editor\" data-id=\"ad4b8f5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Indem Sie auf \u201eAbsenden\u201c klicken, stimmen Sie unseren <a href=\"https:\/\/staging.aisuperior.com\/de\/privacy-policy\/\">Datenschutzrichtlinie.<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-692df01 form-right-section\" data-id=\"692df01\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-472ca13 elementor-widget elementor-widget-image\" data-id=\"472ca13\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"140\" height=\"84\" src=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/08\/logo-2.png\" class=\"attachment-large size-large wp-image-812\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33b9099 elementor-align-left elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"33b9099\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"tel: 49 6151 39438 74\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-phone-alt\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">+49 6151 3943489<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"mailto:info@staging.aisuperior.com\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-envelope\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">info@staging.aisuperior.com<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-map-marker-alt\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Robert-Bosch-Str.7, 64293 Darmstadt, Deutschland<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Unternehmen f\u00fcr KI-Dienste und -Entwicklung Beschleunigen Sie Ihr Gesch\u00e4ft mit hochmodernen KI-L\u00f6sungen Kontaktieren Sie uns Navigation K\u00fcnstliche Intelligenz-Dienste und -L\u00f6sungen, die Ihnen helfen, einen gr\u00f6\u00dferen Mehrwert zu erschlie\u00dfen Vorteilhafte Ergebnisse von K\u00fcnstlicher Intelligenz-Diensten und -L\u00f6sungen im Gesch\u00e4ft Warum KI w\u00e4hlen? \u00dcberlegene KI-L\u00f6sungen, die wir f\u00fcr Ihr Projekt entwickeln k\u00f6nnen Branchen Unser Arbeitsprozess Entdecken Sie unsere Kunden [\u2026]<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"inline_featured_image":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AI Services and Development Company | AI Superior<\/title>\n<meta name=\"description\" content=\"AI Superior is Here to Help Companies Enhance Their Business Competitiveness by Developing Cutting-edge Artificial Intelligence Services and Solutions.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI Services and Development Company | AI Superior\" \/>\n<meta property=\"og:description\" content=\"AI Superior is Here to Help Companies Enhance Their Business Competitiveness by Developing Cutting-edge Artificial Intelligence Services and Solutions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/staging.aisuperior.com\/de\/\" \/>\n<meta property=\"og:site_name\" content=\"aisuperior\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-16T10:37:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/12\/AISD_icon.svg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/staging.aisuperior.com\/\",\"url\":\"https:\/\/staging.aisuperior.com\/\",\"name\":\"AI Services and Development Company | AI Superior\",\"isPartOf\":{\"@id\":\"https:\/\/staging.aisuperior.com\/#website\"},\"datePublished\":\"2023-08-18T06:10:10+00:00\",\"dateModified\":\"2024-05-16T10:37:47+00:00\",\"description\":\"AI Superior is Here to Help Companies Enhance Their Business Competitiveness by Developing Cutting-edge Artificial Intelligence Services and Solutions.\",\"breadcrumb\":{\"@id\":\"https:\/\/staging.aisuperior.com\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/staging.aisuperior.com\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/staging.aisuperior.com\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/staging.aisuperior.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/staging.aisuperior.com\/#website\",\"url\":\"https:\/\/staging.aisuperior.com\/\",\"name\":\"aisuperior\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/staging.aisuperior.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AI Services and Development Company | AI Superior","description":"AI Superior is Here to Help Companies Enhance Their Business Competitiveness by Developing Cutting-edge Artificial Intelligence Services and Solutions.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"de_DE","og_type":"article","og_title":"AI Services and Development Company | AI Superior","og_description":"AI Superior is Here to Help Companies Enhance Their Business Competitiveness by Developing Cutting-edge Artificial Intelligence Services and Solutions.","og_url":"https:\/\/staging.aisuperior.com\/de\/","og_site_name":"aisuperior","article_modified_time":"2024-05-16T10:37:47+00:00","og_image":[{"url":"https:\/\/staging.aisuperior.com\/wp-content\/uploads\/2023\/12\/AISD_icon.svg"}],"twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/staging.aisuperior.com\/","url":"https:\/\/staging.aisuperior.com\/","name":"AI Services and Development Company | AI Superior","isPartOf":{"@id":"https:\/\/staging.aisuperior.com\/#website"},"datePublished":"2023-08-18T06:10:10+00:00","dateModified":"2024-05-16T10:37:47+00:00","description":"AI Superior is Here to Help Companies Enhance Their Business Competitiveness by Developing Cutting-edge Artificial Intelligence Services and Solutions.","breadcrumb":{"@id":"https:\/\/staging.aisuperior.com\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/staging.aisuperior.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/staging.aisuperior.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/staging.aisuperior.com\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/staging.aisuperior.com\/#website","url":"https:\/\/staging.aisuperior.com\/","name":"aisuperior","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/staging.aisuperior.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"}]}},"_links":{"self":[{"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/pages\/11"}],"collection":[{"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":21,"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":18748,"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/pages\/11\/revisions\/18748"}],"wp:attachment":[{"href":"https:\/\/staging.aisuperior.com\/de\/wp-json\/wp\/v2\/media?parent=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}