Merge branch 'master' into 3drenderer
diff --git a/build/player/bodymovin.js b/build/player/bodymovin.js
index 2b6ff2a..156661e 100644
--- a/build/player/bodymovin.js
+++ b/build/player/bodymovin.js
@@ -1,3 +1,3 @@
-(function(window){"use strict";function Matrix(t){var e=this;e._t=e.transform,e.a=e.d=1,e.b=e.c=e.e=e.f=0,e.props=[1,0,0,1,0,0],e.cssParts=["matrix(","",")"],e.a1=e.b1=e.c1=e.d1=e.e1=e.f1=0,e.context=t,e.cos=e.sin=0,t&&t.setTransform(1,0,0,1,0,0)}function matrixManagerFunction(){var t=new Matrix,e=function(t,e,a,r,i,n,s,o,h){var p,m,l,d,c,u,f;return p=$M([[1,0,0,0],[0,Math.cos(t),Math.sin(-t),0],[0,Math.sin(t),Math.cos(t),0],[0,0,0,1]]),m=$M([[Math.cos(e),0,Math.sin(e),0],[0,1,0,0],[Math.sin(-e),0,Math.cos(e),0],[0,0,0,1]]),l=$M([[Math.cos(a),Math.sin(-a),0,0],[Math.sin(a),Math.cos(a),0,0],[0,0,1,0],[0,0,0,1]]),c=$M([[r,0,0,0],[0,i,0,0],[0,0,n,0],[0,0,0,1]]),u=p.x(m).x(l).x(c),u=u.transpose(),f=$M([[1,0,0,0],[0,1,0,0],[0,0,1,0],[s,o,h,1]]),u=u.x(f),d="matrix3d(",d+=u.e(1,1).toFixed(5)+","+u.e(1,2).toFixed(5)+","+u.e(1,3).toFixed(5)+","+u.e(1,4).toFixed(5)+",",d+=u.e(2,1).toFixed(5)+","+u.e(2,2).toFixed(5)+","+u.e(2,3).toFixed(5)+","+u.e(2,4).toFixed(5)+",",d+=u.e(3,1).toFixed(5)+","+u.e(3,2).toFixed(5)+","+u.e(3,3).toFixed(5)+","+u.e(3,4).toFixed(5)+",",d+=u.e(4,1).toFixed(5)+","+u.e(4,2).toFixed(5)+","+u.e(4,3).toFixed(5)+","+u.e(4,4).toFixed(5),d+=")"},a=function(e,a,r,i,n){return t.reset().translate(i,n).rotate(e).scale(a,r).toCSS()},r=function(e,a,r,i,n){return t.reset().translate(i,n).rotate(e).scale(a,r).toArray()},i=function(t){return a(t.r,t.s[0],t.s[1],t.p[0],t.p[1])},n=function(t,r){return r?e(-t.tr.r[0],t.tr.r[1],t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.s[2],t.tr.p[0],t.tr.p[1],t.tr.p[2]):a(t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.p[0],t.tr.p[1])},s=function(t,r){return r?e(-t.r[0],t.r[1],t.r[2],t.s[0],t.s[1],t.s[2],t.p[0],t.p[1],t.p[2]):a(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])},o=function(t,e){return e?null:r(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])};return{get2DMatrix:i,getMatrix:n,getMatrix2:s,getMatrixArray:o,getMatrixArrayFromParams:r,getMatrix2FromParams:a}}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.verticalAlign="top",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="hidden",styleUnselectableDiv(t)}function styleUnselectableDiv(t){t.style.userSelect="none",t.style.MozUserSelect="none",t.style.webkitUserSelect="none",t.style.oUserSelect="none"}function randomString(t,e){void 0===e&&(e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");var a,r="";for(a=t;a>0;--a)r+=e[Math.round(Math.random()*(e.length-1))];return r}function componentToHex(t){var e=t.toString(16);return 1==e.length?"0"+e:e}function rgbToHex(t,e,a){return 0>t&&(t=0),0>e&&(e=0),0>a&&(a=0),"#"+colorMap[t]+colorMap[e]+colorMap[a]}function fillToRgba(t,e){if(!cachedColors[t]){var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);cachedColors[t]=parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)}return"rgba("+cachedColors[t]+","+e+")"}function createColorMap(){var t,e;for(t=0;256>t;t+=1)e=t.toString(16),colorMap[t]=1==e.length?"0"+e:e}function createElement(t,e,a){if(!e){var r=Object.create(t.prototype,a),i={};return r&&"[object Function]"===i.toString.call(r.init)&&r.init(),r}e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.parent=t.prototype}function defineDescriptor(t,e,a,r){var i={writable:!1,configurable:!1,enumerable:!1,value:a};if(r)for(var n in r)i[n]=r[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,i)}function defineAccessor(t,e,a){var r,i={enumerable:!1,configurable:!1,get:function(){return r},set:function(t){r=t}};if(a)for(var n in a)i[n]=a[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,i)}function bezFunction(){function t(t,e,a,r,i,n){return o.abs((a-t)*(n-e)-(i-t)*(r-e))<1e-5}function e(t){return n[t].fnc}function a(t,e,a,r,i){if(i||(i=("bez_"+t+"_"+e+"_"+a+"_"+r).replace(/\./g,"p")),n[i])return n[i];var s,o,h,p,m,l;return n[i]=function(i,n,d,c,u){for(var f,y=n/u,i=y,g=0;++g<14&&(h=3*t,o=3*(a-t)-h,s=1-h-o,f=i*(h+i*(o+i*s))-y,!(Math.abs(f)<.001));)i-=f/(h+i*(2*o+3*s*i));l=3*e,m=3*(r-e)-l,p=1-l-m;var v=i*(l+i*(m+i*p));return c*v+d},n[i]}function r(e,a,r,i){var n=(e.join("_")+"_"+a.join("_")+"_"+r.join("_")+"_"+i.join("_")).replace(/\./g,"p");if(s[n])return s[n];var o,h,p,m,l,d,c,u,f,y,g,v,x=500,E=0,C=null,b={points:[],segmentLength:0};for(t(e[0],e[1],a[0],a[1],r[0],r[1])&&t(e[0],e[1],a[0],a[1],i[0],i[1])&&(x=2),p=r.length,o=0;x>o;o+=1){for(v=[],y=o/(x-1),g=0,h=0;p>h;h+=1)m=e[h]+(r[h]-e[h])*y,l=r[h]+(i[h]-r[h])*y,d=i[h]+(a[h]-i[h])*y,c=m+(l-m)*y,u=l+(d-l)*y,f=c+(u-c)*y,v.push(f),null!==C&&(g+=Math.pow(v[h]-C[h],2));g=Math.sqrt(g),E+=g,b.points.push({partialLength:g,cumulatedLength:E,point:v}),C=v}return b.segmentLength=E,s[n]=b,b}function i(e){var a,r,i,n,s,o,h,p,m,l,d,c,u=e.s,f=e.e,y=e.to,g=e.ti,v=500,x=0,E=null,C={points:[],segmentLength:0};for(t(u[0],u[1],f[0],f[1],u[0]+y[0],u[1]+y[1])&&t(u[0],u[1],f[0],f[1],f[0]+g[0],f[1]+g[1])&&(v=2),i=y.length,a=0;v>a;a+=1){for(c=[],l=a/(v-1),d=0,r=0;i>r;r+=1)n=u[r]+y[r]*l,s=u[r]+y[r]+(f[r]+g[r]-(u[r]+y[r]))*l,o=f[r]+g[r]+-g[r]*l,h=n+(s-n)*l,p=s+(o-s)*l,m=h+(p-h)*l,c.push(m),null!==E&&(d+=Math.pow(c[r]-E[r],2));d=Math.sqrt(d),x+=d,C.points.push({partialLength:d,cumulatedLength:x,point:c}),E=c}C.segmentLength=x,e.bezierData=C}var n=[],s={},o=Math,h={getEasingCurve:a,getEasingCurveByIndex:e,drawBezierCurve:r,buildBezierData:i};return h}function dataFunctionManager(){function t(t,e,a){var r,i=s(t,e,a),n=[];for(r=0;e>r;r+=1)n.push(Math.floor(i[r]*f));return n}function e(t,e){var a,r,i,n=t.length;for(a=0;n>a;a+=1)if(void 0!==t[a].t)if(t[a].s instanceof Array)for(i=t[a].s.length,r=0;i>r;r+=1)t[a].s[r]*=e,t[a].e[r]*=e;else t[a].s&&(t[a].s*=e,t[a].e*=e);else t[a]=t[a]*e}function a(i){var s,o,h,p,m,l,d,c,u,f,y,g=i.length;for(d=0;g>d;d+=1){if(h=i[d],s=h.outPoint-h.startTime,o=h.startTime,h.layerName=n(h.layerName),h.parent&&(h.parent=n(h.parent)),h.renderedFrame={},h.renderedData={},p=[],m=-1,h.tm&&(h.tm=t(h.tm,s,o)),h.ks.o instanceof Array?e(h.ks.o,.01):h.ks.o/=100,h.ks.s instanceof Array?e(h.ks.s,.01):h.ks.s/=100,h.ks.r instanceof Array?e(h.ks.r,v):h.ks.r*=v,h.hasMask){var x=h.masksProperties;for(u=x.length,c=0;u>c;c+=1)if(x[c].pt.i)r(x[c].pt);else for(y=x[c].pt.length,f=0;y>f;f+=1)x[c].pt[f].s&&r(x[c].pt[f].s[0]),x[c].pt[f].e&&r(x[c].pt[f].e[0])}if("PreCompLayer"==h.type)a(h.layers);else if("ShapeLayer"==h.type)for(u=h.shapes.length,c=0;u>c;c+=1)if(l=h.shapes[c],l.renderedData={},l.tr.o instanceof Array?e(l.tr.o,.01):l.tr.o/=100,l.tr.s instanceof Array?e(l.tr.s,.01):l.tr.s/=100,l.tr.r instanceof Array?e(l.tr.r,v):l.tr.r*=v,l.fl&&(l.fl.o instanceof Array?e(l.fl.o,.01):l.fl.o*=.01),l.st&&(l.st.o instanceof Array?e(l.st.o,.01):l.st.o*=.01),l.ks)if(l.ks.i)r(l.ks);else for(y=l.ks.length,f=0;y>f;f+=1)l.ks[f].s&&(r(l.ks[f].s[0]),r(l.ks[f].e[0]))}}function r(t){var e,a=t.i.length;for(e=0;a>e;e+=1)t.i[e][0]+=t.v[e][0],t.i[e][1]+=t.v[e][1],t.o[e][0]+=t.v[e][0],t.o[e][1]+=t.v[e][1]}function i(t){g[t._id]={data:t,renderedFrames:[]},f=t.animation.frameRate,a(t.animation.layers)}function n(t){return t=t.replace(/ /g,"_"),t=t.replace(/-/g,"_"),t=t.replace(/\./g,"_"),t=t.replace(/\//g,"_")}function s(t,e,a){var r,i,n=[];if(!(t instanceof Array)||null==t[0].t)return n.push(t),n;var s,o;n=[];var h,p,m,l=[];i=t.length;var d,c=1e3,u=[],f=[];for(r=0;i>r;r+=1)if(s=t[r],s.t-=a,s.to){var y,g,v,x,E,C,b,d,F,S,A=0,I=null,w={points:[],length:0};for(y=0;c>y;y+=1)S=[],d=y/(c-1),F=0,u=[],f=[],s.to.forEach(function(t,e){null==u[e]&&(u[e]=s.s[e]+s.to[e],f[e]=s.e[e]+s.ti[e]),g=s.s[e]+(u[e]-s.s[e])*d,v=u[e]+(f[e]-u[e])*d,x=f[e]+(s.e[e]-f[e])*d,E=g+(v-g)*d,C=v+(x-v)*d,b=E+(C-E)*d,S.push(b),null!==I&&(F+=Math.pow(S[e]-I[e],2))}),F=Math.sqrt(F),A+=F,w.points.push({partialLength:A,point:S}),I=S,s.bezierData=w;w.segmentLength=A}var M=0,k=0;for(r=0;e>r;r+=1){h=M;for(var T=!1;i-1>h;){if(s=t[h],o=t[h+1],r<s.t&&0==h){for(m=s.s.length,l=[],p=0;m>p;p+=1)l.push(s.s[p]);n.push(l),T=!0,M!=h&&(M=h,k=0);break}if(r>=s.t&&r<o.t){if(l=[],s.to){d=bez.getEasingCurve(s.o.x,s.o.y,s.i.x,s.i.y)("",r-s.t,0,1,o.t-s.t);var y,D,_,w=s.bezierData,P=w.segmentLength*d;for(p=k;p<w.points.length;){if(0==r||0==P||0==d){l=w.points[p].point,k=p;break}if(p==w.points.length-1)l=w.points[p].point;else if(P>w.points[p].partialLength&&P<w.points[p+1].partialLength){for(D=w.points[p].point.length,_=(P-w.points[p].partialLength)/(w.points[p+1].partialLength-w.points[p].partialLength),y=0;D>y;y+=1)l.push(w.points[p].point[y]+(w.points[p+1].point[y]-w.points[p].point[y])*_);k=p;break}p+=1}}else{var V,N,z,L;s.s.forEach(function(t,e){if(1!==s.h&&(s.o.x instanceof Array?(V=s.o.x[e],N=s.o.y[e],z=s.i.x[e],L=s.i.y[e]):(V=s.o.x,N=s.o.y,z=s.i.x,L=s.i.y),d=bez.getEasingCurve(V,N,z,L)("",r-s.t,0,1,o.t-s.t)),t.i){var a={i:[],o:[],v:[]};t.i.forEach(function(r,i){var n=[],o=[],h=[];r.forEach(function(a,r){1===s.h?(n.push(a),o.push(t.o[i][r]),h.push(t.v[i][r])):(n.push(a+(s.e[e].i[i][r]-a)*d),o.push(t.o[i][r]+(s.e[e].o[i][r]-t.o[i][r])*d),h.push(t.v[i][r]+(s.e[e].v[i][r]-t.v[i][r])*d))}),a.i.push(n),a.o.push(o),a.v.push(h)}),l.push(a)}else l.push(1===s.h?t:t+(s.e[e]-t)*d)})}n.push(l),T=!0,M!=h&&(M=h,k=0);break}h+=1}0==T&&(s=t[t.length-2],l=[],s.e.forEach(function(t){l.push(t)}),n.push(l))}for(h=n.length;e>h;)n.push(l),h+=1;return n}function o(t,e,a,r){var i,n,s,o,h,p;if(!t.length)return"p"==r.type?(E.px=t,E.py=t):"s"==r.type?(E.sx=t,E.sy=t):"r"==r.type&&(E.r=t),r.toArray?[t]:t;if(null==t[0].t)return"p"==r.type?(E.px=t[0],E.py=t[1]):"s"==r.type?(E.sx=t[0],E.sy=t[1]):"r"==r.type&&(E.r=t[0]),t;h=0,p=t.length-1;for(var m=1,l=!0;!(!l||(i=t[h],n=t[h+1],h==p-1&&e>=n.t-a)||n.t-a>e&&1==m);){if(n.t-a<e&&-1==m){h+=1,i=t[h],n=t[h+1];break}p-1>h&&1==m||h>0&&-1==m?h+=m:l=!1}i.to&&!i.bezierData&&bez.buildBezierData(i);var d,c,u,f=0;if("default"==r.type&&(s=[]),i.to){if(o=i.bezierData,e>=n.t-a)return"p"==r.type?(E.px=o.points[o.points.length-1].point[0],E.py=o.points[o.points.length-1].point[1]):"s"==r.type?(E.sx=o.points[o.points.length-1].point[0],E.sy=o.points[o.points.length-1].point[1]):"r"==r.type&&(E.r=o.points[o.points.length-1].point[0]),o.points[o.points.length-1].point;if(e<i.t-a)return"p"==r.type?(E.px=o.points[0].point[0],E.py=o.points[0].point[1]):"s"==r.type?(E.sx=o.points[0].point[0],E.sy=o.points[0].point[1]):"r"==r.type&&(E.r=o.points[0].point[0]),o.points[0].point;var y;i.__fnct?y=i.__fnct:(y=bez.getEasingCurve(i.o.x,i.o.y,i.i.x,i.i.y,i.n),i.__fnct=y),u=y("",e-(i.t-a),0,1,n.t-a-(i.t-a));var g,v=o.segmentLength*u,x=0;for(m=1,l=!0,jLen=o.points.length;l;){if(x+=o.points[f].partialLength*m,0==v||0==u){"p"==r.type?(E.px=o.points[f].point[0],E.py=o.points[f].point[1]):"s"==r.type?(E.sx=o.points[f].point[0],E.sy=o.points[f].point[1]):"r"==r.type?E.r=o.points[f].point[0]:s=o.points[f].point;break}if(f==o.points.length-1){"p"==r.type?(E.px=o.points[f].point[0],E.py=o.points[f].point[1]):"s"==r.type?(E.sx=o.points[f].point[0],E.sy=o.points[f].point[1]):"r"==r.type?E.r=o.points[f].point[0]:s=o.points[f].point;break}if(v>x&&v<x+o.points[f+1].partialLength){if(g=(v-x)/o.points[f+1].partialLength,"p"==r.type)E.px=o.points[f].point[0]+(o.points[f+1].point[0]-o.points[f].point[0])*g,E.py=o.points[f].point[1]+(o.points[f+1].point[1]-o.points[f].point[1])*g;else if("s"==r.type)E.sx=o.points[f].point[0]+(o.points[f+1].point[0]-o.points[f].point[0])*g,E.sy=o.points[f].point[1]+(o.points[f+1].point[1]-o.points[f].point[1])*g;else if("r"==r.type)E.r=o.points[f].point[0]+(o.points[f+1].point[0]-o.points[f].point[0])*g;else for(c=o.points[f].point.length,d=0;c>d;d+=1)s.push(o.points[f].point[d]+(o.points[f+1].point[d]-o.points[f].point[d])*g);break}f<jLen-1&&1==m||f>0&&-1==m?f+=m:l=!1}}else{var C,b,F,S,A=!1;for(p=i.s.length,h=0;p>h;h+=1){if(1!==i.h){i.o.x instanceof Array?(A=!0,C=i.o.x[h]?i.o.x[h]:i.o.x[0],b=i.o.y[h]?i.o.y[h]:i.o.y[0],F=i.i.x[h]?i.i.x[h]:i.i.x[0],S=i.i.y[h]?i.i.y[h]:i.i.y[0],i.__fnct||(i.__fnct=[])):(A=!1,C=i.o.x,b=i.o.y,F=i.i.x,S=i.i.y);var y;A?i.__fnct[h]?y=i.__fnct[h]:(y=bez.getEasingCurve(C,b,F,S),i.__fnct[h]=y):i.__fnct?y=i.__fnct:(y=bez.getEasingCurve(C,b,F,S),i.__fnct=y),u=y("",e-(i.t-a),0,1,n.t-a-(i.t-a)),e>=n.t-a?u=1:e<i.t-a&&(u=0)}1===i.h?"p"==r.type?0==h?E.px=i.s[h]:1==h&&(E.py=i.s[h]):"s"==r.type?0==h?E.sx=i.s[h]:1==h&&(E.sy=i.s[h]):"r"==r.type?E.r=i.s[h]:s.push(i.s[h]):"p"==r.type?0==h?E.px=i.s[h]+(i.e[h]-i.s[h])*u:1==h&&(E.py=i.s[h]+(i.e[h]-i.s[h])*u):"s"==r.type?0==h?E.sx=i.s[h]+(i.e[h]-i.s[h])*u:1==h&&(E.sy=i.s[h]+(i.e[h]-i.s[h])*u):"r"==r.type?E.r=i.s[h]+(i.e[h]-i.s[h])*u:s.push(i.s[h]+(i.e[h]-i.s[h])*u)}}return s}function h(t,e,a,r,i){var n={};n.closed=i?t.cl:t.closed;var s=i?t.pt:t.ks;if(s.v)return"svg"==r?(s.__pathString||(s.__pathString=p(s,n.closed)),n.pathString=s.__pathString):n.pathNodes=s,n;var o,h,m,l,d,c,u,t={i:[],o:[],v:[]},f=[];if(e<s[0].t-a){for(h=s[0].s[0].i.length,o=0;h>o;o+=1){for(d=[],c=[],u=[],l=s[0].s[0].i[o].length,m=0;l>m;m+=1)d.push(s[0].s[0].i[o][m]),c.push(s[0].s[0].o[o][m]),u.push(s[0].s[0].v[o][m]);t.i.push(d),t.o.push(c),t.v.push(u)}return f.push(t),"svg"==r?(s.__minValue||(s.__minValue=p(f,n.closed)),n.pathString=s.__minValue):(s.__minValue||(s.__minValue=f),n.pathNodes=s.__minValue),n}if(e>s[s.length-1].t-a){var y=s.length-2;for(h=s[y].s[0].i.length,o=0;h>o;o+=1){for(d=[],c=[],u=[],l=s[y].s[0].i[o].length,m=0;l>m;m+=1)d.push(s[y].e[0].i[o][m]),c.push(s[y].e[0].o[o][m]),u.push(s[y].e[0].v[o][m]);t.i.push(d),t.o.push(c),t.v.push(u)}return f.push(t),"svg"==r?(s.__maxValue||(s.__maxValue=p(f,n.closed)),n.pathString=s.__maxValue):(s.__maxValue||(s.__maxValue=f),n.pathNodes=s.__maxValue),n}for(var g,v,x=0,E=s.length-1,C=1,b=!0;b&&(g=s[x],v=s[x+1],!(v.t-a>e&&1==C));)E-1>x&&1==C||x>0&&-1==C?x+=C:b=!1;var F,S,A,I,w;if(1!==g.h){F=g.o.x,S=g.o.y,A=g.i.x,I=g.i.y;var M;g.__fnct?M=g.__fnct:(M=bez.getEasingCurve(F,S,A,I),g.__fnct=M),w=M("",e-(g.t-a),0,1,v.t-a-(g.t-a)),e>=v.t-a?w=1:e<g.t-a&&(w=0)}if(1===g.h&&g.__hValue)f.push(g.__hValue);else for(t={i:[],o:[],v:[]},h=g.s[0].i.length,o=0;h>o;o+=1){for(d=[],c=[],u=[],l=g.s[0].i[o].length,m=0;l>m;m+=1)1===g.h?(d.push(g.s[0].i[o][m]),c.push(g.s[0].o[o][m]),u.push(g.s[0].v[o][m])):(d.push(g.s[0].i[o][m]+(g.e[0].i[o][m]-g.s[0].i[o][m])*w),c.push(g.s[0].o[o][m]+(g.e[0].o[o][m]-g.s[0].o[o][m])*w),u.push(g.s[0].v[o][m]+(g.e[0].v[o][m]-g.s[0].v[o][m])*w));t.i.push(d),t.o.push(c),t.v.push(u),1===g.h&&(g.__hValue=t),f.push(t)}return"svg"==r?n.pathString=p(f[0],n.closed):n.pathNodes=f[0],n}function p(t,e){var a,r,i,n,s,o,h="";if(!(t instanceof Array)){for(a=t.v,r=t.o,i=t.i,o=a.length,h+="M"+a[0].join(","),s=1;o>s;s++)h+=" C"+r[s-1].join(",")+" "+i[s].join(",")+" "+a[s].join(",");return e!==!1&&(h+=" C"+r[s-1].join(",")+" "+i[0].join(",")+" "+a[0].join(",")),h}var p,m=t.length;for(h="",p=0;m>p;p+=1){for(n=t[p],a=n.v,r=n.o,i=n.i,o=a.length,h+="M"+a[0].join(","),s=1;o>s;s++)h+=" C"+r[s-1].join(",")+" "+i[s].join(",")+" "+a[s].join(",");e!==!1&&(h+=" C"+r[s-1].join(",")+" "+i[0].join(",")+" "+a[0].join(","))}return h}function m(t,e,a){var r,i,n,s,p,d,c,u,f,g,v,C,b,F,S,A,I,w,M,k={},T=t.length;for(w=0;T>w;w+=1)if(M=t[w],b=e-M.startTime,!M.an[b]){if(r={},x.arrayFlag=!1,x.type="default",r.a=o(M.ks.a,b,M.startTime,x),r.o=o(M.ks.o,b,M.startTime,x),x.arrayFlag=!1,x.type="p",o(M.ks.p,b,M.startTime,x),x.arrayFlag=!0,x.type="r",o(M.ks.r,b,M.startTime,x),x.arrayFlag=!0,x.type="s",o(M.ks.s,b,M.startTime,x),A={},A.an={tr:r},x.arrayFlag=!1,x.type="default","canvas"==a?A.an.matrixArray=y.getMatrixArrayFromParams(E.r,E.sx,E.sy,E.px,E.py):A.an.matrixValue=y.getMatrix2FromParams(E.r,E.sx,E.sy,E.px,E.py)+"translate("+-r.a[0]+" "+-r.a[1]+")",M.renderedData[b]=A,M.hasMask)for(i=M.masksProperties,S=i.length,F=0;S>F;F+=1)i[F].paths||(i[F].paths=[],i[F].opacity=[]),i[F].paths[b]=h(i[F],b,M.startTime,a,!0),i[F].opacity[b]=o(i[F].o,b,M.startTime,x),i[F].opacity[b]=i[F].opacity[b]instanceof Array?i[F].opacity[b][0]/100:i[F].opacity[b]/100;if(!(e<M.inPoint||e>M.outPoint))if("PreCompLayer"==M.type)n=M.tm?M.tm[b]<0?0:M.tm[b]:b,m(M.layers,n,a);else if("ShapeLayer"==M.type)for(S=M.shapes.length,F=0;S>F;F+=1){if(I={},s=M.shapes[F],s.renderedData[b]=I,s._created||(s.an.tr=[],s.an.renderedFrame={},s.ks?s.an.path=[]:s.el?s.an.ell=[]:s.rc&&(s.an.rect=[]),s.fl&&(s.an.fill=[]),s.st&&(s.an.stroke=[])),s.trim&&!s._created&&(s.trim.an=[]),s.fl&&(d=o(s.fl.c,b,M.startTime,x),p=o(s.fl.o,b,M.startTime,x),I.fill={opacity:p instanceof Array?p[0]:p},"canvas"==a?(l(d),I.fill.color=d):I.fill.color=rgbToHex(Math.round(d[0]),Math.round(d[1]),Math.round(d[2]))),s.ks?I.path=h(s,b,M.startTime,a):s.el?(g=o(s.el.p,b,M.startTime,x),v=o(s.el.s,b,M.startTime,x),I.ell={p:g,size:v}):s.rc&&(g=o(s.rc.p,b,M.startTime,x),v=o(s.rc.s,b,M.startTime,x),C=o(s.rc.r,b,M.startTime,x),I.rect={position:g,size:v,roundness:C}),s.st&&(c=o(s.st.c,b,M.startTime,x),u=o(s.st.o,b,M.startTime,x),f=o(s.st.w,b,M.startTime,x),I.stroke={opacity:u instanceof Array?u[0]:u,width:f instanceof Array?f[0]:f},"canvas"==a?(l(c),I.stroke.color=c):I.stroke.color=rgbToHex(Math.round(c[0]),Math.round(c[1]),Math.round(c[2]))),k={},k.a=o(s.tr.a,b,M.startTime,x),k.o=o(s.tr.o,b,M.startTime,x),x.arrayFlag=!0,x.type="s",o(s.tr.s,b,M.startTime,x),x.arrayFlag=!0,x.type="r",o(s.tr.r,b,M.startTime,x),x.arrayFlag=!1,x.type="p",o(s.tr.p,b,M.startTime,x),x.arrayFlag=!1,x.type="default","canvas"==a?k.mtArr=y.getMatrixArrayFromParams(E.r,E.sx,E.sy,E.px,E.py):k.mt=y.getMatrix2FromParams(E.r,E.sx,E.sy,E.px,E.py),s.an.tr[b]=k,I.tr=k,s.trim){var D=o(s.trim.s,b,M.startTime,x),_=o(s.trim.e,b,M.startTime,x),P=o(s.trim.o,b,M.startTime,x);I.trim={s:D,e:_,o:P}}s._created||(s._created=!0)}}}function l(t){var e,a=t.length;for(e=0;a>e;e+=1)t[e]=Math.round(t[e])}function d(t,e){for(var a=1;a>0;){if(e+=1,e>=t.data.animation.totalFrames){t.renderFinished=!0;break}t.renderedFrames[e]||(c(t.data._id,e),a-=1)}}function c(t,e){return 2==g[t].renderedFrames[e]?void(g[t].renderFinished||d(g[t],e)):(g[t].renderedFrames[e]=2,void m(g[t].data.animation.layers,e,g[t].data._animType))}function u(t){var e,a=g[t].data,r=a.animation.totalFrames,i=[];for(e=0;r>e;e+=1)i.push({num:e,data:c(t,e)})}var f=0,y=new MatrixManager,g={},v=Math.PI/180,x={arrayFlag:!1},E={r:0,sx:1,sy:1,px:1,py:1},C={};return C.completeData=i,C.renderFrame=c,C.renderAllFrames=u,C}function SVGRenderer(t){this.animationItem=t,this.layers=null,this.lastFrame=-1}function CanvasRenderer(t,e){this.animationItem=t,this.renderConfig=e?e:{clearCanvas:!0,context:null,scaleMode:"fit"},this.lastFrame=-1}function MaskElement(){this.data=null,this.element=null,this.paths=[]}function ICompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function IImageElement(t,e){this.animationItem=e,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e)}function IShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function ShapeItemElement(t){this.data=t,this.shapeG=document.createElementNS(svgNS,"g"),this.pathLength=0,this.cachedData=[],this.renderedFrame={path:"",stroke:{},fill:{},tr:{a:[]},trim:{},ellipse:{},rect:{}},"pathShape"===this.data.type?this.shape=document.createElementNS(svgNS,"path"):"rectShape"===this.data.type?this.shape=document.createElementNS(svgNS,"rect"):"ellipseShape"===this.data.type?(this.shape=document.createElementNS(svgNS,"ellipse"),this.data.trim&&this.adjustTrim()):this.shape=document.createElementNS(svgNS,"path"),this.data.trim?this.shape.setAttribute("stroke-linecap","round"):(this.shape.setAttribute("stroke-linejoin","round"),this.shape.setAttribute("stroke-linecap","round")),this.data.renderedData||(this.data.renderedData={}),this.shape.setAttribute("name",this.data.name),styleUnselectableDiv(this.shapeG),styleUnselectableDiv(this.shape),this.shapeG.appendChild(this.shape)}function ISolidElement(t,e){this.parent.constructor.call(this,t,e)}function ITextElement(t,e){this.parent.constructor.call(this,t,e)}function CVBaseElement(t,e){this.renderer=e,this.data=t,this.currentAnimData=null,this.renderFrame=!1,this.init()}function CVCompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function CVImageElement(t,e){this.renderer=e,this.animationItem=e.animationItem,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e),this.animationItem.pendingElements+=1}function CVShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function CVShapeItemElement(t,e){this.data=t,this.renderer=e,this.frameNum=-1,this.renderedPaths={},this.trims=[]}function CVSolidElement(t,e){this.parent.constructor.call(this,t,e)}function CVTextElement(t,e){this.parent.constructor.call(this,t,e)}function CVMaskElement(){}var svgNS="http://www.w3.org/2000/svg";Matrix.prototype={concat:function(t){return this.clone()._t(t.a,t.b,t.c,t.d,t.e,t.f)},flipX:function(){return this._t(-1,0,0,1,0,0)},flipY:function(){return this._t(1,0,0,-1,0,0)},reflectVector:function(t,e){var a=this.applyToPoint(0,1),r=2*(a.x*t+a.y*e);return t-=r*a.x,e-=r*a.y,{x:t,y:e}},reset:function(){return this.setTransform(1,0,0,1,0,0)},rotate:function(t){return 0==t?this:(this.cos=Math.cos(t),this.sin=Math.sin(t),this._t(this.cos,this.sin,-this.sin,this.cos,0,0))},rotateFromVector:function(t,e){return this.rotate(Math.atan2(e,t))},rotateDeg:function(t){return this.rotate(t*Math.PI/180)},scaleU:function(t){return this._t(t,0,0,t,0,0)},scale:function(t,e){return 1==t&&1==e?this:this._t(t,0,0,e,0,0)},scaleX:function(t){return this._t(t,0,0,1,0,0)},scaleY:function(t){return this._t(1,0,0,t,0,0)},shear:function(t,e){return this._t(1,e,t,1,0,0)},shearX:function(t){return this._t(1,0,t,1,0,0)},shearY:function(t){return this._t(1,t,0,1,0,0)},skew:function(t,e){return this.shear(Math.tan(t),Math.tan(e))},skewX:function(t){return this.shearX(Math.tan(t))},skewY:function(t){return this.shearY(Math.tan(t))},setTransform:function(t,e,a,r,i,n){return this.props[0]=t,this.props[1]=e,this.props[2]=a,this.props[3]=r,this.props[4]=i,this.props[5]=n,this._x()},translate:function(t,e){return this._t(1,0,0,1,t,e)},translateX:function(t){return this._t(1,0,0,1,t,0)},translateY:function(t){return this._t(1,0,0,1,0,t)},transform:function(t,e,a,r,i,n){return this.a1=this.props[0],this.b1=this.props[1],this.c1=this.props[2],this.d1=this.props[3],this.e1=this.props[4],this.f1=this.props[5],this.props[0]=this.a1*t+this.c1*e,this.props[1]=this.b1*t+this.d1*e,this.props[2]=this.a1*a+this.c1*r,this.props[3]=this.b1*a+this.d1*r,this.props[4]=this.a1*i+this.c1*n+this.e1,this.props[5]=this.b1*i+this.d1*n+this.f1,this._x()},divide:function(t){if(!t.isInvertible())throw"Input matrix is not invertible";var e=t.inverse();return this._t(e.a,e.b,e.c,e.d,e.e,e.f)},divideScalar:function(t){var e=this;return e.a/=t,e.b/=t,e.c/=t,e.d/=t,e.e/=t,e.f/=t,e._x()},inverse:function(){if(this.isIdentity())return new Matrix;if(this.isInvertible()){var t=this,e=t.a,a=t.b,r=t.c,i=t.d,n=t.e,s=t.f,o=new Matrix,h=e*i-a*r;return o.a=i/h,o.b=-a/h,o.c=-r/h,o.d=e/h,o.e=(r*s-i*n)/h,o.f=-(e*s-a*n)/h,o}throw"Matrix is not invertible."},interpolate:function(t,e,a){var r=this,i=a?new Matrix(a):new Matrix;return i.a=r.a+(t.a-r.a)*e,i.b=r.b+(t.b-r.b)*e,i.c=r.c+(t.c-r.c)*e,i.d=r.d+(t.d-r.d)*e,i.e=r.e+(t.e-r.e)*e,i.f=r.f+(t.f-r.f)*e,i._x()},interpolateAnim:function(t,e,a){var r=this,i=a?new Matrix(a):new Matrix,n=r.decompose(),s=t.decompose(),o=n.rotation+(s.rotation-n.rotation)*e,h=n.translate.x+(s.translate.x-n.translate.x)*e,p=n.translate.y+(s.translate.y-n.translate.y)*e,m=n.scale.x+(s.scale.x-n.scale.x)*e,l=n.scale.y+(s.scale.y-n.scale.y)*e;return i.translate(h,p),i.rotate(o),i.scale(m,l),i._x()},decompose:function(t){var e=this,a=e.a,r=e.b,i=e.c,n=e.d,s=Math.acos,o=Math.atan,h=Math.sqrt,p=Math.PI,m={x:e.e,y:e.f},l=0,d={x:1,y:1},c={x:0,y:0},u=a*n-r*i;if(t)a?(c={x:o(i/a),y:o(r/a)},d={x:a,y:u/a}):r?(l=.5*p,d={x:r,y:u/r},c.x=o(n/r)):(d={x:i,y:n},c.x=.25*p);else if(a||r){var f=h(a*a+r*r);l=r>0?s(a/f):-s(a/f),d={x:f,y:u/f},c.x=o((a*i+r*n)/(f*f))}else if(i||n){var y=h(i*i+n*n);l=.5*p-(n>0?s(-i/y):-s(i/y)),d={x:u/y,y:y},c.y=o((a*i+r*n)/(y*y))}else d={x:0,y:0};return{scale:d,translate:m,rotation:l,skew:c}},determinant:function(){return this.a*this.d-this.b*this.c},applyToPoint:function(t,e){var a=this;return{x:t*a.a+e*a.c+a.e,y:t*a.b+e*a.d+a.f}},applyToArray:function(t){var e,a,r=0,i=[];if("number"==typeof t[0])for(a=t.length;a>r;)e=this.applyToPoint(t[r++],t[r++]),i.push(e.x,e.y);else for(;e=t[r];r++)i.push(this.applyToPoint(e.x,e.y));return i},applyToTypedArray:function(t,e){for(var a,r=0,i=t.length,n=e?new Float64Array(i):new Float32Array(i);i>r;)a=this.applyToPoint(t[r],t[r+1]),n[r++]=a.x,n[r++]=a.y;return n},applyToContext:function(t){var e=this;return t.setTransform(e.a,e.b,e.c,e.d,e.e,e.f),e},isIdentity:function(){var t=this;return t._q(t.a,1)&&t._q(t.b,0)&&t._q(t.c,0)&&t._q(t.d,1)&&t._q(t.e,0)&&t._q(t.f,0)},isInvertible:function(){return!this._q(this.determinant(),0)},isValid:function(){return!this._q(this.a*this.d,0)},clone:function(t){var e=this,a=new Matrix;return a.a=e.a,a.b=e.b,a.c=e.c,a.d=e.d,a.e=e.e,a.f=e.f,t||(a.context=e.context),a},isEqual:function(t){var e=this,a=e._q;return a(e.a,t.a)&&a(e.b,t.b)&&a(e.c,t.c)&&a(e.d,t.d)&&a(e.e,t.e)&&a(e.f,t.f)},toArray:function(){return[this.props[0],this.props[1],this.props[2],this.props[3],this.props[4],this.props[5]]},toCSS:function(){return this.cssParts[1]=this.props.join(","),this.cssParts.join("")},toJSON:function(){var t=this;return'{"a":'+t.a+',"b":'+t.b+',"c":'+t.c+',"d":'+t.d+',"e":'+t.e+',"f":'+t.f+"}"},toString:function(){return""+this.toArray()},_q:function(t,e){return Math.abs(t-e)<1e-14},_x:function(){return this.context&&this.context.setTransform(this.a,this.b,this.c,this.d,this.e,this.f),this}};var MatrixManager=matrixManagerFunction;!function(){for(var t=0,e=["ms","moz","webkit","o"],a=0;a<e.length&&!window.requestAnimationFrame;++a)window.requestAnimationFrame=window[e[a]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[a]+"CancelAnimationFrame"]||window[e[a]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e){var a=(new Date).getTime(),r=Math.max(0,16-(a-t)),i=window.setTimeout(function(){e(a+r)},r);return t=a+r,i}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var subframeEnabled=!1,supportsPath2D="function"==typeof Path2D,cachedColors={},colorMap=[],body,fillColorToString=function(){var t=[];return function(e,a){return t[e[0]]||(t[e[0]]=[]),t[e[0]][e[1]]||(t[e[0]][e[1]]=[]),t[e[0]][e[1]][e[2]]||(void 0!=a&&(e[3]=a),t[e[0]][e[1]][e[2]]="rgba("+e.join(",")+")"),t[e[0]][e[1]][e[2]]}}();createColorMap(),function(t){function e(){this.commandArrays=[]}void 0==CanvasRenderingContext2D.prototype.ellipse&&(CanvasRenderingContext2D.prototype.ellipse=function(t,e,a,r,i,n,s,o){this.save(),this.translate(t,e),this.rotate(i),this.scale(a,r),this.arc(0,0,1,n,s,o),this.restore()}),supportsPath2D||(e.prototype.moveTo=function(t,e){this.commandArrays.push({type:"move",coord:[t,e]})},e.prototype.lineTo=function(t,e){this.commandArrays.push({type:"line",coord:[t,e]})},e.prototype.bezierCurveTo=function(t,e,a,r,i,n){this.commandArrays.push({type:"bezierCurve",coord:[t,e,a,r,i,n]})},e.prototype.drawToContext=function(t){var e,a,r=this.commandArrays.length;for(t.beginPath(),a=0;r>a;a+=1)switch(e=this.commandArrays[a],e.type){case"move":t.moveTo(e.coord[0],e.coord[1]);break;case"line":t.lineTo(e.coord[0],e.coord[1]);break;case"bezierCurve":t.bezierCurveTo(e.coord[0],e.coord[1],e.coord[2],e.coord[3],e.coord[4],e.coord[5])}},t.Path2D=e)}(window);var bez=bezFunction(),dataManager=dataFunctionManager();SVGRenderer.prototype.buildItems=function(t){var e,a=0,r=t.length;for(e=0;r>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):console.log("NO TYPE: ",t[e])},SVGRenderer.prototype.createShape=function(t){t.element=new IShapeElement(t,this.animationItem)},SVGRenderer.prototype.createText=function(t){t.element=new ITextElement(t,this.animationItem)},SVGRenderer.prototype.createImage=function(t){t.element=new IImageElement(t,this.animationItem)},SVGRenderer.prototype.createComp=function(t){t.element=new ICompElement(t,this.animationItem),this.buildItems(t.layers,t.element.getType())},SVGRenderer.prototype.createSolid=function(t){t.element=new ISolidElement(t,this.animationItem)},SVGRenderer.prototype.configAnimation=function(t){this.animationItem.container=document.createElementNS(svgNS,"svg"),this.animationItem.container.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.animationItem.container.setAttribute("width",t.animation.compWidth),this.animationItem.container.setAttribute("height",t.animation.compHeight),this.animationItem.container.setAttribute("viewBox","0 0 "+t.animation.compWidth+" "+t.animation.compHeight),this.animationItem.container.setAttribute("preserveAspectRatio","xMidYMid meet"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container);var e=document.createElementNS(svgNS,"defs");this.animationItem.container.appendChild(e);var a=document.createElementNS(svgNS,"clipPath"),r=document.createElementNS(svgNS,"rect");r.setAttribute("width",t.animation.compWidth),r.setAttribute("height",t.animation.compHeight),r.setAttribute("x",0),r.setAttribute("y",0),a.setAttribute("id","animationMask"),a.appendChild(r);var i=document.createElementNS(svgNS,"g");i.setAttribute("clip-path","url(#animationMask)"),this.animationItem.container.appendChild(i),e.appendChild(a),this.animationItem.container=i,this.layers=t.animation.layers},SVGRenderer.prototype.buildStage=function(t,e){var a,r,i=e.length;for(a=i-1;a>=0;a--){if(r=e[a],r.parent){this.buildItemParenting(r,e,r.parent);var n=r.element.getDomElement();n.setAttribute("data-layer-name",r.layerName),t.appendChild(n),r.element.setMainElement(n)}else r.element.getDomElement().setAttribute("data-layer-name",r.layerName),t.appendChild(r.element.getDomElement()),r.element.setMainElement(r.element.getDomElement());"PreCompLayer"==r.type&&this.buildStage(r.element.getComposingElement(),r.layers,r.element.getType())}},SVGRenderer.prototype.buildItemParenting=function(t,e,a){t.parents||(t.parents=[]);for(var r=0,i=e.length;i>r;){if(e[r].layerName==a){t.parents.push({elem:e[r]}),e[r].parent&&this.buildItemParenting(t,e,e[r].parent);break}r+=1}},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.renderFrame=function(t){if(this.lastFrame!=t){this.lastFrame=t;var e,a=this.layers.length;for(e=0;a>e;e++)this.layers[e].element.prepareFrame(t-this.layers[e].startTime);for(e=0;a>e;e++)this.layers[e].element.renderFrame(t-this.layers[e].startTime)}},CanvasRenderer.prototype.buildItems=function(t){var e,a=0,r=t.length;for(e=0;r>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):(this.createBase(t[e]),console.log("NO TYPE: ",t[e]))},CanvasRenderer.prototype.createBase=function(t){t.element=new CVBaseElement(t,this)},CanvasRenderer.prototype.createShape=function(t){t.element=new CVShapeElement(t,this)},CanvasRenderer.prototype.createText=function(t){t.element=new CVTextElement(t,this)},CanvasRenderer.prototype.createImage=function(t){t.element=new CVImageElement(t,this)},CanvasRenderer.prototype.createComp=function(t){t.element=new CVCompElement(t,this),this.buildItems(t.layers)},CanvasRenderer.prototype.createSolid=function(t){t.element=new CVSolidElement(t,this)},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.wrapper?(this.animationItem.container=document.createElement("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d")):this.canvasContext=this.renderConfig.context,this.layers=t.animation.layers,this.transformCanvas={},this.transformCanvas.w=t.animation.compWidth,this.transformCanvas.h=t.animation.compHeight,this.updateContainerSize()
+(function(window){"use strict";function Matrix(t){var e=this;e._t=e.transform,e.a=e.d=1,e.b=e.c=e.e=e.f=0,e.props=[1,0,0,1,0,0],e.cssParts=["matrix(","",")"],e.a1=e.b1=e.c1=e.d1=e.e1=e.f1=0,e.context=t,e.cos=e.sin=0,t&&t.setTransform(1,0,0,1,0,0)}function matrixManagerFunction(){var t=new Matrix,e=function(t,e,a,r,i,n,s,o,h){var p,m,l,d,c,u,f;return p=$M([[1,0,0,0],[0,Math.cos(t),Math.sin(-t),0],[0,Math.sin(t),Math.cos(t),0],[0,0,0,1]]),m=$M([[Math.cos(e),0,Math.sin(e),0],[0,1,0,0],[Math.sin(-e),0,Math.cos(e),0],[0,0,0,1]]),l=$M([[Math.cos(a),Math.sin(-a),0,0],[Math.sin(a),Math.cos(a),0,0],[0,0,1,0],[0,0,0,1]]),c=$M([[r,0,0,0],[0,i,0,0],[0,0,n,0],[0,0,0,1]]),u=p.x(m).x(l).x(c),u=u.transpose(),f=$M([[1,0,0,0],[0,1,0,0],[0,0,1,0],[s,o,h,1]]),u=u.x(f),d="matrix3d(",d+=u.e(1,1).toFixed(5)+","+u.e(1,2).toFixed(5)+","+u.e(1,3).toFixed(5)+","+u.e(1,4).toFixed(5)+",",d+=u.e(2,1).toFixed(5)+","+u.e(2,2).toFixed(5)+","+u.e(2,3).toFixed(5)+","+u.e(2,4).toFixed(5)+",",d+=u.e(3,1).toFixed(5)+","+u.e(3,2).toFixed(5)+","+u.e(3,3).toFixed(5)+","+u.e(3,4).toFixed(5)+",",d+=u.e(4,1).toFixed(5)+","+u.e(4,2).toFixed(5)+","+u.e(4,3).toFixed(5)+","+u.e(4,4).toFixed(5),d+=")"},a=function(e,a,r,i,n){return t.reset().translate(i,n).rotate(e).scale(a,r).toCSS()},r=function(e,a,r,i,n){return t.reset().translate(i,n).rotate(e).scale(a,r).toArray()},i=function(t){return a(t.r,t.s[0],t.s[1],t.p[0],t.p[1])},n=function(t,r){return r?e(-t.tr.r[0],t.tr.r[1],t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.s[2],t.tr.p[0],t.tr.p[1],t.tr.p[2]):a(t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.p[0],t.tr.p[1])},s=function(t,r){return r?e(-t.r[0],t.r[1],t.r[2],t.s[0],t.s[1],t.s[2],t.p[0],t.p[1],t.p[2]):a(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])},o=function(t,e){return e?null:r(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])};return{get2DMatrix:i,getMatrix:n,getMatrix2:s,getMatrixArray:o,getMatrixArrayFromParams:r,getMatrix2FromParams:a}}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.verticalAlign="top",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="hidden",styleUnselectableDiv(t)}function styleUnselectableDiv(t){t.style.userSelect="none",t.style.MozUserSelect="none",t.style.webkitUserSelect="none",t.style.oUserSelect="none"}function randomString(t,e){void 0===e&&(e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");var a,r="";for(a=t;a>0;--a)r+=e[Math.round(Math.random()*(e.length-1))];return r}function componentToHex(t){var e=t.toString(16);return 1==e.length?"0"+e:e}function rgbToHex(t,e,a){return 0>t&&(t=0),0>e&&(e=0),0>a&&(a=0),"#"+colorMap[t]+colorMap[e]+colorMap[a]}function fillToRgba(t,e){if(!cachedColors[t]){var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);cachedColors[t]=parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)}return"rgba("+cachedColors[t]+","+e+")"}function createColorMap(){var t,e;for(t=0;256>t;t+=1)e=t.toString(16),colorMap[t]=1==e.length?"0"+e:e}function createElement(t,e,a){if(!e){var r=Object.create(t.prototype,a),i={};return r&&"[object Function]"===i.toString.call(r.init)&&r.init(),r}e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.parent=t.prototype}function defineDescriptor(t,e,a,r){var i={writable:!1,configurable:!1,enumerable:!1,value:a};if(r)for(var n in r)i[n]=r[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,i)}function defineAccessor(t,e,a){var r,i={enumerable:!1,configurable:!1,get:function(){return r},set:function(t){r=t}};if(a)for(var n in a)i[n]=a[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,i)}function bezFunction(){function t(t,e,a,r,i,n){return o.abs((a-t)*(n-e)-(i-t)*(r-e))<1e-5}function e(t){return n[t].fnc}function a(t,e,a,r,i){if(i||(i=("bez_"+t+"_"+e+"_"+a+"_"+r).replace(/\./g,"p")),n[i])return n[i];var s,o,h,p,m,l;return n[i]=function(i,n,d,c,u){for(var f,y=n/u,i=y,g=0;++g<14&&(h=3*t,o=3*(a-t)-h,s=1-h-o,f=i*(h+i*(o+i*s))-y,!(Math.abs(f)<.001));)i-=f/(h+i*(2*o+3*s*i));l=3*e,m=3*(r-e)-l,p=1-l-m;var v=i*(l+i*(m+i*p));return c*v+d},n[i]}function r(e,a,r,i){var n=(e.join("_")+"_"+a.join("_")+"_"+r.join("_")+"_"+i.join("_")).replace(/\./g,"p");if(s[n])return s[n];var o,h,p,m,l,d,c,u,f,y,g,v,x=500,E=0,C=null,b={points:[],segmentLength:0};for(t(e[0],e[1],a[0],a[1],r[0],r[1])&&t(e[0],e[1],a[0],a[1],i[0],i[1])&&(x=2),p=r.length,o=0;x>o;o+=1){for(v=[],y=o/(x-1),g=0,h=0;p>h;h+=1)m=e[h]+(r[h]-e[h])*y,l=r[h]+(i[h]-r[h])*y,d=i[h]+(a[h]-i[h])*y,c=m+(l-m)*y,u=l+(d-l)*y,f=c+(u-c)*y,v.push(f),null!==C&&(g+=Math.pow(v[h]-C[h],2));g=Math.sqrt(g),E+=g,b.points.push({partialLength:g,cumulatedLength:E,point:v}),C=v}return b.segmentLength=E,s[n]=b,b}function i(e){var a,r,i,n,s,o,h,p,m,l,d,c,u=e.s,f=e.e,y=e.to,g=e.ti,v=500,x=0,E=null,C={points:[],segmentLength:0};for(t(u[0],u[1],f[0],f[1],u[0]+y[0],u[1]+y[1])&&t(u[0],u[1],f[0],f[1],f[0]+g[0],f[1]+g[1])&&(v=2),i=y.length,a=0;v>a;a+=1){for(c=[],l=a/(v-1),d=0,r=0;i>r;r+=1)n=u[r]+y[r]*l,s=u[r]+y[r]+(f[r]+g[r]-(u[r]+y[r]))*l,o=f[r]+g[r]+-g[r]*l,h=n+(s-n)*l,p=s+(o-s)*l,m=h+(p-h)*l,c.push(m),null!==E&&(d+=Math.pow(c[r]-E[r],2));d=Math.sqrt(d),x+=d,C.points.push({partialLength:d,cumulatedLength:x,point:c}),E=c}C.segmentLength=x,e.bezierData=C}var n=[],s={},o=Math,h={getEasingCurve:a,getEasingCurveByIndex:e,drawBezierCurve:r,buildBezierData:i};return h}function dataFunctionManager(){function t(t,e,a){var r,i=s(t,e,a),n=[];for(r=0;e>r;r+=1)n.push(Math.floor(i[r]*f));return n}function e(t,e){var a,r,i,n=t.length;for(a=0;n>a;a+=1)if(void 0!==t[a].t)if(t[a].s instanceof Array)for(i=t[a].s.length,r=0;i>r;r+=1)t[a].s[r]*=e,t[a].e[r]*=e;else t[a].s&&(t[a].s*=e,t[a].e*=e);else t[a]=t[a]*e}function a(i){var s,o,h,p,m,l,d,c,u,f,y,g=i.length;for(d=0;g>d;d+=1){if(h=i[d],s=h.outPoint-h.startTime,o=h.startTime,h.layerName=n(h.layerName),h.parent&&(h.parent=n(h.parent)),h.renderedFrame={},h.renderedData={},p=[],m=-1,h.tm&&(h.tm=t(h.tm,s,o)),h.ks.o instanceof Array?e(h.ks.o,.01):h.ks.o/=100,h.ks.s instanceof Array?e(h.ks.s,.01):h.ks.s/=100,h.ks.r instanceof Array?e(h.ks.r,v):h.ks.r*=v,h.hasMask){var x=h.masksProperties;for(u=x.length,c=0;u>c;c+=1)if(x[c].pt.i)r(x[c].pt);else for(y=x[c].pt.length,f=0;y>f;f+=1)x[c].pt[f].s&&r(x[c].pt[f].s[0]),x[c].pt[f].e&&r(x[c].pt[f].e[0])}if("PreCompLayer"==h.type)a(h.layers);else if("ShapeLayer"==h.type)for(u=h.shapes.length,c=0;u>c;c+=1)if(l=h.shapes[c],l.renderedData={},l.tr.o instanceof Array?e(l.tr.o,.01):l.tr.o/=100,l.tr.s instanceof Array?e(l.tr.s,.01):l.tr.s/=100,l.tr.r instanceof Array?e(l.tr.r,v):l.tr.r*=v,l.fl&&(l.fl.o instanceof Array?e(l.fl.o,.01):l.fl.o*=.01),l.st&&(l.st.o instanceof Array?e(l.st.o,.01):l.st.o*=.01),l.ks)if(l.ks.i)r(l.ks);else for(y=l.ks.length,f=0;y>f;f+=1)l.ks[f].s&&(r(l.ks[f].s[0]),r(l.ks[f].e[0]))}}function r(t){var e,a=t.i.length;for(e=0;a>e;e+=1)t.i[e][0]+=t.v[e][0],t.i[e][1]+=t.v[e][1],t.o[e][0]+=t.v[e][0],t.o[e][1]+=t.v[e][1]}function i(t){g[t._id]={data:t,renderedFrames:[]},f=t.animation.frameRate,a(t.animation.layers)}function n(t){return t=t.replace(/ /g,"_"),t=t.replace(/-/g,"_"),t=t.replace(/\./g,"_"),t=t.replace(/\//g,"_")}function s(t,e,a){var r,i,n=[];if(!(t instanceof Array)||null==t[0].t)return n.push(t),n;var s,o;n=[];var h,p,m,l=[];i=t.length;var d,c=1e3,u=[],f=[];for(r=0;i>r;r+=1)if(s=t[r],s.t-=a,s.to){var y,g,v,x,E,C,b,d,F,S,A=0,I=null,w={points:[],length:0};for(y=0;c>y;y+=1)S=[],d=y/(c-1),F=0,u=[],f=[],s.to.forEach(function(t,e){null==u[e]&&(u[e]=s.s[e]+s.to[e],f[e]=s.e[e]+s.ti[e]),g=s.s[e]+(u[e]-s.s[e])*d,v=u[e]+(f[e]-u[e])*d,x=f[e]+(s.e[e]-f[e])*d,E=g+(v-g)*d,C=v+(x-v)*d,b=E+(C-E)*d,S.push(b),null!==I&&(F+=Math.pow(S[e]-I[e],2))}),F=Math.sqrt(F),A+=F,w.points.push({partialLength:A,point:S}),I=S,s.bezierData=w;w.segmentLength=A}var M=0,k=0;for(r=0;e>r;r+=1){h=M;for(var T=!1;i-1>h;){if(s=t[h],o=t[h+1],r<s.t&&0==h){for(m=s.s.length,l=[],p=0;m>p;p+=1)l.push(s.s[p]);n.push(l),T=!0,M!=h&&(M=h,k=0);break}if(r>=s.t&&r<o.t){if(l=[],s.to){d=bez.getEasingCurve(s.o.x,s.o.y,s.i.x,s.i.y)("",r-s.t,0,1,o.t-s.t);var y,D,_,w=s.bezierData,P=w.segmentLength*d;for(p=k;p<w.points.length;){if(0==r||0==P||0==d){l=w.points[p].point,k=p;break}if(p==w.points.length-1)l=w.points[p].point;else if(P>w.points[p].partialLength&&P<w.points[p+1].partialLength){for(D=w.points[p].point.length,_=(P-w.points[p].partialLength)/(w.points[p+1].partialLength-w.points[p].partialLength),y=0;D>y;y+=1)l.push(w.points[p].point[y]+(w.points[p+1].point[y]-w.points[p].point[y])*_);k=p;break}p+=1}}else{var V,N,z,L;s.s.forEach(function(t,e){if(1!==s.h&&(s.o.x instanceof Array?(V=s.o.x[e],N=s.o.y[e],z=s.i.x[e],L=s.i.y[e]):(V=s.o.x,N=s.o.y,z=s.i.x,L=s.i.y),d=bez.getEasingCurve(V,N,z,L)("",r-s.t,0,1,o.t-s.t)),t.i){var a={i:[],o:[],v:[]};t.i.forEach(function(r,i){var n=[],o=[],h=[];r.forEach(function(a,r){1===s.h?(n.push(a),o.push(t.o[i][r]),h.push(t.v[i][r])):(n.push(a+(s.e[e].i[i][r]-a)*d),o.push(t.o[i][r]+(s.e[e].o[i][r]-t.o[i][r])*d),h.push(t.v[i][r]+(s.e[e].v[i][r]-t.v[i][r])*d))}),a.i.push(n),a.o.push(o),a.v.push(h)}),l.push(a)}else l.push(1===s.h?t:t+(s.e[e]-t)*d)})}n.push(l),T=!0,M!=h&&(M=h,k=0);break}h+=1}0==T&&(s=t[t.length-2],l=[],s.e.forEach(function(t){l.push(t)}),n.push(l))}for(h=n.length;e>h;)n.push(l),h+=1;return n}function o(t,e,a,r){var i,n,s,o,h,p;if(!t.length)return"p"==r.type?(E.px=t,E.py=t):"s"==r.type?(E.sx=t,E.sy=t):"r"==r.type&&(E.r=t),r.toArray?[t]:t;if(null==t[0].t)return"p"==r.type?(E.px=t[0],E.py=t[1]):"s"==r.type?(E.sx=t[0],E.sy=t[1]):"r"==r.type&&(E.r=t[0]),t;h=0,p=t.length-1;for(var m=1,l=!0;!(!l||(i=t[h],n=t[h+1],h==p-1&&e>=n.t-a)||n.t-a>e&&1==m);){if(n.t-a<e&&-1==m){h+=1,i=t[h],n=t[h+1];break}p-1>h&&1==m||h>0&&-1==m?h+=m:l=!1}i.to&&!i.bezierData&&bez.buildBezierData(i);var d,c,u,f,y=0;if("default"==r.type&&(s=[]),i.to){if(o=i.bezierData,e>=n.t-a)return"p"==r.type?(E.px=o.points[o.points.length-1].point[0],E.py=o.points[o.points.length-1].point[1]):"s"==r.type?(E.sx=o.points[o.points.length-1].point[0],E.sy=o.points[o.points.length-1].point[1]):"r"==r.type&&(E.r=o.points[o.points.length-1].point[0]),o.points[o.points.length-1].point;if(e<i.t-a)return"p"==r.type?(E.px=o.points[0].point[0],E.py=o.points[0].point[1]):"s"==r.type?(E.sx=o.points[0].point[0],E.sy=o.points[0].point[1]):"r"==r.type&&(E.r=o.points[0].point[0]),o.points[0].point;var g;i.__fnct?g=i.__fnct:(g=bez.getEasingCurve(i.o.x,i.o.y,i.i.x,i.i.y,i.n),i.__fnct=g),u=g("",e-(i.t-a),0,1,n.t-a-(i.t-a));var v,x=o.segmentLength*u,C=0;for(m=1,l=!0,f=o.points.length;l;){if(C+=o.points[y].partialLength*m,0==x||0==u){"p"==r.type?(E.px=o.points[y].point[0],E.py=o.points[y].point[1]):"s"==r.type?(E.sx=o.points[y].point[0],E.sy=o.points[y].point[1]):"r"==r.type?E.r=o.points[y].point[0]:s=o.points[y].point;break}if(y==o.points.length-1){"p"==r.type?(E.px=o.points[y].point[0],E.py=o.points[y].point[1]):"s"==r.type?(E.sx=o.points[y].point[0],E.sy=o.points[y].point[1]):"r"==r.type?E.r=o.points[y].point[0]:s=o.points[y].point;break}if(x>C&&x<C+o.points[y+1].partialLength){if(v=(x-C)/o.points[y+1].partialLength,"p"==r.type)E.px=o.points[y].point[0]+(o.points[y+1].point[0]-o.points[y].point[0])*v,E.py=o.points[y].point[1]+(o.points[y+1].point[1]-o.points[y].point[1])*v;else if("s"==r.type)E.sx=o.points[y].point[0]+(o.points[y+1].point[0]-o.points[y].point[0])*v,E.sy=o.points[y].point[1]+(o.points[y+1].point[1]-o.points[y].point[1])*v;else if("r"==r.type)E.r=o.points[y].point[0]+(o.points[y+1].point[0]-o.points[y].point[0])*v;else for(c=o.points[y].point.length,d=0;c>d;d+=1)s.push(o.points[y].point[d]+(o.points[y+1].point[d]-o.points[y].point[d])*v);break}f-1>y&&1==m||y>0&&-1==m?y+=m:l=!1}}else{var b,F,S,A,I=!1;for(p=i.s.length,h=0;p>h;h+=1){if(1!==i.h){i.o.x instanceof Array?(I=!0,b=i.o.x[h]?i.o.x[h]:i.o.x[0],F=i.o.y[h]?i.o.y[h]:i.o.y[0],S=i.i.x[h]?i.i.x[h]:i.i.x[0],A=i.i.y[h]?i.i.y[h]:i.i.y[0],i.__fnct||(i.__fnct=[])):(I=!1,b=i.o.x,F=i.o.y,S=i.i.x,A=i.i.y);var g;I?i.__fnct[h]?g=i.__fnct[h]:(g=bez.getEasingCurve(b,F,S,A),i.__fnct[h]=g):i.__fnct?g=i.__fnct:(g=bez.getEasingCurve(b,F,S,A),i.__fnct=g),u=g("",e-(i.t-a),0,1,n.t-a-(i.t-a)),e>=n.t-a?u=1:e<i.t-a&&(u=0)}1===i.h?"p"==r.type?0==h?E.px=i.s[h]:1==h&&(E.py=i.s[h]):"s"==r.type?0==h?E.sx=i.s[h]:1==h&&(E.sy=i.s[h]):"r"==r.type?E.r=i.s[h]:s.push(i.s[h]):"p"==r.type?0==h?E.px=i.s[h]+(i.e[h]-i.s[h])*u:1==h&&(E.py=i.s[h]+(i.e[h]-i.s[h])*u):"s"==r.type?0==h?E.sx=i.s[h]+(i.e[h]-i.s[h])*u:1==h&&(E.sy=i.s[h]+(i.e[h]-i.s[h])*u):"r"==r.type?E.r=i.s[h]+(i.e[h]-i.s[h])*u:s.push(i.s[h]+(i.e[h]-i.s[h])*u)}}return s}function h(t,e,a,r,i){var n={};n.closed=i?t.cl:t.closed;var s=i?t.pt:t.ks;if(s.v)return"svg"==r?(s.__pathString||(s.__pathString=p(s,n.closed)),n.pathString=s.__pathString):n.pathNodes=s,n;var o,h,m,l,d,c,u,t={i:[],o:[],v:[]},f=[];if(e<s[0].t-a){for(h=s[0].s[0].i.length,o=0;h>o;o+=1){for(d=[],c=[],u=[],l=s[0].s[0].i[o].length,m=0;l>m;m+=1)d.push(s[0].s[0].i[o][m]),c.push(s[0].s[0].o[o][m]),u.push(s[0].s[0].v[o][m]);t.i.push(d),t.o.push(c),t.v.push(u)}return f.push(t),"svg"==r?(s.__minValue||(s.__minValue=p(f,n.closed)),n.pathString=s.__minValue):(s.__minValue||(s.__minValue=f),n.pathNodes=s.__minValue),n}if(e>s[s.length-1].t-a){var y=s.length-2;for(h=s[y].s[0].i.length,o=0;h>o;o+=1){for(d=[],c=[],u=[],l=s[y].s[0].i[o].length,m=0;l>m;m+=1)d.push(s[y].e[0].i[o][m]),c.push(s[y].e[0].o[o][m]),u.push(s[y].e[0].v[o][m]);t.i.push(d),t.o.push(c),t.v.push(u)}return f.push(t),"svg"==r?(s.__maxValue||(s.__maxValue=p(f,n.closed)),n.pathString=s.__maxValue):(s.__maxValue||(s.__maxValue=f),n.pathNodes=s.__maxValue),n}for(var g,v,x=0,E=s.length-1,C=1,b=!0;b&&(g=s[x],v=s[x+1],!(v.t-a>e&&1==C));)E-1>x&&1==C||x>0&&-1==C?x+=C:b=!1;var F,S,A,I,w;if(1!==g.h){F=g.o.x,S=g.o.y,A=g.i.x,I=g.i.y;var M;g.__fnct?M=g.__fnct:(M=bez.getEasingCurve(F,S,A,I),g.__fnct=M),w=M("",e-(g.t-a),0,1,v.t-a-(g.t-a)),e>=v.t-a?w=1:e<g.t-a&&(w=0)}if(1===g.h&&g.__hValue)f.push(g.__hValue);else for(t={i:[],o:[],v:[]},h=g.s[0].i.length,o=0;h>o;o+=1){for(d=[],c=[],u=[],l=g.s[0].i[o].length,m=0;l>m;m+=1)1===g.h?(d.push(g.s[0].i[o][m]),c.push(g.s[0].o[o][m]),u.push(g.s[0].v[o][m])):(d.push(g.s[0].i[o][m]+(g.e[0].i[o][m]-g.s[0].i[o][m])*w),c.push(g.s[0].o[o][m]+(g.e[0].o[o][m]-g.s[0].o[o][m])*w),u.push(g.s[0].v[o][m]+(g.e[0].v[o][m]-g.s[0].v[o][m])*w));t.i.push(d),t.o.push(c),t.v.push(u),1===g.h&&(g.__hValue=t),f.push(t)}return"svg"==r?n.pathString=p(f[0],n.closed):n.pathNodes=f[0],n}function p(t,e){var a,r,i,n,s,o,h="";if(!(t instanceof Array)){for(a=t.v,r=t.o,i=t.i,o=a.length,h+="M"+a[0].join(","),s=1;o>s;s++)h+=" C"+r[s-1].join(",")+" "+i[s].join(",")+" "+a[s].join(",");return e!==!1&&(h+=" C"+r[s-1].join(",")+" "+i[0].join(",")+" "+a[0].join(",")),h}var p,m=t.length;for(h="",p=0;m>p;p+=1){for(n=t[p],a=n.v,r=n.o,i=n.i,o=a.length,h+="M"+a[0].join(","),s=1;o>s;s++)h+=" C"+r[s-1].join(",")+" "+i[s].join(",")+" "+a[s].join(",");e!==!1&&(h+=" C"+r[s-1].join(",")+" "+i[0].join(",")+" "+a[0].join(","))}return h}function m(t,e,a){var r,i,n,s,p,d,c,u,f,g,v,C,b,F,S,A,I,w,M,k={},T=t.length;for(w=0;T>w;w+=1)if(M=t[w],b=e-M.startTime,!M.an[b]){if(r={},x.arrayFlag=!1,x.type="default",r.a=o(M.ks.a,b,M.startTime,x),r.o=o(M.ks.o,b,M.startTime,x),x.arrayFlag=!1,x.type="p",o(M.ks.p,b,M.startTime,x),x.arrayFlag=!0,x.type="r",o(M.ks.r,b,M.startTime,x),x.arrayFlag=!0,x.type="s",o(M.ks.s,b,M.startTime,x),A={},A.an={tr:r},x.arrayFlag=!1,x.type="default","canvas"==a?A.an.matrixArray=y.getMatrixArrayFromParams(E.r,E.sx,E.sy,E.px,E.py):A.an.matrixValue=y.getMatrix2FromParams(E.r,E.sx,E.sy,E.px,E.py)+"translate("+-r.a[0]+" "+-r.a[1]+")",M.renderedData[b]=A,M.hasMask)for(i=M.masksProperties,S=i.length,F=0;S>F;F+=1)i[F].paths||(i[F].paths=[],i[F].opacity=[]),i[F].paths[b]=h(i[F],b,M.startTime,a,!0),i[F].opacity[b]=o(i[F].o,b,M.startTime,x),i[F].opacity[b]=i[F].opacity[b]instanceof Array?i[F].opacity[b][0]/100:i[F].opacity[b]/100;if(!(e<M.inPoint||e>M.outPoint))if("PreCompLayer"==M.type)n=M.tm?M.tm[b]<0?0:M.tm[b]:b,m(M.layers,n,a);else if("ShapeLayer"==M.type)for(S=M.shapes.length,F=0;S>F;F+=1){if(I={},s=M.shapes[F],s.renderedData[b]=I,s._created||(s.an.tr=[],s.an.renderedFrame={},s.ks?s.an.path=[]:s.el?s.an.ell=[]:s.rc&&(s.an.rect=[]),s.fl&&(s.an.fill=[]),s.st&&(s.an.stroke=[])),s.trim&&!s._created&&(s.trim.an=[]),s.fl&&(d=o(s.fl.c,b,M.startTime,x),p=o(s.fl.o,b,M.startTime,x),I.fill={opacity:p instanceof Array?p[0]:p},"canvas"==a?(l(d),I.fill.color=d):I.fill.color=rgbToHex(Math.round(d[0]),Math.round(d[1]),Math.round(d[2]))),s.ks?I.path=h(s,b,M.startTime,a):s.el?(g=o(s.el.p,b,M.startTime,x),v=o(s.el.s,b,M.startTime,x),I.ell={p:g,size:v}):s.rc&&(g=o(s.rc.p,b,M.startTime,x),v=o(s.rc.s,b,M.startTime,x),C=o(s.rc.r,b,M.startTime,x),I.rect={position:g,size:v,roundness:C}),s.st&&(c=o(s.st.c,b,M.startTime,x),u=o(s.st.o,b,M.startTime,x),f=o(s.st.w,b,M.startTime,x),I.stroke={opacity:u instanceof Array?u[0]:u,width:f instanceof Array?f[0]:f},"canvas"==a?(l(c),I.stroke.color=c):I.stroke.color=rgbToHex(Math.round(c[0]),Math.round(c[1]),Math.round(c[2]))),k={},k.a=o(s.tr.a,b,M.startTime,x),k.o=o(s.tr.o,b,M.startTime,x),x.arrayFlag=!0,x.type="s",o(s.tr.s,b,M.startTime,x),x.arrayFlag=!0,x.type="r",o(s.tr.r,b,M.startTime,x),x.arrayFlag=!1,x.type="p",o(s.tr.p,b,M.startTime,x),x.arrayFlag=!1,x.type="default","canvas"==a?k.mtArr=y.getMatrixArrayFromParams(E.r,E.sx,E.sy,E.px,E.py):k.mt=y.getMatrix2FromParams(E.r,E.sx,E.sy,E.px,E.py),s.an.tr[b]=k,I.tr=k,s.trim){var D=o(s.trim.s,b,M.startTime,x),_=o(s.trim.e,b,M.startTime,x),P=o(s.trim.o,b,M.startTime,x);I.trim={s:D,e:_,o:P}}s._created||(s._created=!0)}}}function l(t){var e,a=t.length;for(e=0;a>e;e+=1)t[e]=Math.round(t[e])}function d(t,e){for(var a=1;a>0;){if(e+=1,e>=t.data.animation.totalFrames){t.renderFinished=!0;break}t.renderedFrames[e]||(c(t.data._id,e),a-=1)}}function c(t,e){return 2==g[t].renderedFrames[e]?void(g[t].renderFinished||d(g[t],e)):(g[t].renderedFrames[e]=2,void m(g[t].data.animation.layers,e,g[t].data._animType))}function u(t){var e,a=g[t].data,r=a.animation.totalFrames,i=[];for(e=0;r>e;e+=1)i.push({num:e,data:c(t,e)})}var f=0,y=new MatrixManager,g={},v=Math.PI/180,x={arrayFlag:!1},E={r:0,sx:1,sy:1,px:1,py:1},C={};return C.completeData=i,C.renderFrame=c,C.renderAllFrames=u,C}function SVGRenderer(t){this.animationItem=t,this.layers=null,this.lastFrame=-1}function CanvasRenderer(t,e){this.animationItem=t,this.renderConfig=e?e:{clearCanvas:!0,context:null,scaleMode:"fit"},this.lastFrame=-1}function MaskElement(){this.data=null,this.element=null,this.paths=[]}function ICompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function IImageElement(t,e){this.animationItem=e,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e)}function IShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function ShapeItemElement(t){this.data=t,this.shapeG=document.createElementNS(svgNS,"g"),this.pathLength=0,this.cachedData=[],this.renderedFrame={path:"",stroke:{},fill:{},tr:{a:[]},trim:{},ellipse:{},rect:{}},"pathShape"===this.data.type?this.shape=document.createElementNS(svgNS,"path"):"rectShape"===this.data.type?this.shape=document.createElementNS(svgNS,"rect"):"ellipseShape"===this.data.type?(this.shape=document.createElementNS(svgNS,"ellipse"),this.data.trim&&this.adjustTrim()):this.shape=document.createElementNS(svgNS,"path"),this.data.trim?this.shape.setAttribute("stroke-linecap","round"):(this.shape.setAttribute("stroke-linejoin","round"),this.shape.setAttribute("stroke-linecap","round")),this.data.renderedData||(this.data.renderedData={}),this.shape.setAttribute("name",this.data.name),styleUnselectableDiv(this.shapeG),styleUnselectableDiv(this.shape),this.shapeG.appendChild(this.shape)}function ISolidElement(t,e){this.parent.constructor.call(this,t,e)}function ITextElement(t,e){this.parent.constructor.call(this,t,e)}function CVBaseElement(t,e){this.renderer=e,this.data=t,this.currentAnimData=null,this.renderFrame=!1,this.init()}function CVCompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function CVImageElement(t,e){this.renderer=e,this.animationItem=e.animationItem,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e),this.animationItem.pendingElements+=1}function CVShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function CVShapeItemElement(t,e){this.data=t,this.renderer=e,this.frameNum=-1,this.renderedPaths={},this.trims=[]}function CVSolidElement(t,e){this.parent.constructor.call(this,t,e)}function CVTextElement(t,e){this.parent.constructor.call(this,t,e)}function CVMaskElement(){}var svgNS="http://www.w3.org/2000/svg";Matrix.prototype={concat:function(t){return this.clone()._t(t.a,t.b,t.c,t.d,t.e,t.f)},flipX:function(){return this._t(-1,0,0,1,0,0)},flipY:function(){return this._t(1,0,0,-1,0,0)},reflectVector:function(t,e){var a=this.applyToPoint(0,1),r=2*(a.x*t+a.y*e);return t-=r*a.x,e-=r*a.y,{x:t,y:e}},reset:function(){return this.setTransform(1,0,0,1,0,0)},rotate:function(t){return 0==t?this:(this.cos=Math.cos(t),this.sin=Math.sin(t),this._t(this.cos,this.sin,-this.sin,this.cos,0,0))},rotateFromVector:function(t,e){return this.rotate(Math.atan2(e,t))},rotateDeg:function(t){return this.rotate(t*Math.PI/180)},scaleU:function(t){return this._t(t,0,0,t,0,0)},scale:function(t,e){return 1==t&&1==e?this:this._t(t,0,0,e,0,0)},scaleX:function(t){return this._t(t,0,0,1,0,0)},scaleY:function(t){return this._t(1,0,0,t,0,0)},shear:function(t,e){return this._t(1,e,t,1,0,0)},shearX:function(t){return this._t(1,0,t,1,0,0)},shearY:function(t){return this._t(1,t,0,1,0,0)},skew:function(t,e){return this.shear(Math.tan(t),Math.tan(e))},skewX:function(t){return this.shearX(Math.tan(t))},skewY:function(t){return this.shearY(Math.tan(t))},setTransform:function(t,e,a,r,i,n){return this.props[0]=t,this.props[1]=e,this.props[2]=a,this.props[3]=r,this.props[4]=i,this.props[5]=n,this._x()},translate:function(t,e){return this._t(1,0,0,1,t,e)},translateX:function(t){return this._t(1,0,0,1,t,0)},translateY:function(t){return this._t(1,0,0,1,0,t)},transform:function(t,e,a,r,i,n){return this.a1=this.props[0],this.b1=this.props[1],this.c1=this.props[2],this.d1=this.props[3],this.e1=this.props[4],this.f1=this.props[5],this.props[0]=this.a1*t+this.c1*e,this.props[1]=this.b1*t+this.d1*e,this.props[2]=this.a1*a+this.c1*r,this.props[3]=this.b1*a+this.d1*r,this.props[4]=this.a1*i+this.c1*n+this.e1,this.props[5]=this.b1*i+this.d1*n+this.f1,this._x()},divide:function(t){if(!t.isInvertible())throw"Input matrix is not invertible";var e=t.inverse();return this._t(e.a,e.b,e.c,e.d,e.e,e.f)},divideScalar:function(t){var e=this;return e.a/=t,e.b/=t,e.c/=t,e.d/=t,e.e/=t,e.f/=t,e._x()},inverse:function(){if(this.isIdentity())return new Matrix;if(this.isInvertible()){var t=this,e=t.a,a=t.b,r=t.c,i=t.d,n=t.e,s=t.f,o=new Matrix,h=e*i-a*r;return o.a=i/h,o.b=-a/h,o.c=-r/h,o.d=e/h,o.e=(r*s-i*n)/h,o.f=-(e*s-a*n)/h,o}throw"Matrix is not invertible."},interpolate:function(t,e,a){var r=this,i=a?new Matrix(a):new Matrix;return i.a=r.a+(t.a-r.a)*e,i.b=r.b+(t.b-r.b)*e,i.c=r.c+(t.c-r.c)*e,i.d=r.d+(t.d-r.d)*e,i.e=r.e+(t.e-r.e)*e,i.f=r.f+(t.f-r.f)*e,i._x()},interpolateAnim:function(t,e,a){var r=this,i=a?new Matrix(a):new Matrix,n=r.decompose(),s=t.decompose(),o=n.rotation+(s.rotation-n.rotation)*e,h=n.translate.x+(s.translate.x-n.translate.x)*e,p=n.translate.y+(s.translate.y-n.translate.y)*e,m=n.scale.x+(s.scale.x-n.scale.x)*e,l=n.scale.y+(s.scale.y-n.scale.y)*e;return i.translate(h,p),i.rotate(o),i.scale(m,l),i._x()},decompose:function(t){var e=this,a=e.a,r=e.b,i=e.c,n=e.d,s=Math.acos,o=Math.atan,h=Math.sqrt,p=Math.PI,m={x:e.e,y:e.f},l=0,d={x:1,y:1},c={x:0,y:0},u=a*n-r*i;if(t)a?(c={x:o(i/a),y:o(r/a)},d={x:a,y:u/a}):r?(l=.5*p,d={x:r,y:u/r},c.x=o(n/r)):(d={x:i,y:n},c.x=.25*p);else if(a||r){var f=h(a*a+r*r);l=r>0?s(a/f):-s(a/f),d={x:f,y:u/f},c.x=o((a*i+r*n)/(f*f))}else if(i||n){var y=h(i*i+n*n);l=.5*p-(n>0?s(-i/y):-s(i/y)),d={x:u/y,y:y},c.y=o((a*i+r*n)/(y*y))}else d={x:0,y:0};return{scale:d,translate:m,rotation:l,skew:c}},determinant:function(){return this.a*this.d-this.b*this.c},applyToPoint:function(t,e){var a=this;return{x:t*a.a+e*a.c+a.e,y:t*a.b+e*a.d+a.f}},applyToArray:function(t){var e,a,r=0,i=[];if("number"==typeof t[0])for(a=t.length;a>r;)e=this.applyToPoint(t[r++],t[r++]),i.push(e.x,e.y);else for(;e=t[r];r++)i.push(this.applyToPoint(e.x,e.y));return i},applyToTypedArray:function(t,e){for(var a,r=0,i=t.length,n=e?new Float64Array(i):new Float32Array(i);i>r;)a=this.applyToPoint(t[r],t[r+1]),n[r++]=a.x,n[r++]=a.y;return n},applyToContext:function(t){var e=this;return t.setTransform(e.a,e.b,e.c,e.d,e.e,e.f),e},isIdentity:function(){var t=this;return t._q(t.a,1)&&t._q(t.b,0)&&t._q(t.c,0)&&t._q(t.d,1)&&t._q(t.e,0)&&t._q(t.f,0)},isInvertible:function(){return!this._q(this.determinant(),0)},isValid:function(){return!this._q(this.a*this.d,0)},clone:function(t){var e=this,a=new Matrix;return a.a=e.a,a.b=e.b,a.c=e.c,a.d=e.d,a.e=e.e,a.f=e.f,t||(a.context=e.context),a},isEqual:function(t){var e=this,a=e._q;return a(e.a,t.a)&&a(e.b,t.b)&&a(e.c,t.c)&&a(e.d,t.d)&&a(e.e,t.e)&&a(e.f,t.f)},toArray:function(){return[this.props[0],this.props[1],this.props[2],this.props[3],this.props[4],this.props[5]]},toCSS:function(){return this.cssParts[1]=this.props.join(","),this.cssParts.join("")},toJSON:function(){var t=this;return'{"a":'+t.a+',"b":'+t.b+',"c":'+t.c+',"d":'+t.d+',"e":'+t.e+',"f":'+t.f+"}"},toString:function(){return""+this.toArray()},_q:function(t,e){return Math.abs(t-e)<1e-14},_x:function(){return this.context&&this.context.setTransform(this.a,this.b,this.c,this.d,this.e,this.f),this}};var MatrixManager=matrixManagerFunction;!function(){for(var t=0,e=["ms","moz","webkit","o"],a=0;a<e.length&&!window.requestAnimationFrame;++a)window.requestAnimationFrame=window[e[a]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[a]+"CancelAnimationFrame"]||window[e[a]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e){var a=(new Date).getTime(),r=Math.max(0,16-(a-t)),i=window.setTimeout(function(){e(a+r)},r);return t=a+r,i}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var subframeEnabled=!1,supportsPath2D="function"==typeof Path2D,cachedColors={},colorMap=[],body,fillColorToString=function(){var t=[];return function(e,a){return t[e[0]]||(t[e[0]]=[]),t[e[0]][e[1]]||(t[e[0]][e[1]]=[]),t[e[0]][e[1]][e[2]]||(void 0!=a&&(e[3]=a),t[e[0]][e[1]][e[2]]="rgba("+e.join(",")+")"),t[e[0]][e[1]][e[2]]}}();createColorMap(),function(t){function e(){this.commandArrays=[]}void 0==CanvasRenderingContext2D.prototype.ellipse&&(CanvasRenderingContext2D.prototype.ellipse=function(t,e,a,r,i,n,s,o){this.save(),this.translate(t,e),this.rotate(i),this.scale(a,r),this.arc(0,0,1,n,s,o),this.restore()}),supportsPath2D||(e.prototype.moveTo=function(t,e){this.commandArrays.push({type:"move",coord:[t,e]})},e.prototype.lineTo=function(t,e){this.commandArrays.push({type:"line",coord:[t,e]})},e.prototype.bezierCurveTo=function(t,e,a,r,i,n){this.commandArrays.push({type:"bezierCurve",coord:[t,e,a,r,i,n]})},e.prototype.drawToContext=function(t){var e,a,r=this.commandArrays.length;for(t.beginPath(),a=0;r>a;a+=1)switch(e=this.commandArrays[a],e.type){case"move":t.moveTo(e.coord[0],e.coord[1]);break;case"line":t.lineTo(e.coord[0],e.coord[1]);break;case"bezierCurve":t.bezierCurveTo(e.coord[0],e.coord[1],e.coord[2],e.coord[3],e.coord[4],e.coord[5])}},t.Path2D=e)}(window);var bez=bezFunction(),dataManager=dataFunctionManager();SVGRenderer.prototype.buildItems=function(t){var e,a=0,r=t.length;for(e=0;r>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):console.log("NO TYPE: ",t[e])},SVGRenderer.prototype.createShape=function(t){t.element=new IShapeElement(t,this.animationItem)},SVGRenderer.prototype.createText=function(t){t.element=new ITextElement(t,this.animationItem)},SVGRenderer.prototype.createImage=function(t){t.element=new IImageElement(t,this.animationItem)},SVGRenderer.prototype.createComp=function(t){t.element=new ICompElement(t,this.animationItem),this.buildItems(t.layers,t.element.getType())},SVGRenderer.prototype.createSolid=function(t){t.element=new ISolidElement(t,this.animationItem)},SVGRenderer.prototype.configAnimation=function(t){this.animationItem.container=document.createElementNS(svgNS,"svg"),this.animationItem.container.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.animationItem.container.setAttribute("width",t.animation.compWidth),this.animationItem.container.setAttribute("height",t.animation.compHeight),this.animationItem.container.setAttribute("viewBox","0 0 "+t.animation.compWidth+" "+t.animation.compHeight),this.animationItem.container.setAttribute("preserveAspectRatio","xMidYMid meet"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container);var e=document.createElementNS(svgNS,"defs");this.animationItem.container.appendChild(e);var a=document.createElementNS(svgNS,"clipPath"),r=document.createElementNS(svgNS,"rect");r.setAttribute("width",t.animation.compWidth),r.setAttribute("height",t.animation.compHeight),r.setAttribute("x",0),r.setAttribute("y",0),a.setAttribute("id","animationMask"),a.appendChild(r);var i=document.createElementNS(svgNS,"g");i.setAttribute("clip-path","url(#animationMask)"),this.animationItem.container.appendChild(i),e.appendChild(a),this.animationItem.container=i,this.layers=t.animation.layers},SVGRenderer.prototype.buildStage=function(t,e){var a,r,i=e.length;for(a=i-1;a>=0;a--){if(r=e[a],r.parent){this.buildItemParenting(r,e,r.parent);var n=r.element.getDomElement();n.setAttribute("data-layer-name",r.layerName),t.appendChild(n),r.element.setMainElement(n)}else r.element.getDomElement().setAttribute("data-layer-name",r.layerName),t.appendChild(r.element.getDomElement()),r.element.setMainElement(r.element.getDomElement());"PreCompLayer"==r.type&&this.buildStage(r.element.getComposingElement(),r.layers,r.element.getType())}},SVGRenderer.prototype.buildItemParenting=function(t,e,a){t.parents||(t.parents=[]);for(var r=0,i=e.length;i>r;){if(e[r].layerName==a){t.parents.push({elem:e[r]}),e[r].parent&&this.buildItemParenting(t,e,e[r].parent);break}r+=1}},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.renderFrame=function(t){if(this.lastFrame!=t){this.lastFrame=t;var e,a=this.layers.length;for(e=0;a>e;e++)this.layers[e].element.prepareFrame(t-this.layers[e].startTime);for(e=0;a>e;e++)this.layers[e].element.renderFrame(t-this.layers[e].startTime)}},CanvasRenderer.prototype.buildItems=function(t){var e,a=0,r=t.length;for(e=0;r>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):(this.createBase(t[e]),console.log("NO TYPE: ",t[e]))},CanvasRenderer.prototype.createBase=function(t){t.element=new CVBaseElement(t,this)},CanvasRenderer.prototype.createShape=function(t){t.element=new CVShapeElement(t,this)},CanvasRenderer.prototype.createText=function(t){t.element=new CVTextElement(t,this)},CanvasRenderer.prototype.createImage=function(t){t.element=new CVImageElement(t,this)},CanvasRenderer.prototype.createComp=function(t){t.element=new CVCompElement(t,this),this.buildItems(t.layers)},CanvasRenderer.prototype.createSolid=function(t){t.element=new CVSolidElement(t,this)},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.wrapper?(this.animationItem.container=document.createElement("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d")):this.canvasContext=this.renderConfig.context,this.layers=t.animation.layers,this.transformCanvas={},this.transformCanvas.w=t.animation.compWidth,this.transformCanvas.h=t.animation.compHeight,this.updateContainerSize()
 },CanvasRenderer.prototype.updateContainerSize=function(){if(this.animationItem.wrapper&&this.animationItem.container){var t=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight;this.animationItem.container.setAttribute("width",t),this.animationItem.container.setAttribute("height",e)}else var t=this.canvasContext.canvas.width,e=this.canvasContext.canvas.height;if("fit"==this.renderConfig.scaleMode){var a=t/e,r=this.transformCanvas.w/this.transformCanvas.h;r>a?(this.transformCanvas.sx=t/this.transformCanvas.w,this.transformCanvas.sy=t/this.transformCanvas.w,this.transformCanvas.tx=0,this.transformCanvas.ty=(e-this.transformCanvas.h*(t/this.transformCanvas.w))/2):(this.transformCanvas.sx=e/this.transformCanvas.h,this.transformCanvas.sy=e/this.transformCanvas.h,this.transformCanvas.tx=(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2,this.transformCanvas.ty=0)}else this.transformCanvas.sx=1,this.transformCanvas.sy=1,this.transformCanvas.tx=0,this.transformCanvas.ty=0},CanvasRenderer.prototype.buildStage=function(t,e){var a,r,i=e.length;for(a=i-1;a>=0;a--)r=e[a],r.parent&&(r.parentHierarchy=[],this.buildItemHierarchy(r,e,r.parent)),"PreCompLayer"==r.type&&this.buildStage(null,r.layers)},CanvasRenderer.prototype.buildItemHierarchy=function(t,e,a){for(var r=0,i=e.length;i>r;){if(e[r].layerName==a){t.parentHierarchy.push(e[r]),void 0==e[r].parent||this.buildItemHierarchy(t,e,e[r].parent);break}r+=1}},CanvasRenderer.prototype.prepareFrame=function(t){var e,a=this.layers.length;for(e=0;a>e;e++)this.layers[e].element.prepareFrame(t-this.layers[e].startTime)},CanvasRenderer.prototype.draw=function(){var t,e=this.layers.length;for(t=e-1;t>=0;t-=1)this.layers[t].element.draw()},CanvasRenderer.prototype.renderFrame=function(t){this.lastFrame!=t&&(this.lastFrame=t,this.renderConfig.clearCanvas===!0?this.canvasContext.canvas.width=this.canvasContext.canvas.width:this.canvasContext.save(),this.canvasContext.transform(this.transformCanvas.sx,0,0,this.transformCanvas.sy,this.transformCanvas.tx,this.transformCanvas.ty),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.clip(),this.prepareFrame(t),this.draw(),this.renderConfig.clearCanvas!==!0&&this.canvasContext.restore())},MaskElement.prototype.init=function(){this.registeredEffects=[],this.masksProperties=this.data.masksProperties,this.totalMasks=this.masksProperties.length;var t=this.element.maskingGroup,e=this.element.maskedElement,a=document.createElementNS(svgNS,"defs");t.appendChild(a);var r,i=this.masksProperties.length;this.layerSize=this.element.getLayerSize(),this.maskElement=document.createElementNS(svgNS,"clipPath");var n,s=this.data.masksProperties;for(r=0;i>r;r++)s[r].inv&&!this.solidPath&&(this.solidPath=this.createLayerSolidPath()),n=document.createElementNS(svgNS,"path"),s[r].cl?n.setAttribute("fill","#ffffff"):(n.setAttribute("fill","none"),n.setAttribute("stroke","#ffffff"),n.setAttribute("stroke-width","1"),n.setAttribute("stroke-miterlimit","10")),n.setAttribute("clip-rule","nonezero"),this.maskElement.appendChild(n),s[r].elem=n,s[r].lastPath="";var o=randomString(10);this.maskElement.setAttribute("id",o),e.setAttribute("clip-path","url(#"+o+")"),a.appendChild(this.maskElement)},MaskElement.prototype.renderFrame=function(t){var e,a=this.data.masksProperties.length;for(e=0;a>e;e++)this.drawPath(this.data.masksProperties[e],this.data.masksProperties[e].paths[t].pathString)},MaskElement.prototype.processMaskFromEffects=function(t,e){var a,r=this.registeredEffects.length;for(a=0;r>a;a++)this.registeredEffects[a].renderMask(t,e)},MaskElement.prototype.registerEffect=function(t){this.registeredEffects.push(t)},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var t="M0,0 ";return t+="h"+this.layerSize.w,t+="v"+this.layerSize.h,t+="h"+-this.layerSize.w,t+="v"+-this.layerSize.h},MaskElement.prototype.drawPath=function(t,e){t.lastPath!==e&&(t.inv?t.elem.setAttribute("d",this.solidPath+e):t.elem.setAttribute("d",e),t.lastPath=e)};var BaseElement=function(t,e){this.animationItem=e,this.data=t,this.transformChanged=!1,this.forceRender=!1,this.init()};BaseElement.prototype.init=function(){this.createElements(),this.data.hasMask&&this.addMasks(this.data),this.data.eff&&this.createEffectsManager(this.data)},BaseElement.prototype.createElements=function(){this.layerElement=document.createElementNS(svgNS,"g"),this.layerElement.setAttribute("id",this.data.layerName),this.maskingGroup=this.layerElement,this.maskedElement=this.layerElement},BaseElement.prototype.prepareFrame=function(t){this.currentAnimData=this.data.renderedData[t].an,this.data.renderedFrame.tr!==this.currentAnimData.matrixValue?(this.transformChanged=!0,this.data.renderedFrame.tr=this.currentAnimData.matrixValue):this.transformChanged=!1},BaseElement.prototype.renderFrame=function(t){if(this.data.inPoint-this.data.startTime<=t&&this.data.outPoint-this.data.startTime>t?this.isVisible!==!0&&(this.isVisible=!0,this.forceRender=!0,this.mainElement.setAttribute("opacity",1)):this.isVisible!==!1&&(this.isVisible=!1,this.mainElement.setAttribute("opacity",0)),this.data.eff&&this.effectsManager.renderFrame(t,this.currentAnimData.mk),t===this.data.renderedFrame.num)return this.isVisible;this.data.hasMask&&this.maskManager.renderFrame(t),this.data.renderedFrame.o!==this.currentAnimData.tr.o&&(this.data.renderedFrame.o=this.currentAnimData.tr.o,this.isVisible&&this.layerElement.setAttribute("opacity",this.currentAnimData.tr.o));var e="";if(this.data.parents){var a,r=!1,i=0,n=this.data.parents.length;if(this.transformChanged)r=!0;else for(;n>i;){if(this.data.parents[i].elem.element.transformChanged){r=!0;break}i+=1}if(r){for(i=n-1;i>=0;i-=1)a=this.data.parents[i].elem.element.currentAnimData,e+=a.matrixValue+" ";e+=this.currentAnimData.matrixValue,this.isVisible&&this.layerElement.setAttribute("transform",e),this.fullTransform=e}}else this.transformChanged&&(e+=this.currentAnimData.matrixValue,this.isVisible&&this.layerElement.setAttribute("transform",e),this.fullTransform=e);return this.forceRender&&(this.forceRender=!1,this.layerElement.setAttribute("opacity",this.currentAnimData.tr.o),this.layerElement.setAttribute("transform",this.fullTransform)),this.isVisible},BaseElement.prototype.getDomElement=function(){return this.layerElement},BaseElement.prototype.setMainElement=function(t){this.mainElement=t},BaseElement.prototype.getMaskManager=function(){return this.maskManager},BaseElement.prototype.addMasks=function(t){var e={data:{value:t},element:{value:this}};this.maskManager=createElement(MaskElement,null,e)},BaseElement.prototype.createEffectsManager=function(t){var e={effects:{value:t.eff},element:{value:this}};this.effectsManager=createElement(EffectsManager,null,e)},BaseElement.prototype.getType=function(){return this.type},BaseElement.prototype.getLayerSize=function(){return"TextLayer"==this.data.type?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}},createElement(BaseElement,ICompElement),ICompElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this)},ICompElement.prototype.getComposingElement=function(){return this.layerElement},ICompElement.prototype.renderFrame=function(t){var e=this.parent.renderFrame.call(this,t);if(e!==!1){var a,r=this.layers.length,i=this.data.tm?this.data.tm[t]<0?0:this.data.tm[t]:t;for(a=0;r>a;a+=1)this.layers[a].element.prepareFrame(i-this.layers[a].startTime);for(a=0;r>a;a+=1)this.layers[a].element.renderFrame(i-this.layers[a].startTime)}},createElement(BaseElement,IImageElement),IImageElement.prototype.createElements=function(){var t=this,e=function(){t.image.setAttributeNS("http://www.w3.org/1999/xlink","href",t.path+t.assets[t.data.assetId].path),t.maskedElement=t.image,t.animationItem.elementLoaded()},a=new Image;a.addEventListener("load",e,!1),a.src=this.path+this.assets[this.data.assetId].path,this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this),this.image=document.createElementNS(svgNS,"image"),this.image.setAttribute("width",this.data.width+"px"),this.image.setAttribute("height",this.data.height+"px"),this.svgElem.appendChild(this.image),this.layerElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,styleUnselectableDiv(this.image)},createElement(BaseElement,IShapeElement),IShapeElement.prototype.createElements=function(){this.parent.createElements.call(this);var t,e,a=this.data.shapes.length;for(t=a-1;t>=0;t--)this.data.trim&&(this.data.shapes[t].trim=this.data.trim),e=new ShapeItemElement(this.data.shapes[t]),this.layerElement.appendChild(e.getElement()),this.shapes.push(e)},IShapeElement.prototype.renderFrame=function(t){var e=this.parent.renderFrame.call(this,t);e!==!1&&this.renderShapes(t)},IShapeElement.prototype.renderShapes=function(t){var e,a,r,i=this.data.shapes.length;for(e=i-1;e>=0;e--)a=this.data.shapes[e],r=this.shapes[i-1-e],r.renderShape(t)},ShapeItemElement.prototype.adjustTrim=function(){var t,e=this.data.trim,a=e.length;for(t=0;a>t;t+=1)e[t].o&&(e[t].o-=90)},ShapeItemElement.prototype.getElement=function(){return this.shapeG},ShapeItemElement.prototype.renderShape=function(t){this.currentData=this.data.renderedData[t],"pathShape"==this.data.type?this.pathLength=this.renderPath(t):"rectShape"==this.data.type?this.renderRect(t):"ellipseShape"==this.data.type&&(this.pathLength=this.renderEllipse(t)),this.data.trim&&this.renderTrim(t),this.renderFill(t),this.renderStroke(t),this.renderTransform(t)},ShapeItemElement.prototype.renderPath=function(){var t=this.currentData,e=t.path;return e.pathString!=this.renderedFrame.path?(this.renderedFrame.path=e.pathString,this.shape.setAttribute("d",e.pathString),this.data.trim?(null==this.cachedData.pathLengths&&(this.cachedData.pathLengths={}),null==this.cachedData.pathLengths[e.pathString]&&(this.cachedData.pathLengths[e.pathString]=this.shape.getTotalLength()),this.cachedData.pathLengths[e.pathString]):void 0):this.data.trim?this.cachedData.pathLengths[e.pathString]:void 0},ShapeItemElement.prototype.renderEllipse=function(t){var e=this.currentData.ell;if(this.renderedFrame.ellipse.rx!=e.size[0]&&(this.shape.setAttribute("rx",e.size[0]/2),this.renderedFrame.ellipse.rx=e.size[0]),this.renderedFrame.ellipse.ry!=e.size[1]&&(this.shape.setAttribute("ry",e.size[1]/2),this.renderedFrame.ellipse.ry=e.size[1]),this.renderedFrame.ellipse.cx!=e.p[0]&&(this.shape.setAttribute("cx",e.p[0]),this.renderedFrame.ellipse.ry=e.p[0]),this.renderedFrame.ellipse.cy!=e.p[1]&&(this.shape.setAttribute("cy",e.p[1]),this.renderedFrame.ellipse.ry=e.p[1]),this.data.trim){if(null==this.cachedData.pathLengths&&(this.cachedData.pathLengths={}),null==this.cachedData.pathLengths["ellipse_"+t])if(e.size[0]==e.size[1])this.cachedData.pathLengths["ellipse_"+t]=Math.PI*e.size[0];else{var a=Math.max(e.size[0],e.size[1])/2,r=Math.max(e.size[0],e.size[1])/2,i=(a-r)/(a+r),n=(a+r)*Math.PI*(1+.25*i+1/64*Math.pow(i,2)+1/256*Math.pow(i,3));this.cachedData.pathLengths["ellipse_"+t]=n}return this.cachedData.pathLengths["ellipse_"+t]}},ShapeItemElement.prototype.renderRect=function(){var t=this.currentData;if(t.rect){var e=t.rect;this.renderedFrame.rect.rx!=e.roundness&&(this.shape.setAttribute("rx",e.roundness),this.shape.setAttribute("ry",e.roundness),this.renderedFrame.rect.rx=e.roundness),this.renderedFrame.rect.width!=e.size[0]&&(this.shape.setAttribute("width",e.size[0]),this.renderedFrame.rect.width=e.size[0]),this.renderedFrame.rect.height!=e.size[1]&&(this.shape.setAttribute("height",e.size[1]),this.renderedFrame.rect.height=e.size[1]),this.renderedFrame.rect.x!=e.position[0]-e.size[0]&&(this.shape.setAttribute("x",e.position[0]-e.size[0]/2),this.renderedFrame.rect.x=e.position[0]-e.size[0]),this.renderedFrame.rect.y!=e.position[1]-e.size[1]&&(this.shape.setAttribute("y",e.position[1]-e.size[1]/2),this.renderedFrame.rect.y=e.position[1]-e.size[1])}},ShapeItemElement.prototype.renderFill=function(){var t=this.currentData;if(t.fill){var e=t.fill;this.renderedFrame.fill.color!==e.color&&(this.shape.setAttribute("fill",e.color),this.renderedFrame.fill.color=e.color),this.data.fillEnabled!==!1?this.renderedFrame.fill.opacity!==e.opacity&&(this.shape.setAttribute("fill-opacity",e.opacity),this.renderedFrame.fill.opacity=e.opacity):0!==this.renderedFrame.fill.opacity&&(this.shape.setAttribute("fill-opacity",0),this.renderedFrame.fill.opacity=0)}else 0!==this.renderedFrame.fill.opacity&&(this.shape.setAttribute("fill-opacity",0),this.renderedFrame.fill.opacity=0)},ShapeItemElement.prototype.renderStroke=function(){var t=this.currentData;if(t.stroke){var e=t.stroke;this.renderedFrame.stroke.color!==e.color&&(this.renderedFrame.stroke.color=e.color,this.shape.setAttribute("stroke",e.color)),this.renderedFrame.stroke.width!==e.width&&(this.renderedFrame.stroke.width=e.width,this.shape.setAttribute("stroke-width",e.width)),this.data.strokeEnabled!==!1?this.renderedFrame.stroke.opacity!==e.opacity&&(this.renderedFrame.stroke.opacity=e.opacity,this.shape.setAttribute("stroke-opacity",e.opacity)):0!==this.renderedFrame.stroke.opacity&&(this.renderedFrame.stroke.opacity=0,this.shape.setAttribute("stroke-opacity",0))}},ShapeItemElement.prototype.renderTransform=function(){var t=this.currentData;if(t.tr){var e=t.tr;this.renderedFrame.tr.o!==e.o&&(this.renderedFrame.tr.o=e.o,this.shapeG.setAttribute("opacity",e.o)),this.renderedFrame.tr.mt!==e.mt&&(this.renderedFrame.tr.mt=e.mt,this.shapeG.setAttribute("transform",e.mt)),(this.renderedFrame.tr.a[0]!==e.a[0]||this.renderedFrame.tr.a[1]!==e.a[1])&&(this.renderedFrame.tr.a[0]=e.a[0],this.renderedFrame.tr.a[1]=e.a[1],this.shape.setAttribute("transform","translate("+-e.a[0]+", "+-e.a[1]+")"))}},ShapeItemElement.prototype.renderTrim=function(){var t=this.currentData.trim;if(0==this.pathLength)this.shape.setAttribute("stroke-opacity",0);else{this.renderedFrame.trim.e==t.e&&this.renderedFrame.trim.s==t.s&&this.renderedFrame.trim.o==t.o,this.renderedFrame.trim.e=t.e,this.renderedFrame.trim.s=t.s,this.renderedFrame.trim.o=t.o;var e=this.pathLength*(t.e-t.s)/100,a=this.pathLength-e,r=this.pathLength*t.s/100+this.pathLength*t.o/360,i=e+" , "+a;this.shape.setAttribute("stroke-dasharray",i),this.shape.setAttribute("stroke-dashoffset",this.pathLength-r),t.e==t.s?this.shape.setAttribute("stroke-opacity",0):this.currentData.stroke&&(this.data.strokeEnabled!==!1?this.shape.setAttribute("stroke-opacity",this.currentData.stroke.opacity):this.shape.setAttribute("stroke-opacity",0))}},createElement(BaseElement,ISolidElement),ISolidElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this),this.layerElement.appendChild(this.svgElem);var t=document.createElementNS(svgNS,"rect");t.setAttribute("width",this.data.width),t.setAttribute("height",this.data.height),t.setAttribute("fill",this.data.color),this.svgElem.appendChild(t),styleUnselectableDiv(this.svgElem),styleUnselectableDiv(t),this.maskingGroup=this.svgElem,this.maskedElement=t},createElement(BaseElement,ITextElement),ITextElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g");var t=document.createElementNS(svgNS,"text");t.textContent=this.data.textData.text,t.setAttribute("fill",this.data.textData.fillColor),t.setAttribute("x","0"),t.setAttribute("y",this.data.textData.height-(this.data.textData.fontSize-this.data.textData.height)/2),this.svgElem.setAttribute("width",this.data.textData.width),this.svgElem.setAttribute("height",this.data.textData.height),this.svgElem.style.transform="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",this.svgElem.style["-webkit-transform"]="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",t.setAttribute("font-size",this.data.textData.fontSize),t.setAttribute("font-family","Arial, sans-serif"),this.svgElem.appendChild(t),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,this.maskedElement=t},CVBaseElement.prototype.init=function(){this.createElements(),this.data.hasMask&&this.addMasks(this.data),this.data.eff&&this.createEffectsManager(this.data)},CVBaseElement.prototype.createElements=function(){},CVBaseElement.prototype.prepareFrame=function(t){return this.data.inPoint-this.data.startTime<=t&&this.data.outPoint-this.data.startTime>t?(this.renderFrame=!0,this.currentAnimData=this.data.renderedData[t].an,void(this.data.hasMask&&this.maskManager.prepareFrame(t))):(this.renderFrame=!1,this.currentAnimData=this.data.renderedData[t].an,!1)},CVBaseElement.prototype.draw=function(t){if(t!==!1&&this.renderer.canvasContext.save(),!this.renderFrame)return!1;var e,a=this.renderer.canvasContext;if(this.data.parentHierarchy){var r,i,n=this.data.parentHierarchy.length;for(r=n-1;r>=0;r-=1)i=this.data.parentHierarchy[r].element.getCurrentAnimData(),e=i.matrixArray,a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),a.translate(-i.tr.a[0],-i.tr.a[1])}a.globalAlpha=a.globalAlpha*this.currentAnimData.tr.o,e=this.currentAnimData.matrixArray,a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),a.translate(-this.currentAnimData.tr.a[0],-this.currentAnimData.tr.a[1]),this.data.hasMask&&this.maskManager.draw(),t!==!1&&this.renderer.canvasContext.restore()},CVBaseElement.prototype.getCurrentAnimData=function(){return this.currentAnimData},CVBaseElement.prototype.addMasks=function(t){var e={data:{value:t},element:{value:this}};this.maskManager=createElement(CVMaskElement,null,e)},CVBaseElement.prototype.createEffectsManager=function(t){var e={effects:{value:t.eff},element:{value:this}};this.effectsManager=createElement(EffectsManager,null,e)},CVBaseElement.prototype.getType=function(){return this.type},CVBaseElement.prototype.getLayerSize=function(){return"TextLayer"==this.data.type?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}},createElement(CVBaseElement,CVCompElement),CVCompElement.prototype.prepareFrame=function(t){var e=this.parent.prepareFrame.call(this,t);if(e!==!1){var a,r=this.layers.length,i=this.data.tm?this.data.tm[t]<0?0:this.data.tm[t]:t;for(a=0;r>a;a+=1)this.layers[a].element.prepareFrame(i-this.layers[a].startTime)}},CVCompElement.prototype.draw=function(){if(this.renderer.canvasContext.save(),this.parent.draw.call(this,!1)===!1)return void this.renderer.canvasContext.restore();var t,e=this.layers.length;for(t=e-1;t>=0;t-=1)this.layers[t].element.draw();this.renderer.canvasContext.restore()},createElement(CVBaseElement,CVImageElement),CVImageElement.prototype.createElements=function(){var t=this,e=function(){t.animationItem.elementLoaded()};this.img=new Image,this.img.addEventListener("load",e,!1),this.img.src=this.path+this.assets[this.data.assetId].path,this.parent.createElements.call(this)},CVImageElement.prototype.draw=function(){if(this.renderer.canvasContext.save(),this.parent.draw.call(this,!1)===!1)return void this.renderer.canvasContext.restore();var t=this.renderer.canvasContext;t.drawImage(this.img,0,0),this.renderer.canvasContext.restore()},createElement(CVBaseElement,CVShapeElement),CVShapeElement.prototype.createElements=function(){this.parent.createElements.call(this);var t,e,a=this.data.shapes.length;for(t=a-1;t>=0;t--)this.data.trim&&(this.data.shapes[t].trim=this.data.trim),e=new CVShapeItemElement(this.data.shapes[t],this.renderer),this.shapes.push(e)},CVShapeElement.prototype.prepareFrame=function(t){var e=this.parent.prepareFrame.call(this,t);if(e!==!1){var a,r=this.data.shapes.length;for(a=r-1;a>=0;a--)this.shapes[r-1-a].prepareFrame(t)}},CVShapeElement.prototype.draw=function(){return this.renderer.canvasContext.save(),this.parent.draw.call(this,!1)===!1?void this.renderer.canvasContext.restore():(this.drawShapes(),void this.renderer.canvasContext.restore())},CVShapeElement.prototype.drawShapes=function(){var t,e=this.data.shapes.length;for(t=e-1;t>=0;t--)this.shapes[e-1-t].renderShape()},CVShapeItemElement.prototype.adjustTrim=function(){var t,e=this.data.trim,a=e.length;for(t=0;a>t;t+=1)e[t].o&&(e[t].o-=90)},CVShapeItemElement.prototype.renderShape=function(){if(""!==this.data.type){var t=this.frameNum;this.currentData=this.data.renderedData[t];var e=this.renderer.canvasContext,a=this.renderTransform(t);"pathShape"==this.data.type?this.data.trim?this.renderTrimPath(t):this.renderPath(t):"rectShape"==this.data.type?this.renderRect(t):"ellipseShape"==this.data.type&&(this.pathLength=this.renderEllipse(t)),this.renderFill(t),this.renderStroke(t),this.renderer.canvasContext.lineCap="round",this.renderer.canvasContext.lineJoin="round",this.renderedPaths[t]?supportsPath2D?(this.renderer.canvasContext.fill(this.renderedPaths[t]),this.renderer.canvasContext.stroke(this.renderedPaths[t])):(this.renderedPaths[t].drawToContext(this.renderer.canvasContext),this.renderer.canvasContext.fill(),this.renderer.canvasContext.stroke()):(this.renderer.canvasContext.fill(),this.renderer.canvasContext.stroke()),a&&e.restore()}},CVShapeItemElement.prototype.prepareFrame=function(t){this.frameNum=t},CVShapeItemElement.prototype.renderTransform=function(){var t=this.currentData;if(t.tr){var e=!1,a=this.renderer.canvasContext,r=t.tr,i=r.mtArr;return(1!==i[0]||0!==i[1]||0!==i[2]||1!==i[3]||0!==i[4]||0!==i[5])&&(a.save(),a.transform(i[0],i[1],i[2],i[3],i[4],i[5]),e=!0),(0!=r.a[0]||0!=r.a[1])&&(e||(a.save(),e=!0),a.translate(-r.a[0],-r.a[1])),r.o<1&&(e||(a.save(),e=!0),a.globalAlpha*=r.o),e}},CVShapeItemElement.prototype.addToTrim=function(t,e,a){this.trims[t]||this.trims.push({}),this.trims[t].s=e,this.trims[t].e=a,this.trims[t].ended=!1},CVShapeItemElement.prototype.renderTrimPath=function(t){var e=this.currentData.trim;if(e.e!=e.s&&!this.renderedPaths[t]){var a,r=new Path2D,i=this.currentData.path,n=i.pathNodes,s=[],o=0,h=n.v.length;for(a=0;h-1>a;a+=1)s.push(bez.drawBezierCurve(n.v[a],n.v[a+1],n.o[a],n.i[a+1])),o+=s[a].segmentLength;i.closed&&(s.push(bez.drawBezierCurve(n.v[a],n.v[0],n.o[a],n.i[0])),o+=s[a].segmentLength),h=s.length;var p=o*(e.e-e.s)/100;e.o=e.o%360,e.o<0&&(e.o+=360);var m=(e.s/100+e.o/360)%1*o,l=0;if(m+p-o>1e-5){var d=m+p-o;this.addToTrim(0,m,m+p-d),this.addToTrim(1,0,m+p-o),l+=2}else this.addToTrim(0,m,m+p),l+=1;var c,u,f,y,g,v=0,x=!1,E=this.trims.length;for(a=0;h>a&&!x;a+=1){for(u=s[a].points.length,y=!0,g=0;E>g;g+=1)v+s[a].segmentLength>this.trims[g].s&&(y=!1);if(y)v+=s[a].segmentLength;else{var C,b;for(c=0;u-1>c&&!x;c+=1)for(E=this.trims.length,C=s[a].points[c],b=s[a].points[c+1],v+=C.partialLength,g=0;E>g;g+=1)if(!this.trims[g].ended)if(this.trims[g].s>=v&&this.trims[g].s<v+b.partialLength&&(f=(this.trims[g].s-v)/b.partialLength,r.moveTo(C.point[0]+(b.point[0]-C.point[0])*f,C.point[1]+(b.point[1]-C.point[1])*f)),this.trims[g].e>v&&this.trims[g].e<=v+b.partialLength){if(f=(this.trims[g].e-v)/b.partialLength,r.lineTo(C.point[0]+(b.point[0]-C.point[0])*f,C.point[1]+(b.point[1]-C.point[1])*f),l-=1,this.trims[g].ended=!0,0==l){x=!0;break}}else v>this.trims[g].s&&v<this.trims[g].e&&r.lineTo(C.point[0],C.point[1]);this.renderedPaths[t]=r}}}},CVShapeItemElement.prototype.renderPath=function(t){var e=this.currentData,a=e.path;if(!this.renderedPaths[t]){var r=new Path2D,i=this.renderer.canvasContext,n=a.pathNodes;n instanceof Array&&(n=n[0]);var s,o=n.i.length;for(i.beginPath(),r.moveTo(n.v[0][0],n.v[0][1]),s=1;o>s;s+=1)r.bezierCurveTo(n.o[s-1][0],n.o[s-1][1],n.i[s][0],n.i[s][1],n.v[s][0],n.v[s][1]);a.closed&&r.bezierCurveTo(n.o[s-1][0],n.o[s-1][1],n.i[0][0],n.i[0][1],n.v[0][0],n.v[0][1]),this.renderedPaths[t]=r}},CVShapeItemElement.prototype.renderEllipse=function(){var t=this.currentData.ell,e=this.renderer.canvasContext;e.beginPath(),e.ellipse(t.p[0],t.p[1],t.size[0]/2,t.size[1]/2,0,0,2*Math.PI,!0),e.closePath()},CVShapeItemElement.prototype.renderRect=function(){var t=this.currentData.rect,e=t.roundness,a=this.renderer.canvasContext;if(a.beginPath(),0==e)a.rect(t.position[0]-t.size[0]/2,t.position[1]-t.size[1]/2,t.size[0],t.size[1]);else{var r=t.position[0]-t.size[0]/2,i=t.position[1]-t.size[1]/2,n=t.size[0],s=t.size[1];e instanceof Array&&(e=e[0]),a.moveTo(r+e,i),a.lineTo(r+n-e,i),a.quadraticCurveTo(r+n,i,r+n,i+e),a.lineTo(r+n,i+s-e),a.quadraticCurveTo(r+n,i+s,r+n-e,i+s),a.lineTo(r+e,i+s),a.quadraticCurveTo(r,i+s,r,i+s-e),a.lineTo(r,i+e),a.quadraticCurveTo(r,i,r+e,i)}},CVShapeItemElement.prototype.renderFill=function(){var t=this.currentData;if(t.fill){var e=t.fill;if(this.data.fillEnabled!==!1)return void(this.renderer.canvasContext.fillStyle=e.opacity<1?fillColorToString(e.color,e.opacity):fillColorToString(e.color))}this.renderer.canvasContext.fillStyle="rgba(0,0,0,0)"},CVShapeItemElement.prototype.renderStroke=function(){var t=this.currentData;if(t.stroke){var e=t.stroke;if(this.renderer.canvasContext.lineWidth=e.width,this.data.strokeEnabled!==!1)return void(this.renderer.canvasContext.strokeStyle=e.opacity<1?fillColorToString(e.color,e.opacity):fillColorToString(e.color))}this.renderer.canvasContext.strokeStyle="rgba(0,0,0,0)"},createElement(CVBaseElement,CVSolidElement),CVSolidElement.prototype.draw=function(){if(this.renderer.canvasContext.save(),this.parent.draw.call(this,!1)===!1)return void this.renderer.canvasContext.restore();var t=this.renderer.canvasContext;t.fillStyle=this.data.color,t.fillRect(0,0,this.data.width,this.data.height),this.renderer.canvasContext.restore()},createElement(CVBaseElement,CVTextElement),CVTextElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g");var t=document.createElementNS(svgNS,"text");t.textContent=this.data.textData.text,t.setAttribute("fill",this.data.textData.fillColor),t.setAttribute("x","0"),t.setAttribute("y",this.data.textData.height-(this.data.textData.fontSize-this.data.textData.height)/2),this.svgElem.setAttribute("width",this.data.textData.width),this.svgElem.setAttribute("height",this.data.textData.height),this.svgElem.style.transform="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",this.svgElem.style["-webkit-transform"]="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",t.setAttribute("font-size",this.data.textData.fontSize),t.setAttribute("font-family","Arial, sans-serif"),this.svgElem.appendChild(t),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,this.maskedElement=t},CVMaskElement.prototype.init=function(){this.registeredEffects=[],this.masksProperties=this.data.masksProperties,this.totalMasks=this.masksProperties.length,this.ctx=this.element.renderer.canvasContext,this.layerSize=this.element.getLayerSize()},CVMaskElement.prototype.prepareFrame=function(t){this.frameNum=t},CVMaskElement.prototype.draw=function(){var t,e=this.data.masksProperties.length;for(this.ctx.beginPath(),t=0;e>t;t++)this.masksProperties[t].inv?this.createInvertedMask(this.masksProperties[t],this.frameNum):this.drawShape(this.ctx,this.data.masksProperties[t].paths[this.frameNum].pathNodes);this.ctx.closePath(),this.ctx.clip()},CVMaskElement.prototype.drawShape=function(t,e){var a,r=e.v.length;for(t.moveTo(e.v[0][0],e.v[0][1]),a=1;r>a;a++)t.bezierCurveTo(e.o[a-1][0],e.o[a-1][1],e.i[a][0],e.i[a][1],e.v[a][0],e.v[a][1]);t.bezierCurveTo(e.o[a-1][0],e.o[a-1][1],e.i[0][0],e.i[0][1],e.v[0][0],e.v[0][1])},CVMaskElement.prototype.createInvertedMask=function(){};var animationManager=function(){function t(t){if(!t)return null;for(var e=0;v>e;){if(f[e].elem==t&&null!==f[e].elem)return f[e].animation;e+=1}var a=new AnimationItem;return a.setData(t),f.push({elem:t,animation:a}),v+=1,a}function e(t){var e=new AnimationItem;return e.setParams(t),f.push({elem:null,animation:e}),v+=1,e}function a(t,e){var a;for(a=0;v>a;a+=1)f[a].animation.setSpeed(t,e)}function r(t,e){var a;for(a=0;v>a;a+=1)f[a].animation.setDirection(t,e)}function i(t){var e;for(e=0;v>e;e+=1)f[e].animation.play(t)}function n(t,e){g=!1,y=Date.now();var a;for(a=0;v>a;a+=1)f[a].animation.moveFrame(t,e)}function s(){var t,e=Date.now(),a=e-y;for(t=0;v>t;t+=1)f[t].animation.advanceTime(a);y=e,requestAnimationFrame(s)}function o(t){var e;for(e=0;v>e;e+=1)f[e].animation.pause(t)}function h(t,e,a){var r;for(r=0;v>r;r+=1)f[r].animation.goToAndStop(t,e,a)}function p(t){var e;for(e=0;v>e;e+=1)f[e].animation.stop(t)}function m(t){var e;for(e=0;v>e;e+=1)f[e].animation.togglePause(t)}function l(){var e=document.getElementsByClassName("bodymovin");Array.prototype.forEach.call(e,t)}function d(){var t;for(t=0;v>t;t+=1)f[t].animation.resize()}function c(){y=Date.now(),requestAnimationFrame(s)}var u={},f=[],y=0,g=!0,v=0;return setTimeout(c,0),u.registerAnimation=t,u.loadAnimation=e,u.setSpeed=a,u.setDirection=r,u.play=i,u.moveFrame=n,u.pause=o,u.stop=p,u.togglePause=m,u.searchAnimations=l,u.resize=d,u.start=c,u.goToAndStop=h,u}(),AnimationItem=function(){this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.pendingElements=0,this.playCount=0,this.prerenderFramesFlag=!0,this.repeat="indefinite",this.animationData={},this.layers=[],this.assets=[],this.isPaused=!0,this.isScrolling=!1,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=randomString(10),this.renderedFrameCount=0,this.scaleMode="fit",this.math=Math};AnimationItem.prototype.setParams=function(t){var e=this;t.context&&(this.context=t.context),t.wrapper&&(this.wrapper=t.wrapper);var a=t.animType?t.animType:"canvas";switch(a){case"canvas":this.renderer=new CanvasRenderer(this,t.renderer);break;case"svg":this.renderer=new SVGRenderer(this,t.renderer)}if(this.animType=a,""===t.loop||null===t.loop||(this.loop=t.loop===!1?!1:t.loop===!0?!0:parseInt(t.loop)),this.autoplay="autoplay"in t?t.autoplay:!0,this.name=t.name?t.name:"",this.prerenderFramesFlag="prerender"in t?t.prerender:!0,t.animationData)e.configAnimation(t.animationData);else if(t.path){"json"!=t.path.substr(-4)&&("/"!=t.path.substr(-1,1)&&(t.path+="/"),t.path+="data.json");var r=new XMLHttpRequest;this.path=t.path.substr(0,t.path.lastIndexOf("/")+1),r.open("GET",t.path,!0),r.send(),r.onreadystatechange=function(){if(4==r.readyState)if(200==r.status)e.configAnimation(JSON.parse(r.responseText));else try{var t=JSON.parse(r.responseText);e.configAnimation(t)}catch(a){}}}},AnimationItem.prototype.setData=function(t){var e={wrapper:t},a=t.attributes;e.path=a.getNamedItem("data-animation-path")?a.getNamedItem("data-animation-path").value:a.getNamedItem("data-bm-path")?a.getNamedItem("data-bm-path").value:a.getNamedItem("bm-path")?a.getNamedItem("bm-path").value:"",e.animType=a.getNamedItem("data-anim-type")?a.getNamedItem("data-anim-type").value:a.getNamedItem("data-bm-type")?a.getNamedItem("data-bm-type").value:a.getNamedItem("bm-type")?a.getNamedItem("bm-type").value:"canvas";var r=a.getNamedItem("data-anim-loop")?a.getNamedItem("data-anim-loop").value:a.getNamedItem("data-bm-loop")?a.getNamedItem("data-bm-loop").value:a.getNamedItem("bm-loop")?a.getNamedItem("bm-loop").value:"";""==r||(e.loop="false"===r?!1:"true"===r?!0:parseInt(r)),e.name=a.getNamedItem("data-name")?a.getNamedItem("data-name").value:a.getNamedItem("data-bm-name")?a.getNamedItem("data-bm-name").value:a.getNamedItem("bm-name")?a.getNamedItem("bm-name").value:"";var i=a.getNamedItem("data-anim-prerender")?a.getNamedItem("data-anim-prerender").value:a.getNamedItem("data-bm-prerender")?a.getNamedItem("data-bm-prerender").value:a.getNamedItem("bm-prerender")?a.getNamedItem("bm-prerender").value:"";"false"===i&&(e.prerender=!1),this.setParams(e)},AnimationItem.prototype.configAnimation=function(t){this.renderer.configAnimation(t),this.animationData=t,this.animationData._id=this.animationID,this.animationData._animType=this.animType,this.layers=this.animationData.animation.layers,this.assets=this.animationData.assets,this.totalFrames=this.animationData.animation.totalFrames,this.frameRate=this.animationData.animation.frameRate,this.frameMult=this.animationData.animation.frameRate/1e3,dataManager.completeData(this.animationData),this.renderer.buildItems(this.animationData.animation.layers),this.updaFrameModifier(),this.checkLoaded()
 },AnimationItem.prototype.elementLoaded=function(){this.pendingElements--,this.checkLoaded()},AnimationItem.prototype.checkLoaded=function(){this.renderer.buildStage(this.container,this.layers),0==this.pendingElements&&(this.prerenderFramesFlag?(this.prerenderFrames(0),dataManager.renderFrame(this.animationID,this.currentFrame),this.renderer.renderFrame(this.currentFrame)):(this.isLoaded=!0,this.gotoFrame(),this.autoplay&&this.play()))},AnimationItem.prototype.prerenderFrames=function(t){t||(t=0),this.renderedFrameCount===this.totalFrames?(this.isLoaded=!0,this.gotoFrame(),this.autoplay&&this.play()):(dataManager.renderFrame(this.animationID,this.renderedFrameCount),this.renderedFrameCount+=1,t>5?setTimeout(this.prerenderFrames.bind(this),0):(t+=1,this.prerenderFrames(t)))},AnimationItem.prototype.resize=function(){this.renderer.updateContainerSize()},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=subframeEnabled?this.math.round(100*this.currentRawFrame)/100:this.math.floor(this.currentRawFrame),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){this.isLoaded!==!1&&(dataManager.renderFrame(this.animationID,this.currentFrame),this.renderer.renderFrame(this.currentFrame))},AnimationItem.prototype.play=function(t){t&&this.name!=t||this.isPaused===!0&&(this.isPaused=!1)},AnimationItem.prototype.pause=function(t){t&&this.name!=t||this.isPaused===!1&&(this.isPaused=!0)},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(this.isPaused===!0?(this.isPaused=!1,this.play()):(this.isPaused=!0,this.pause()))},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.isPaused=!0,this.currentFrame=this.currentRawFrame=0,this.playCount=0,this.gotoFrame())},AnimationItem.prototype.goToAndStop=function(t,e,a){a&&this.name!=a||(this.setCurrentRawFrameValue(e?t:t*this.frameModifier),this.isPaused=!0)},AnimationItem.prototype.advanceTime=function(t){this.isPaused!==!0&&this.isScrolling!==!0&&this.isLoaded!==!1&&this.setCurrentRawFrameValue(this.currentRawFrame+t*this.frameModifier)},AnimationItem.prototype.updateAnimation=function(t){this.setCurrentRawFrameValue(this.totalFrames*t)},AnimationItem.prototype.moveFrame=function(t,e){e&&this.name!=e||this.setCurrentRawFrameValue(this.currentRawFrame+t)},AnimationItem.prototype.setCurrentRawFrameValue=function(t){if(this.currentRawFrame=t,this.currentRawFrame>=this.totalFrames){if(this.loop===!1)return this.currentRawFrame=this.totalFrames-1,this.gotoFrame(),void this.pause();if(this.playCount+=1,this.loop!==!0&&this.playCount==this.loop)return this.currentRawFrame=this.totalFrames-1,this.gotoFrame(),void this.pause()}else if(this.currentRawFrame<0)return this.playCount-=1,this.playCount<0&&(this.playCount=0),this.loop===!1?(this.currentRawFrame=0,this.gotoFrame(),void this.pause()):(this.currentRawFrame=this.totalFrames+this.currentRawFrame,void this.gotoFrame());this.currentRawFrame=this.currentRawFrame%this.totalFrames,this.gotoFrame()},AnimationItem.prototype.setSpeed=function(t){this.playSpeed=t,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(t){this.playDirection=0>t?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssets=function(){return this.assets},function(t){function e(t){animationManager.play(t)}function a(t){animationManager.pause(t)}function r(t){animationManager.togglePause(t)}function i(t,e){animationManager.setSpeed(t,e)}function n(t,e){animationManager.setDirection(t,e)}function s(t){animationManager.stop(t)}function o(t){animationManager.moveFrame(t)}function h(){animationManager.searchAnimations()}function p(t){return animationManager.registerAnimation(t)}function m(){animationManager.resize()}function l(){animationManager.start()}function d(t,e,a){animationManager.goToAndStop(t,e,a)}function c(t){subframeEnabled=t}function u(t){return animationManager.loadAnimation(t)}function f(){"complete"===document.readyState&&(clearInterval(g),h())}var y={};y.play=e,y.pause=a,y.togglePause=r,y.setSpeed=i,y.setDirection=n,y.stop=s,y.moveFrame=o,y.searchAnimations=h,y.registerAnimation=p,y.loadAnimation=u,y.setSubframeRendering=c,y.resize=m,y.start=l,y.goToAndStop=d,y.checkReady=f,t.bodymovin=y;var g=setInterval(f,100)}(window);}(window));
\ No newline at end of file
diff --git a/player/js/utils/DataManager.js b/player/js/utils/DataManager.js
index 78bf90e..23d0c30 100644
--- a/player/js/utils/DataManager.js
+++ b/player/js/utils/DataManager.js
@@ -447,7 +447,7 @@
             bez.buildBezierData(keyData);
         }
         var k, kLen;
-        var perc, j = 0;
+        var perc,jLen, j = 0;
         if(interpolatedParams.type == 'default'){
             propertyArray = [];
         }