* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
- */
-/*!SIE under the MIT Lisence\r
- */\r
-/*! Copyright 2016 dhrname and other contributors\r
- * http://sie.osdn.jp/\r
- *\r
- * Permission is hereby granted, free of charge, to any person obtaining\r
- * a copy of this software and associated documentation files (the\r
- * "Software"), to deal in the Software without restriction, including\r
- * without limitation the rights to use, copy, modify, merge, publish,\r
- * distribute, sublicense, and/or sell copies of the Software, and to\r
- * permit persons to whom the Software is furnished to do so, subject to\r
- * the following conditions:\r
- * \r
- * The above copyright notice and this permission notice shall be\r
- * included in all copies or substantial portions of the Software.\r
- * \r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
*/\r
\r
\r
\r
/*アニメーションを開始させるメソッド*/\r
startAnimation: function() {\r
- /*__step関数は最後に書く*/\r
- __step();\r
+ /*$getDocument.step関数は最後に書く*/\r
+ base("$getDocument").step();\r
},\r
\r
/*アニメーションが停止した状態かどうか、停止しているならばtrue*/\r
pauseAnimation: function() {\r
this.isPaused = true;\r
},\r
+ \r
+ /*後述のinitializeメソッドで使うオブジェクトリスト*/\r
+ objList: [],\r
+ \r
+ /*オブジェクトの初期化処理*/\r
+ initialize: function() {\r
+ var list = this.objList;\r
+ for (var i=0;i<list.length;++i) {\r
+ list[i].initialize();\r
+ }\r
+ },\r
\r
/*setFrame メソッド\r
* フレーム数を数値num まで進めるか、戻す*/\r
return s;\r
},\r
\r
+ /*isKeyErrorメソッド\r
+ * 後述のsetKeyメソッドで使われる。keyTimes属性のエラーをチェックするメソッド\r
+ * 属性値にエラーがあれば、trueを返し、なければ、falseを返す*/\r
+ isKeyError: function(/*number*/ keyLength, /*number*/toLength) {\r
+ return !!(keyLength && (keyLength !== (toLength+1)) );\r
+ },\r
+ \r
/*setKeyメソッド\r
* 引数の要素のkeyTimes属性やkeySplines属性を処理するためのメソッド\r
* 必要な他の属性処理はsetValuesメソッドに任せている*/\r
this.getAttr("from", null),\r
this.getAttr("to", null),\r
this.getAttr("by", null) ),\r
+ toLength = to ? to.length : 0,\r
keyTimes = this.getAttr("keyTimes", null),\r
keySplines = this.getAttr("keySplines", null),\r
keys,\r
return null;\r
}\r
/*toオブジェクトはtoとfromで一組となっているのでlengthが加算される*/\r
- if (keys.length && (keys.length !== (to.length+1))) {\r
+ if (this.isKeyError(keys.length, toLength)) {\r
/*keyTimes属性とvalues属性のリストの個数が合致しない場合、アニメーションの効果がない\r
* 仕様を参照 SMIL Animation 3.2.3. Animation function calculation modes\r
* http://www.w3.org/TR/smil-animation/#AnimFuncCalcMode*/\r
+ \r
+ /*ただし、animateMotion要素においては、keyPoints属性が\r
+ * values属性のリストよりも優先されるため、\r
+ * keyPoints属性があるときは、アニメーションの効果がある\r
+ * \r
+ * >Regarding determining the points which correspond to the ‘keyTimes’ attributes, the ‘keyPoints’ attribute overrides ‘path’, which overrides ‘values’\r
+ * \r
+ * http://www.w3.org/TR/SVG11/animate.html#AnimateMotionElement\r
+ */\r
return null;\r
}\r
- for (var i=0;i<to.length;++i) {\r
+ for (var i=0;i<toLength;++i) {\r
to[i].keyTime = keys[i+1] - keys[i];\r
if (splines) {\r
toiKeySplines = this.$from.numList.call( {\r
}\r
}\r
} else if (!isDiscrete && to) {\r
- var per = 1 / to.length;\r
- for (var i=0;i<to.length;++i) {\r
+ var per = 1 / toLength;\r
+ for (var i=0;i<toLength;++i) {\r
to[i].keyTime = per;\r
if (splines) {\r
toiKeySplines = this.$from.numList.call( {\r
if (keys.length && (keys[0] !== 0)) {\r
return null;\r
}\r
- if (keys.length && (keys.length !== (to.length+1))) {\r
+ if (this.isKeyError(keys.length, toLength)) {\r
return null;\r
}\r
- for (var i=0;i<to.length;++i) {\r
+ for (var i=0;i<toLength;++i) {\r
to[i].keyTime = keys[i+1] - keys[i];\r
}\r
} else {\r
- var per = 1 / (to.length+1);\r
- for (var i=0;i<to.length;++i) {\r
+ var per = 1 / (toLength+1);\r
+ for (var i=0;i<toLength;++i) {\r
to[i].keyTime = per;\r
}\r
}\r
/*toオブジェクトが足らないので、一つ追加しておく*/\r
- to.push( to[to.length-1].up().mix( function(){\r
+ to.push( to[toLength-1].up().mix( function(){\r
if (!keys) {\r
return;\r
}\r
/*to属性の値、文字列*/\r
to: "",\r
\r
+ \r
+ /*後述のinitializeメソッドで使う要素リスト\r
+ * getElementsByTagNameNSメソッドの返り値をArray化したことを想定*/\r
+ elementList: [],\r
+ \r
+ /*何番目からelementListを処理しているかの数値*/\r
+ numberOfElemList: 0,\r
+ \r
+ /*initialize メソッド\r
+ * 要素リストを初期化させる\r
+ * 初期化処理を分散させるために使う*/\r
+ initialize: function() {\r
+ var eles = this.elementList;\r
+ if (!eles || !eles.length) {\r
+ return;\r
+ }\r
+ var length = this.numberOfElemList+50;\r
+ for (var i=length-50; i<length; ++i) {\r
+ if (eles.length <= i) {\r
+ this.elementList = null;\r
+ return;\r
+ }\r
+ this.up().init(eles[i]);\r
+ }\r
+ this.numberOfElemList += 50;\r
+ eles = length = void 0;\r
+ },\r
+ \r
/*initメソッドで使われるアニメーション関数*/\r
_setFrame: function ($list) {\r
this.setAttribute(this.to);\r
this._ele = ele;\r
this.to = this.getAttr("to", "");\r
this.fill = this.getAttr("fill", "remove");\r
+ if ( (this.getAttr("attributeName", "") === "font-size") \r
+ && /\d\s*$/.test(this.to) ) {\r
+ this.to += "px";\r
+ }\r
}\r
var thisele = this.element;\r
if (line && thisele) {\r
to = this.setKey(ele);\r
}\r
if (to) {\r
- this.funcs = to.map( function(x) {\r
+ var aa = new Array(to.length);\r
+ for (var i=0;i<to.length;++i) {\r
+ var x = to[i];\r
x.to.string = toRGB(x.to.string);\r
x.to.from.string = toRGB(x.to.from.string);\r
var s = x.call();\r
* endKeyTimeプロパティは区間のエンド地点*/\r
s.startKeyTime = keyTime;\r
keyTime = s.endKeyTime = keyTime + x.keyTime;\r
- return s;\r
- } )\r
- .filter( function(s) {\r
+ aa[i] = s;\r
+ }\r
+ this.funcs = aa.filter( function(s) {\r
if (!this.timeline.isResolved) {\r
/*begin属性などにイベントを設定していた(未解決の)場合、後のs(0.1)がうまく作動せず、\r
* 例外を出してしまうため、ここで返しておく*/\r
this.setAdd(ele, to);\r
this.setAccum(ele, to);\r
}\r
- keywords = toRGB = isColor = void 0;\r
+ keyTime = keywords = toRGB = isColor = void 0;\r
} )\r
/*$animateTranformElementオブジェクト\r
* animateTransform要素に関連するオブジェクト*/\r
mode: "paced",\r
\r
/*hasAttrValuesメソッドのオーバライド\r
- * path属性に対応させるため*/\r
+ * pathå±\9eæ\80§ã\81ªã\81©ã\81«å¯¾å¿\9cã\81\95ã\81\9bã\82\8bã\81\9fã\82\81*/\r
hasAttrValues: function () {\r
if (this.$attribute.hasAttrValues.call(this)) {\r
return true;\r
} else {\r
- return (this._ele.hasAttribute("path")\r
+ return (this._ele.hasAttribute("keyPoints") || this._ele.hasAttribute("path")\r
|| this._ele.getElementsByTagNameNS(this.path.namespaceURI, "mpath").length);\r
}\r
},\r
}\r
},\r
\r
- /*$animateElement.tocallメソッドを置き換えるためのメソッド\r
+ /*this.$animateElement.tocallメソッドを置き換えるためのメソッド\r
* mpath要素が指定されたときか、path属性のときにのみ使われる*/\r
_tocallForPath: function(advance) {\r
+ if (this.isKeyPoints) {\r
+ /*keyPoints属性の値に従って、advance値を決定する。\r
+ * なお、$animateElementはinitメソッドで書き換えているので、二重に呼び出す必要がある*/\r
+ advance = +this.$animateElement.$animateElement.tocall.call(this, advance);\r
+ }\r
var path = this.path,\r
advanceLength = advance * path.getTotalLength();\r
/*全体の距離から、現在進めている距離を算出して、そこから、現在点を導き出す*/\r
rotate = +this.rotate;\r
}\r
return point.x+ "," +point.y + this.getRotate(path, advanceLength, rotate);\r
+ },\r
+ \r
+ /*setValuesメソッドのオーバライド*/\r
+ setValues: function() {\r
+ var keyPoints = this.getAttr("keyPoints", null),\r
+ /*$animateElementプロパティは下記のinitメソッドで上書きされているため、\r
+ * $animateElementを別方法で呼び出す必要がある*/\r
+ superSetValues = this.$animateElement.$animateElement.setValues;\r
+ if (keyPoints) {\r
+ return superSetValues.call(this, keyPoints, null, null, null);\r
+ } else {\r
+ return superSetValues.apply(this, arguments);\r
+ }\r
}\r
} )\r
.on("init", function (ele) {\r
this.isSum = true;\r
this.mode = this.getAttr("mode", "paced");\r
this.rotate = this.getAttr("rotate", "0");\r
+ /*isKeyPointsプロパティはkeyPoints属性が設定されていたら真*/\r
+ this.isKeyPoints = ele.hasAttributeNS(null, "keyPoints");\r
+ if (this.isKeyPoints && !ele.hasAttributeNS(null, "path")) {\r
+ /*keyPoints属性がある場合は、path属性に指定がなければ、\r
+ * values属性などの値をpath属性に書いておく*/\r
+ var values = this.getAttr( "values", this.getAttr("from", "")+" L "+this.getAttr("to", "") );\r
+ ele.setAttributeNS( null, "path", "M " +values.replace(/;/g, " L ") );\r
+ }\r
this.path = this.path.cloneNode(true);\r
var mpath = ele.getElementsByTagNameNS(this.path.namespaceURI, "mpath");\r
/*$animateは後で、プロパティを書き換えるために使う。tocallメソッドも参照*/\r
}\r
} );\r
\r
-function getDocument() \r
-{\r
- var svg = document.getElementsByTagName("object"),\r
- svgns = "http://www.w3.org/2000/svg";\r
- if (svg) {\r
- for (var i=0;i<svg.length;++i) {\r
- getElement( svg[i].getSVGDocument() );\r
+base("$getDocument").mix ( function() {\r
+\r
+ function getDocument() \r
+ {\r
+ var svg = document.getElementsByTagName("object"),\r
+ svgns = "http://www.w3.org/2000/svg";\r
+ if (svg) {\r
+ for (var i=0;i<svg.length;++i) {\r
+ getElement( svg[i].getSVGDocument() );\r
+ }\r
}\r
+ /*SVG文書から呼び出されたときも処理する*/\r
+ getElement(document);\r
+ /*idはアニメの中止ハンドル*/\r
+ var id = __step(),\r
+ idstop = function() {\r
+ /*アニメーションを中止する関数*/\r
+ window.cancelAnimationFrame && cancelAnimationFrame(id);\r
+ };\r
+ base("$frame").on("pauseAnimation", idstop);\r
+ window.addEventListener("unload", idstop);\r
+ \r
+ /*文書からアニメーション関連要素を取り出して、オブジェクトを初期化*/\r
+ function getElement (svgDoc) {\r
+ var $set = base("$calcMode").$attribute.$setElement,\r
+ $animate = $set.$animateElement,\r
+ frame = base("$frame");\r
+ init($set, "set");\r
+ init($animate, "animate");\r
+ init($animate.up(), "animateColor");\r
+ init($animate.$animateTransformElement, "animateTransform");\r
+ init($animate.$animateTransformElement.$motionElement, "animateMotion");\r
+ /*リンクのハッシュ読み取りで、ハイパーリンクのイベント処理\r
+ * たとえば、a要素のxlink:href="#hoge"で、<animate id="hoge"のとき、\r
+ * animate要素がハイパーリンク作動と同時に動くようになる\r
+ * \r
+ * ただし、SMIL アニメーションの仕様では、\r
+ * animate要素の開始時刻まで、時を進める操作をするだけ*/\r
+ svgDoc.defaultView.addEventListener("hashchange", function() {\r
+ var hash = svgDoc.defaultView.location.hash.slice(1);\r
+ svgDoc.getElementById(hash).beginElement();\r
+ });\r
+ function init (obj, name) {\r
+ /*あとでframe.initializeメソッドで呼び出すために準備しておく*/\r
+ var elist = svgDoc.getElementsByTagNameNS(svgns, name);\r
+ obj.numberOfElemList = 0;\r
+ if (elist.length > 0) {\r
+ obj.elementList = elist;\r
+ frame.objList.push(obj);\r
+ }\r
+ elist = obj = void 0;\r
+ };\r
+ };\r
}\r
- /*SVG文書から呼び出されたときも処理する*/\r
- getElement(document);\r
- /*idはアニメの中止ハンドル*/\r
- var id = __step(),\r
- idstop = function() {\r
- /*アニメーションを中止する関数*/\r
- window.cancelAnimationFrame && cancelAnimationFrame(id);\r
- };\r
- base("$frame").on("pauseAnimation", idstop);\r
- window.addEventListener("unload", idstop);\r
\r
- /*文書からアニメーション関連要素を取り出して、オブジェクトを初期化*/\r
- function getElement (svgDoc) {\r
- var $set = base("$calcMode").$attribute.$setElement,\r
- $animate = $set.$animateElement;\r
- init($set, "set");\r
- init($animate, "animate");\r
- init($animate, "animateColor");\r
- init($animate.$animateTransformElement, "animateTransform");\r
- init($animate.$animateTransformElement.$motionElement, "animateMotion");\r
- /*リンクのハッシュ読み取りで、ハイパーリンクのイベント処理\r
- * たとえば、a要素のxlink:href="#hoge"で、<animate id="hoge"のとき、\r
- * animate要素がハイパーリンク作動と同時に動くようになる\r
- * \r
- * ただし、SMIL アニメーションの仕様では、\r
- * animate要素の開始時刻まで、時を進める操作をするだけ*/\r
- svgDoc.defaultView.addEventListener("hashchange", function() {\r
- var hash = svgDoc.defaultView.location.hash.slice(1);\r
- svgDoc.getElementById(hash).beginElement();\r
- });\r
-\r
- function init (obj, name) {\r
- var eles = svgDoc.getElementsByTagNameNS(svgns, name)\r
- for (var i=0;i<eles.length;++i) {\r
- obj.up().init(eles.item(i));\r
- }\r
- eles = obj = void 0;\r
- };\r
- };\r
-}\r
+ window.addEventListener && window.addEventListener("load", getDocument);\r
\r
-window.addEventListener && window.addEventListener("load", getDocument);\r
-\r
-function __step() {\r
-/*EdgeはhasFeatureメソッドでtrueを返す*/\r
-if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation", "1.1")\r
- || (window.navigator.userAgent.toLowerCase().indexOf("edge") > 0)) {\r
- if (window.requestAnimationFrame && requestAnimationFrame) {\r
- /*IE11やEdgeなどSMILアニメーションに対応していないブラウザ用*/\r
- /*cancelはアニメーションの中止ハンドル*/\r
- var cancel = {\r
- handle: null\r
- };\r
- (function(frame) {\r
- var _cancel = cancel; /*cancelのエイリアス*/\r
- var step = function () {\r
- if (!this.isPaused) {\r
- frame++;\r
- try {\r
- this.setFrame(frame);\r
- } catch(e) {\r
- }\r
+ this.step = __step;\r
+ function __step() {\r
+ /*EdgeはhasFeatureメソッドでtrueを返す*/\r
+ if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation", "1.1")\r
+ || (window.navigator.userAgent.toLowerCase().indexOf("edge") > 0)) {\r
+ if (window.requestAnimationFrame && requestAnimationFrame) {\r
+ /*IE11やEdgeなどSMILアニメーションに対応していないブラウザ用*/\r
+ /*cancelはアニメーションの中止ハンドル*/\r
+ var cancel = {\r
+ handle: null\r
+ };\r
+ (function(frame) {\r
+ var _cancel = cancel; /*cancelのエイリアス*/\r
+ var step = function () {\r
+ if (!this.isPaused) {\r
+ frame++;\r
+ try {\r
+ this.initialize();\r
+ this.setFrame(frame);\r
+ } catch(e) {\r
+ }\r
+ _cancel.handle = requestAnimationFrame(step);\r
+ }\r
+ }.bind(base("$frame"));\r
_cancel.handle = requestAnimationFrame(step);\r
- }\r
- }.bind(base("$frame"));\r
- _cancel.handle = requestAnimationFrame(step);\r
- })(-1);\r
- return cancel;\r
- } else {\r
- setInterval( (function(frame) {\r
- var $f = base("$frame");\r
- return function () {\r
- frame++;\r
- $f.setFrame(frame);\r
- };\r
- })(-1), 1 );\r
+ })(-1);\r
+ return cancel;\r
+ } else {\r
+ setInterval( (function(frame) {\r
+ var $f = base("$frame");\r
+ return function () {\r
+ frame++;\r
+ $f.initialize();\r
+ $f.setFrame(frame);\r
+ };\r
+ })(-1), 1 );\r
+ }\r
+ }\r
}\r
-}\r
-}\r
+} );\r
//#endif // _SMIL_IDL_\r
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-function getDocument(){function t(t){function e(e,n){for(var r=t.getElementsByTagNameNS(i,n),s=0;s<r.length;++s)e.up().init(r.item(s));r=e=void 0}var n=base("$calcMode").$attribute.$setElement,r=n.$animateElement;e(n,"set"),e(r,"animate"),e(r,"animateColor"),e(r.$animateTransformElement,"animateTransform"),e(r.$animateTransformElement.$motionElement,"animateMotion"),t.defaultView.addEventListener("hashchange",function(){var e=t.defaultView.location.hash.slice(1);t.getElementById(e).beginElement()})}var e=document.getElementsByTagName("object"),i="http://www.w3.org/2000/svg";if(e)for(var n=0;n<e.length;++n)t(e[n].getSVGDocument());t(document);var r=__step(),s=function(){window.cancelAnimationFrame&&cancelAnimationFrame(r)};base("$frame").on("pauseAnimation",s),window.addEventListener("unload",s)}function __step(){if(!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation","1.1")||window.navigator.userAgent.toLowerCase().indexOf("edge")>0){if(window.requestAnimationFrame&&requestAnimationFrame){var t={handle:null};return function(e){var i=t,n=function(){if(!this.isPaused){e++;try{this.setFrame(e)}catch(t){}i.handle=requestAnimationFrame(n)}}.bind(base("$frame"));i.handle=requestAnimationFrame(n)}(-1),t}setInterval(function(t){var e=base("$frame");return function(){t++,e.setFrame(t)}}(-1),1)}}!function(){var t={obj:{up:function(t){var e=Object.create(this);return t?(this[t]=e,e.up=this.up):this.$1=e,e},mix:function(e){if(!e)throw new Error("No arguments error");if("function"!=typeof e){var i=t.__ng_;for(var n in e)i[n]||(this[n]=e[n]);n=i=void 0}else e.call(this,this);return this},on:function(t,e){if(!t)throw new Error("No arguments error");if(/^(?:up|on|mix|of)$/.test(t))throw new Error("Invalid method name error");if("function"!=typeof e)throw new Error("Not support arguments type");var i=this._eventList__,n=this[t];if(this._eventList__){if(!this.hasOwnProperty("_eventList__")){var r=[];r._parent=i,i=this._eventList__=r,r=void 0}}else i=this._eventList__=[];return this[t]&&n.isOn||("function"==typeof n&&(i.push({name:t,func:n}),i._parent=null),this[t]=function(){var e,i=this._eventList__,n=t,r=null,s=null,a=!1;for(i._child=null;e=i._parent;)e._child=i,i=e;for(;i;){for(var l=0,h=i.length;h>l;++l)i[l].name===n&&(r=i[l].func.apply(this,arguments),a||(s=r,a=!0));i=i._child}return i=r=n=a=void 0,s},this[t].isOn=!0),i.push({name:t,func:e}),i=n=e=void 0,this},__args:null,__app:null,of:function(t){if(!t)throw new Error("No arguments error");if(this.hasOwnProperty("__of"))throw new Error("Reset error");var e=this.__args||[];for(var i in t)t.hasOwnProperty(i)&&"call"!==i&&(e[i]||e.push(i),e[i]=this[i]=t[i]);return t.call&&(this.__app={call:t.call}),this.__args=e,this.__of=1,e=i=t=void 0,this},call:function(){if(!this.__app)return this;var t=this.__args,i=this.call;this.call=e;for(var n=0,r=t.length;r>n;++n){var s=t[n],a=this[s];a&&a.call&&(this[s]=a.call(this))}return this.call=i,t=s=a=i=void 0,this.__app.call.apply(this,arguments)}}},e=function(){return this},i={};base=function(e){var n=t,r=i;if(e){if(r[e])return r[e];var s=Object.create(n.obj);return this[e]=r[e]=s,s[e]=s,s}throw new Error("No arguments error")};var n={},r=Object.prototype;for(var s in r)n[s]=!0,i[s]=null;n.constructor=!1,t.__ng_=n,n=r=void 0,base.free=function(){delete t.obj,t=i=e=void 0},Object.create||(Object.create=function(t){var e=function(){};return e.prototype=t,new e})}(),base("$frame").mix({fpms:.024,timelines:[],begin:-Number.MAX_VALUE,activeTime:Number.MAX_VALUE,currentFrame:0,startAnimation:function(){__step()},isPaused:!1,pauseAnimation:function(){this.isPaused=!0},setFrame:function(t){this.currentFrame=t;for(var e=this.timelines,i=0;i<e.length;++i)e[i]!==this&&e[i].setFrame(t)},addLine:function(t){if(!t||!t.begin&&0!==t.begin||!t.activeTime&&0!==t.activeTime)return!1;var e=this.timelines;return e.indexOf(t)>=0&&this.removeLine(t),e.push(t),e=void 0,!0},removeLine:function(t){var e=this.timelines,i=e.indexOf(t);i>-1&&e.splice(i,1),e=i=void 0}}).mix(function(t){t.up("$list").mix({end:0,beginEnd:Number.MAX_VALUE,beginList:{next:null,value:Number.MAX_VALUE},endList:{next:null,value:Number.MAX_VALUE},addBeginList:function(t){return this.beginList={value:t,next:this.beginList}},addEndList:function(t){return this.endList={value:t,next:this.endList}},getMaxList:function(t,e){for(var i=-Number.MAX_VALUE;e;){var n=e.value;t>=n&&n>=i&&(i=n),e=e.next}return i},state:0,WAITING:0,BEGINNING:1,PLAYING:2,ENDING:3,POSTWAITING:4,init:function(){return this.state=this.WAITING,this.begin=0,this},updateState:function(t){if(void 0===t)return this;var e=this.state,i=0,n=1,r=2,s=3,a=4,l=this.getMaxList(t,this.beginList);if(l===-Number.MAX_VALUE)return e>a&&(this.state=n),this;var h=this.getMaxList(t,this.endList),o=e===i,u=this.begin;if(!l&&o)this.begin=0,this.state=n;else if(o||e===a)l>u&&(this.state=n,this.begin=l);else if(e===n)h>=u?(this.state=s,h>0&&(this.end=h),this.beginEnd=0):this.state=r;else if(e===r){var m=u+this.activeTime;h=h>m?m:h,(t>=m||h>=u||l>u)&&(this.state=s,h>0&&(this.end=h,this.beginEnd=h-u))}else e===s?l>u?(this.state=n,this.begin=l):this.state=a:this.state=n;return u=l=h=o=e=void 0,this},_beginListenerList:[],_endListenerList:[],_playListenerList:[],addEvent:function(t,e){var i="_"+t+"ListenerList";this.hasOwnProperty(i)||(this[i]=[]),this[i].push(e)},setFrame:function(t){this.currentFrame=t;var e=this.updateState(t).state;if(2===e)for(var i=this._playListenerList,n=0;n<i.length;++n)i[n](this);else if(1===e){i=this._beginListenerList;for(var n=0;n<i.length;++n)i[n](this);e=this.updateState(t).state}if(3===e){i=this._endListenerList;for(var n=0;n<i.length;++n)i[n](this);1===this.updateState(t).state&&this.updateState(t)}e=i=void 0}}).mix(function(){this.addList=this.addBeginList}),t.up("$begin").mix({string:"",isResolved:!1,eventTarget:document.documentElement,currentFrame:0,eventOffset:0,repeat:0,accessKey:"",trim:function(t){return t.replace(/[\s\n]+/g,"")},offset:function(t){function e(){return r(1e3,/[\d.]+s$/,/[\d.]+$/)}function i(){return r(6e4,/[\d.]+min$/,/\d\d:[^:]+$/)}function n(){return r(36e5,/\d+:\d\d:/,/[\d.]+h$/)}function r(e,i,n){return e*(a(t.match(i)||"0")||a(t.match(n)||"0"))}t=t||"0";var s=t.charAt(0),a=parseFloat,l=a(t.match(/[\d.]+ms$/)||"0")+e()+i()+n();return"-"===s&&(l*=-1),s=a=e=i=n=void 0,l},event:function(t){if(t=t||"",/[\+\-]/.test(t)&&(t=t.slice(0,t.search(/[\+\-]/))),t.indexOf(".")>-1){var e=t.split(".");return{id:e[1]&&e[0],event:e[0]&&e[1]}}return{id:"",event:t}},_parse:function(t){var e,i=t.search(/[\+\-]/),n=null;this.$list.addEndList(Number.MAX_VALUE);if("indefinite"===t?this.begin=Number.MAX_VALUE:i>0?(this.begin=this.offset(t.slice(i)),n=this.event(t)):/[^\+\-\d]/.test(t.charAt(0))?n=this.event(t):(this.begin=this.offset(t),this.isResolved=!0),this.repeat=/repeat\((\d+)\)/.test(t)?+RegExp.$1:0,this.accessKey=/accessKey\(([^\)]+?)\)/.test(t)?RegExp.$1:"",this.begin=Math.floor(this.begin*this.fpms),"indefinite"===t);else if(n){e=n.id?this.eventTarget.ownerDocument.getElementById(n.id):this.eventTarget;var r=this.begin,a=this.$list.addList(Number.MAX_VALUE),l=function(t){a.value=this.begin=r+base("$frame").currentFrame,this.isResolved=!0};if(this.eventOffset=r,this.repeat>0)e&&e.addEventListener("repeatEvent",function(t){t.detail===this.repeat&&l.call(this,t)}.bind(this),!0);else if(this.accessKey)document.documentElement.addEventListener("keydown",function(t){t["char"]===this.accessKey&&l.call(this,t)}.bind(this),!1);else{var h=/^(?:begin|end|repeat)$/.test(n.event)?n.event+"Event":n.event;e&&e.addEventListener(h,l.bind(this),!1)}}else this.$list.addList(this.begin);s=n=t=i=e=void 0},parse:function(){this.begin=0,this.isResolved=!1;var t=this.trim(this.string);if(t.indexOf(";")>-1)for(var e=t.split(";"),i=0;i<e.length;++i)this._parse(e[i]);else this._parse(t);return s=t=void 0,this},updateList:function(){this.$list=this.$list.up();var t=this.$activate=this.$activate.up();return t.end&&(t.end.$list=this.$list),this.activeTime=this.$list.activeTime=t.call()||Number.MAX_VALUE,this.simpleDuration=t.simpleDur,this}}).up("$activate").of({dur:"indefinite",end:t.$begin.up("$end"),repeatCount:null,repeatDur:null,simpleDur:function(){return"indefinite"!==this.dur&&this.dur?Math.floor(this.offset(this.dur)*this.fpms):null},min:"0",max:"indefinite",resolvedTime:function(){return Date.now()},call:function(){function t(){return!!(!a&&!h||r&&!h||s&&!l||r&&s)}var e,i="indefinite",n=this.simpleDur,r=this.repeatCount===i,s=this.repeatDur===i,a=n||0===n,l=this.repeatCount||0===this.repeatCount,h=this.repeatDur||0===this.repeatDur,o=[],u=Math.floor(this.offset(this.min)*this.fpms),m=this.max===i?null:Math.floor(this.offset(this.max)*this.fpms);if(t())return m?m:null;if(a&&this.repeatCount&&!r&&o.push(n*this.repeatCount),h&&!s&&o.push(Math.floor(this.offset(this.repeatDur)*this.fpms)),!a||l||h||o.push(n),i=n=r=isIndefRepeatDurindef=a=isEnd=h=l=t=void 0,1===o.length)e=o[0];else{if(!(o.length>1))return null;e=Math.min.apply(Math,o)}return m&&u>m?e:(u&&u>e&&(e=u),m&&e>m&&(e=m),e)}}),t.$begin.$end.of({call:function(){return this.string?(this.$list.addList=this.$list.addEndList,this.parse(this.string),this.$list.addList=this.$list.addBeginList,this.isResolved?this.begin:"indefinite"):null}}).mix({$list:t.$begin.$list.up()})}),base("$from").of({string:"",numList:function(){var t=this.string.match(/[\-\+]?[\d\.]+(?:[eE][\-\+]?[\d\.]+)?/g)||[];if(t)for(var e=0;e<t.length;++e)t[e]=parseFloat(t[e]);return t},strList:function(){return this.string.replace(/\d[eE][\-\+\d]/g,"").match(/[^\d\-\+\.]+/g)},from:base("$from").up().mix({from:null}),call:function(){if(this.numList.string=this.string,this.numList.length&&0===this.additive[0]&&0===this.accumulate[0]){for(var t=[],e=[],i=0;i<this.numList.length;++i)t[i]=e[i]=0;this.additive=t,this.accumulate=e}if(!this.string||!this.numList.length||!this.strList)return this.numList;var n=this.numList.length<this.strList.length;return/^[\-\+]?[\d\.]/.test(this.string)&&!n&&this.strList.unshift(""),/\d$/.test(this.string)&&!n&&this.strList.push(""),this.numList}}).mix({degit:0,additive:[0],accumulate:[0],advance:function(t){if(0>t||t>1)throw new Error("An Invalid Number Error");if(!this.string)return"";if(!this.from.length)return 1===t?this.string.trim():this.from.string.trim();for(var e="",i=this.numList,n=this.strList,r=this.from,s=this.degit,a=this.additive,l=this.accumulate,h=0,o=i.length;o>h;++h)e+=(t*i[h]+(1-t)*r[h]+a[h]+l[h]).toFixed(s),n&&(e+=n[h+1]);return e=(n?n[0]:"")+e,i=n=r=h=o=s=a=l=void 0,e.trim()},distance:function(t){if(!t)return 0;var e=this.call(),i=t.call?t.call():t,n=0;if(!e||!i)return 0;for(var r=0,s=e.length;s>r;++r)n+=(e[r]-i[r])*(e[r]-i[r]);return Math.sqrt(n)},setAdditive:function(t){if(!t)return 0;var e=this.$from.up();return e.string=t,this.additive=e.call()},setAccumulate:function(t){return!t||isNaN(t)?0:this.accumulate=this.numList.map(function(e){return e*t})}}).up("$to").from=null,base("$calcMode").mix({mode:"linear",keyTime:1,keySplines:null,_f:function(t){var e=this.keyTime;if(0===e&&t)t=0;else{if(!e||!isFinite(e))return this.string;t/=e,t=t>1?Math.floor(t):t}return e=void 0,isNaN(t)?this.string:this.to.advance(t)},funcForDiscrete:function(t){return isNaN(t)?this.string:1===t?this.to.string:this.to.advance(0)}}).of({norm:1,string:"",call:function(){var t=this._f.bind(this);if("linear"===this.mode)return this.to.call(),t;if("paced"===this.mode)return this.keyTime=this.to.distance(this.to.from)/this.norm,t;if("spline"===this.mode){var e=this.keySplines,i=function(t){return Math.PI};if(i.isNotAnimate=!0,!e)return i;for(var n=0,r=NaN;n<e.length;++n){if(r=e[n],isNaN(r))return i;if(0>r||r>1)return i}this.to.call();var s=e[0],a=e[1],l=e[2],h=e[3],o=1,u=1,m=o-3*(l-s),d=3*(l-2*s),f=3*s,c=u-3*(h-a),g=3*(h-2*a),v=3*a,p=Math.qubicnewton;if(!(0!==s&&1!==s||0!==a||1!==l&&0!==l||1!==h))return this.to.call(),t;var b=this.keyTime;return(b||isFinite(b))&&(m*=b,d*=b,f*=b,c*=b,g*=b,v*=b),b=e=s=a=l=h=o=u=void 0,function(e){var i=p(m,d,f,-e,e);return t(c*i*i*i+g*i*i+v*i)}}return"discrete"===this.mode?(this.to.call(),this.funcForDiscrete.bind(this)):void 0}}).to=base("$from").$to,Math.qubicnewton=function(t,e,i,n,r){var s=1e-15,a=t*r*r*r+e*r*r+i*r+n;if(0===a)return r;for(var l=0;100>l;l=l+1|0){var h=3*t*r*r+2*e*r+i;if(!h||s>a&&a>-s)return a=s=void 0,r;r-=a/h,a=t*r*r*r+e*r*r+i*r+n}return r},base("$calcMode").up("$attribute").mix({element:null,$from:base("$from").up(),attrName:"",attrNameSpace:null,defaultValue:"",isDefault:!1,isCSS:!1,mode:"linear",getAttr:function(t,e){var i=null;t.indexOf("xlink:")>-1&&(i="http://www.w3.org/1999/xlink");var n=this._ele.getAttributeNS(i,t);if(this.element){var r=this.element.ownerDocument.defaultView;if("inherit"===n)return r.getComputedStyle(this.element.parentNode,"").getPropertyValue(this.attrName);if("currentColor"===n)return r.getComputedStyle(this._ele,"").getPropertyValue("color")}return n||e},_ele:document.documentElement,hasAttrValues:function(){var t=this._ele;return t?t.hasAttribute("from")||t.hasAttribute("to")||t.hasAttribute("by")||t.hasAttribute("values"):!1},__cacheAttr:"",setAttribute:function(t){var e=this.attrName;if(e&&this.__cacheAttr!==t){this.__cacheAttr=t;var i=this.element;this.isCSS?i.style.setProperty(e,t,""):i.setAttributeNS(this.attrNameSpace,e,t),t=e=i=void 0}},removeAttribute:function(){var t=this.attrName;if(t){var e=this.element;this.isDefault?this.setAttribute(this.defaultValue):(e.removeAttributeNS(this.attrNameSpace,t),this.isCSS&&e.style.setProperty(t,this.defaultValue,"")),this.__cacheAttr="",value=t=e=void 0}},initTargetElement:function(){var t=this._ele,e=t.parentNode||null,i=t.getAttribute("xlink:href");return i?t.ownerDocument.getElementById(i.slice(1)):(i=t.getAttributeNS(null,"targetElement"))?t.ownerDocument.getElementById(i):e},_repeatList:[],_repeatCount:0,setSmilEvent:function(t){t.addEvent("begin",function(t){var e=this._ele,i=0,n=e.ownerDocument.createEvent("MouseEvents");n.initMouseEvent("beginEvent",!0,!0,window,i,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(n);var r=this._repeatList=[],s=t.activeTime,a=t.begin,l=this.timeline.simpleDuration;if(l&&l!==s&&s!==Number.MAX_VALUE)for(var h=l,o=1;s>h;h+=l)r.push({frame:a+h,count:o}),++o}.bind(this)),t.addEvent("play",function(t){var e=this._ele,i=0,n=t.currentFrame,r=this._repeatList;if(r.length)for(var s=0;s<r.length;++s){if(this._repaetCount>=s+1||r[s].frame>=n){this._repeatCount=i;break}i=r[s].count;var a=e.ownerDocument.createEvent("MouseEvents");a.initMouseEvent("repeatEvent",!0,!0,window,i,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(a)}}.bind(this)),t.addEvent("end",function(){var t=this._ele,e=0,i=t.ownerDocument.createEvent("MouseEvents");i.initMouseEvent("endEvent",!0,!0,window,e,0,0,0,0,!1,!1,!1,!1,0,t),t.dispatchEvent(i)}.bind(this))},push:function(t){if(!t||!t.hasAttribute)return null;if(this.__cacheAttr="",this._ele=t,this.element=this.initTargetElement(),!this.hasAttrValues())return null;this.attrName=this.getAttr("attributeName","");var e=this.attrName,i=this.getAttr("attributeType","auto"),n=this.element&&this.element.ownerDocument.defaultView.getComputedStyle(this.element,"");("CSS"===i||"auto"===i&&this.element&&n.getPropertyValue(e)&&!/^(width|height|transform)$/.test(e))&&(this.isCSS=!0),e.indexOf("xlink")>-1&&(this.attrNameSpace="http://www.w3.org/1999/xlink");var r=this.element;r&&(this._ele=r,this.isDefault=r.hasAttributeNS(this.attrNameSpace,e),this.defaultValue=this.getAttr(e,n.getPropertyValue(e)),this._ele=t);var s=base("$frame"),a=s.$begin,l=a.up().mix({target:t,eventTarget:this.element||a.eventTarget,string:this.getAttr("begin","0"),$activate:a.$activate.up().mix({dur:this.getAttr("dur",null),end:a.$end.up().mix({eventTarget:this.element||a.eventTarget,string:this.getAttr("end",null)}),repeatCount:this.getAttr("repeatCount",null),repeatDur:this.getAttr("repeatDur",null),min:this.getAttr("min","0"),max:this.getAttr("max","indefinite")})}).updateList().parse();s.addLine(l.$list.init());var h=l.$list.addList(Number.MAX_VALUE),o=l.$list.addEndList(Number.MAX_VALUE);t.beginElement="indefinite"!==l.string?function(){}:function(){h.value=l.begin=base("$frame").currentFrame,l.isResolved=!0;var t=this.ownerDocument.createEvent("MouseEvents");t.initMouseEvent("beginEvent",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,this),this.dispatchEvent(t)};var u=l.$activate.end||{};return t.endElement="indefinite"!==u.string?function(){}:function(){if(l.isResolved){u.isResolved=!0,o.value=base("$frame").currentFrame;var t=this.ownerDocument.createEvent("MouseEvents");t.initMouseEvent("endEvent",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,this),this.dispatchEvent(t)}},l.timelines=[],this.setSmilEvent(l.$list),a=t=void 0,l},setValues:function(t,e,i,n){var r=this.$from,s=[this.up().mix({to:r.up().mix({from:r.up()})})],a=s[0].to;if(t=t&&t.split(";"),t&&t.length){s=[];for(var l=1;l<t.length;++l)s.push(this.up().mix({to:r.up().mix({from:r.up()})})),a=s[s.length-1].to,a.string=t[l],a.from.string=t[l-1]}else if(i)a.string=i,a.from.string=e||"0";else{if(!n)return null;a.string=n,a.from.string=e||"0";for(var h=a.call(),o=a.from,l=0;l<h.length;++l)h[l]+=o[l]}return r=a=h=o=void 0,s},setKey:function(t){this._ele=t;var e,i,n=this.setValues(this.getAttr("values",null),this.getAttr("from",null),this.getAttr("to",null),this.getAttr("by",null)),r=this.getAttr("keyTimes",null),s=this.getAttr("keySplines",null),a=s&&s.split(";"),l="discrete"===this.mode;if(!l&&r&&n){if(e=this.$from.numList.call({string:r}),e.length&&0!==e[0])return null;if(e.length&&e.length!==n.length+1)return null;for(var h=0;h<n.length;++h)n[h].keyTime=e[h+1]-e[h],a&&(i=this.$from.numList.call({string:a[h]}),n[h].keySplines=i.length?i:null)}else if(!l&&n)for(var o=1/n.length,h=0;h<n.length;++h)n[h].keyTime=o,a&&(i=this.$from.numList.call({string:a[h]}),n[h].keySplines=i.length?i:null);else if(n){if(r){if(e=this.$from.numList.call({string:r}),e.length&&0!==e[0])return null;if(e.length&&e.length!==n.length+1)return null;for(var h=0;h<n.length;++h)n[h].keyTime=e[h+1]-e[h]}else for(var o=1/(n.length+1),h=0;h<n.length;++h)n[h].keyTime=o;n.push(n[n.length-1].up().mix(function(){e&&(this.keyTime=1-e[e.length-1])}).of({call:function(){return function(t){return isNaN(t)?this.string:this.to.advance(1)}.bind(this)}}))}if("paced"===this.mode){var u=0;n.forEach(function(t){u+=t.to.distance(t.to.from)}),n.forEach(function(t){t.norm=u})}return t=r=e=o=a=void 0,n}}).up("$setElement").mix({to:"",_setFrame:function(t){this.setAttribute(this.to)},timeline:base("$frame").$begin,_setEndFrame:function(t){"remove"===this.fill&&this.removeAttribute()},tocall:function(){},init:function(t){var e=this.push(t);t&&t.getAttributeNS&&(this._ele=t,this.to=this.getAttr("to",""),this.fill=this.getAttr("fill","remove"));var i=this.element;e&&i&&(this.timeline=e,e.$list.addEvent("begin",this._setFrame.bind(this)),e.$list.addEvent("play",this._setFrame.bind(this)),e.$list.addEvent("end",this._setEndFrame.bind(this)),e.$list.state=e.$list.WAITING),e=i=void 0}}).up("$animateElement").mix({funcs:[],tocall:function(t){var e=this.funcs;if("discrete"===this.mode){for(var i="",n=0;n<e.length;++n){var r=e[n];t>=r.startKeyTime&&(i=r(t))}return t=e=r=void 0,i}for(var n=0;n<e.length;++n){var r=e[n];if(r.endKeyTime>=t)return r(t-r.startKeyTime)}return e=n=r=void 0,""},_setFrame:function(t){var e=t.currentFrame,i=this.timeline,n=i.simpleDuration,r=n?(e-t.begin)%n/n:0;this.setAttribute(this.tocall(r)),i=n=r=void 0},getAdvanceEnd:function(t){var e=this.timeline,i=e.simpleDuration;if(i){var n=e.activeTime>t.beginEnd?t.beginEnd:e.activeTime,r=n%i/i;r=r>1?1:r,r=r||1}else r=0;return r},_setEndFrame:function(t){"freeze"===this.fill?(this.setAttribute(this.tocall(this.getAdvanceEnd(t))),line=duration=advance=void 0):this.removeAttribute()},getAttr:function(t,e){var i=this.$attribute.getAttr.apply(this,arguments);return"from"===t&&!i&&this.defaultValue?this.defaultValue:i},_keywords:{aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagree:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},setAdd:function(t,e){if("sum"===t.getAttributeNS(null,"additive")){var i=t.parentNode.getAttributeNS(null,this.attrName);t.addEventListener("beginEvent",function(t){e.forEach(function(t){t.to.setAdditive(i)})},!1)}},setAccum:function(t,e){"sum"===t.getAttributeNS(null,"accumulate")&&t.addEventListener("repeatEvent",function(t){e.forEach(function(e){e.to.call(),e.to.setAccumulate(t.detail)})},!1)},setString:function(){/^(?:display|class|edgeMode|(gradient|marker|pattern|maskContent|mask|patternContent|primitive)Units|in|in2|method|mode|operator|preserveAspectRatio|result|spacing|spreadMethod|stitchTiles|target|type|xlink:href|yChannelSelector|color-interpolation|(clip|fill)-rule|cursor|filter|font-(family|stretch|style|variant)|image-rendering|marker-(end|mid|start)|mask|overflow|pointer-events|shape-rendering|stroke-(linecap|linejoin)|text-(anchor|decoration|rendering)|visibility)$/.test(this.attrName)&&(this.mode="discrete")},degits:1,setValues:function(){var t=this.$attribute.setValues.apply(this,arguments),e=this.degits;return t&&t.forEach(function(t){t.to.degit=e}),e=void 0,t},toRGB:function(t){var e=this._keywords[t];if(e)return"rgb("+e.join(", ")+")";if(t&&"#"===t[0]){var i="rgb(",n=parseInt;if(t.length<5)var r=t[1],s=t[2],a=t[3],t="#"+r+r+s+s+a+a;return t.match(/\#(\w{2})(\w{2})(\w{2})/),i+=n(RegExp.$1,16)+", "+n(RegExp.$2,16)+", "+n(RegExp.$3,16)+")",r=s=a=void 0,i}return t}}).on("init",function(t){var e,i=0,n=function(t){return t},r=/^(?:fill|stroke|stop-color|color)$/.test(this.attrName);r&&(this.degits=0,n=this.toRGB.bind(this)),t&&(this.mode=t.getAttributeNS(null,"calcMode")||"linear",this.setString(),e=this.setKey(t)),e&&(this.funcs=e.map(function(t){t.to.string=n(t.to.string),t.to.from.string=n(t.to.from.string);var e=t.call();return e.startKeyTime=i,i=e.endKeyTime=i+t.keyTime,e}).filter(function(t){return this.timeline.isResolved?"spline"!==this.mode||!t.isNotAnimate:!0},this),this.setAdd(t,e),this.setAccum(t,e)),keywords=n=r=void 0}).up("$animateTransformElement").mix({numberOfList:-1,type:"translate",attrName:"transform",isCSS:!1,isSum:!1,degits:15,joinList:function(t){for(var e=this.element.__transformList,i=0;i<e.length;++i){var n=e[i],r=n.value;n.isSum?t+=" "+r:n.isPlaying&&(t=r)}return t.trim()},tocall:function(t){if(this.numberOfList<0)throw new Error("Number of The List Error");var e=this.element.__transformList[this.numberOfList];return e.value=this.type+"("+this.$animateElement.tocall.call(this,t)+")",e.isPlaying=!0,e.isSum=this.isSum,this.joinList(this.defaultValue||"")},__setAttribute:function(){},_setFrame:function(t){var e=(t.currentFrame,this.element.__transformList),i=!1,n=e.length;if(1!==n&&this.numberOfList<n-1)for(var r=this.numberOfList+1;n>r;++r)e[r].isPlaying&&(i=!0);this.setAttribute=i?this.__setAttribute:this.$animateElement.setAttribute,this.$animateElement._setFrame.call(this,t)},_setEndFrame:function(t){var e=this.element.__transformList;if(e){var i=e[this.numberOfList];if("remove"===this.fill){if(!i)return;this.isSum?i.value="translate(0)":i.isPlaying=!1}else i.value=this.type+"("+this.$animateElement.tocall.call(this,this.getAdvanceEnd(t))+")";this.setAttribute(this.joinList(this.defaultValue||"")),i=void 0}},setAdd:function(){}}).on("init",function(t){if(t&&t.parentNode){this.getAttr=this.$attribute.getAttr,this.type=this.getAttr("type","translate"),this.attrName="transform";var e=this.element;this.isDefault=e.hasAttributeNS(null,"transform"),this.defaultValue=e.getAttributeNS(null,"transform")||"",this.isSum="sum"===this.getAttr("additive","replace"),e.__transformList||(e.__transformList=[],this.numberOfList=-1),this.hasAttrValues()&&this.numberOfList<0&&(this.numberOfList=e.__transformList.length,e.__transformList.push({isPlaying:!1,value:"translate(0)",isSum:this.isSum}))}}).up("$motionElement").mix(function(){this._setFrame=this.$animateElement._setFrame,this._setEndFrame=this.$animateElement._setEndFrame}).mix({numberOfList:-1,mode:"paced",hasAttrValues:function(){return this.$attribute.hasAttrValues.call(this)?!0:this._ele.hasAttribute("path")||this._ele.getElementsByTagNameNS(this.path.namespaceURI,"mpath").length},path:document.createElementNS("http://www.w3.org/2000/svg","path"),rotate:"0",tocall:function(t){return("translate("+this.$animateElement.tocall.call(this,t)+") "+this.joinList(this.defaultValue||"")).trim()},getRotate:function(t,e,i){var n=t.getPathSegAtLength(e),r=t.pathSegList.getItem(n),s=r.pathSegTypeAsLetter,a=Math.PI;if("M"===s){var l=t.pathSegList.getItem(n+1),h=l.pathSegTypeAsLetter;if("M"===h)return"";if("L"===h)return") rotate("+(Math.atan2(l.y-r.y,l.x-r.x)/a*180+i);if("C"===h)return") rotate("+(Math.atan2(l.y1-r.y,l.x1-r.x)/a*180+i)}else{if("L"===s&&n-1>=0){var o=t.pathSegList.getItem(n-1);return") rotate("+(Math.atan2(r.y-o.y,r.x-o.x)/a*180+i)}if("C"===s){var u=t.getPointAtLength(e),m=u.x,d=u.y;return u=t.getPointAtLength(e+1),") rotate("+(Math.atan2(u.y-d,u.x-m)/a*180+i)}}},_tocallForPath:function(t){var e=this.path,i=t*e.getTotalLength(),n=e.getPointAtLength(i),r=0;return"0"===this.rotate?n.x+","+n.y:(r="auto"===this.rotate?0:"auto-reverse"===this.rotate?180:+this.rotate,n.x+","+n.y+this.getRotate(e,i,r))}}).on("init",function(t){if(t&&t.parentNode){this.type="translate",this.isSum=!0,this.mode=this.getAttr("mode","paced"),this.rotate=this.getAttr("rotate","0"),this.path=this.path.cloneNode(!0);var e=t.getElementsByTagNameNS(this.path.namespaceURI,"mpath"),i=this.$animateElement;if(e.length){var n=t.ownerDocument.getElementById(e[0].getAttributeNS("http://www.w3.org/1999/xlink","href").slice(1));n&&this.path.setAttributeNS(null,"d",n.getAttributeNS(null,"d")),this.$animateElement=i.up().mix({tocall:this._tocallForPath})}else t.hasAttributeNS(null,"path")&&(this.path.setAttributeNS(null,"d",t.getAttributeNS(null,"path")),this.$animateElement=i.up().mix({tocall:this._tocallForPath}))}}),window.addEventListener&&window.addEventListener("load",getDocument);
\ No newline at end of file
+!function(){var t={obj:{up:function(t){var e=Object.create(this);return t?(this[t]=e,e.up=this.up):this.$1=e,e},mix:function(e){if(!e)throw new Error("No arguments error");if("function"!=typeof e){var i=t.__ng_;for(var n in e)i[n]||(this[n]=e[n]);n=i=void 0}else e.call(this,this);return this},on:function(t,e){if(!t)throw new Error("No arguments error");if(/^(?:up|on|mix|of)$/.test(t))throw new Error("Invalid method name error");if("function"!=typeof e)throw new Error("Not support arguments type");var i=this._eventList__,n=this[t];if(this._eventList__){if(!this.hasOwnProperty("_eventList__")){var r=[];r._parent=i,i=this._eventList__=r,r=void 0}}else i=this._eventList__=[];return this[t]&&n.isOn||("function"==typeof n&&(i.push({name:t,func:n}),i._parent=null),this[t]=function(){var e,i=this._eventList__,n=t,r=null,s=null,a=!1;for(i._child=null;e=i._parent;)e._child=i,i=e;for(;i;){for(var l=0,h=i.length;h>l;++l)i[l].name===n&&(r=i[l].func.apply(this,arguments),a||(s=r,a=!0));i=i._child}return i=r=n=a=void 0,s},this[t].isOn=!0),i.push({name:t,func:e}),i=n=e=void 0,this},__args:null,__app:null,of:function(t){if(!t)throw new Error("No arguments error");if(this.hasOwnProperty("__of"))throw new Error("Reset error");var e=this.__args||[];for(var i in t)t.hasOwnProperty(i)&&"call"!==i&&(e[i]||e.push(i),e[i]=this[i]=t[i]);return t.call&&(this.__app={call:t.call}),this.__args=e,this.__of=1,e=i=t=void 0,this},call:function(){if(!this.__app)return this;var t=this.__args,i=this.call;this.call=e;for(var n=0,r=t.length;r>n;++n){var s=t[n],a=this[s];a&&a.call&&(this[s]=a.call(this))}return this.call=i,t=s=a=i=void 0,this.__app.call.apply(this,arguments)}}},e=function(){return this},i={};base=function(e){var n=t,r=i;if(e){if(r[e])return r[e];var s=Object.create(n.obj);return this[e]=r[e]=s,s[e]=s,s}throw new Error("No arguments error")};var n={},r=Object.prototype;for(var s in r)n[s]=!0,i[s]=null;n.constructor=!1,t.__ng_=n,n=r=void 0,base.free=function(){delete t.obj,t=i=e=void 0},Object.create||(Object.create=function(t){var e=function(){};return e.prototype=t,new e})}(),base("$frame").mix({fpms:.024,timelines:[],begin:-Number.MAX_VALUE,activeTime:Number.MAX_VALUE,currentFrame:0,startAnimation:function(){base("$getDocument").step()},isPaused:!1,pauseAnimation:function(){this.isPaused=!0},objList:[],initialize:function(){for(var t=this.objList,e=0;e<t.length;++e)t[e].initialize()},setFrame:function(t){this.currentFrame=t;for(var e=this.timelines,i=0;i<e.length;++i)e[i]!==this&&e[i].setFrame(t)},addLine:function(t){if(!t||!t.begin&&0!==t.begin||!t.activeTime&&0!==t.activeTime)return!1;var e=this.timelines;return e.indexOf(t)>=0&&this.removeLine(t),e.push(t),e=void 0,!0},removeLine:function(t){var e=this.timelines,i=e.indexOf(t);i>-1&&e.splice(i,1),e=i=void 0}}).mix(function(t){t.up("$list").mix({end:0,beginEnd:Number.MAX_VALUE,beginList:{next:null,value:Number.MAX_VALUE},endList:{next:null,value:Number.MAX_VALUE},addBeginList:function(t){return this.beginList={value:t,next:this.beginList}},addEndList:function(t){return this.endList={value:t,next:this.endList}},getMaxList:function(t,e){for(var i=-Number.MAX_VALUE;e;){var n=e.value;t>=n&&n>=i&&(i=n),e=e.next}return i},state:0,WAITING:0,BEGINNING:1,PLAYING:2,ENDING:3,POSTWAITING:4,init:function(){return this.state=this.WAITING,this.begin=0,this},updateState:function(t){if(void 0===t)return this;var e=this.state,i=0,n=1,r=2,s=3,a=4,l=this.getMaxList(t,this.beginList);if(l===-Number.MAX_VALUE)return e>a&&(this.state=n),this;var h=this.getMaxList(t,this.endList),u=e===i,o=this.begin;if(!l&&u)this.begin=0,this.state=n;else if(u||e===a)l>o&&(this.state=n,this.begin=l);else if(e===n)h>=o?(this.state=s,h>0&&(this.end=h),this.beginEnd=0):this.state=r;else if(e===r){var m=o+this.activeTime;h=h>m?m:h,(t>=m||h>=o||l>o)&&(this.state=s,h>0&&(this.end=h,this.beginEnd=h-o))}else e===s?l>o?(this.state=n,this.begin=l):this.state=a:this.state=n;return o=l=h=u=e=void 0,this},_beginListenerList:[],_endListenerList:[],_playListenerList:[],addEvent:function(t,e){var i="_"+t+"ListenerList";this.hasOwnProperty(i)||(this[i]=[]),this[i].push(e)},setFrame:function(t){this.currentFrame=t;var e=this.updateState(t).state;if(2===e)for(var i=this._playListenerList,n=0;n<i.length;++n)i[n](this);else if(1===e){i=this._beginListenerList;for(var n=0;n<i.length;++n)i[n](this);e=this.updateState(t).state}if(3===e){i=this._endListenerList;for(var n=0;n<i.length;++n)i[n](this);1===this.updateState(t).state&&this.updateState(t)}e=i=void 0}}).mix(function(){this.addList=this.addBeginList}),t.up("$begin").mix({string:"",isResolved:!1,eventTarget:document.documentElement,currentFrame:0,eventOffset:0,repeat:0,accessKey:"",trim:function(t){return t.replace(/[\s\n]+/g,"")},offset:function(t){function e(){return r(1e3,/[\d.]+s$/,/[\d.]+$/)}function i(){return r(6e4,/[\d.]+min$/,/\d\d:[^:]+$/)}function n(){return r(36e5,/\d+:\d\d:/,/[\d.]+h$/)}function r(e,i,n){return e*(a(t.match(i)||"0")||a(t.match(n)||"0"))}t=t||"0";var s=t.charAt(0),a=parseFloat,l=a(t.match(/[\d.]+ms$/)||"0")+e()+i()+n();return"-"===s&&(l*=-1),s=a=e=i=n=void 0,l},event:function(t){if(t=t||"",/[\+\-]/.test(t)&&(t=t.slice(0,t.search(/[\+\-]/))),t.indexOf(".")>-1){var e=t.split(".");return{id:e[1]&&e[0],event:e[0]&&e[1]}}return{id:"",event:t}},_parse:function(t){var e,i=t.search(/[\+\-]/),n=null;this.$list.addEndList(Number.MAX_VALUE);if("indefinite"===t?this.begin=Number.MAX_VALUE:i>0?(this.begin=this.offset(t.slice(i)),n=this.event(t)):/[^\+\-\d]/.test(t.charAt(0))?n=this.event(t):(this.begin=this.offset(t),this.isResolved=!0),this.repeat=/repeat\((\d+)\)/.test(t)?+RegExp.$1:0,this.accessKey=/accessKey\(([^\)]+?)\)/.test(t)?RegExp.$1:"",this.begin=Math.floor(this.begin*this.fpms),"indefinite"===t);else if(n){e=n.id?this.eventTarget.ownerDocument.getElementById(n.id):this.eventTarget;var r=this.begin,a=this.$list.addList(Number.MAX_VALUE),l=function(t){a.value=this.begin=r+base("$frame").currentFrame,this.isResolved=!0};if(this.eventOffset=r,this.repeat>0)e&&e.addEventListener("repeatEvent",function(t){t.detail===this.repeat&&l.call(this,t)}.bind(this),!0);else if(this.accessKey)document.documentElement.addEventListener("keydown",function(t){t["char"]===this.accessKey&&l.call(this,t)}.bind(this),!1);else{var h=/^(?:begin|end|repeat)$/.test(n.event)?n.event+"Event":n.event;e&&e.addEventListener(h,l.bind(this),!1)}}else this.$list.addList(this.begin);s=n=t=i=e=void 0},parse:function(){this.begin=0,this.isResolved=!1;var t=this.trim(this.string);if(t.indexOf(";")>-1)for(var e=t.split(";"),i=0;i<e.length;++i)this._parse(e[i]);else this._parse(t);return s=t=void 0,this},updateList:function(){this.$list=this.$list.up();var t=this.$activate=this.$activate.up();return t.end&&(t.end.$list=this.$list),this.activeTime=this.$list.activeTime=t.call()||Number.MAX_VALUE,this.simpleDuration=t.simpleDur,this}}).up("$activate").of({dur:"indefinite",end:t.$begin.up("$end"),repeatCount:null,repeatDur:null,simpleDur:function(){return"indefinite"!==this.dur&&this.dur?Math.floor(this.offset(this.dur)*this.fpms):null},min:"0",max:"indefinite",resolvedTime:function(){return Date.now()},call:function(){function t(){return!!(!a&&!h||r&&!h||s&&!l||r&&s)}var e,i="indefinite",n=this.simpleDur,r=this.repeatCount===i,s=this.repeatDur===i,a=n||0===n,l=this.repeatCount||0===this.repeatCount,h=this.repeatDur||0===this.repeatDur,u=[],o=Math.floor(this.offset(this.min)*this.fpms),m=this.max===i?null:Math.floor(this.offset(this.max)*this.fpms);if(t())return m?m:null;if(a&&this.repeatCount&&!r&&u.push(n*this.repeatCount),h&&!s&&u.push(Math.floor(this.offset(this.repeatDur)*this.fpms)),!a||l||h||u.push(n),i=n=r=isIndefRepeatDurindef=a=isEnd=h=l=t=void 0,1===u.length)e=u[0];else{if(!(u.length>1))return null;e=Math.min.apply(Math,u)}return m&&o>m?e:(o&&o>e&&(e=o),m&&e>m&&(e=m),e)}}),t.$begin.$end.of({call:function(){return this.string?(this.$list.addList=this.$list.addEndList,this.parse(this.string),this.$list.addList=this.$list.addBeginList,this.isResolved?this.begin:"indefinite"):null}}).mix({$list:t.$begin.$list.up()})}),base("$from").of({string:"",numList:function(){var t=this.string.match(/[\-\+]?[\d\.]+(?:[eE][\-\+]?[\d\.]+)?/g)||[];if(t)for(var e=0;e<t.length;++e)t[e]=parseFloat(t[e]);return t},strList:function(){return this.string.replace(/\d[eE][\-\+\d]/g,"").match(/[^\d\-\+\.]+/g)},from:base("$from").up().mix({from:null}),call:function(){if(this.numList.string=this.string,this.numList.length&&0===this.additive[0]&&0===this.accumulate[0]){for(var t=[],e=[],i=0;i<this.numList.length;++i)t[i]=e[i]=0;this.additive=t,this.accumulate=e}if(!this.string||!this.numList.length||!this.strList)return this.numList;var n=this.numList.length<this.strList.length;return/^[\-\+]?[\d\.]/.test(this.string)&&!n&&this.strList.unshift(""),/\d$/.test(this.string)&&!n&&this.strList.push(""),this.numList}}).mix({degit:0,additive:[0],accumulate:[0],advance:function(t){if(0>t||t>1)throw new Error("An Invalid Number Error");if(!this.string)return"";if(!this.from.length)return 1===t?this.string.trim():this.from.string.trim();for(var e="",i=this.numList,n=this.strList,r=this.from,s=this.degit,a=this.additive,l=this.accumulate,h=0,u=i.length;u>h;++h)e+=(t*i[h]+(1-t)*r[h]+a[h]+l[h]).toFixed(s),n&&(e+=n[h+1]);return e=(n?n[0]:"")+e,i=n=r=h=u=s=a=l=void 0,e.trim()},distance:function(t){if(!t)return 0;var e=this.call(),i=t.call?t.call():t,n=0;if(!e||!i)return 0;for(var r=0,s=e.length;s>r;++r)n+=(e[r]-i[r])*(e[r]-i[r]);return Math.sqrt(n)},setAdditive:function(t){if(!t)return 0;var e=this.$from.up();return e.string=t,this.additive=e.call()},setAccumulate:function(t){return!t||isNaN(t)?0:this.accumulate=this.numList.map(function(e){return e*t})}}).up("$to").from=null,base("$calcMode").mix({mode:"linear",keyTime:1,keySplines:null,_f:function(t){var e=this.keyTime;if(0===e&&t)t=0;else{if(!e||!isFinite(e))return this.string;t/=e,t=t>1?Math.floor(t):t}return e=void 0,isNaN(t)?this.string:this.to.advance(t)},funcForDiscrete:function(t){return isNaN(t)?this.string:1===t?this.to.string:this.to.advance(0)}}).of({norm:1,string:"",call:function(){var t=this._f.bind(this);if("linear"===this.mode)return this.to.call(),t;if("paced"===this.mode)return this.keyTime=this.to.distance(this.to.from)/this.norm,t;if("spline"===this.mode){var e=this.keySplines,i=function(t){return Math.PI};if(i.isNotAnimate=!0,!e)return i;for(var n=0,r=NaN;n<e.length;++n){if(r=e[n],isNaN(r))return i;if(0>r||r>1)return i}this.to.call();var s=e[0],a=e[1],l=e[2],h=e[3],u=1,o=1,m=u-3*(l-s),f=3*(l-2*s),d=3*s,c=o-3*(h-a),g=3*(h-2*a),v=3*a,p=Math.qubicnewton;if(!(0!==s&&1!==s||0!==a||1!==l&&0!==l||1!==h))return this.to.call(),t;var b=this.keyTime;return(b||isFinite(b))&&(m*=b,f*=b,d*=b,c*=b,g*=b,v*=b),b=e=s=a=l=h=u=o=void 0,function(e){var i=p(m,f,d,-e,e);return t(c*i*i*i+g*i*i+v*i)}}return"discrete"===this.mode?(this.to.call(),this.funcForDiscrete.bind(this)):void 0}}).to=base("$from").$to,Math.qubicnewton=function(t,e,i,n,r){var s=1e-15,a=t*r*r*r+e*r*r+i*r+n;if(0===a)return r;for(var l=0;100>l;l=l+1|0){var h=3*t*r*r+2*e*r+i;if(!h||s>a&&a>-s)return a=s=void 0,r;r-=a/h,a=t*r*r*r+e*r*r+i*r+n}return r},base("$calcMode").up("$attribute").mix({element:null,$from:base("$from").up(),attrName:"",attrNameSpace:null,defaultValue:"",isDefault:!1,isCSS:!1,mode:"linear",getAttr:function(t,e){var i=null;t.indexOf("xlink:")>-1&&(i="http://www.w3.org/1999/xlink");var n=this._ele.getAttributeNS(i,t);if(this.element){var r=this.element.ownerDocument.defaultView;if("inherit"===n)return r.getComputedStyle(this.element.parentNode,"").getPropertyValue(this.attrName);if("currentColor"===n)return r.getComputedStyle(this._ele,"").getPropertyValue("color")}return n||e},_ele:document.documentElement,hasAttrValues:function(){var t=this._ele;return t?t.hasAttribute("from")||t.hasAttribute("to")||t.hasAttribute("by")||t.hasAttribute("values"):!1},__cacheAttr:"",setAttribute:function(t){var e=this.attrName;if(e&&this.__cacheAttr!==t){this.__cacheAttr=t;var i=this.element;this.isCSS?i.style.setProperty(e,t,""):i.setAttributeNS(this.attrNameSpace,e,t),t=e=i=void 0}},removeAttribute:function(){var t=this.attrName;if(t){var e=this.element;this.isDefault?this.setAttribute(this.defaultValue):(e.removeAttributeNS(this.attrNameSpace,t),this.isCSS&&e.style.setProperty(t,this.defaultValue,"")),this.__cacheAttr="",value=t=e=void 0}},initTargetElement:function(){var t=this._ele,e=t.parentNode||null,i=t.getAttribute("xlink:href");return i?t.ownerDocument.getElementById(i.slice(1)):(i=t.getAttributeNS(null,"targetElement"))?t.ownerDocument.getElementById(i):e},_repeatList:[],_repeatCount:0,setSmilEvent:function(t){t.addEvent("begin",function(t){var e=this._ele,i=0,n=e.ownerDocument.createEvent("MouseEvents");n.initMouseEvent("beginEvent",!0,!0,window,i,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(n);var r=this._repeatList=[],s=t.activeTime,a=t.begin,l=this.timeline.simpleDuration;if(l&&l!==s&&s!==Number.MAX_VALUE)for(var h=l,u=1;s>h;h+=l)r.push({frame:a+h,count:u}),++u}.bind(this)),t.addEvent("play",function(t){var e=this._ele,i=0,n=t.currentFrame,r=this._repeatList;if(r.length)for(var s=0;s<r.length;++s){if(this._repaetCount>=s+1||r[s].frame>=n){this._repeatCount=i;break}i=r[s].count;var a=e.ownerDocument.createEvent("MouseEvents");a.initMouseEvent("repeatEvent",!0,!0,window,i,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(a)}}.bind(this)),t.addEvent("end",function(){var t=this._ele,e=0,i=t.ownerDocument.createEvent("MouseEvents");i.initMouseEvent("endEvent",!0,!0,window,e,0,0,0,0,!1,!1,!1,!1,0,t),t.dispatchEvent(i)}.bind(this))},push:function(t){if(!t||!t.hasAttribute)return null;if(this.__cacheAttr="",this._ele=t,this.element=this.initTargetElement(),!this.hasAttrValues())return null;this.attrName=this.getAttr("attributeName","");var e=this.attrName,i=this.getAttr("attributeType","auto"),n=this.element&&this.element.ownerDocument.defaultView.getComputedStyle(this.element,"");("CSS"===i||"auto"===i&&this.element&&n.getPropertyValue(e)&&!/^(width|height|transform)$/.test(e))&&(this.isCSS=!0),e.indexOf("xlink")>-1&&(this.attrNameSpace="http://www.w3.org/1999/xlink");var r=this.element;r&&(this._ele=r,this.isDefault=r.hasAttributeNS(this.attrNameSpace,e),this.defaultValue=this.getAttr(e,n.getPropertyValue(e)),this._ele=t);var s=base("$frame"),a=s.$begin,l=a.up().mix({target:t,eventTarget:this.element||a.eventTarget,string:this.getAttr("begin","0"),$activate:a.$activate.up().mix({dur:this.getAttr("dur",null),end:a.$end.up().mix({eventTarget:this.element||a.eventTarget,string:this.getAttr("end",null)}),repeatCount:this.getAttr("repeatCount",null),repeatDur:this.getAttr("repeatDur",null),min:this.getAttr("min","0"),max:this.getAttr("max","indefinite")})}).updateList().parse();s.addLine(l.$list.init());var h=l.$list.addList(Number.MAX_VALUE),u=l.$list.addEndList(Number.MAX_VALUE);t.beginElement="indefinite"!==l.string?function(){}:function(){h.value=l.begin=base("$frame").currentFrame,l.isResolved=!0;var t=this.ownerDocument.createEvent("MouseEvents");t.initMouseEvent("beginEvent",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,this),this.dispatchEvent(t)};var o=l.$activate.end||{};return t.endElement="indefinite"!==o.string?function(){}:function(){if(l.isResolved){o.isResolved=!0,u.value=base("$frame").currentFrame;var t=this.ownerDocument.createEvent("MouseEvents");t.initMouseEvent("endEvent",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,this),this.dispatchEvent(t)}},l.timelines=[],this.setSmilEvent(l.$list),a=t=void 0,l},setValues:function(t,e,i,n){var r=this.$from,s=[this.up().mix({to:r.up().mix({from:r.up()})})],a=s[0].to;if(t=t&&t.split(";"),t&&t.length){s=[];for(var l=1;l<t.length;++l)s.push(this.up().mix({to:r.up().mix({from:r.up()})})),a=s[s.length-1].to,a.string=t[l],a.from.string=t[l-1]}else if(i)a.string=i,a.from.string=e||"0";else{if(!n)return null;a.string=n,a.from.string=e||"0";for(var h=a.call(),u=a.from,l=0;l<h.length;++l)h[l]+=u[l]}return r=a=h=u=void 0,s},isKeyError:function(t,e){return!(!t||t===e+1)},setKey:function(t){this._ele=t;var e,i,n=this.setValues(this.getAttr("values",null),this.getAttr("from",null),this.getAttr("to",null),this.getAttr("by",null)),r=n?n.length:0,s=this.getAttr("keyTimes",null),a=this.getAttr("keySplines",null),l=a&&a.split(";"),h="discrete"===this.mode;if(!h&&s&&n){if(e=this.$from.numList.call({string:s}),e.length&&0!==e[0])return null;if(this.isKeyError(e.length,r))return null;for(var u=0;r>u;++u)n[u].keyTime=e[u+1]-e[u],l&&(i=this.$from.numList.call({string:l[u]}),n[u].keySplines=i.length?i:null)}else if(!h&&n)for(var o=1/r,u=0;r>u;++u)n[u].keyTime=o,l&&(i=this.$from.numList.call({string:l[u]}),n[u].keySplines=i.length?i:null);else if(n){if(s){if(e=this.$from.numList.call({string:s}),e.length&&0!==e[0])return null;if(this.isKeyError(e.length,r))return null;for(var u=0;r>u;++u)n[u].keyTime=e[u+1]-e[u]}else for(var o=1/(r+1),u=0;r>u;++u)n[u].keyTime=o;n.push(n[r-1].up().mix(function(){e&&(this.keyTime=1-e[e.length-1])}).of({call:function(){return function(t){return isNaN(t)?this.string:this.to.advance(1)}.bind(this)}}))}if("paced"===this.mode){var m=0;n.forEach(function(t){m+=t.to.distance(t.to.from)}),n.forEach(function(t){t.norm=m})}return t=s=e=o=l=void 0,n}}).up("$setElement").mix({to:"",elementList:[],numberOfElemList:0,initialize:function(){var t=this.elementList;if(t&&t.length){for(var e=this.numberOfElemList+50,i=e-50;e>i;++i){if(t.length<=i)return void(this.elementList=null);this.up().init(t[i])}this.numberOfElemList+=50,t=e=void 0}},_setFrame:function(t){this.setAttribute(this.to)},timeline:base("$frame").$begin,_setEndFrame:function(t){"remove"===this.fill&&this.removeAttribute()},tocall:function(){},init:function(t){var e=this.push(t);t&&t.getAttributeNS&&(this._ele=t,this.to=this.getAttr("to",""),this.fill=this.getAttr("fill","remove"),"font-size"===this.getAttr("attributeName","")&&/\d\s*$/.test(this.to)&&(this.to+="px"));var i=this.element;e&&i&&(this.timeline=e,e.$list.addEvent("begin",this._setFrame.bind(this)),e.$list.addEvent("play",this._setFrame.bind(this)),e.$list.addEvent("end",this._setEndFrame.bind(this)),e.$list.state=e.$list.WAITING),e=i=void 0}}).up("$animateElement").mix({funcs:[],tocall:function(t){var e=this.funcs;if("discrete"===this.mode){for(var i="",n=0;n<e.length;++n){var r=e[n];t>=r.startKeyTime&&(i=r(t))}return t=e=r=void 0,i}for(var n=0;n<e.length;++n){var r=e[n];if(r.endKeyTime>=t)return r(t-r.startKeyTime)}return e=n=r=void 0,""},_setFrame:function(t){var e=t.currentFrame,i=this.timeline,n=i.simpleDuration,r=n?(e-t.begin)%n/n:0;this.setAttribute(this.tocall(r)),i=n=r=void 0},getAdvanceEnd:function(t){var e=this.timeline,i=e.simpleDuration;if(i){var n=e.activeTime>t.beginEnd?t.beginEnd:e.activeTime,r=n%i/i;r=r>1?1:r,r=r||1}else r=0;return r},_setEndFrame:function(t){"freeze"===this.fill?(this.setAttribute(this.tocall(this.getAdvanceEnd(t))),line=duration=advance=void 0):this.removeAttribute()},getAttr:function(t,e){var i=this.$attribute.getAttr.apply(this,arguments);return"from"===t&&!i&&this.defaultValue?this.defaultValue:i},_keywords:{aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagree:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},setAdd:function(t,e){if("sum"===t.getAttributeNS(null,"additive")){var i=t.parentNode.getAttributeNS(null,this.attrName);t.addEventListener("beginEvent",function(t){e.forEach(function(t){t.to.setAdditive(i)})},!1)}},setAccum:function(t,e){"sum"===t.getAttributeNS(null,"accumulate")&&t.addEventListener("repeatEvent",function(t){e.forEach(function(e){e.to.call(),e.to.setAccumulate(t.detail)})},!1)},setString:function(){/^(?:display|class|edgeMode|(gradient|marker|pattern|maskContent|mask|patternContent|primitive)Units|in|in2|method|mode|operator|preserveAspectRatio|result|spacing|spreadMethod|stitchTiles|target|type|xlink:href|yChannelSelector|color-interpolation|(clip|fill)-rule|cursor|filter|font-(family|stretch|style|variant)|image-rendering|marker-(end|mid|start)|mask|overflow|pointer-events|shape-rendering|stroke-(linecap|linejoin)|text-(anchor|decoration|rendering)|visibility)$/.test(this.attrName)&&(this.mode="discrete")},degits:1,setValues:function(){var t=this.$attribute.setValues.apply(this,arguments),e=this.degits;return t&&t.forEach(function(t){t.to.degit=e}),e=void 0,t},toRGB:function(t){var e=this._keywords[t];if(e)return"rgb("+e.join(", ")+")";if(t&&"#"===t[0]){var i="rgb(",n=parseInt;if(t.length<5)var r=t[1],s=t[2],a=t[3],t="#"+r+r+s+s+a+a;return t.match(/\#(\w{2})(\w{2})(\w{2})/),i+=n(RegExp.$1,16)+", "+n(RegExp.$2,16)+", "+n(RegExp.$3,16)+")",r=s=a=void 0,i}return t}}).on("init",function(t){var e,i=0,n=function(t){return t},r=/^(?:fill|stroke|stop-color|color)$/.test(this.attrName);if(r&&(this.degits=0,n=this.toRGB.bind(this)),t&&(this.mode=t.getAttributeNS(null,"calcMode")||"linear",this.setString(),e=this.setKey(t)),e){for(var s=new Array(e.length),a=0;a<e.length;++a){var l=e[a];l.to.string=n(l.to.string),l.to.from.string=n(l.to.from.string);var h=l.call();h.startKeyTime=i,i=h.endKeyTime=i+l.keyTime,s[a]=h}this.funcs=s.filter(function(t){return this.timeline.isResolved?"spline"!==this.mode||!t.isNotAnimate:!0},this),this.setAdd(t,e),this.setAccum(t,e)}i=keywords=n=r=void 0}).up("$animateTransformElement").mix({numberOfList:-1,type:"translate",attrName:"transform",isCSS:!1,isSum:!1,degits:15,joinList:function(t){for(var e=this.element.__transformList,i=0;i<e.length;++i){var n=e[i],r=n.value;n.isSum?t+=" "+r:n.isPlaying&&(t=r)}return t.trim()},tocall:function(t){if(this.numberOfList<0)throw new Error("Number of The List Error");var e=this.element.__transformList[this.numberOfList];return e.value=this.type+"("+this.$animateElement.tocall.call(this,t)+")",e.isPlaying=!0,e.isSum=this.isSum,this.joinList(this.defaultValue||"")},__setAttribute:function(){},_setFrame:function(t){var e=(t.currentFrame,this.element.__transformList),i=!1,n=e.length;if(1!==n&&this.numberOfList<n-1)for(var r=this.numberOfList+1;n>r;++r)e[r].isPlaying&&(i=!0);this.setAttribute=i?this.__setAttribute:this.$animateElement.setAttribute,this.$animateElement._setFrame.call(this,t)},_setEndFrame:function(t){var e=this.element.__transformList;if(e){var i=e[this.numberOfList];if("remove"===this.fill){if(!i)return;this.isSum?i.value="translate(0)":i.isPlaying=!1}else i.value=this.type+"("+this.$animateElement.tocall.call(this,this.getAdvanceEnd(t))+")";this.setAttribute(this.joinList(this.defaultValue||"")),i=void 0}},setAdd:function(){}}).on("init",function(t){if(t&&t.parentNode){this.getAttr=this.$attribute.getAttr,this.type=this.getAttr("type","translate"),this.attrName="transform";var e=this.element;this.isDefault=e.hasAttributeNS(null,"transform"),this.defaultValue=e.getAttributeNS(null,"transform")||"",this.isSum="sum"===this.getAttr("additive","replace"),e.__transformList||(e.__transformList=[],this.numberOfList=-1),this.hasAttrValues()&&this.numberOfList<0&&(this.numberOfList=e.__transformList.length,e.__transformList.push({isPlaying:!1,value:"translate(0)",isSum:this.isSum}))}}).up("$motionElement").mix(function(){this._setFrame=this.$animateElement._setFrame,this._setEndFrame=this.$animateElement._setEndFrame}).mix({numberOfList:-1,mode:"paced",hasAttrValues:function(){return this.$attribute.hasAttrValues.call(this)?!0:this._ele.hasAttribute("keyPoints")||this._ele.hasAttribute("path")||this._ele.getElementsByTagNameNS(this.path.namespaceURI,"mpath").length},path:document.createElementNS("http://www.w3.org/2000/svg","path"),rotate:"0",tocall:function(t){return("translate("+this.$animateElement.tocall.call(this,t)+") "+this.joinList(this.defaultValue||"")).trim()},getRotate:function(t,e,i){var n=t.getPathSegAtLength(e),r=t.pathSegList.getItem(n),s=r.pathSegTypeAsLetter,a=Math.PI;if("M"===s){var l=t.pathSegList.getItem(n+1),h=l.pathSegTypeAsLetter;if("M"===h)return"";if("L"===h)return") rotate("+(Math.atan2(l.y-r.y,l.x-r.x)/a*180+i);if("C"===h)return") rotate("+(Math.atan2(l.y1-r.y,l.x1-r.x)/a*180+i)}else{if("L"===s&&n-1>=0){var u=t.pathSegList.getItem(n-1);return") rotate("+(Math.atan2(r.y-u.y,r.x-u.x)/a*180+i)}if("C"===s){var o=t.getPointAtLength(e),m=o.x,f=o.y;return o=t.getPointAtLength(e+1),") rotate("+(Math.atan2(o.y-f,o.x-m)/a*180+i)}}},_tocallForPath:function(t){this.isKeyPoints&&(t=+this.$animateElement.$animateElement.tocall.call(this,t));var e=this.path,i=t*e.getTotalLength(),n=e.getPointAtLength(i),r=0;return"0"===this.rotate?n.x+","+n.y:(r="auto"===this.rotate?0:"auto-reverse"===this.rotate?180:+this.rotate,n.x+","+n.y+this.getRotate(e,i,r))},setValues:function(){var t=this.getAttr("keyPoints",null),e=this.$animateElement.$animateElement.setValues;return t?e.call(this,t,null,null,null):e.apply(this,arguments)}}).on("init",function(t){if(t&&t.parentNode){if(this.type="translate",this.isSum=!0,this.mode=this.getAttr("mode","paced"),this.rotate=this.getAttr("rotate","0"),this.isKeyPoints=t.hasAttributeNS(null,"keyPoints"),this.isKeyPoints&&!t.hasAttributeNS(null,"path")){var e=this.getAttr("values",this.getAttr("from","")+" L "+this.getAttr("to",""));t.setAttributeNS(null,"path","M "+e.replace(/;/g," L "))}this.path=this.path.cloneNode(!0);var i=t.getElementsByTagNameNS(this.path.namespaceURI,"mpath"),n=this.$animateElement;if(i.length){var r=t.ownerDocument.getElementById(i[0].getAttributeNS("http://www.w3.org/1999/xlink","href").slice(1));r&&this.path.setAttributeNS(null,"d",r.getAttributeNS(null,"d")),this.$animateElement=n.up().mix({tocall:this._tocallForPath})}else t.hasAttributeNS(null,"path")&&(this.path.setAttributeNS(null,"d",t.getAttributeNS(null,"path")),this.$animateElement=n.up().mix({tocall:this._tocallForPath}))}}),base("$getDocument").mix(function(){function t(){function t(t){function e(e,i){var r=t.getElementsByTagNameNS(n,i);e.numberOfElemList=0,r.length>0&&(e.elementList=r,s.objList.push(e)),r=e=void 0}var i=base("$calcMode").$attribute.$setElement,r=i.$animateElement,s=base("$frame");e(i,"set"),e(r,"animate"),e(r.up(),"animateColor"),e(r.$animateTransformElement,"animateTransform"),e(r.$animateTransformElement.$motionElement,"animateMotion"),t.defaultView.addEventListener("hashchange",function(){var e=t.defaultView.location.hash.slice(1);t.getElementById(e).beginElement()})}var i=document.getElementsByTagName("object"),n="http://www.w3.org/2000/svg";if(i)for(var r=0;r<i.length;++r)t(i[r].getSVGDocument());t(document);var s=e(),a=function(){window.cancelAnimationFrame&&cancelAnimationFrame(s)};base("$frame").on("pauseAnimation",a),window.addEventListener("unload",a)}function e(){if(!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation","1.1")||window.navigator.userAgent.toLowerCase().indexOf("edge")>0){if(window.requestAnimationFrame&&requestAnimationFrame){var t={handle:null};return function(e){var i=t,n=function(){if(!this.isPaused){e++;try{this.initialize(),this.setFrame(e)}catch(t){}i.handle=requestAnimationFrame(n)}}.bind(base("$frame"));i.handle=requestAnimationFrame(n)}(-1),t}setInterval(function(t){var e=base("$frame");return function(){t++,e.initialize(),e.setFrame(t)}}(-1),1)}}window.addEventListener&&window.addEventListener("load",t),this.step=e});
\ No newline at end of file